webkitfltk
webkitfltk copied to clipboard
Wrong assembly code on armv6
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'
Thanks for reporting. I do not have a Pi, or anything else ARMv6, so this one will depend on users with such.
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.
Looks like the culprit is this one: https://bugs.webkit.org/show_bug.cgi?id=131612
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 =
--