src/cpu/aarch64/vm/c1_CodeStubs_aarch64.cpp

Print this page

        

@@ -368,11 +368,12 @@
   if (do_load()) {
     ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/);
   }
   __ cbz(pre_val_reg, _continuation);
   ce->store_parameter(pre_val()->as_register(), 0);
-  __ far_call(RuntimeAddress(Runtime1::entry_for(Runtime1::g1_pre_barrier_slow_id)));
+  Runtime1::StubID id = patch_code() == lir_patch_none ? Runtime1::g1_pre_barrier_slow_id : Runtime1::g1_pre_barrier_slow_with_recheck_id;
+  __ far_call(RuntimeAddress(Runtime1::entry_for(id)));
   __ b(_continuation);
 }
 
 void G1PostBarrierStub::emit_code(LIR_Assembler* ce) {
   __ bind(_entry);