--- old/src/hotspot/cpu/s390/c1_Runtime1_s390.cpp 2018-04-11 11:32:55.298955719 +0200 +++ new/src/hotspot/cpu/s390/c1_Runtime1_s390.cpp 2018-04-11 11:32:55.094946906 +0200 @@ -45,6 +45,7 @@ #if INCLUDE_ALL_GCS #include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1CardTable.hpp" +#include "gc/g1/g1ThreadLocalData.hpp" #endif // Implementation of StubAssembler @@ -780,15 +781,9 @@ Register tmp2 = Z_R7; Label refill, restart, marking_not_active; - int satb_q_active_byte_offset = - in_bytes(JavaThread::satb_mark_queue_offset() + - SATBMarkQueue::byte_offset_of_active()); - int satb_q_index_byte_offset = - in_bytes(JavaThread::satb_mark_queue_offset() + - SATBMarkQueue::byte_offset_of_index()); - int satb_q_buf_byte_offset = - in_bytes(JavaThread::satb_mark_queue_offset() + - SATBMarkQueue::byte_offset_of_buf()); + int satb_q_active_byte_offset = in_bytes(G1ThreadLocalData::satb_mark_queue_active_offset()); + int satb_q_index_byte_offset = in_bytes(G1ThreadLocalData::satb_mark_queue_index_offset()); + int satb_q_buf_byte_offset = in_bytes(G1ThreadLocalData::satb_mark_queue_buffer_offset()); // Save tmp registers (see assertion in G1PreBarrierStub::emit_code()). __ z_stg(tmp, 0*BytesPerWord + FrameMap::first_available_sp_in_frame, Z_SP); @@ -890,10 +885,8 @@ // Save registers used below (see assertion in G1PreBarrierStub::emit_code()). __ z_stg(r2, 1*BytesPerWord + FrameMap::first_available_sp_in_frame, Z_SP); - ByteSize dirty_card_q_index_byte_offset = - JavaThread::dirty_card_queue_offset() + DirtyCardQueue::byte_offset_of_index(); - ByteSize dirty_card_q_buf_byte_offset = - JavaThread::dirty_card_queue_offset() + DirtyCardQueue::byte_offset_of_buf(); + ByteSize dirty_card_q_index_byte_offset = G1ThreadLocalData::dirty_card_queue_index_offset(); + ByteSize dirty_card_q_buf_byte_offset = G1ThreadLocalData::dirty_card_queue_buffer_offset(); __ bind(restart);