[Interpreter] Remove redundant sync operations.

Thu, 10 Nov 2016 10:14:33 +0800

author
fujie
date
Thu, 10 Nov 2016 10:14:33 +0800
changeset 189
60510c4e1f11
parent 188
4ef93b5bf2f5
child 190
431f047d7931

[Interpreter] Remove redundant sync operations.

src/cpu/mips/vm/templateInterpreter_mips_64.cpp file | annotate | diff | comparison | revisions
src/cpu/mips/vm/templateTable_mips_64.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/mips/vm/templateInterpreter_mips_64.cpp	Thu Nov 10 09:41:51 2016 +0800
     1.2 +++ b/src/cpu/mips/vm/templateInterpreter_mips_64.cpp	Thu Nov 10 10:14:33 2016 +0800
     1.3 @@ -758,7 +758,6 @@
     1.4      __ bne(T3, R0, notByte);
     1.5      __ delayed()->dadd(T0, T0, AT);
     1.6  
     1.7 -    __ sync();
     1.8      __ lb(V0, T0, 0);
     1.9      __ b(xreturn_path);
    1.10      __ delayed()->nop();
    1.11 @@ -768,7 +767,6 @@
    1.12      __ daddi(T1, T3, (-1) * stos);
    1.13      __ bne(T1, R0, notShort);
    1.14      __ delayed()->nop();
    1.15 -    __ sync();
    1.16      __ lh(V0, T0, 0);
    1.17      __ b(xreturn_path);
    1.18      __ delayed()->nop();
    1.19 @@ -778,7 +776,6 @@
    1.20      __ daddi(T1, T3, (-1) * ctos);
    1.21      __ bne(T1, R0, notChar);
    1.22      __ delayed()->nop();
    1.23 -    __ sync();
    1.24      __ lhu(V0, T0, 0);
    1.25      __ b(xreturn_path);
    1.26      __ delayed()->nop();
    1.27 @@ -789,7 +786,6 @@
    1.28      __ bne(T1, R0, notObj);
    1.29      __ delayed()->nop();
    1.30      //add for compressedoops
    1.31 -    __ sync();
    1.32      __ load_heap_oop(V0, Address(T0, 0));
    1.33      __ b(xreturn_path);
    1.34      __ delayed()->nop();
    1.35 @@ -804,7 +800,6 @@
    1.36      __ stop("what type is this?");
    1.37      __ bind(okay);
    1.38  #endif // ASSERT
    1.39 -    __ sync();
    1.40      __ lw(V0, T0, 0);
    1.41  
    1.42      __ bind(xreturn_path);
    1.43 @@ -817,10 +812,8 @@
    1.44  
    1.45      // generate a vanilla interpreter entry as the slow path
    1.46      __ bind(slow_path);
    1.47 -    __ sync();
    1.48      (void) generate_normal_entry(false);
    1.49    } else {
    1.50 -    __ sync();
    1.51      (void) generate_normal_entry(false);
    1.52    }
    1.53  
     2.1 --- a/src/cpu/mips/vm/templateTable_mips_64.cpp	Thu Nov 10 09:41:51 2016 +0800
     2.2 +++ b/src/cpu/mips/vm/templateTable_mips_64.cpp	Thu Nov 10 10:14:33 2016 +0800
     2.3 @@ -2771,7 +2771,6 @@
     2.4    __ delayed()->nop();
     2.5  
     2.6    // btos
     2.7 -  __ sync();
     2.8    __ lb(FSR, index, 0);	
     2.9    __ sd(FSR, SP, - wordSize);
    2.10  
    2.11 @@ -2788,7 +2787,6 @@
    2.12    __ delayed()->nop();
    2.13  
    2.14    // itos
    2.15 -  __ sync();
    2.16    __ lw(FSR, index, 0);
    2.17    __ sd(FSR, SP, - wordSize);
    2.18  
    2.19 @@ -2807,7 +2805,6 @@
    2.20  
    2.21    // atos
    2.22    //add for compressedoops
    2.23 -  __ sync();
    2.24    __ load_heap_oop(FSR, Address(index, 0));
    2.25    __ sd(FSR, SP, - wordSize);
    2.26  
    2.27 @@ -2824,7 +2821,6 @@
    2.28    __ delayed()->nop();
    2.29  
    2.30    // ctos
    2.31 -  __ sync();
    2.32    __ lhu(FSR, index, 0);
    2.33    __ sd(FSR, SP, - wordSize);
    2.34  
    2.35 @@ -2840,7 +2836,6 @@
    2.36    __ delayed()->nop();
    2.37  
    2.38    // stos
    2.39 -  __ sync();
    2.40    __ lh(FSR, index, 0);
    2.41    __ sd(FSR, SP, - wordSize);
    2.42  
    2.43 @@ -2858,7 +2853,6 @@
    2.44  
    2.45    // FIXME : the load/store should be atomic, we have no simple method to do this in mips32
    2.46    // ltos
    2.47 -  __ sync();
    2.48    __ ld(FSR, index, 0 * wordSize);
    2.49    __ sd(FSR, SP, -2 * wordSize);
    2.50    __ sd(R0, SP, -1 * wordSize);
    2.51 @@ -2873,7 +2867,6 @@
    2.52    __ delayed()->nop();
    2.53  
    2.54    // ftos
    2.55 -  __ sync();
    2.56    __ lwc1(FSF, index, 0);
    2.57    __ sdc1(FSF, SP, - wordSize);
    2.58  
    2.59 @@ -2889,7 +2882,6 @@
    2.60    __ delayed()->nop();
    2.61  
    2.62    // dtos
    2.63 -  __ sync();
    2.64    __ ldc1(FSF, index, 0 * wordSize);
    2.65    __ sdc1(FSF, SP, - 2 * wordSize);
    2.66    __ sd(R0, SP, - 1 * wordSize);

mercurial