Fri, 24 Feb 2017 00:57:15 -0500
Sync before bgez in array_store_check() for MIPS.
src/cpu/mips/vm/mips_64.ad | file | annotate | diff | comparison | revisions | |
src/cpu/mips/vm/stubGenerator_mips_64.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/mips/vm/mips_64.ad Fri Feb 24 00:44:21 2017 -0500 1.2 +++ b/src/cpu/mips/vm/mips_64.ad Fri Feb 24 00:57:15 2017 -0500 1.3 @@ -12986,7 +12986,7 @@ 1.4 __ stop("in storeIConditional: index != 0"); 1.5 } else { 1.6 __ bind(again); 1.7 - __ sync(); 1.8 + if(UseSyncLevel <= 1000) __ sync(); 1.9 __ ll(AT, addr); 1.10 __ bne(AT, oldval, failure); 1.11 __ delayed()->addu(AT, R0, R0);
2.1 --- a/src/cpu/mips/vm/stubGenerator_mips_64.cpp Fri Feb 24 00:44:21 2017 -0500 2.2 +++ b/src/cpu/mips/vm/stubGenerator_mips_64.cpp Fri Feb 24 00:57:15 2017 -0500 2.3 @@ -593,9 +593,9 @@ 2.4 __ dadd(AT, AT, T0); 2.5 __ dadd(AT, AT, T1); 2.6 __ sb(R0, AT, 0); 2.7 + __ sync(); 2.8 __ bgez(T1, l_0); 2.9 __ delayed()->daddi(T1, T1, - 1); 2.10 - __ sync(); 2.11 } 2.12 2.13 // Arguments: