< prev index next >

src/cpu/x86/vm/macroAssembler_x86.cpp

Print this page
rev 14282 : Factor out keep-alive barrier from usual pre-barrier implementations.

*** 5589,5598 **** --- 5589,5614 ---- pop(store_addr); bind(done); } + void MacroAssembler::keep_alive_barrier(Register val, + Register thread, + Register tmp) { + + if (UseG1GC || (UseShenandoahGC && ShenandoahKeepAliveBarrier)) { + // Generate the G1 pre-barrier code to log the value of + // the referent field in an SATB buffer. + g1_write_barrier_pre(noreg, + rax /* pre_val */, + thread /* thread */, + tmp, + true /* tosca_live */, + true /* expand_call */); + } + } + #ifndef _LP64 void MacroAssembler::shenandoah_write_barrier(Register dst) { Unimplemented(); } #else
< prev index next >