RFR: 8337797: Additional ExternalAddress cleanup [v2]

Vladimir Kozlov kvn at openjdk.org
Tue Aug 6 17:00:36 UTC 2024


On Tue, 6 Aug 2024 16:55:30 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> src/hotspot/cpu/x86/stubGenerator_x86_64_arraycopy.cpp line 218:
>> 
>>> 216:   __ lea(end_from, Address(from, count, sf, 0));
>>> 217:   if (NOLp == nullptr) {
>>> 218:     RuntimeAddress no_overlap(no_overlap_target);
>> 
>> I think this is actually a jump within the same buffer. Can we use an AddressLiteral here with reloc_none and rely on this being encoded with a PC-relative jump?
>
> `relic_none` is treated as unreachable and will force using lea():
> https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/assembler_x86.cpp#L12915

And `runtime_call_type' will be reachable if inside CodeCache:
https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/assembler_x86.cpp#L12897

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20470#discussion_r1705856524


More information about the hotspot-dev mailing list