< 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,10 +5589,26 @@
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 >