On Mon, 16 Sep 2024 06:53:42 GMT, Roberto Castañeda Lozano 
<rcastaned...@openjdk.org> wrote:

>> Roman Kennke has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Various touch-ups
>
> src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp line 2576:
> 
>> 2574:   } else {
>> 2575:     lea(dst, Address(obj, index, Address::lsl(scale)));
>> 2576:     ldr(dst, Address(dst, offset));
> 
> Do you have a reproducer (or, better yet, a test case) that exercises this 
> case? I ran Oracle's internal CI tiers 1-5 and could never hit it. Could this 
> happen for x64 as well?

AFAIK, this happens only when using compressed oops with a heap-base in r27. 
When running with that setting, we would get addresses like r27[nklass] or 
r27[nklass]+offset, both with scale=8. You would need large heaps, perhaps 
>4GB, to get this coops setting. The problem with aarch64 is that we can't have 
an address like  r27[nklass]+offset, that's why we need to lea the r27[nklass] 
part first.
Yes, this also happens on x86, but x86 supports  rX[nklass]+offset addressing.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20677#discussion_r1764937842

Reply via email to