aboutsummaryrefslogtreecommitdiffstats
path: root/community/webkit2gtk/fix_armv6l.patch
blob: c07a95b9c30774b0e12835122247826e8b506382 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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"