Title: [119593] trunk
Revision
119593
Author
wi...@igalia.com
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  <wi...@igalia.com>
+
+        [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  <dsam2...@gmail.com>
 
         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  <wi...@igalia.com>
 
+        [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  <wi...@igalia.com>
+
         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  <wi...@igalia.com>
+
+        [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  <takacs.rol...@stud.u-szeged.hu>
 
         [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])
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to