< prev index next >

src/cpu/x86/vm/c1_LIRGenerator_x86.cpp

Print this page
rev 11560 : [backport] 8222766: Shenandoah: streamline post-LRB CAS barrier (x86)
Reviewed-by: rkennke

*** 790,801 **** } LIR_Opr ill = LIR_OprFact::illegalOpr; // for convenience if (type == objectType) { #if INCLUDE_ALL_GCS ! if (UseShenandoahGC) { ! __ cas_obj(addr, cmp.result(), val.result(), new_register(T_OBJECT), new_register(T_OBJECT)); } else #endif { __ cas_obj(addr, cmp.result(), val.result(), ill, ill); } --- 790,803 ---- } LIR_Opr ill = LIR_OprFact::illegalOpr; // for convenience if (type == objectType) { #if INCLUDE_ALL_GCS ! if (UseShenandoahGC && ShenandoahCASBarrier) { ! LIR_Opr result = rlock_result(x); ! __ cas_obj(addr, cmp.result(), val.result(), new_register(T_OBJECT), new_register(T_OBJECT), result); ! return; } else #endif { __ cas_obj(addr, cmp.result(), val.result(), ill, ill); }
< prev index next >