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

AArch64: stack corruption after spilling vector register

    Details

    • Subcomponent:
    • Resolved In Build:
      b31
    • CPU:
      aarch64
    • OS:
      linux

      Backports

        Description

        Seen on the vectorIntrinsics branch but should also be possible on jdk/jdk although I haven't found a reliable reproducer. Use the attached TestFloatVector.java and the following command line:

        java --add-modules jdk.incubator.vector -XX:-TieredCompilation -Xcomp -XX:-UseOnStackReplacement TestFloatVector

        Note the crash will only happen on vectorIntrinsics *before* the recent commit "Enable call devirtualization during post-parse phase" as this changes the inlining and hides the bug.

        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # SIGSEGV (0xb) at pc=0x0000ffff8d7448cc, pid=225338, tid=225339
        #
        # JRE version: OpenJDK Runtime Environment (16.0) (fastdebug build 16-internal+0-adhoc.nicgas01.panama-vector)
        # Java VM: OpenJDK 64-Bit Server VM (fastdebug 16-internal+0-adhoc.nicgas01.panama-vector, compiled mode, compressed oops, g1 gc, linux-aarch64)
        # Problematic frame:
        # J 3622 c2 TestFloatVector.fmaTest([F[F[F[F[Z)V (111 bytes) @ 0x0000ffff8d7448cc [0x0000ffff8d744400+0x00000000000004cc]
        #

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  ngasson Nick Gasson
                  Reporter:
                  ngasson Nick Gasson
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: