# 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)
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"
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 \
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
#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
#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