aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChih-Wei Huang <cwhuang@linux.org.tw>2012-01-05 15:53:10 +0800
committerJean-Baptiste Queru <jbq@google.com>2012-02-15 08:56:09 -0800
commit351b9f793fda97d4d1c8eb905d40c27b3ee76925 (patch)
tree9bd4c43b61ccc09abdef6b3b26379f7a02c31ab9
parentb2f047a93f0b021b7f4a9ee3ce41b93c22209dce (diff)
downloadv8-351b9f793fda97d4d1c8eb905d40c27b3ee76925.tar.gz
Enable x86 support
Change-Id: I6009002b3b9fdb4cf9e07272be6918f19400e51f
-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