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

aarch64: Register clash in debug build

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • 13
    • 11, 12, 13
    • hotspot
    • aarch64

      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

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

              Created:
              Updated:
              Resolved: