Enhance target architecture selection rules.
Change-Id: I595f8b6d9acd36bffc0017f06a959e709b9707d5
diff --git a/lib/CodeGen/Android.mk b/lib/CodeGen/Android.mk
index 60fc6ca..1e293b2 100644
--- a/lib/CodeGen/Android.mk
+++ b/lib/CodeGen/Android.mk
@@ -43,6 +43,7 @@
LOCAL_SRC_FILES := $(libbcc_codegen_SRC_FILES)
include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk
+include $(LIBBCC_ROOT_PATH)/libbcc-build-rules.mk
include $(LLVM_ROOT_PATH)/llvm-device-build.mk
include $(BUILD_STATIC_LIBRARY)
@@ -64,6 +65,7 @@
LOCAL_SRC_FILES := $(libbcc_codegen_SRC_FILES)
include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk
+include $(LIBBCC_ROOT_PATH)/libbcc-build-rules.mk
include $(LLVM_ROOT_PATH)/llvm-host-build.mk
include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Disassembler/Android.mk b/lib/Disassembler/Android.mk
index 701f606..1b5ff4d 100644
--- a/lib/Disassembler/Android.mk
+++ b/lib/Disassembler/Android.mk
@@ -42,6 +42,7 @@
LOCAL_SRC_FILES := $(libbcc_disassembler_SRC_FILES)
include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk
+include $(LIBBCC_ROOT_PATH)/libbcc-build-rules.mk
include $(LLVM_ROOT_PATH)/llvm-device-build.mk
include $(BUILD_STATIC_LIBRARY)
@@ -63,6 +64,7 @@
LOCAL_SRC_FILES := $(libbcc_disassembler_SRC_FILES)
include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk
+include $(LIBBCC_ROOT_PATH)/libbcc-build-rules.mk
include $(LLVM_ROOT_PATH)/llvm-host-build.mk
include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Disassembler/Disassembler.cpp b/lib/Disassembler/Disassembler.cpp
index 8a2cf2c..d0e6000 100644
--- a/lib/Disassembler/Disassembler.cpp
+++ b/lib/Disassembler/Disassembler.cpp
@@ -67,12 +67,11 @@
namespace bcc {
void InitializeDisassembler() {
-#if defined(DEFAULT_ARM_CODEGEN) || defined(PROVIDE_ARM_CODEGEN)
+#if defined(PROVIDE_ARM_CODEGEN)
LLVMInitializeARMDisassembler();
#endif
-#if defined(DEFAULT_X86_CODEGEN) || defined(PROVIDE_X86_CODEGEN) || \
- defined(DEFAULT_X64_CODEGEN) || defined(PROVIDE_X64_CODEGEN)
+#if defined(PROVIDE_X86_CODEGEN)
LLVMInitializeX86Disassembler();
#endif
}
diff --git a/lib/ExecutionEngine/Android.mk b/lib/ExecutionEngine/Android.mk
index e849827..695a975 100644
--- a/lib/ExecutionEngine/Android.mk
+++ b/lib/ExecutionEngine/Android.mk
@@ -72,6 +72,7 @@
LOCAL_SRC_FILES := $(libbcc_executionengine_SRC_FILES)
include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk
+include $(LIBBCC_ROOT_PATH)/libbcc-build-rules.mk
include $(LLVM_ROOT_PATH)/llvm-device-build.mk
include $(BUILD_STATIC_LIBRARY)
@@ -93,5 +94,6 @@
LOCAL_SRC_FILES := $(libbcc_executionengine_SRC_FILES)
include $(LIBBCC_ROOT_PATH)/libbcc-gen-config-from-mk.mk
+include $(LIBBCC_ROOT_PATH)/libbcc-build-rules.mk
include $(LLVM_ROOT_PATH)/llvm-host-build.mk
include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/ExecutionEngine/Compiler.cpp b/lib/ExecutionEngine/Compiler.cpp
index ebf6912..a26c1c3 100644
--- a/lib/ExecutionEngine/Compiler.cpp
+++ b/lib/ExecutionEngine/Compiler.cpp
@@ -129,10 +129,8 @@
// Set Triple, CPU and Features here
Triple = TARGET_TRIPLE_STRING;
- // NOTE: Currently, we have to turn off the support for NEON explicitly.
- // Since the ARMCodeEmitter.cpp is not ready for JITing NEON
- // instructions.
-#if defined(DEFAULT_ARM_CODEGEN) || defined(PROVIDE_ARM_CODEGEN)
+#if defined(DEFAULT_ARM_CODEGEN)
+
#if defined(ARCH_ARM_HAVE_VFP)
Features.push_back("+vfp3");
#if !defined(ARCH_ARM_HAVE_VFP_D32)
@@ -140,15 +138,22 @@
#endif
#endif
-// FIXME - Temporarily disable NEON
-#if 0 && defined(ARCH_ARM_HAVE_NEON)
+ // NOTE: Currently, we have to turn off the support for NEON explicitly.
+ // Since the ARMCodeEmitter.cpp is not ready for JITing NEON
+ // instructions.
+
+ // FIXME: Re-enable NEON when ARMCodeEmitter supports NEON.
+#define USE_ARM_NEON 0
+#if USE_ARM_NEON
Features.push_back("+neon");
Features.push_back("+neonfp");
#else
Features.push_back("-neon");
Features.push_back("-neonfp");
-#endif
+#endif // USE_ARM_NEON
+#endif // DEFAULT_ARM_CODEGEN
+#if defined(PROVIDE_ARM_CODEGEN)
LLVMInitializeARMMCAsmInfo();
LLVMInitializeARMMCCodeGenInfo();
LLVMInitializeARMMCSubtargetInfo();
@@ -157,8 +162,7 @@
LLVMInitializeARMTarget();
#endif
-#if defined(DEFAULT_X86_CODEGEN) || defined(PROVIDE_X86_CODEGEN) || \
- defined(DEFAULT_X64_CODEGEN) || defined(PROVIDE_X64_CODEGEN)
+#if defined(PROVIDE_X86_CODEGEN)
LLVMInitializeX86MCAsmInfo();
LLVMInitializeX86MCCodeGenInfo();
LLVMInitializeX86MCSubtargetInfo();
@@ -193,7 +197,7 @@
llvm::FloatABIType = llvm::FloatABI::Soft;
llvm::UseSoftFloat = false;
-#if defined(DEFAULT_X64_CODEGEN)
+#if defined(DEFAULT_X86_64_CODEGEN)
// Data address in X86_64 architecture may reside in a far-away place
llvm::TargetMachine::setCodeModel(llvm::CodeModel::Medium);
#else