OSDN Git Service

Add code that enables SquirrelFish Extreme (a.k.a JSCX, JSC JIT) in Android.
authorHuahui Wu <hwu@google.com>
Thu, 11 Feb 2010 16:30:33 +0000 (11:30 -0500)
committerHuahui Wu <hwu@google.com>
Fri, 12 Feb 2010 15:26:00 +0000 (10:26 -0500)
It's disabled by default, but is enabled when the enveronment variable
ENABLE_ANDROID_JSC_JIT is set to true.

Android.mk
JavaScriptCore/Android.mk
JavaScriptCore/wtf/Platform.h

index c0afa4e..a5e12d0 100644 (file)
@@ -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"
index 3a65b81..b03cd97 100644 (file)
@@ -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
index 5bc9658..810c829 100644 (file)
@@ -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