< prev index next >
src/hotspot/cpu/x86/c1_Runtime1_x86.cpp
Print this page
*** 42,51 ****
--- 42,52 ----
#include "utilities/macros.hpp"
#include "vmreg_x86.inline.hpp"
#if INCLUDE_ALL_GCS
#include "gc/g1/g1BarrierSet.hpp"
#include "gc/g1/g1CardTable.hpp"
+ #include "gc/g1/g1ThreadLocalData.hpp"
#endif
// Implementation of StubAssembler
*** 1576,1591 ****
const Register thread = NOT_LP64(rax) LP64_ONLY(r15_thread);
const Register tmp = rdx;
NOT_LP64(__ get_thread(thread);)
! Address queue_active(thread, in_bytes(JavaThread::satb_mark_queue_offset() +
! SATBMarkQueue::byte_offset_of_active()));
! Address queue_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()));
Label done;
Label runtime;
// Is marking still active?
--- 1577,1589 ----
const Register thread = NOT_LP64(rax) LP64_ONLY(r15_thread);
const Register tmp = rdx;
NOT_LP64(__ get_thread(thread);)
! Address queue_active(thread, in_bytes(G1ThreadLocalData::satb_mark_queue_active_offset()));
! Address queue_index(thread, in_bytes(G1ThreadLocalData::satb_mark_queue_index_offset()));
! Address buffer(thread, in_bytes(G1ThreadLocalData::satb_mark_queue_buffer_offset()));
Label done;
Label runtime;
// Is marking still active?
*** 1650,1663 ****
// At this point we know new_value is non-NULL and the new_value crosses regions.
// Must check to see if card is already dirty
const Register thread = NOT_LP64(rax) LP64_ONLY(r15_thread);
! 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()));
__ push(rax);
__ push(rcx);
const Register cardtable = rax;
--- 1648,1659 ----
// At this point we know new_value is non-NULL and the new_value crosses regions.
// Must check to see if card is already dirty
const Register thread = NOT_LP64(rax) LP64_ONLY(r15_thread);
! Address queue_index(thread, in_bytes(G1ThreadLocalData::dirty_card_queue_index_offset()));
! Address buffer(thread, in_bytes(G1ThreadLocalData::dirty_card_queue_buffer_offset()));
__ push(rax);
__ push(rcx);
const Register cardtable = rax;
< prev index next >