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

Incorrect use of ADRP for byte_map_base

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 9
    • None
    • hotspot
    • None
    • b105
    • aarch64

      The adrp() (address of page) assembler macro can reach anywhere in the 48-bit AArch64 address space. However, byte_map_base is not necessarily an address: it might even wrap around the address space so that it is a negative 64-bit constant. In that case, we should not use ADRP to form its address.

      While investigating this bug we discovered that the code stubs for C1's G1 pre- and post-barriers push the incorrect set of registers. We must include the call-clobbered vector registers too; they probably won't be used by the native runtime, but the ABI says that they may be so we must save them.

            aph Andrew Haley
            aph Andrew Haley
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: