[foreign-memaccess+abi] RFR: 8275584: Incorrect stack spilling in CallArranger on MacOS/AArch64
Nick Gasson
ngasson at openjdk.org
Fri Oct 21 15:55:27 UTC 2022
On Fri, 21 Oct 2022 15:50:01 GMT, Nick Gasson <ngasson at openjdk.org> wrote:
> This patch adds special handling for argument spilling on M1 Mac which does not follow the standard AArch64. In the standard ABI arguments are first extended to the full 64-bit register width and then spilled but on macOS the arguments are spilled according to their original width and packed using theior natural. @JornVernee did most of the work to support this but there were a few issues remaining related to structspilling which I've fixed up in the last commit here.
src/hotspot/cpu/aarch64/foreignGlobals_aarch64.cpp line 134:
> 132: assert(to_reg.segment_mask() == REG64_MASK, "only moves to 64-bit registers supported");
> 133: switch (from_reg.stack_size()) {
> 134: // FIXME these loads zero upper bits of the register
I'm not sure about this: I'll try creating a test next week.
-------------
PR: https://git.openjdk.org/panama-foreign/pull/746
More information about the panama-dev
mailing list