Merge "Start to add X86/SSE2+ optimized clcore library"
diff --git a/include/bcc/Support/TargetCompilerConfigs.h b/include/bcc/Support/TargetCompilerConfigs.h
index 181fd80..c1468fd 100644
--- a/include/bcc/Support/TargetCompilerConfigs.h
+++ b/include/bcc/Support/TargetCompilerConfigs.h
@@ -47,7 +47,9 @@
#if defined(PROVIDE_MIPS_CODEGEN)
class MipsCompilerConfig : public CompilerConfig {
public:
- MipsCompilerConfig() : CompilerConfig(DEFAULT_MIPS_TRIPLE_STRING) {}
+ MipsCompilerConfig() : CompilerConfig(DEFAULT_MIPS_TRIPLE_STRING) {
+ setRelocationModel(llvm::Reloc::Static);
+ }
};
#endif // defined(PROVIDE_MIPS_CODEGEN)
diff --git a/lib/ExecutionEngine/Android.mk b/lib/ExecutionEngine/Android.mk
index d5a4573..1666f87 100644
--- a/lib/ExecutionEngine/Android.mk
+++ b/lib/ExecutionEngine/Android.mk
@@ -48,6 +48,10 @@
LOCAL_SRC_FILES := $(libbcc_executionengine_SRC_FILES)
+ifeq ($(strip $(TARGET_CPU_VARIANT)),cortex-a15)
+LOCAL_CFLAGS += -DHAS_HW_DIV
+endif
+
include $(LIBBCC_DEVICE_BUILD_MK)
include $(LIBBCC_GEN_CONFIG_MK)
include $(LLVM_DEVICE_BUILD_MK)
diff --git a/libbcc-device-build.mk b/libbcc-device-build.mk
index a7f4d08..7cf635f 100644
--- a/libbcc-device-build.mk
+++ b/libbcc-device-build.mk
@@ -45,9 +45,6 @@
ifeq ($(ARCH_ARM_HAVE_NEON),true)
LOCAL_CFLAGS += -DARCH_ARM_HAVE_NEON
endif
- ifeq ($(ARCH_ARM_HAVE_THUMB_SUPPORT),true)
- LOCAL_CFLAGS += -DARCH_ARM_HAVE_THUMB_SUPPORT
- endif
else
ifeq ($(TARGET_ARCH),mips)
LOCAL_CFLAGS += -DFORCE_MIPS_CODEGEN
diff --git a/runtime/lib/divsi3.c b/runtime/lib/divsi3.c
index de1700a..3ab82f0 100644
--- a/runtime/lib/divsi3.c
+++ b/runtime/lib/divsi3.c
@@ -12,7 +12,10 @@
* ===----------------------------------------------------------------------===
*/
-#if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) // gcc >= 4.8 implements this in libgcc
+#if !defined(__GNUC__) || __GNUC__ < 4 || \
+ (__GNUC__ == 4 && __GNUC_MINOR__ < 8 && !defined(HAS_HW_DIV))
+// gcc >= 4.8 implements this in libgcc
+// gcc 4.7 also implements this in libgcc with -mcpu=cortex-a15
#include "int_lib.h"
su_int __udivsi3(su_int n, su_int d);