equal
deleted
inserted
replaced
56 |
56 |
57 // Is marking active? |
57 // Is marking active? |
58 Address gc_state(rthread, in_bytes(ShenandoahThreadLocalData::gc_state_offset())); |
58 Address gc_state(rthread, in_bytes(ShenandoahThreadLocalData::gc_state_offset())); |
59 __ ldrb(rscratch1, gc_state); |
59 __ ldrb(rscratch1, gc_state); |
60 if (dest_uninitialized) { |
60 if (dest_uninitialized) { |
61 __ tbz(rscratch2, ShenandoahHeap::HAS_FORWARDED_BITPOS, done); |
61 __ tbz(rscratch1, ShenandoahHeap::HAS_FORWARDED_BITPOS, done); |
62 } else { |
62 } else { |
63 __ mov(rscratch2, ShenandoahHeap::HAS_FORWARDED | ShenandoahHeap::MARKING); |
63 __ mov(rscratch2, ShenandoahHeap::HAS_FORWARDED | ShenandoahHeap::MARKING); |
64 __ tst(rscratch1, rscratch2); |
64 __ tst(rscratch1, rscratch2); |
65 __ br(Assembler::EQ, done); |
65 __ br(Assembler::EQ, done); |
66 } |
66 } |