RFR: 8334475: UnsafeIntrinsicsTest.java#ZGenerationalDebug assert(!assert_on_failure) failed: Has low-order bits set [v2]

duke duke at openjdk.org
Mon Aug 12 20:39:34 UTC 2024


On Wed, 31 Jul 2024 15:39:47 GMT, Saint Wesonga <duke at openjdk.org> wrote:

>> The implementation of the pd_conjoint_jlongs_atomic function in the Windows AArch64 port calls pd_conjoint_oops_atomic to copy jlongs from the source to the destination. However, when CHECK_UNHANDLED_OOPS is defined, copying of each jlong in pd_conjoint_oops_atomic calls oop::operator= instead of just copying the jlong.
>> 
>> oop::operator= then treats the value to be copied as a pointer, causing the assertion failure in JDK-8334475. The fix is to directly copy the jlongs from the source to the destination. The test "compiler/gcbarriers/UnsafeIntrinsicsTest.java" now passes on the Windows AArch64 port.
>> 
>> This PR also cleans up code duplication (similar to how  https://github.com/openjdk/jdk/pull/12197 cleaned it up when fixing jlong copying for Windows x64).
>
> Saint Wesonga has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Include atomic.hpp

@swesonga 
Your change (at version 5624c1042579fb26546b9528d2dbb67b3ef84821) is now ready to be sponsored by a Committer.

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

PR Comment: https://git.openjdk.org/jdk/pull/20390#issuecomment-2284862557


More information about the hotspot-runtime-dev mailing list