RFR: 8286056: AArch64: clarify uses of MacroAssembler::far_call/MacroAssembler::far_jump
Vladimir Kozlov
kvn at openjdk.java.net
Wed May 4 16:07:24 UTC 2022
On Wed, 4 May 2022 12:01:36 GMT, Evgeny Astigeevich <duke at openjdk.java.net> wrote:
> `MacroAssembler::far_call`/`MacroAssembler::far_jump` are for generating calls of/jumps to targets which are inside `CodeCache` and can `relocInfo` types: `external_word_type`, `runtime_call_type` or `none`.
> This PR updates the description of the functions and adds an assert checking a `relocInfo` type.
> Tested a fastdebug build:
> - `gtest`: Passed
> - `tier1`: Passed
src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp line 1105:
> 1103: // - relocInfo::none
> 1104: // If the distance to the address can exceed the branch range (128M for the release build)
> 1105: // for direct calls/jumps, an indirect call/jump is generated.
What is `indirect` in this case? Is it the use of `adrp` or it is `trampoline` (which is also kind of `indirect`)?
What is used in `debug` build (since you mentioned `release` build)?
Would be nice if you also add similar extended description for `trampoline_call()`.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8534
More information about the hotspot-dev
mailing list