RFR: 8333819: Move embedded external addresses from relocation info into separate global table
Lutz Schmidt
lucy at openjdk.org
Fri Jun 14 21:44:31 UTC 2024
On Fri, 14 Jun 2024 16:16:49 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> I am also not sure if `runtime_call_w_cp_type` is used only for addresses. If it is for some other values then we can't simplify the code.
On s390, runtime calls have two incarnations. The preferred one is a "call relative", where the distance to the call target is encoded in the instruction. The other one is the classic "load address (from constant pool) and branch to that address". The relocation type `runtime_call_w_cp_type` is used exactly and only for such addresses.
> It seems CodeBlob::ctable_begin() can be also removed.
Hmm, may not be the case. s390 does all loads from constant pool with pc-relative addressing. This method is needed to calculate the distance (offset) of the accessed data from the accessing instruction. Back in the days when s390 switched to pc-relative CP addressing, we tried hard to get around this (not very beautiful) shared code change. We didn't get further than trying.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/19703#issuecomment-2168799567
More information about the hotspot-compiler-dev
mailing list