RFR: 8359359: AArch64: share trampolines between static calls to the same method [v6]

Mikhail Ablakatov mablakatov at openjdk.org
Thu Oct 16 15:46:28 UTC 2025


On Wed, 8 Oct 2025 16:45:12 GMT, Evgeny Astigeevich <eastigeevich at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp line 910:
>> 
>>> 908:         assert(CodeBuffer::supports_shared_stubs(), "must support shared stubs");
>>> 909:         code()->share_trampoline_for(entry.target(), entry.target(), offset());
>>> 910:       } else if (entry.rspec().type() == relocInfo::static_call_type && callee != nullptr) {
>> 
>> I think we should require `callee` to non-null for `relocInfo::static_call_type`. Otherwise this will hide bugs, when it's been intended to share but forgotten to provide `callee`.
>
> We need to convert the check `callee != nullptr` into an assert.

@eastig , I'm a bit stuck on [`gen_continuation_enter()`](https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp#L1059). I can't figure out what the target of this static call is. Are you familiar with this portion of the codebase by any chance?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/25954#discussion_r2436519557


More information about the hotspot-dev mailing list