RFR: 8262901: [macos_aarch64] NativeCallTest expected:<-3.8194101E18> but was:<3.02668882E10>

Andrew Haley aph at openjdk.org
Mon Sep 12 16:56:44 UTC 2022


On Mon, 12 Sep 2022 14:35:30 GMT, Olga Mikhaltsova <omikhaltcova at openjdk.org> wrote:

> This PR is opened as a follow-up for [1] and included the "must-done" fixes pointed by @teshull.
> 
> This patch for JVMCI includes the following fixes related to the macOS AArch64 calling convention:
> 1. arguments may consume slots on the stack that are not multiples of 8 bytes [2]
> 2. natural alignment of stack arguments [2]
> 3. stack must remain 16-byte aligned [3][4]
> 
> Tested with tier1 on macOS AArch64 and Linux AArch64.
> 
> [1] https://github.com/openjdk/jdk/pull/6641
> [2] https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms
> [3] https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-160#stack
> [4] https://docs.microsoft.com/en-us/cpp/build/stack-usage?view=msvc-170

src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig.java line 291:

> 289:                     currentStackOffset += Math.max(valueKind.getPlatformKind().getSizeInBytes(), target.wordSize);
> 290:                 }
> 291:             }

So I'm curious: why not subclass `AArch64HotSpotRegisterConfig` here, or maybe even use an interface, rather than the boolean?

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

PR: https://git.openjdk.org/jdk/pull/10238


More information about the hotspot-compiler-dev mailing list