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

Saint Wesonga duke at openjdk.org
Wed Jul 31 15:39:47 UTC 2024


> 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

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/20390/files
  - new: https://git.openjdk.org/jdk/pull/20390/files/a3f412af..5624c104

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=20390&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20390&range=00-01

  Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/20390.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20390/head:pull/20390

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


More information about the hotspot-runtime-dev mailing list