Skip to content

Instantly share code, notes, and snippets.

@torarnv
Created September 12, 2012 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save torarnv/3706873 to your computer and use it in GitHub Desktop.
Save torarnv/3706873 to your computer and use it in GitHub Desktop.
diff --git c/Source/JavaScriptCore/DerivedSources.pri w/Source/JavaScriptCore/DerivedSources.pri
index 8d0f053..99949ef 100644
--- c/Source/JavaScriptCore/DerivedSources.pri
+++ w/Source/JavaScriptCore/DerivedSources.pri
@@ -33,6 +33,9 @@ KEYWORDLUT_FILES += \
JIT_STUB_FILES += \
jit/JITStubs.cpp
+LLINT_FILES = \
+ llint/LowLevelInterpreter.asm
+
# GENERATOR 1-A: LUT creator
lut.output = ${QMAKE_FILE_BASE}.lut.h
lut.input = LUT_FILES
@@ -80,3 +83,10 @@ klgen.script = $$PWD/KeywordLookupGenerator.py
klgen.input = KEYWORDLUT_FILES
klgen.commands = python $$klgen.script ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
GENERATORS += klgen
+
+#GENERATOR: LLInt
+llint.output = LLIntAssembly.h
+llint.script = $$PWD/offlineasm/asm.rb
+llint.input = LLINT_FILES
+llint.commands = ruby $$llint.script ${QMAKE_FILE_NAME} LLIntOffsetsExtractor ${QMAKE_FILE_OUT}
+GENERATORS += llint
diff --git c/Source/JavaScriptCore/JavaScriptCore.pro w/Source/JavaScriptCore/JavaScriptCore.pro
index 393728f..13130b8 100644
--- c/Source/JavaScriptCore/JavaScriptCore.pro
+++ w/Source/JavaScriptCore/JavaScriptCore.pro
@@ -7,11 +7,16 @@
TEMPLATE = subdirs
CONFIG += ordered
+LLIntOffsetsExtractor.file = LLIntOffsetsExtractor.pro
+LLIntOffsetsExtractor.makefile = Makefile.LLIntOffsetsExtractor
+SUBDIRS += LLIntOffsetsExtractor
+
derived_sources.file = DerivedSources.pri
target.file = Target.pri
SUBDIRS += derived_sources target
+addStrictSubdirOrderBetween(LLIntOffsetsExtractor, derived_sources)
addStrictSubdirOrderBetween(derived_sources, target)
jsc.file = jsc.pro
diff --git c/Source/JavaScriptCore/LLIntOffsetsExtractor.pro w/Source/JavaScriptCore/LLIntOffsetsExtractor.pro
new file mode 100644
index 0000000..fe5e738
--- /dev/null
+++ w/Source/JavaScriptCore/LLIntOffsetsExtractor.pro
@@ -0,0 +1,36 @@
+# -------------------------------------------------------------------
+# Project file for the LLIntOffsetsExtractor binary, used to generate
+# derived sources for JavaScriptCore.
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+TEMPLATE = app
+TARGET = LLIntOffsetsExtractor
+DESTDIR = $$OUT_PWD
+
+QT = core # Needed for qglobal.h
+
+defineTest(addIncludePaths) {
+ # Just needed for include paths
+ include(../WTF/WTF.pri)
+ include(JavaScriptCore.pri)
+
+ export(INCLUDEPATH)
+}
+
+addIncludePaths()
+
+INPUT_FILES = $$PWD/llint/LowLevelInterpreter.asm
+llint.output = LLIntDesiredOffsets.h
+llint.script = $$PWD/offlineasm/generate_offset_extractor.rb
+llint.input = INPUT_FILES
+llint.commands = ruby $$llint.script ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
+llint.CONFIG += no_link
+QMAKE_EXTRA_COMPILERS += llint
+
+# Compilation of this file will automatically depend on LLIntDesiredOffsets.h
+# due to qmake scanning the source file for header dependencies.
+SOURCES = llint/LLIntOffsetsExtractor.cpp
+
+mac: LIBS_PRIVATE += -framework AppKit
diff --git c/Source/JavaScriptCore/Target.pri w/Source/JavaScriptCore/Target.pri
index 336d800..f55fcd5 100644
--- c/Source/JavaScriptCore/Target.pri
+++ w/Source/JavaScriptCore/Target.pri
@@ -155,6 +155,13 @@ SOURCES += \
jit/JITStubs.cpp \
jit/JumpReplacementWatchpoint.cpp \
jit/ThunkGenerators.cpp \
+ llint/LLIntCLoop.cpp \
+ llint/LLIntData.cpp \
+ llint/LLIntEntrypoints.cpp \
+ llint/LLIntExceptions.cpp \
+ llint/LLIntSlowPaths.cpp \
+ llint/LLIntThunks.cpp \
+ llint/LowLevelInterpreter.cpp \
parser/Lexer.cpp \
parser/Nodes.cpp \
parser/ParserArena.cpp \
diff --git c/Source/WTF/wtf/Platform.h w/Source/WTF/wtf/Platform.h
index e5cc9cc..01055d0 100644
--- c/Source/WTF/wtf/Platform.h
+++ w/Source/WTF/wtf/Platform.h
@@ -911,7 +911,7 @@
#if !defined(ENABLE_LLINT) \
&& ENABLE(JIT) \
&& (OS(DARWIN) || OS(LINUX)) \
- && (PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(GTK)) \
+ && (PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(GTK) || PLATFORM(QT)) \
&& (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2))
#define ENABLE_LLINT 1
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment