hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
changeset 36565 8e38f7594806
parent 36562 4d1e93624d6a
child 37269 5c2c4e5bb067
--- a/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Sat Feb 20 15:15:35 2016 +0000
+++ b/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Sat Mar 05 22:22:37 2016 +0800
@@ -1565,6 +1565,7 @@
     Label retry_load, nope;
     // flush and load exclusive from the memory location
     // and fail if it is not what we expect
+    __ prfm(Address(addr), PSTL1STRM);
     __ bind(retry_load);
     __ ldaxrw(rscratch1, addr);
     __ cmpw(rscratch1, cmpval);
@@ -1590,6 +1591,7 @@
     Label retry_load, nope;
     // flush and load exclusive from the memory location
     // and fail if it is not what we expect
+    __ prfm(Address(addr), PSTL1STRM);
     __ bind(retry_load);
     __ ldaxr(rscratch1, addr);
     __ cmp(rscratch1, cmpval);
@@ -3170,6 +3172,7 @@
       }
       Label again;
       __ lea(tmp, addr);
+      __ prfm(Address(tmp), PSTL1STRM);
       __ bind(again);
       (_masm->*lda)(dst, tmp);
       (_masm->*add)(rscratch1, dst, inc);
@@ -3189,6 +3192,7 @@
       assert_different_registers(obj, addr.base(), tmp, rscratch2, dst);
       Label again;
       __ lea(tmp, addr);
+      __ prfm(Address(tmp), PSTL1STRM);
       __ bind(again);
       (_masm->*lda)(dst, tmp);
       (_masm->*stl)(rscratch2, obj, tmp);