RFR: 8364150: RISC-V: Leftover for JDK-8343430 removing old trampoline call
Hamlin Li
mli at openjdk.org
Mon Jul 28 12:53:53 UTC 2025
On Mon, 28 Jul 2025 04:05:20 GMT, Fei Yang <fyang at openjdk.org> wrote:
> Hi, please consider this small change.
>
> JDK-8343430 removed the old trampoline call on RISC-V. And the new solution (reloc call) loads a target address from stub section and do an indirect call. This means the stub is always there for a NativeCall. So there's no need to check existence of the stub when doing `CallRelocation::fix_relocation_after_move` [1].
>
> We can always return the stub address in `NativeCall::reloc_destination` and use that address in `NativeCall::reloc_set_destination`. This helps simplify the code and saves one `MacroAssembler::target_addr_for_insn` call
> and one `trampoline_stub_Relocation::get_trampoline_for` call in these two functions respectively.
>
> Testing on linux-riscv64:
> - [x] tier1-tier3 (release build)
> - [x] hs:tier1-hs:tier3 (fastdebug build)
>
> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/code/relocInfo.cpp#L404-L406
src/hotspot/cpu/riscv/nativeInst_riscv.cpp line 77:
> 75: stub_addr = trampoline_stub_Relocation::get_trampoline_for(call_addr, code->as_nmethod());
> 76: assert(stub_addr != nullptr, "Sanity");
> 77: return stub_addr;
Seems this line is not necessary.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26495#discussion_r2236316512
More information about the hotspot-compiler-dev
mailing list