Thu, 10 Nov 2016 10:14:33 +0800
[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);