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

[s390] Extend relocations for pc-relative instructions.

    Details

    • Subcomponent:
    • Resolved In Build:
      b146

      Description

      Instructions can load values from memory at an address computed by an offset to the current pc. S390 aka z/Architecture implements such instructions.

      This change implements two extensions to relocation to support this.

      On s390, there are call instructions that branch to an address relative to the current pc. If the offset encodable in the instruction does not suffice, a pc-relative load is used to load the target address from the constant section in the code buffer into a register that is then used as branch target. Relocations must support switching between these two implementations. For this we need a relocation that stores the offset of the address in the constant section, as this value can not be read from the instruction.

      Further the pc-relative instructions encode the offset from the instruction to the constant. If the constant section is resized, or the instruction is moved (as during shorten branches), this offset must be adapted. To compute the new offset, the change in offset must be known. To compute this we store the position of the constant section in the CodeBlob.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                goetz Goetz Lindenmaier
                Reporter:
                goetz Goetz Lindenmaier
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Due:
                  Created:
                  Updated:
                  Resolved: