RFR: 8353274: [PPC64] Bug related to -XX:+UseCompactObjectHeaders -XX:-UseSIGTRAP in JDK-8305895

Richard Reingruber rrich at openjdk.org
Thu Apr 3 13:38:49 UTC 2025


On Mon, 31 Mar 2025 14:25:09 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:

> `MacroAssembler::ic_check` compares the `Klass*` in the compact format (no decode). However, a right shift is needed in case of `UseCompactObjectHeaders` (see `load_narrow_klass_compact`). This was missing in the slower version which doesn't use SIGTRAP.

I've been looking for more references to `oopDesc::klass_offset_in_bytes()` and found https://github.com/openjdk/jdk/blob/296d9d6f7a734cc2bab21c58f21a941150b4cf2a/src/hotspot/cpu/ppc/c2_MacroAssembler_ppc.cpp#L54
To me it looks like neither on aarch64 nor on x86 `oopDesc::klass_offset_in_bytes()` needs to be deducted from the address. Why is it done on ppc64?

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

PR Comment: https://git.openjdk.org/jdk/pull/24331#issuecomment-2775818837


More information about the hotspot-dev mailing list