src/cpu/mips/vm/templateTable_mips_64.cpp

changeset 32
3b95e10c12fa
parent 16
3cedde979d75
child 33
52672a450193
     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

mercurial