Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8078113

8011102 changes may cause incorrect results.

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 7u80, 8u60, 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
    • Resolved In Build:
      b64
    • CPU:
      x86
    • OS:
      generic

      Backports

        Description

        With 32 byte width vectorization the JVM produces wrong results under certain circumstances for x86_64.

        The Vzeroupper instruction introduced in String.equals, String.compareTo and OptimizeFill intrinsic/stubs in the 8011102 changes is the cause.

        For 32 byte vectorization, YMM registers are used by the hotspot compiler and the register allocator can allocate these across intrinsic methods.

        Vzeroupper in the intrinsic is clobbering upper 16 bytes in all the other YMM registers that are not touched in these methods and so our customers are seeing unexpected results.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  kvn Vladimir Kozlov
                  Reporter:
                  kvn Vladimir Kozlov
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: