src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp
changeset 58693 3f35a9efd7de
parent 58219 bc0648405d67
child 58694 199ee1bf9b3b
--- 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);