RFR: 8286056: AArch64: clarify uses of MacroAssembler::far_call/MacroAssembler::far_jump
Evgeny Astigeevich
duke at openjdk.java.net
Wed May 4 17:08:31 UTC 2022
On Wed, 4 May 2022 16:04:20 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> Would be nice if you also add similar extended description for trampoline_call().
Yes, I'll do: https://bugs.openjdk.java.net/browse/JDK-8286058
> What is indirect in this case? Is it the use of adrp or it is trampoline (which is also kind of indirect)?
It is a call/branch at an address in a register. Yes, a trampoline is an indirect far call. I'll update the comment.
Trampolines use `ldr` instead of `adrp` which allows jumping anywhere in the memory. `adrp` in limited to 4Gb. As trampolines are always used for calling code inside `CodeCache` and `CodeCache` is limited to 2Gb, using `ldr` might be expensive in such cases. Created https://bugs.openjdk.java.net/browse/JDK-8286140.
> What is used in debug build (since you mentioned release build)?
2M. 128M is ISA limit.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8534
More information about the hotspot-dev
mailing list