RFR: 8286058: AArch64: clarify types of calls [v3]
Andrew Haley
aph at openjdk.java.net
Wed May 25 07:32:09 UTC 2022
On Thu, 19 May 2022 16:46:32 GMT, Evgeny Astigeevich <duke at openjdk.java.net> wrote:
>> The PR clarifies the types of calls AArch64 OpenJDK uses. It cleans up far_call, far_jump and trampoline_call. It removes trampoline_call1 because its use cases are now supported by trampoline_call.
>> Tested a fastdebug build:
>> - `gtest`: Passed
>> - `tier1`...`tier3`: Passed
>
> Evgeny Astigeevich has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits:
>
> - Describe call types; Fix API
> - Merge branch 'master' into JDK-8286058
> - Merge branch 'master' into JDK-8286058
> - Fix assert message
> - 8286058: AArch64: clarify uses of MacroAssembler::trampoline_call
src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp line 632:
> 630: CompileTask* task = ciEnv::current()->task();
> 631:
> 632: // We need to be at phase output when we check the size of emitted code.
Suggestion:
// We need to be in the output phase when we check the size of emitted code.
src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp line 1122:
> 1120: //
> 1121: // - far call: adrp reg, pc_relative_offset; add; bl reg
> 1122: // This is longer and slower than a direct call. The offset has
Suggestion:
// This is longer than a direct call. The offset has
I wouldn't be so definite as to say it's slower. Let's stay with longer.
src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp line 1125:
> 1123: // the range +/-4GB. As the code cache size is limited to 4GB,
> 1124: // far calls can reach anywhere in the code cache. If the sematic of
> 1125: // the call is not needed, a far jump 'b reg' can be used instead.
Suggestion:
// far calls can reach anywhere in the code cache. If a jump is
// needed rather than a call, a far jump 'b reg' can be used instead.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8564
More information about the hotspot-dev
mailing list