< prev index next >

src/cpu/sparc/vm/macroAssembler_sparc.cpp

Print this page
rev 9388 : [mq]: qfield_refs

*** 3630,3652 **** pre_val = O0; } int satb_q_index_byte_offset = in_bytes(JavaThread::satb_mark_queue_offset() + ! PtrQueue::byte_offset_of_index()); int satb_q_buf_byte_offset = in_bytes(JavaThread::satb_mark_queue_offset() + ! PtrQueue::byte_offset_of_buf()); ! assert(in_bytes(PtrQueue::byte_width_of_index()) == sizeof(intptr_t) && ! in_bytes(PtrQueue::byte_width_of_buf()) == sizeof(intptr_t), "check sizes in assembly below"); __ bind(restart); ! // Load the index into the SATB buffer. PtrQueue::_index is a size_t // so ld_ptr is appropriate. __ ld_ptr(G2_thread, satb_q_index_byte_offset, L0); // index == 0? __ cmp_and_brx_short(L0, G0, Assembler::equal, Assembler::pn, refill); --- 3630,3652 ---- pre_val = O0; } 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()); ! assert(in_bytes(SATBMarkQueue::byte_width_of_index()) == sizeof(intptr_t) && ! in_bytes(SATBMarkQueue::byte_width_of_buf()) == sizeof(intptr_t), "check sizes in assembly below"); __ bind(restart); ! // Load the index into the SATB buffer. SATBMarkQueue::_index is a size_t // so ld_ptr is appropriate. __ ld_ptr(G2_thread, satb_q_index_byte_offset, L0); // index == 0? __ cmp_and_brx_short(L0, G0, Assembler::equal, Assembler::pn, refill);
*** 3734,3754 **** assert(offset == 0 || index == noreg, "choose one"); assert(pre_val == noreg, "check this code"); } // Is marking active? ! if (in_bytes(PtrQueue::byte_width_of_active()) == 4) { ld(G2, in_bytes(JavaThread::satb_mark_queue_offset() + ! PtrQueue::byte_offset_of_active()), tmp); } else { ! guarantee(in_bytes(PtrQueue::byte_width_of_active()) == 1, "Assumption"); ldsb(G2, in_bytes(JavaThread::satb_mark_queue_offset() + ! PtrQueue::byte_offset_of_active()), tmp); } // Is marking active? cmp_and_br_short(tmp, G0, Assembler::equal, Assembler::pt, filtered); --- 3734,3754 ---- assert(offset == 0 || index == noreg, "choose one"); assert(pre_val == noreg, "check this code"); } // Is marking active? ! if (in_bytes(SATBMarkQueue::byte_width_of_active()) == 4) { ld(G2, in_bytes(JavaThread::satb_mark_queue_offset() + ! SATBMarkQueue::byte_offset_of_active()), tmp); } else { ! guarantee(in_bytes(SATBMarkQueue::byte_width_of_active()) == 1, "Assumption"); ldsb(G2, in_bytes(JavaThread::satb_mark_queue_offset() + ! SATBMarkQueue::byte_offset_of_active()), tmp); } // Is marking active? cmp_and_br_short(tmp, G0, Assembler::equal, Assembler::pt, filtered);
*** 3845,3861 **** // First, dirty it. __ stb(G0, O3, G0); // [cardPtr] := 0 (i.e., dirty). int dirty_card_q_index_byte_offset = in_bytes(JavaThread::dirty_card_queue_offset() + ! PtrQueue::byte_offset_of_index()); int dirty_card_q_buf_byte_offset = in_bytes(JavaThread::dirty_card_queue_offset() + ! PtrQueue::byte_offset_of_buf()); __ bind(restart); ! // Load the index into the update buffer. PtrQueue::_index is // a size_t so ld_ptr is appropriate here. __ ld_ptr(G2_thread, dirty_card_q_index_byte_offset, L0); // index == 0? __ cmp_and_brx_short(L0, G0, Assembler::equal, Assembler::pn, refill); --- 3845,3861 ---- // First, dirty it. __ stb(G0, O3, G0); // [cardPtr] := 0 (i.e., dirty). int dirty_card_q_index_byte_offset = in_bytes(JavaThread::dirty_card_queue_offset() + ! DirtyCardQueue::byte_offset_of_index()); int dirty_card_q_buf_byte_offset = in_bytes(JavaThread::dirty_card_queue_offset() + ! DirtyCardQueue::byte_offset_of_buf()); __ bind(restart); ! // Load the index into the update buffer. DirtyCardQueue::_index is // a size_t so ld_ptr is appropriate here. __ ld_ptr(G2_thread, dirty_card_q_index_byte_offset, L0); // index == 0? __ cmp_and_brx_short(L0, G0, Assembler::equal, Assembler::pn, refill);
< prev index next >