Sync before bgez in array_store_check() for MIPS.

Fri, 24 Feb 2017 00:57:15 -0500

author
fujie
date
Fri, 24 Feb 2017 00:57:15 -0500
changeset 337
04d30945ec8a
parent 336
4e34de7f9f3b
child 338
d320a266dc9a

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:

mercurial