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"