RFR: 8248404: AArch64: Remove uses of long and unsigned long [v4]

Andrew Haley aph at openjdk.java.net
Tue Jan 11 16:20:24 UTC 2022


On Tue, 11 Jan 2022 16:04:00 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> Tested with mach5 on linux-aarch64 and macosx-aarch64 on tier1-3 and below GHA for windows-aarch64 (once I open this PR).
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add ULL

src/hotspot/cpu/aarch64/universalUpcallHandler_aarch64.cpp line 74:

> 72:   // Capture prev stack pointer (stack arguments base)
> 73:   __ add(rscratch1, rfp, 16);   // Skip saved FP and LR
> 74:   __ str(rscratch1, Address(sp, checked_cast<int>(layout.stack_args)));  // x86 casts to int also

Suggestion:

  __ Address slot = __ legitimize_address(Address(sp, checked_cast<int>(layout.stack_args)), wordSize, rscratch2);
  __ str(rscratch1, slot);  // x86 casts to int also

I think this is a real bug: the range of a stack arg from SP can exceed that of the maximum offset of a STR instruction!
Wherever there's a dubious cast there's probably a bug...

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

PR: https://git.openjdk.java.net/jdk/pull/7023


More information about the hotspot-dev mailing list