-
Bug
-
Resolution: Fixed
-
P4
-
17, 21, 23
-
b18
-
x86, x86_64
The following assertion within G1BarrierSetAssembler::g1_write_barrier_post() in src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp:
// Generated code assumes that buffer index is pointer sized.
STATIC_ASSERT(in_bytes(SATBMarkQueue::byte_width_of_index()) == sizeof(intptr_t));
refers to the size of the index of the SATBMarkQueue buffer, which is unused in the post-barrier. It should probably refer instead to G1DirtyCardQueue::byte_width_of_index().
This issue was found by [~kbarrett].
// Generated code assumes that buffer index is pointer sized.
STATIC_ASSERT(in_bytes(SATBMarkQueue::byte_width_of_index()) == sizeof(intptr_t));
refers to the size of the index of the SATBMarkQueue buffer, which is unused in the post-barrier. It should probably refer instead to G1DirtyCardQueue::byte_width_of_index().
This issue was found by [~kbarrett].
- relates to
-
JDK-8256406 G1 x86 C1/Interpreter post write barrier always uses 32 bit to access variable sized PtrQueue::_index
- Resolved