RFR: 8315698: Java crash during startup

Daniel Jeliński djelinski at openjdk.org
Tue Sep 5 16:18:05 UTC 2023


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.

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

Commit messages:
 - Additional verification
 - Fix register encoding
 - Update stubGenerator to work with new BasicType size

Changes: https://git.openjdk.org/jdk/pull/15568/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15568&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8315698
  Stats: 24 lines in 3 files changed: 17 ins; 0 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/15568.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15568/head:pull/15568

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


More information about the hotspot-compiler-dev mailing list