Avoid volatile 64-bit tearing on 32-bit architectures.
Change b122a4bbed34ab22b4c1541ee25e5cf22f12a926 removed inline assembly for
volatile 64bit read/writes. This isn't sound in the general case, reinstate.
Motivating change: https://android-review.googlesource.com/91250
Add optimizations for ARM in the case of LPAE support.
Change-Id: Ie86d8885d27c8f0da75f0c3bd50d4553a331282f
diff --git a/build/Android.common.mk b/build/Android.common.mk
index c95b1c6..aaa1490 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -254,6 +254,14 @@
# To use oprofile_android --callgraph, uncomment this and recompile with "mmm art -B -j16"
# ART_TARGET_CFLAGS += -fno-omit-frame-pointer -marm -mapcs
+# Addition CPU specific CFLAGS.
+ifeq ($(TARGET_ARCH),arm)
+ ifneq ($(filter cortex-a15, $(TARGET_CPU_VARIANT)),)
+ # Fake a ARM feature for LPAE support.
+ ART_TARGET_CFLAGS += -D__ARM_FEATURE_LPAE=1
+ endif
+endif
+
ART_HOST_NON_DEBUG_CFLAGS := $(art_non_debug_cflags)
ART_TARGET_NON_DEBUG_CFLAGS := $(art_non_debug_cflags)