Title: [172759] trunk/Source
Revision
172759
Author
be...@igalia.com
Date
2014-08-19 14:25:22 -0700 (Tue, 19 Aug 2014)

Log Message

TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586)
https://bugs.webkit.org/show_bug.cgi?id=70610

Patch by Magnus Granberg <zo...@gentoo.org> on 2014-08-19
Reviewed by Darin Adler.

Source/_javascript_Core:

Setup %ebx so we can use the plt.

* jit/ThunkGenerators.cpp:

Source/WTF:

Add PLT if we're building with PIC.

* wtf/InlineASM.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (172758 => 172759)


--- trunk/Source/_javascript_Core/ChangeLog	2014-08-19 21:02:25 UTC (rev 172758)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-08-19 21:25:22 UTC (rev 172759)
@@ -1,3 +1,14 @@
+2014-08-19  Magnus Granberg  <zo...@gentoo.org>
+
+        TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586)
+        https://bugs.webkit.org/show_bug.cgi?id=70610
+
+        Reviewed by Darin Adler.
+
+        Setup %ebx so we can use the plt.
+
+        * jit/ThunkGenerators.cpp:
+
 2014-08-19  Zalan Bujtas  <za...@apple.com>
 
         Remove ENABLE(SUBPIXEL_LAYOUT).

Modified: trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp (172758 => 172759)


--- trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2014-08-19 21:02:25 UTC (rev 172758)
+++ trunk/Source/_javascript_Core/jit/ThunkGenerators.cpp	2014-08-19 21:25:22 UTC (rev 172759)
@@ -724,6 +724,30 @@
     } \
     static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk;
 
+#elif CPU(X86) && COMPILER(GCC) && OS(LINUX) && defined(__PIC__)
+#define defineUnaryDoubleOpWrapper(function) \
+    asm( \
+        ".text\n" \
+        ".globl " SYMBOL_STRING(function##Thunk) "\n" \
+        HIDE_SYMBOL(function##Thunk) "\n" \
+        SYMBOL_STRING(function##Thunk) ":" "\n" \
+        "pushl %ebx\n" \
+        "subl $20, %esp\n" \
+        "movsd %xmm0, (%esp) \n" \
+        "call __x86.get_pc_thunk.bx\n" \
+        "addl $_GLOBAL_OFFSET_TABLE_, %ebx\n" \
+        "call " GLOBAL_REFERENCE(function) "\n" \
+        "fstpl (%esp) \n" \
+        "movsd (%esp), %xmm0 \n" \
+        "addl $20, %esp\n" \
+        "popl %ebx\n" \
+        "ret\n" \
+    );\
+    extern "C" { \
+        MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \
+    } \
+    static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk;
+
 #elif CPU(X86) && COMPILER(GCC) && (OS(DARWIN) || OS(LINUX))
 #define defineUnaryDoubleOpWrapper(function) \
     asm( \

Modified: trunk/Source/WTF/ChangeLog (172758 => 172759)


--- trunk/Source/WTF/ChangeLog	2014-08-19 21:02:25 UTC (rev 172758)
+++ trunk/Source/WTF/ChangeLog	2014-08-19 21:25:22 UTC (rev 172759)
@@ -1,3 +1,14 @@
+2014-08-19  Magnus Granberg  <zo...@gentoo.org>
+
+        TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586)
+        https://bugs.webkit.org/show_bug.cgi?id=70610
+
+        Reviewed by Darin Adler.
+
+        Add PLT if we're building with PIC.
+
+        * wtf/InlineASM.h:
+
 2014-08-19  Zalan Bujtas  <za...@apple.com>
 
         Remove ENABLE(SUBPIXEL_LAYOUT).

Modified: trunk/Source/WTF/wtf/InlineASM.h (172758 => 172759)


--- trunk/Source/WTF/wtf/InlineASM.h	2014-08-19 21:02:25 UTC (rev 172758)
+++ trunk/Source/WTF/wtf/InlineASM.h	2014-08-19 21:25:22 UTC (rev 172759)
@@ -44,6 +44,8 @@
 #define GLOBAL_REFERENCE(name) #name "@plt"
 #elif CPU(X86) && COMPILER(MINGW)
 #define GLOBAL_REFERENCE(name) "@" #name "@4"
+#elif OS(LINUX) && CPU(X86) && defined(__PIC__)
+#define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) "@plt"
 #else
 #define GLOBAL_REFERENCE(name) SYMBOL_STRING(name)
 #endif
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to