Dalvik: DMB Optimisation
Replaces use of 'dmb' and 'dmb st' with inner-shareable versions.
This should improve performance in certain cases without harming
correctness.
Change-Id: Id30f58b93b34bf0e232bb01dc3956a82f7a69c40
diff --git a/vm/mterp/armv7-a/platform.S b/vm/mterp/armv7-a/platform.S
index 96ff2c2..b11350a 100644
--- a/vm/mterp/armv7-a/platform.S
+++ b/vm/mterp/armv7-a/platform.S
@@ -13,7 +13,7 @@
*/
.macro SMP_DMB
#if ANDROID_SMP != 0
- dmb
+ dmb ish
#else
/* not SMP */
#endif
@@ -24,7 +24,7 @@
*/
.macro SMP_DMB_ST
#if ANDROID_SMP != 0
- dmb st
+ dmb ishst
#else
/* not SMP */
#endif
diff --git a/vm/mterp/out/InterpAsm-armv7-a-neon.S b/vm/mterp/out/InterpAsm-armv7-a-neon.S
index c3419c2..4c50817 100644
--- a/vm/mterp/out/InterpAsm-armv7-a-neon.S
+++ b/vm/mterp/out/InterpAsm-armv7-a-neon.S
@@ -218,7 +218,7 @@
*/
.macro SMP_DMB
#if ANDROID_SMP != 0
- dmb
+ dmb ish
#else
/* not SMP */
#endif
@@ -229,7 +229,7 @@
*/
.macro SMP_DMB_ST
#if ANDROID_SMP != 0
- dmb st
+ dmb ishst
#else
/* not SMP */
#endif
diff --git a/vm/mterp/out/InterpAsm-armv7-a.S b/vm/mterp/out/InterpAsm-armv7-a.S
index 2542245..1f68c1f 100644
--- a/vm/mterp/out/InterpAsm-armv7-a.S
+++ b/vm/mterp/out/InterpAsm-armv7-a.S
@@ -218,7 +218,7 @@
*/
.macro SMP_DMB
#if ANDROID_SMP != 0
- dmb
+ dmb ish
#else
/* not SMP */
#endif
@@ -229,7 +229,7 @@
*/
.macro SMP_DMB_ST
#if ANDROID_SMP != 0
- dmb st
+ dmb ishst
#else
/* not SMP */
#endif