RFR: 8316694: Implement relocation of nmethod within CodeCache [v13]
Evgeny Astigeevich
eastigeevich at openjdk.org
Fri Apr 25 15:57:51 UTC 2025
On Fri, 25 Apr 2025 00:12:25 GMT, Chad Rakoczy <duke at openjdk.org> wrote:
>> src/hotspot/cpu/aarch64/relocInfo_aarch64.cpp line 86:
>>
>>> 84: if (!Assembler::reachable_from_branch_at(addr(), x, true)) {
>>> 85: address trampoline = call->get_trampoline();
>>> 86: assert(trampoline != nullptr, "branch is too large with no available trampoline");
>>
>> Doesn't this mean any nmethod relocation can cause the JVM to crash if there is no trampoline? Or are you creating new trampoline stubs in the relocated destination as needed (and deleting trampoline stubs that are no longer needed)?
>
> From what I saw calls are _usually_ accompanied by a corresponding trampoline. I'll look deeper to see if _usually_ is _always_
In nmethods `bl` calls always come with trampolines.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23573#discussion_r2060498951
More information about the hotspot-compiler-dev
mailing list