- Revision
- 119593
- Author
- [email protected]
- Date
- 2012-06-06 09:00:38 -0700 (Wed, 06 Jun 2012)
Log Message
[GTK] Enable the LLInt
https://bugs.webkit.org/show_bug.cgi?id=88315
Reviewed by Filip Pizlo.
.:
* configure.ac: Require Ruby, to build the low-level interpreter.
Source/_javascript_Core:
* GNUmakefile.am: Add rules to generate LLIntDesiredOffsets.h and
LLIntAssembly.h.
* GNUmakefile.list.am: Add offlineasm and llint files to the
dist. Add LLInt source files to the build.
* llint/LowLevelInterpreter.asm (crash): Generate a store of
0xbbadbeef to a register, not to a constant. Otherwise, gas was
failing to assemble result.
* offlineasm/asm.rb (labelReference): Generate a
SYMBOL_STRING_RELOCATION instead of a SYMBOL_STRING, so that we go
through the PLT on ELF systems.
Source/WTF:
* wtf/InlineASM.h: Add an implementation of LOCAL_LABEL_STRING for
OS(LINUX).
* wtf/Platform.h: Add OS(LINUX) to the set of operating systems
for ENABLE_LLINT. Add a specific check for PLATFORM(MAC) or
PLATFORM(IOS), and add to that a check for PLATFORM(GTK).
Modified Paths
Diff
Modified: trunk/ChangeLog (119592 => 119593)
--- trunk/ChangeLog 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/ChangeLog 2012-06-06 16:00:38 UTC (rev 119593)
@@ -1,3 +1,12 @@
+2012-06-06 Andy Wingo <[email protected]>
+
+ [GTK] Enable the LLInt
+ https://bugs.webkit.org/show_bug.cgi?id=88315
+
+ Reviewed by Filip Pizlo.
+
+ * configure.ac: Require Ruby, to build the low-level interpreter.
+
2012-06-06 Sam D <[email protected]>
Web Inspector: Option for selecting/deselecting all breakpoints in breakpoint pane
Modified: trunk/Source/_javascript_Core/ChangeLog (119592 => 119593)
--- trunk/Source/_javascript_Core/ChangeLog 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-06-06 16:00:38 UTC (rev 119593)
@@ -1,5 +1,23 @@
2012-06-06 Andy Wingo <[email protected]>
+ [GTK] Enable the LLInt
+ https://bugs.webkit.org/show_bug.cgi?id=88315
+
+ Reviewed by Filip Pizlo.
+
+ * GNUmakefile.am: Add rules to generate LLIntDesiredOffsets.h and
+ LLIntAssembly.h.
+ * GNUmakefile.list.am: Add offlineasm and llint files to the
+ dist. Add LLInt source files to the build.
+ * llint/LowLevelInterpreter.asm (crash): Generate a store of
+ 0xbbadbeef to a register, not to a constant. Otherwise, gas was
+ failing to assemble result.
+ * offlineasm/asm.rb (labelReference): Generate a
+ SYMBOL_STRING_RELOCATION instead of a SYMBOL_STRING, so that we go
+ through the PLT on ELF systems.
+
+2012-06-06 Andy Wingo <[email protected]>
+
REGRESSION (r106478): None of the Paper.js _javascript_ examples work
https://bugs.webkit.org/show_bug.cgi?id=87158
Modified: trunk/Source/_javascript_Core/GNUmakefile.am (119592 => 119593)
--- trunk/Source/_javascript_Core/GNUmakefile.am 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/Source/_javascript_Core/GNUmakefile.am 2012-06-06 16:00:38 UTC (rev 119593)
@@ -89,6 +89,16 @@
DerivedSources/_javascript_Core/KeywordLookup.h: $(srcdir)/Source/_javascript_Core/KeywordLookupGenerator.py $(srcdir)/Source/_javascript_Core/parser/Keywords.table
$(AM_V_GEN)$(PYTHON) $^ > $@
+DerivedSources/_javascript_Core/LLIntDesiredOffsets.h: $(_javascript_core_sources) $(llint_nosources) $(offlineasm_nosources)
+ $(AM_V_GEN)$(RUBY) $(srcdir)/Source/_javascript_Core/offlineasm/generate_offset_extractor.rb $(srcdir)/Source/_javascript_Core/llint/LowLevelInterpreter.asm $@
+
+$(Programs_LLIntOffsetsExtractor_OBJECTS): DerivedSources/_javascript_Core/LLIntDesiredOffsets.h
+
+DerivedSources/_javascript_Core/LLIntAssembly.h: Programs/LLIntOffsetsExtractor$(EXEEXT)
+ $(AM_V_GEN)$(RUBY) $(srcdir)/Source/_javascript_Core/offlineasm/asm.rb $(srcdir)/Source/_javascript_Core/llint/LowLevelInterpreter.asm Programs/LLIntOffsetsExtractor$(EXEEXT) $@
+
+$(libjavascriptcoregtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_OBJECTS): DerivedSources/_javascript_Core/LLIntAssembly.h
+
jsc: $(_javascript_core_built_nosources) Programs/jsc$(EXEEXT)
bin_PROGRAMS += \
@@ -96,7 +106,8 @@
noinst_PROGRAMS += \
Programs/jsc \
- Programs/minidom
+ Programs/minidom \
+ Programs/LLIntOffsetsExtractor
Programs_minidom_CPPFLAGS = \
$(global_cppflags) \
@@ -119,6 +130,30 @@
-no-install \
-no-fast-install
+Programs_LLIntOffsetsExtractor_CPPFLAGS = \
+ $(global_cppflags) \
+ $(_javascript_core_cppflags)
+
+Programs_LLIntOffsetsExtractor_CFLAGS = \
+ -ansi \
+ -fno-strict-aliasing \
+ $(global_cflags) \
+ $(GLOBALDEPS_CFLAGS)
+
+Programs_LLIntOffsetsExtractor_LDADD = \
+ -lpthread \
+ libWTF.la \
+ $(UNICODE_LIBS) \
+ $(GLIB_LIBS) \
+ $(WINMM_LIBS) \
+ -lm \
+ -lpthread \
+ -lstdc++
+
+Programs_LLIntOffsetsExtractor_LDFLAGS = \
+ -no-install \
+ -no-fast-install
+
# jsc
Programs/jsc$(EXEEXT): Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@$(EXEEXT)
$(AM_V_GEN)cp -f Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@$(EXEEXT) Programs/jsc$(EXEEXT)
@@ -151,12 +186,15 @@
Source/_javascript_Core/icu/README \
Source/_javascript_Core/KeywordLookupGenerator.py \
Source/_javascript_Core/parser/Keywords.table \
- Source/_javascript_Core/THANKS
+ Source/_javascript_Core/THANKS \
+ $(llint_nosources) \
+ $(offlineasm_nosources)
CLEANFILES += \
$(_javascript_core_built_nosources) \
Programs/jsc \
Programs/jsc-@WEBKITGTK_API_MAJOR_VERSION@ \
+ Programs/LLIntOffsetsExtractor \
Programs/minidom
DISTCLEANFILES += \
Modified: trunk/Source/_javascript_Core/GNUmakefile.list.am (119592 => 119593)
--- trunk/Source/_javascript_Core/GNUmakefile.list.am 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/Source/_javascript_Core/GNUmakefile.list.am 2012-06-06 16:00:38 UTC (rev 119593)
@@ -20,7 +20,7 @@
DerivedSources/_javascript_Core/JSGlobalObject.lut.h \
DerivedSources/_javascript_Core/JSONObject.lut.h \
DerivedSources/_javascript_Core/MathObject.lut.h \
- DerivedSources/_javascript_Core/NamePrototype.lut.h \
+ DerivedSources/_javascript_Core/NamePrototype.lut.h \
DerivedSources/_javascript_Core/NumberConstructor.lut.h \
DerivedSources/_javascript_Core/NumberPrototype.lut.h \
DerivedSources/_javascript_Core/ObjectConstructor.lut.h \
@@ -29,7 +29,9 @@
DerivedSources/_javascript_Core/RegExpObject.lut.h \
DerivedSources/_javascript_Core/RegExpPrototype.lut.h \
DerivedSources/_javascript_Core/StringConstructor.lut.h \
- DerivedSources/_javascript_Core/StringPrototype.lut.h
+ DerivedSources/_javascript_Core/StringPrototype.lut.h \
+ DerivedSources/_javascript_Core/LLIntDesiredOffsets.h \
+ DerivedSources/_javascript_Core/LLIntAssembly.h
_javascript_core_sources += \
Source/_javascript_Core/API/APICast.h \
@@ -232,8 +234,8 @@
Source/_javascript_Core/heap/HandleSet.cpp \
Source/_javascript_Core/heap/HandleSet.h \
Source/_javascript_Core/heap/HeapBlock.h \
- Source/_javascript_Core/heap/IncrementalSweeper.h \
- Source/_javascript_Core/heap/IncrementalSweeper.cpp \
+ Source/_javascript_Core/heap/IncrementalSweeper.h \
+ Source/_javascript_Core/heap/IncrementalSweeper.cpp \
Source/_javascript_Core/heap/SlotVisitor.h \
Source/_javascript_Core/heap/HandleStack.cpp \
Source/_javascript_Core/heap/HandleStack.h \
@@ -357,9 +359,18 @@
Source/_javascript_Core/jit/SpecializedThunkJIT.h \
Source/_javascript_Core/jit/ThunkGenerators.cpp \
Source/_javascript_Core/jit/ThunkGenerators.h \
+ Source/_javascript_Core/llint/LLIntCommon.h \
+ Source/_javascript_Core/llint/LLIntData.cpp \
Source/_javascript_Core/llint/LLIntData.h \
Source/_javascript_Core/llint/LLIntEntrypoints.cpp \
Source/_javascript_Core/llint/LLIntEntrypoints.h \
+ Source/_javascript_Core/llint/LLIntExceptions.cpp \
+ Source/_javascript_Core/llint/LLIntExceptions.h \
+ Source/_javascript_Core/llint/LLIntOfflineAsmConfig.h \
+ Source/_javascript_Core/llint/LLIntSlowPaths.cpp \
+ Source/_javascript_Core/llint/LLIntSlowPaths.h \
+ Source/_javascript_Core/llint/LLIntThunks.cpp \
+ Source/_javascript_Core/llint/LLIntThunks.h \
Source/_javascript_Core/llint/LowLevelInterpreter.cpp \
Source/_javascript_Core/llint/LowLevelInterpreter.h \
Source/_javascript_Core/os-win32/stdbool.h \
@@ -626,6 +637,27 @@
Source/_javascript_Core/jit/ExecutableAllocatorFixedVMPool.cpp
endif
+llint_nosources = \
+ Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm \
+ Source/_javascript_Core/llint/LowLevelInterpreter64.asm \
+ Source/_javascript_Core/llint/LowLevelInterpreter.asm
+
+offlineasm_nosources = \
+ Source/_javascript_Core/offlineasm/armv7.rb \
+ Source/_javascript_Core/offlineasm/asm.rb \
+ Source/_javascript_Core/offlineasm/ast.rb \
+ Source/_javascript_Core/offlineasm/backends.rb \
+ Source/_javascript_Core/offlineasm/generate_offset_extractor.rb \
+ Source/_javascript_Core/offlineasm/instructions.rb \
+ Source/_javascript_Core/offlineasm/offsets.rb \
+ Source/_javascript_Core/offlineasm/opt.rb \
+ Source/_javascript_Core/offlineasm/parser.rb \
+ Source/_javascript_Core/offlineasm/registers.rb \
+ Source/_javascript_Core/offlineasm/self_hash.rb \
+ Source/_javascript_Core/offlineasm/settings.rb \
+ Source/_javascript_Core/offlineasm/transform.rb \
+ Source/_javascript_Core/offlineasm/x86.rb
+
# minidom
Programs_minidom_SOURCES = \
Source/_javascript_Core/API/tests/JSNode.c \
@@ -638,6 +670,10 @@
Source/_javascript_Core/API/tests/NodeList.h \
Source/_javascript_Core/API/tests/minidom.c
+Programs_LLIntOffsetsExtractor_SOURCES = \
+ Source/_javascript_Core/llint/LLIntOffsetsExtractor.cpp \
+ Source/_javascript_Core/llint/LLIntOffsetsExtractor.h
+
Programs_jsc_@WEBKITGTK_API_MAJOR_VERSION@_SOURCES = \
Source/_javascript_Core/JSCTypedArrayStubs.h \
Source/_javascript_Core/jsc.cpp
Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm (119592 => 119593)
--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2012-06-06 16:00:38 UTC (rev 119593)
@@ -103,7 +103,7 @@
# Some common utilities.
macro crash()
- storei 0, 0xbbadbeef[]
+ storei t0, 0xbbadbeef[]
move 0, t0
call t0
end
Modified: trunk/Source/_javascript_Core/offlineasm/asm.rb (119592 => 119593)
--- trunk/Source/_javascript_Core/offlineasm/asm.rb 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/Source/_javascript_Core/offlineasm/asm.rb 2012-06-06 16:00:38 UTC (rev 119593)
@@ -97,7 +97,7 @@
end
def self.labelReference(labelName)
- "\" SYMBOL_STRING(#{labelName}) \""
+ "\" SYMBOL_STRING_RELOCATION(#{labelName}) \""
end
def self.localLabelReference(labelName)
Modified: trunk/Source/WTF/ChangeLog (119592 => 119593)
--- trunk/Source/WTF/ChangeLog 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/Source/WTF/ChangeLog 2012-06-06 16:00:38 UTC (rev 119593)
@@ -1,3 +1,16 @@
+2012-06-06 Andy Wingo <[email protected]>
+
+ [GTK] Enable the LLInt
+ https://bugs.webkit.org/show_bug.cgi?id=88315
+
+ Reviewed by Filip Pizlo.
+
+ * wtf/InlineASM.h: Add an implementation of LOCAL_LABEL_STRING for
+ OS(LINUX).
+ * wtf/Platform.h: Add OS(LINUX) to the set of operating systems
+ for ENABLE_LLINT. Add a specific check for PLATFORM(MAC) or
+ PLATFORM(IOS), and add to that a check for PLATFORM(GTK).
+
2012-06-05 Roland Takacs <[email protected]>
[Qt] Use GraphicsContext3DOpenGLES.cpp when using OpenGL ES
Modified: trunk/Source/WTF/wtf/InlineASM.h (119592 => 119593)
--- trunk/Source/WTF/wtf/InlineASM.h 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/Source/WTF/wtf/InlineASM.h 2012-06-06 16:00:38 UTC (rev 119593)
@@ -75,6 +75,8 @@
// Don't know about any of the others.
#if PLATFORM(MAC)
#define LOCAL_LABEL_STRING(name) "L" #name
+#elif OS(LINUX)
+#define LOCAL_LABEL_STRING(name) ".L" #name
#endif
#endif // InlineASM_h
Modified: trunk/Source/WTF/wtf/Platform.h (119592 => 119593)
--- trunk/Source/WTF/wtf/Platform.h 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/Source/WTF/wtf/Platform.h 2012-06-06 16:00:38 UTC (rev 119593)
@@ -883,7 +883,11 @@
/* On some of the platforms where we have a JIT, we want to also have the
low-level interpreter. */
-#if !defined(ENABLE_LLINT) && ENABLE(JIT) && (OS(DARWIN) && !PLATFORM(QT)) && (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2))
+#if !defined(ENABLE_LLINT) \
+ && ENABLE(JIT) \
+ && (OS(DARWIN) || OS(LINUX)) \
+ && (PLATFORM(MAC) || PLATFORM(IOS) || PLATFORM(GTK)) \
+ && (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2))
#define ENABLE_LLINT 1
#endif
Modified: trunk/configure.ac (119592 => 119593)
--- trunk/configure.ac 2012-06-06 15:57:16 UTC (rev 119592)
+++ trunk/configure.ac 2012-06-06 16:00:38 UTC (rev 119593)
@@ -105,6 +105,11 @@
AC_MSG_ERROR([You need 'python' to compile WebKit])
fi
+AC_PATH_PROG(RUBY, ruby)
+if test -z "$RUBY"; then
+ AC_MSG_ERROR([You need 'ruby' to compile WebKit])
+fi
+
AC_PATH_PROG(BISON, bison)
if test -z "$BISON"; then
AC_MSG_ERROR([You need the 'bison' parser generator to compile WebKit])