RFR: 8315698: Crash when comparing BasicType as int
Dean Long
dlong at openjdk.org
Wed Sep 6 02:54:40 UTC 2023
On Tue, 5 Sep 2023 15:06:48 GMT, Daniel JeliĆski <djelinski at openjdk.org> wrote:
> Please review this patch that fixes the handling of result type parameter in `call_stub` on x64.
>
> Since 5a82fa3bb278b5b80b9ede0619f364fe13cdbede the parameter only needs one byte, and Windows ABI does not require the caller to clear the remaining bytes of the parameter register.
>
> Clang clears the remainder of the register in release mode, but does not clear it in debug mode.
> MSVC... [It's complicated](https://godbolt.org/z/6YEcMcM13). Apparently MSVC-generated code clears the high bytes of the parameter register here.
>
> This patch fixes the crashes with clang. (MSVC) Windows-x64 and (gcc) Linux-x64 builds still work, tiers 1-3 report no new failures.
I don't think there's much advantage to using an 8-bit value in the assembly code. How about changing the CallStub typedef to take "int" like the assembly code expects? That way all platforms are fixed, not just x86.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/15568#issuecomment-1707578111
More information about the hotspot-compiler-dev
mailing list