< 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 >