< prev index next >
src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
Print this page
*** 48,57 ****
--- 48,58 ----
#include "runtime/sharedRuntime.hpp"
#include "runtime/thread.hpp"
#if INCLUDE_ALL_GCS
#include "gc/g1/g1BarrierSet.hpp"
#include "gc/g1/g1CardTable.hpp"
+ #include "gc/g1/g1ThreadLocalData.hpp"
#include "gc/g1/heapRegion.hpp"
#endif
#ifdef PRODUCT
#define BLOCK_COMMENT(str) /* nothing */
*** 4031,4046 ****
Label runtime;
assert_different_registers(obj, pre_val, tmp, rscratch1);
assert(pre_val != noreg && tmp != noreg, "expecting a register");
! Address in_progress(thread, in_bytes(JavaThread::satb_mark_queue_offset() +
! SATBMarkQueue::byte_offset_of_active()));
! Address index(thread, in_bytes(JavaThread::satb_mark_queue_offset() +
! SATBMarkQueue::byte_offset_of_index()));
! Address buffer(thread, in_bytes(JavaThread::satb_mark_queue_offset() +
! SATBMarkQueue::byte_offset_of_buf()));
// Is marking active?
if (in_bytes(SATBMarkQueue::byte_width_of_active()) == 4) {
ldrw(tmp, in_progress);
--- 4032,4044 ----
Label runtime;
assert_different_registers(obj, pre_val, tmp, rscratch1);
assert(pre_val != noreg && tmp != noreg, "expecting a register");
! Address in_progress(thread, in_bytes(G1ThreadLocalData::satb_mark_queue_active_offset()));
! Address index(thread, in_bytes(G1ThreadLocalData::satb_mark_queue_index_offset()));
! Address buffer(thread, in_bytes(G1ThreadLocalData::satb_mark_queue_buffer_offset()));
// Is marking active?
if (in_bytes(SATBMarkQueue::byte_width_of_active()) == 4) {
ldrw(tmp, in_progress);
*** 4120,4133 ****
assert_different_registers(store_addr, new_val, thread, tmp, tmp2,
rscratch1);
assert(store_addr != noreg && new_val != noreg && tmp != noreg
&& tmp2 != noreg, "expecting a register");
! Address queue_index(thread, in_bytes(JavaThread::dirty_card_queue_offset() +
! DirtyCardQueue::byte_offset_of_index()));
! Address buffer(thread, in_bytes(JavaThread::dirty_card_queue_offset() +
! DirtyCardQueue::byte_offset_of_buf()));
BarrierSet* bs = Universe::heap()->barrier_set();
CardTableBarrierSet* ctbs = barrier_set_cast<CardTableBarrierSet>(bs);
CardTable* ct = ctbs->card_table();
assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code");
--- 4118,4129 ----
assert_different_registers(store_addr, new_val, thread, tmp, tmp2,
rscratch1);
assert(store_addr != noreg && new_val != noreg && tmp != noreg
&& tmp2 != noreg, "expecting a register");
! Address queue_index(thread, in_bytes(G1ThreadLocalData::dirty_card_queue_index_offset()));
! Address buffer(thread, in_bytes(G1ThreadLocalData::dirty_card_queue_buffer_offset()));
BarrierSet* bs = Universe::heap()->barrier_set();
CardTableBarrierSet* ctbs = barrier_set_cast<CardTableBarrierSet>(bs);
CardTable* ct = ctbs->card_table();
assert(sizeof(*ct->byte_map_base()) == sizeof(jbyte), "adjust this code");
< prev index next >