8232778: Shenandoah: SBSA::arraycopy_prologue checks wrong register

Reviewed-by: rkennke
This commit is contained in:
Aleksey Shipilev 2019-10-22 14:05:56 +02:00
parent 41bd7c5e76
commit 02dc957198

View File

@ -58,7 +58,7 @@ void ShenandoahBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, Dec
Address gc_state(rthread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
__ ldrb(rscratch1, gc_state);
if (dest_uninitialized) {
__ tbz(rscratch2, ShenandoahHeap::HAS_FORWARDED_BITPOS, done);
__ tbz(rscratch1, ShenandoahHeap::HAS_FORWARDED_BITPOS, done);
} else {
__ mov(rscratch2, ShenandoahHeap::HAS_FORWARDED | ShenandoahHeap::MARKING);
__ tst(rscratch1, rscratch2);