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