--- a/src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp Wed Oct 16 11:12:47 2019 +0100
+++ b/src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp Fri Oct 18 13:07:46 2019 -0400
@@ -215,9 +215,13 @@
assert(access.is_oop(), "IN_NATIVE access only for oop values");
BarrierSetC1::load_at_resolved(access, result);
LIR_OprList* args = new LIR_OprList();
+ LIR_Opr addr = access.resolved_addr();
+ addr = ensure_in_register(gen, addr);
args->append(result);
+ args->append(addr);
BasicTypeList signature;
signature.append(T_OBJECT);
+ signature.append(T_ADDRESS);
LIR_Opr call_result = gen->call_runtime(&signature, args,
CAST_FROM_FN_PTR(address, ShenandoahRuntime::load_reference_barrier_native),
objectType, NULL);