< prev index next >

src/share/vm/c1/c1_LIRGenerator.cpp

Print this page

        

@@ -399,11 +399,11 @@
   }
 }
 
 
 CodeEmitInfo* LIRGenerator::state_for(Instruction* x, ValueStack* state, bool ignore_xhandler) {
-  assert(state != NULL, "state must be defined");
+  assert(state != NULL, "state must be define");
 
 #ifndef PRODUCT
   state->verify();
 #endif
 

@@ -1615,18 +1615,19 @@
   } else {
     LIR_Opr tmp_zero = new_register(T_INT);
     __ move(LIR_OprFact::intConst(0), tmp_zero);
     __ move(tmp_zero, card_addr);
   }
-#elsif defined(TARGET_ARCH_aarch64)
+#elif defined(TARGET_ARCH_aarch64)
   LIR_Opr tmp = new_pointer_register();
   if (TwoOperandLIRForm) {
     __ move(addr, tmp);
     __ unsigned_shift_right(tmp, CardTableModRefBS::card_shift, tmp);
   } else {
     __ unsigned_shift_right(addr, CardTableModRefBS::card_shift, tmp);
   }
+  __ membar_release();
   if (can_inline_as_constant(card_table_base)) {
     __ move(LIR_OprFact::intConst(0),
               new LIR_Address(tmp, card_table_base->as_jint(), T_BYTE));
   } else {
     __ move(LIR_OprFact::intConst(0),
< prev index next >