summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuahui Wu <hwu@google.com>2010-02-11 11:30:33 -0500
committerHuahui Wu <hwu@google.com>2010-02-12 10:26:00 -0500
commit60034db6dccd2599ee8efd2a30406700ff30b507 (patch)
tree8350595d266769ebd42b1230e1516123b5167260
parentc30477e31785d3a211b4f889fb8ae172f647f432 (diff)
downloadexternal_webkit-60034db6dccd2599ee8efd2a30406700ff30b507.zip
external_webkit-60034db6dccd2599ee8efd2a30406700ff30b507.tar.gz
external_webkit-60034db6dccd2599ee8efd2a30406700ff30b507.tar.bz2
Add code that enables SquirrelFish Extreme (a.k.a JSCX, JSC JIT) in Android.
It's disabled by default, but is enabled when the enveronment variable ENABLE_ANDROID_JSC_JIT is set to true.
-rw-r--r--Android.mk11
-rw-r--r--JavaScriptCore/Android.mk16
-rw-r--r--JavaScriptCore/wtf/Platform.h3
3 files changed, 29 insertions, 1 deletions
diff --git a/Android.mk b/Android.mk
index c0afa4e..a5e12d0 100644
--- a/Android.mk
+++ b/Android.mk
@@ -34,6 +34,9 @@ LOCAL_PATH := $(call my-dir)
# can be set to true, so that two builds can be different but without
# specifying which JS engine to use.
+# To control if JSC JIT is used, please set ENABLE_ANDROID_JSC_JIT environment
+# variable to true.
+
# Read JS_ENGINE environment variable
JAVASCRIPT_ENGINE = $(JS_ENGINE)
@@ -209,6 +212,14 @@ LOCAL_CFLAGS += -include "WebCorePrefix.h"
LOCAL_CFLAGS += -fvisibility=hidden
LOCAL_CFLAGS += -D__SGI_STL_INTERNAL_PAIR_H
+# Enable JSC JIT if JSC is used and ENABLE_ANDROID_JSC_JIT environment
+# variable is set to true
+ifeq ($(JAVASCRIPT_ENGINE),jsc)
+ifeq ($(ENABLE_ANDROID_JSC_JIT),true)
+LOCAL_CFLAGS += -DENABLE_ANDROID_JSC_JIT=1
+endif
+endif
+
ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -Darm
# remove this warning: "note: the mangling of 'va_list' has changed in GCC 4.4"
diff --git a/JavaScriptCore/Android.mk b/JavaScriptCore/Android.mk
index 3a65b81..b03cd97 100644
--- a/JavaScriptCore/Android.mk
+++ b/JavaScriptCore/Android.mk
@@ -45,6 +45,16 @@ LOCAL_SRC_FILES := \
interpreter/Interpreter.cpp \
interpreter/RegisterFile.cpp \
\
+ jit/ExecutableAllocator.cpp\
+ jit/ExecutableAllocatorFixedVMPool.cpp \
+ jit/ExecutableAllocatorPosix.cpp \
+ jit/JIT.cpp \
+ jit/JITArithmetic.cpp \
+ jit/JITCall.cpp \
+ jit/JITOpcodes.cpp \
+ jit/JITPropertyAccess.cpp \
+ jit/JITStubs.cpp \
+ \
parser/Lexer.cpp \
parser/Nodes.cpp \
parser/Parser.cpp \
@@ -172,7 +182,11 @@ LOCAL_SRC_FILES := \
wtf/unicode/CollatorDefault.cpp \
wtf/unicode/UTF8.cpp \
\
- wtf/unicode/icu/CollatorICU.cpp
+ wtf/unicode/icu/CollatorICU.cpp \
+ \
+ yarr/RegexCompiler.cpp \
+ yarr/RegexInterpreter.cpp \
+ yarr/RegexJIT.cpp
# Rule to build grammar.y with our custom bison.
GEN := $(intermediates)/parser/Grammar.cpp
diff --git a/JavaScriptCore/wtf/Platform.h b/JavaScriptCore/wtf/Platform.h
index 5bc9658..810c829 100644
--- a/JavaScriptCore/wtf/Platform.h
+++ b/JavaScriptCore/wtf/Platform.h
@@ -847,6 +847,8 @@ on MinGW. See https://bugs.webkit.org/show_bug.cgi?id=29268 */
#define WTF_USE_JIT_STUB_ARGUMENT_VA_LIST 1
#elif CPU(ARM_THUMB2) && PLATFORM(IPHONE)
#define ENABLE_JIT 1
+#elif CPU(ARM_THUMB2) && PLATFORM(ANDROID) && ENABLE(ANDROID_JSC_JIT)
+ #define ENABLE_JIT 1
/* The JIT is tested & working on x86 Windows */
#elif CPU(X86) && PLATFORM(WIN)
#define ENABLE_JIT 1
@@ -916,6 +918,7 @@ on MinGW. See https://bugs.webkit.org/show_bug.cgi?id=29268 */
#if (CPU(X86) && PLATFORM(MAC)) \
|| (CPU(X86_64) && PLATFORM(MAC)) \
|| (CPU(ARM_THUMB2) && PLATFORM(IPHONE)) \
+ || (CPU(ARM_THUMB2) && PLATFORM(ANDROID) && ENABLE(ANDROID_JSC_JIT)) \
|| (CPU(X86) && PLATFORM(WIN))
#define ENABLE_YARR 1
#define ENABLE_YARR_JIT 1