webkitfltk icon indicating copy to clipboard operation
webkitfltk copied to clipboard

Wrong assembly code on armv6

Open ha5di opened this issue 10 years ago • 4 comments

Trying to build it on Raspberry Pi (armv6zk) I get the following error. It looks like an armv7 code:

{standard input}:692: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jfalse-.LrelativePCBase' {standard input}:696: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jeq_null-.LrelativePCBase' {standard input}:697: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jeq_null-.LrelativePCBase' {standard input}:701: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jneq_null-.LrelativePCBase' {standard input}:702: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jneq_null-.LrelativePCBase' {standard input}:706: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jneq_ptr-.LrelativePCBase' {standard input}:707: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jneq_ptr-.LrelativePCBase' {standard input}:711: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jless-.LrelativePCBase' {standard input}:712: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jless-.LrelativePCBase' {standard input}:716: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jlesseq-.LrelativePCBase' {standard input}:717: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jlesseq-.LrelativePCBase' {standard input}:721: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jgreater-.LrelativePCBase' {standard input}:722: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jgreater-.LrelativePCBase' {standard input}:726: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jgreatereq-.LrelativePCBase' {standard input}:727: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jgreatereq-.LrelativePCBase' {standard input}:731: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jnless-.LrelativePCBase' {standard input}:732: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jnless-.LrelativePCBase' {standard input}:736: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jnlesseq-.LrelativePCBase' {standard input}:737: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jnlesseq-.LrelativePCBase' {standard input}:741: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jngreater-.LrelativePCBase' {standard input}:742: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jngreater-.LrelativePCBase' {standard input}:746: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_jngreatereq-.LrelativePCBase' {standard input}:747: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_jngreatereq-.LrelativePCBase' {standard input}:751: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_loop_hint-.LrelativePCBase' {standard input}:752: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_loop_hint-.LrelativePCBase' {standard input}:756: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_switch_imm-.LrelativePCBase' {standard input}:757: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_switch_imm-.LrelativePCBase' {standard input}:761: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_switch_char-.LrelativePCBase' {standard input}:762: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_switch_char-.LrelativePCBase' {standard input}:766: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_switch_string-.LrelativePCBase' {standard input}:767: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_switch_string-.LrelativePCBase' {standard input}:771: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_new_func-.LrelativePCBase' {standard input}:772: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_new_func-.LrelativePCBase' {standard input}:776: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_new_captured_func-.LrelativePCBase' {standard input}:777: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_new_captured_func-.LrelativePCBase' {standard input}:781: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_new_func_exp-.LrelativePCBase' {standard input}:782: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_new_func_exp-.LrelativePCBase' {standard input}:786: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_call-.LrelativePCBase' {standard input}:787: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_call-.LrelativePCBase' {standard input}:791: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_call_eval-.LrelativePCBase' {standard input}:792: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_call_eval-.LrelativePCBase' {standard input}:796: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_call_varargs-.LrelativePCBase' {standard input}:797: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_call_varargs-.LrelativePCBase' {standard input}:801: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_tear_off_activation-.LrelativePCBase' {standard input}:802: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_tear_off_activation-.LrelativePCBase' {standard input}:806: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_tear_off_arguments-.LrelativePCBase' {standard input}:807: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_tear_off_arguments-.LrelativePCBase' {standard input}:811: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_ret-.LrelativePCBase' {standard input}:812: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_ret-.LrelativePCBase' {standard input}:816: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_ret_object_or_this-.LrelativePCBase' {standard input}:817: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_ret_object_or_this-.LrelativePCBase' {standard input}:821: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_construct-.LrelativePCBase' {standard input}:822: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_construct-.LrelativePCBase' {standard input}:826: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_construct_varargs-.LrelativePCBase' {standard input}:827: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_construct_varargs-.LrelativePCBase' {standard input}:831: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_strcat-.LrelativePCBase' {standard input}:832: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_strcat-.LrelativePCBase' {standard input}:836: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_to_primitive-.LrelativePCBase' {standard input}:837: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_to_primitive-.LrelativePCBase' {standard input}:841: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_get_pnames-.LrelativePCBase' {standard input}:842: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_get_pnames-.LrelativePCBase' {standard input}:846: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_next_pname-.LrelativePCBase' {standard input}:847: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_next_pname-.LrelativePCBase' {standard input}:851: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_resolve_scope-.LrelativePCBase' {standard input}:852: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_resolve_scope-.LrelativePCBase' {standard input}:856: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_get_from_scope-.LrelativePCBase' {standard input}:857: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_get_from_scope-.LrelativePCBase' {standard input}:861: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_put_to_scope-.LrelativePCBase' {standard input}:862: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_put_to_scope-.LrelativePCBase' {standard input}:866: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_push_with_scope-.LrelativePCBase' {standard input}:867: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_push_with_scope-.LrelativePCBase' {standard input}:871: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_pop_scope-.LrelativePCBase' {standard input}:872: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_pop_scope-.LrelativePCBase' {standard input}:876: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_push_name_scope-.LrelativePCBase' {standard input}:877: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_push_name_scope-.LrelativePCBase' {standard input}:881: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_catch-.LrelativePCBase' {standard input}:882: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_catch-.LrelativePCBase' {standard input}:886: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_throw-.LrelativePCBase' {standard input}:887: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_throw-.LrelativePCBase' {standard input}:891: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_throw_static_error-.LrelativePCBase' {standard input}:892: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_throw_static_error-.LrelativePCBase' {standard input}:896: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_debug-.LrelativePCBase' {standard input}:897: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_debug-.LrelativePCBase' {standard input}:901: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_profile_will_call-.LrelativePCBase' {standard input}:902: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_profile_will_call-.LrelativePCBase' {standard input}:906: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_profile_did_call-.LrelativePCBase' {standard input}:907: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_profile_did_call-.LrelativePCBase' {standard input}:911: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_op_end-.LrelativePCBase' {standard input}:912: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_op_end-.LrelativePCBase' {standard input}:916: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_program_prologue-.LrelativePCBase' {standard input}:917: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_program_prologue-.LrelativePCBase' {standard input}:921: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_eval_prologue-.LrelativePCBase' {standard input}:922: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_eval_prologue-.LrelativePCBase' {standard input}:926: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_function_for_call_prologue-.LrelativePCBase' {standard input}:927: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_function_for_call_prologue-.LrelativePCBase' {standard input}:931: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_function_for_construct_prologue-.LrelativePCBase' {standard input}:932: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_function_for_construct_prologue-.LrelativePCBase' {standard input}:936: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_function_for_call_arity_check-.LrelativePCBase' {standard input}:937: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_function_for_call_arity_check-.LrelativePCBase' {standard input}:941: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_function_for_construct_arity_check-.LrelativePCBase' {standard input}:942: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_function_for_construct_arity_check-.LrelativePCBase' {standard input}:946: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_generic_return_point-.LrelativePCBase' {standard input}:947: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_generic_return_point-.LrelativePCBase' {standard input}:951: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_throw_from_slow_path_trampoline-.LrelativePCBase' {standard input}:952: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_throw_from_slow_path_trampoline-.LrelativePCBase' {standard input}:956: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_throw_during_call_trampoline-.LrelativePCBase' {standard input}:957: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_throw_during_call_trampoline-.LrelativePCBase' {standard input}:961: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_native_call_trampoline-.LrelativePCBase' {standard input}:962: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_native_call_trampoline-.LrelativePCBase' {standard input}:966: Error: selected processor does not support ARM modemovw r2,#:lower16:.Lllint_native_construct_trampoline-.LrelativePCBase' {standard input}:967: Error: selected processor does not support ARM mode movt r2,#:upper16:.Lllint_native_construct_trampoline-.LrelativePCBase' {standard input}:971: Error: selected processor does not support ARM modemovw r2,#:lower16:.LhandleUncaughtException-.LrelativePCBase' {standard input}:972: Error: selected processor does not support ARM mode `movt r2,#:upper16:.LhandleUncaughtException-.LrelativePCBase' Makefile:577: recipe for target 'llint/LowLevelInterpreter.o' failed make: *** [llint/LowLevelInterpreter.o] Error 1 make: Leaving directory '/mnt/mmcblk0p2/SRC/Work/webkitfltk/webkitfltk-0.1.1/Source/JavaScriptCore'

ha5di avatar Dec 17 '14 07:12 ha5di

Thanks for reporting. I do not have a Pi, or anything else ARMv6, so this one will depend on users with such.

clbr avatar Dec 17 '14 08:12 clbr

No problem. What you can help is to pinpoint where is it decided which arm source variant is used (expecting that there is a proper armv6). BTW I modified arm.rb two isARMv7 functions to return false always but didn't help. Checked Platform.h but it detects armv6 properly.

ha5di avatar Dec 17 '14 09:12 ha5di

Looks like the culprit is this one: https://bugs.webkit.org/show_bug.cgi?id=131612

clbr avatar Dec 17 '14 09:12 clbr

webkitfltk will build for armv6 using the patches in #28 and #29 in addition to the following patches:

--- Source/JavaScriptCore/llint/LowLevelInterpreter.asm.orig	2020-11-21 17:09:35.000000000 +0000
+++ Source/JavaScriptCore/llint/LowLevelInterpreter.asm	2020-11-21 17:14:11.860537931 +0000
@@ -842,7 +842,13 @@
         move index, t2
         storep t1, [a0, t2, 8]
     elsif ARM or ARMv7 or ARMv7_TRADITIONAL
-        mvlbl (label - _relativePCBase), t2
+        if ARM
+           ldrlbl t2, label
+           ldrlbl t3, _relativePCBase
+           subp t2, t3, t2
+        else
+           mvlbl (label - _relativePCBase), t2
+        end
         addp t2, t1, t2
         move index, t3
         storep t2, [a0, t3, 4]
@@ -, +, @@ 

--- a/Source/JavaScriptCore/offlineasm/arm.rb	
+++ a/Source/JavaScriptCore/offlineasm/arm.rb	
@@ -504,6 +504,8 @@ class Instruction
         when "mvlbl"
                 $asm.puts "movw #{operands[1].armOperand}, \#:lower16:#{operands[0].value}"
                 $asm.puts "movt #{operands[1].armOperand}, \#:upper16:#{operands[0].value}"
+        when "ldrlbl"
+            $asm.puts "ldr #{operands[0].armOperand}, =#{operands[1].value}"
         when "nop"
             $asm.puts "nop"
         when "bieq", "bpeq", "bbeq"
--- a/Source/JavaScriptCore/offlineasm/instructions.rb	
+++ a/Source/JavaScriptCore/offlineasm/instructions.rb	
@@ -261,7 +261,8 @@ X86_INSTRUCTIONS =
 ARM_INSTRUCTIONS =
     [
      "clrbp",
-     "mvlbl"
+     "mvlbl",
+     "ldrlbl"
     ]
 
 ARM64_INSTRUCTIONS =
--

juanitotc avatar Nov 23 '20 09:11 juanitotc