src/cpu/x86/vm/templateTable_x86_64.cpp

Print this page

        

*** 137,147 **** } else { __ leaq(rdx, obj); } __ g1_write_barrier_pre(rdx, r8, rbx, val != noreg); if (val == noreg) { ! __ store_heap_oop(Address(rdx, 0), NULL_WORD); } else { __ store_heap_oop(Address(rdx, 0), val); __ g1_write_barrier_post(rdx, val, r8, rbx); } --- 137,147 ---- } else { __ leaq(rdx, obj); } __ g1_write_barrier_pre(rdx, r8, rbx, val != noreg); if (val == noreg) { ! __ store_heap_oop_null(Address(rdx, 0)); } else { __ store_heap_oop(Address(rdx, 0), val); __ g1_write_barrier_post(rdx, val, r8, rbx); }
*** 150,160 **** #endif // SERIALGC case BarrierSet::CardTableModRef: case BarrierSet::CardTableExtension: { if (val == noreg) { ! __ store_heap_oop(obj, NULL_WORD); } else { __ store_heap_oop(obj, val); // flatten object address if needed if (!precise || (obj.index() == noreg && obj.disp() == 0)) { __ store_check(obj.base()); --- 150,160 ---- #endif // SERIALGC case BarrierSet::CardTableModRef: case BarrierSet::CardTableExtension: { if (val == noreg) { ! __ store_heap_oop_null(obj); } else { __ store_heap_oop(obj, val); // flatten object address if needed if (!precise || (obj.index() == noreg && obj.disp() == 0)) { __ store_check(obj.base());
*** 166,176 **** } break; case BarrierSet::ModRef: case BarrierSet::Other: if (val == noreg) { ! __ store_heap_oop(obj, NULL_WORD); } else { __ store_heap_oop(obj, val); } break; default : --- 166,176 ---- } break; case BarrierSet::ModRef: case BarrierSet::Other: if (val == noreg) { ! __ store_heap_oop_null(obj); } else { __ store_heap_oop(obj, val); } break; default :