< prev index next >

src/hotspot/cpu/sparc/c1_LIRGenerator_sparc.cpp

Print this page

        

*** 661,671 **** val.load_item(); __ add(obj.result(), offset.result(), addr); if (type == objectType) { // Write-barrier needed for Object fields. ! if (UseLoadBarrier) { // Load barrier to make sure that cas_obj() sees a correct oop. LIR_Opr pre_val = new_register(T_OBJECT); __ load(new LIR_Address(addr, as_BasicType(type)), pre_val); load_barrier(pre_val, addr); } --- 661,671 ---- val.load_item(); __ add(obj.result(), offset.result(), addr); if (type == objectType) { // Write-barrier needed for Object fields. ! if (UseZGC) { // Load barrier to make sure that cas_obj() sees a correct oop. LIR_Opr pre_val = new_register(T_OBJECT); __ load(new LIR_Address(addr, as_BasicType(type)), pre_val); load_barrier(pre_val, addr); }
*** 1388,1398 **** void LIRGenerator::get_Object_unsafe(LIR_Opr dst, LIR_Opr src, LIR_Opr offset, BasicType type, bool is_volatile) { { LIR_Address* addr = new LIR_Address(src, offset, type); __ load(addr, dst); ! if (type == T_OBJECT && UseLoadBarrier) { load_barrier(dst, LIR_OprFact::address(addr)); } } } --- 1388,1398 ---- void LIRGenerator::get_Object_unsafe(LIR_Opr dst, LIR_Opr src, LIR_Opr offset, BasicType type, bool is_volatile) { { LIR_Address* addr = new LIR_Address(src, offset, type); __ load(addr, dst); ! if (type == T_OBJECT && UseZGC) { load_barrier(dst, LIR_OprFact::address(addr)); } } }
*** 1438,1448 **** pre_barrier(ptr, LIR_OprFact::illegalOpr /* pre_val */, true /* do_load */, false /* patch */, NULL); } __ xchg(LIR_OprFact::address(addr), dst, dst, tmp); if (is_obj) { ! if (UseLoadBarrier) { load_barrier(dst); } // Seems to be a precise address post_barrier(ptr, data); --- 1438,1448 ---- pre_barrier(ptr, LIR_OprFact::illegalOpr /* pre_val */, true /* do_load */, false /* patch */, NULL); } __ xchg(LIR_OprFact::address(addr), dst, dst, tmp); if (is_obj) { ! if (UseZGC) { load_barrier(dst); } // Seems to be a precise address post_barrier(ptr, data);
< prev index next >