1.1 --- a/src/cpu/mips/vm/templateTable_mips_64.cpp Tue Jun 28 16:45:57 2016 +0800 1.2 +++ b/src/cpu/mips/vm/templateTable_mips_64.cpp Fri Apr 29 11:06:40 2016 -0400 1.3 @@ -995,6 +995,7 @@ 1.4 //replace with do_oop_store->store_heap_oop 1.5 //__ sd(FSR, T2, 0); 1.6 __ store_heap_oop(Address(T2, 0), FSR); // <-- Jin 1.7 + __ sync(); 1.8 __ store_check(T2); 1.9 __ b(done); 1.10 __ delayed()->nop(); 1.11 @@ -1006,6 +1007,7 @@ 1.12 __ dadd(T2, T2, AT); 1.13 //__ sd(FSR, T2, arrayOopDesc::base_offset_in_bytes(T_OBJECT)); 1.14 __ store_heap_oop(Address(T2, arrayOopDesc::base_offset_in_bytes(T_OBJECT)), FSR); /* FSR is null here */ 1.15 + __ sync(); 1.16 1.17 __ bind(done); 1.18 __ daddi(SP, SP, 3 * Interpreter::stackElementSize); 1.19 @@ -2519,6 +2521,7 @@ 1.20 __ bind(skip_register_finalizer); 1.21 } 1.22 __ remove_activation(state, T9); 1.23 + __ sync(); 1.24 1.25 __ jr(T9); 1.26 __ delayed()->nop(); 1.27 @@ -3086,6 +3089,7 @@ 1.28 __ dadd(AT, obj, off); 1.29 //__ sd(FSR, AT, 0); 1.30 __ store_heap_oop(Address(AT, 0), FSR); 1.31 + __ sync(); 1.32 __ store_check(obj); 1.33 1.34 if (!is_static) { 1.35 @@ -3378,6 +3382,7 @@ 1.36 break; 1.37 case Bytecodes::_fast_aputfield: 1.38 __ store_heap_oop(Address(T2, 0), FSR); 1.39 + __ sync(); 1.40 __ store_check(T3); 1.41 break; 1.42 default: 1.43 @@ -3423,6 +3428,7 @@ 1.44 case Bytecodes::_fast_aputfield: 1.45 //add for compressedoops 1.46 __ store_heap_oop(Address(T2, 0), FSR); 1.47 + __ sync(); 1.48 __ store_check(T3); 1.49 break; 1.50 default: 1.51 @@ -4191,6 +4197,7 @@ 1.52 1.53 // continue 1.54 __ bind(done); 1.55 + __ sync(); 1.56 } 1.57 1.58 void TemplateTable::newarray() { 1.59 @@ -4198,6 +4205,7 @@ 1.60 __ lbu(A1, at_bcp(1)); 1.61 //type, count 1.62 call_VM(FSR, CAST_FROM_FN_PTR(address, InterpreterRuntime::newarray), A1, FSR); 1.63 + __ sync(); 1.64 } 1.65 1.66 void TemplateTable::anewarray() { 1.67 @@ -4207,6 +4215,7 @@ 1.68 __ get_constant_pool(A1); 1.69 // cp, index, count 1.70 call_VM(FSR, CAST_FROM_FN_PTR(address, InterpreterRuntime::anewarray), A1, A2, FSR); 1.71 + __ sync(); 1.72 } 1.73 1.74 void TemplateTable::arraylength() { 1.75 @@ -4576,6 +4585,7 @@ 1.76 __ lbu(AT, at_bcp(3)); 1.77 __ dsll(AT, AT, Address::times_8); 1.78 __ dadd(SP, SP, AT); 1.79 + __ sync(); 1.80 } 1.81 1.82 #endif // !CC_INTERP