RFR: 8342042: PPC64: compiler_fast_unlock_object flags failure instead of success
Axel Boldt-Christmas
aboldtch at openjdk.org
Wed Oct 16 07:42:15 UTC 2024
On Mon, 14 Oct 2024 13:29:43 GMT, Richard Reingruber <rrich at openjdk.org> wrote:
> This change inverts the `EQ` bit in `flag` with a condition register nand instruction in order to meet the post condition given at L2751-L2752:
>
>
> // flag == EQ indicates success, decrement held monitor count
> // flag == NE indicates failure
>
>
> The fix passed our CI testing with LockingMode set to LM_LEGACY
> Tier1-4 of hotspot and jdk. All of Langtools and jaxp. Renaissance Suite and SAP specific tests.
> Testing was done on the main platforms and also on Linux/PPC64le and AIX.
>
> The test runtime/logging/MonitorInflationTest.java failed on all platforms. Apparently it has issues with LM_LEGACY.
Seems like `compiler_fast_unlock_lightweight_object` could do the same.
It does the same branch, but correctly, by going through a `crorc(CCR0, Assembler::equal, CCR0, Assembler::equal)` in the success path.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21496#issuecomment-2415968958
More information about the hotspot-compiler-dev
mailing list