aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2012-02-15 11:49:35 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-02-15 11:49:35 -0800
commitf8d66dab97635631a6bc30fa0071a2eb22566264 (patch)
tree9bd4c43b61ccc09abdef6b3b26379f7a02c31ab9
parent1a88aea1194987ce1bf166c664fd8b157eb5a5c1 (diff)
parentb39bb80c4e2160bcb17cb0de1c4bbb9793f783f5 (diff)
downloadv8-f8d66dab97635631a6bc30fa0071a2eb22566264.tar.gz
am b39bb80c: Merge "Enable x86 support"
* commit 'b39bb80c4e2160bcb17cb0de1c4bbb9793f783f5': Enable x86 support
-rw-r--r--Android.libv8.mk4
-rw-r--r--Android.mk2
-rw-r--r--Android.mksnapshot.mk4
-rw-r--r--Android.v8common.mk22
-rw-r--r--CleanSpec.mk4
-rw-r--r--src/platform-linux.cc3
6 files changed, 37 insertions, 2 deletions
diff --git a/Android.libv8.mk b/Android.libv8.mk
index 2e36b262..913c525f 100644
--- a/Android.libv8.mk
+++ b/Android.libv8.mk
@@ -77,6 +77,10 @@ ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -DARM -DV8_TARGET_ARCH_ARM
endif
+ifeq ($(TARGET_ARCH),x86)
+ LOCAL_CFLAGS += -DV8_TARGET_ARCH_IA32
+endif
+
ifeq ($(DEBUG_V8),true)
LOCAL_CFLAGS += -DDEBUG -UNDEBUG
endif
diff --git a/Android.mk b/Android.mk
index 77fd2e04..dcb3ea48 100644
--- a/Android.mk
+++ b/Android.mk
@@ -27,7 +27,7 @@ BASE_PATH := $(call my-dir)
# specifying which JS engine to use.
# Build libv8 and v8shell
-ifeq ($(TARGET_ARCH),arm)
+ifneq ($(filter $(TARGET_ARCH),x86 arm),)
ENABLE_V8_SNAPSHOT = true
include $(BASE_PATH)/Android.mksnapshot.mk
include $(BASE_PATH)/Android.libv8.mk
diff --git a/Android.mksnapshot.mk b/Android.mksnapshot.mk
index b8462ac8..9b2a68b0 100644
--- a/Android.mksnapshot.mk
+++ b/Android.mksnapshot.mk
@@ -71,6 +71,10 @@ ifeq ($(TARGET_CPU_ABI),armeabi-v7a)
endif
endif
+ifeq ($(TARGET_ARCH),x86)
+ LOCAL_CFLAGS += -DV8_TARGET_ARCH_IA32
+endif
+
ifeq ($(DEBUG_V8),true)
LOCAL_CFLAGS += -DDEBUG -UNDEBUG
endif
diff --git a/Android.v8common.mk b/Android.v8common.mk
index 92501d3f..8ed2454b 100644
--- a/Android.v8common.mk
+++ b/Android.v8common.mk
@@ -117,6 +117,28 @@ ifeq ($(TARGET_ARCH),arm)
src/arm/stub-cache-arm.cc
endif
+ifeq ($(TARGET_ARCH),x86)
+ V8_LOCAL_SRC_FILES += \
+ src/atomicops_internals_x86_gcc.cc \
+ src/ia32/assembler-ia32.cc \
+ src/ia32/builtins-ia32.cc \
+ src/ia32/codegen-ia32.cc \
+ src/ia32/code-stubs-ia32.cc \
+ src/ia32/cpu-ia32.cc \
+ src/ia32/debug-ia32.cc \
+ src/ia32/deoptimizer-ia32.cc \
+ src/ia32/disasm-ia32.cc \
+ src/ia32/frames-ia32.cc \
+ src/ia32/full-codegen-ia32.cc \
+ src/ia32/ic-ia32.cc \
+ src/ia32/lithium-codegen-ia32.cc \
+ src/ia32/lithium-gap-resolver-ia32.cc \
+ src/ia32/lithium-ia32.cc \
+ src/ia32/macro-assembler-ia32.cc \
+ src/ia32/regexp-macro-assembler-ia32.cc \
+ src/ia32/stub-cache-ia32.cc
+endif
+
# Enable DEBUG option.
ifeq ($(DEBUG_V8),true)
V8_LOCAL_SRC_FILES += \
diff --git a/CleanSpec.mk b/CleanSpec.mk
index d2b89d28..0798ba28 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -64,6 +64,10 @@ $(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUT
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libv8_intermediates)
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/bin/mksnapshot)
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mksnapshot_intermediates)
+
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libv8_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/bin/mksnapshot)
+$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mksnapshot_intermediates)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/src/platform-linux.cc b/src/platform-linux.cc
index c60658fb..474c5406 100644
--- a/src/platform-linux.cc
+++ b/src/platform-linux.cc
@@ -808,7 +808,7 @@ Semaphore* OS::CreateSemaphore(int count) {
#ifdef ENABLE_LOGGING_AND_PROFILING
-#if !defined(__GLIBC__) && (defined(__arm__) || defined(__thumb__))
+#if !defined(__GLIBC__) && (defined(__arm__) || defined(__thumb__) || defined(__i386__))
// Android runs a fairly new Linux kernel, so signal info is there,
// but the C library doesn't have the structs defined.
@@ -830,6 +830,7 @@ typedef struct ucontext {
__sigset_t uc_sigmask;
} ucontext_t;
enum ArmRegisters {R15 = 15, R13 = 13, R11 = 11};
+enum X86Registers {REG_EIP = 14, REG_ESP = 7, REG_EBP = 6};
#endif