--- old/src/cpu/aarch64/vm/shenandoahBarrierSetAssembler_aarch64.cpp 2019-10-28 20:26:19.092486462 +0100 +++ new/src/cpu/aarch64/vm/shenandoahBarrierSetAssembler_aarch64.cpp 2019-10-28 20:26:19.006486467 +0100 @@ -65,9 +65,14 @@ if (borrow_reg) { // No free registers available. Make one useful. tmp = rscratch1; + if (tmp == dst) { + tmp = rscratch2; + } __ push(RegSet::of(tmp), sp); } + assert_different_registers(tmp, dst); + Label done; __ ldr(tmp, Address(dst, oopDesc::mark_offset_in_bytes())); __ eon(tmp, tmp, zr);