< prev index next >
src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
Print this page
rev 12202 : imported patch weakex.patch
@@ -1615,22 +1615,24 @@
cmpval = t1;
assert(op->tmp2()->is_valid(), "must be");
Register t2 = op->tmp2()->as_register();
__ encode_heap_oop(t2, newval);
newval = t2;
- __ cmpxchg_oop_shenandoah(res, addr, cmpval, newval, true, true, true);
+ __ cmpxchg_oop_shenandoah(addr, cmpval, newval, Assembler::word, true, true, false);
+ __ csetw(res, Assembler::EQ);
} else {
__ encode_heap_oop(t1, cmpval);
cmpval = t1;
__ encode_heap_oop(rscratch2, newval);
newval = rscratch2;
casw(addr, newval, cmpval);
__ eorw (res, r8, 1);
}
} else {
if (UseShenandoahGC) {
- __ cmpxchg_oop_shenandoah(res, addr, cmpval, newval, false, true, true);
+ __ cmpxchg_oop_shenandoah(addr, cmpval, newval, Assembler::xword, true, true, false);
+ __ csetw(res, Assembler::EQ);
} else {
casl(addr, newval, cmpval);
__ eorw (res, r8, 1);
}
}
< prev index next >