aboutsummaryrefslogtreecommitdiffstats
path: root/community/webkit2gtk/fix_armv6l.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/webkit2gtk/fix_armv6l.patch')
-rw-r--r--community/webkit2gtk/fix_armv6l.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/community/webkit2gtk/fix_armv6l.patch b/community/webkit2gtk/fix_armv6l.patch
new file mode 100644
index 0000000000..c07a95b9c3
--- /dev/null
+++ b/community/webkit2gtk/fix_armv6l.patch
@@ -0,0 +1,23 @@
+Fix code emitted for armv6l to not use movw/movt but ldr.
+See https://bugs.webkit.org/show_bug.cgi?id=131612
+and https://bugs.webkit.org/show_bug.cgi?id=141288
+
+--- a/Source/JavaScriptCore/offlineasm/arm.rb 2015-07-22 14:37:57.000000000 +0200
++++ b/Source/JavaScriptCore/offlineasm/arm.rb 2015-08-08 00:31:21.011824644 +0200
+@@ -473,8 +473,16 @@
+ $asm.puts "mov #{armFlippedOperands(operands)}"
+ end
+ when "mvlbl"
++ if isARMv7 or isARMv7Traditional
+ $asm.puts "movw #{operands[1].armOperand}, \#:lower16:#{operands[0].value}"
+ $asm.puts "movt #{operands[1].armOperand}, \#:upper16:#{operands[0].value}"
++ else
++ $mvlbl_counter ||= 0
++ $mvlbl_counter += 1
++ const_label = "_mvlbl_const_label#{$mvlbl_counter}"
++ $asm.puts ".equ #{const_label}, (#{operands[0].value})"
++ $asm.puts "ldr #{operands[1].armOperand}, =#{const_label}"
++ end
+ when "nop"
+ $asm.puts "nop"
+ when "bieq", "bpeq", "bbeq"