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

aarch64: Register clash in debug build

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Duplicate
    • Affects Version/s: 11, 12, 13
    • Fix Version/s: 13
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
    • CPU:
      aarch64

      Description

      We were running some jck tests with -Xcomp -XX:-TieredCompilation:
      api/java_lang/constant/DynamicConstantDesc
      api/java_lang/invoke/ConstantBootstraps
      api/java_lang/invoke/MethodHandle
      api/java_lang/reflect/Constructor/typeanno/getannotatedparametertypes

      5 tests crashed with SIGSEGV in StubRoutines::generic_arraycopy.

      Root cause is a register clash in debug build:
      generate_generic_copy:
      rscratch2_dst_klass = rscratch2 = r9

      It uses
      MacroAssembler::check_klass_subtype_slow_path
      which overwrites rscratch2 in debug build.

      Reproducible as follows:
      export JAVA_HOME=<your jdk13>
      export JAVA_OPTS="-Xcomp -XX:-TieredCompilation"
      ksh <your directory>/jck/jck13/JCK-runtime-13/tests/api/java_lang/constant/DynamicConstantDesc/OfCanonical.ksh

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                mdoerr Martin Doerr
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: