Bug 191258 - [JSC][MIPS] JIT support does not work on MIPS R6
Summary: [JSC][MIPS] JIT support does not work on MIPS R6
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: Other
Hardware: Other Linux
: P2 Normal
Assignee: Adrian Perez
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-11-05 05:33 PST by Adrian Perez
Modified: 2018-11-05 05:33 PST (History)
2 users (show)

See Also:


Attachments
Minimal Buildroot configuration to trigger the issue (93.60 KB, text/plain)
2018-11-05 05:33 PST, Adrian Perez
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Adrian Perez 2018-11-05 05:33:17 PST
Created attachment 353853 [details]
Minimal Buildroot configuration to trigger the issue

Currently it is not possible to even build JIT support on MIPS R6
due to the offline assembler using some instructions which have
removed in R6 (like “addi” and “movz”). We would need to generate
slightly different code in this case (e.g. use “seleqz/selnez” in
place of “movz”), and alse make sure that the JIT generates code
accordingly for MIPS R6.

I am attaching a minimal Buildroot configuration which builds
WebKitGTK+ 2.22.3 and causes this issue. It has been tested
with a Git checkout of Buildroot at commit 435613ef29.

---- Error message: ----

[ 52%] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/llint/LowLevelInterpreter.cpp.o
/tmp/ccqrsIMe.s: Assembler messages:
/tmp/ccqrsIMe.s:2841: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $v1,$t8,$t7'
/tmp/ccqrsIMe.s:2847: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $t2,$t8,$t7'
/tmp/ccqrsIMe.s:2852: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $v1,$t7,$t8'
/tmp/ccqrsIMe.s:2887: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movn $v1,$t7,$t8'
/tmp/ccqrsIMe.s:2893: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movn $t2,$t7,$t8'
/tmp/ccqrsIMe.s:2898: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movn $v1,$t8,$t7'
/tmp/ccqrsIMe.s:2961: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $v0,$t7,$t8'
/tmp/ccqrsIMe.s:3032: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movn $v0,$t8,$t7'
/tmp/ccqrsIMe.s:3616: Error: opcode not supported on this processor: mips32r6 (mips32r6) `mult $v1,$t3'
/tmp/ccqrsIMe.s:3617: Error: opcode not supported on this processor: mips32r6 (mips32r6) `mflo $t3'
/tmp/ccqrsIMe.s:3618: Error: opcode not supported on this processor: mips32r6 (mips32r6) `mfhi $t8'
/tmp/ccqrsIMe.s:3865: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.eq.d $f18,$f2'
/tmp/ccqrsIMe.s:3866: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_binaryOpCustomStore__integerOperationAndStore__notInt'
/tmp/ccqrsIMe.s:4403: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $v0,$t7,$t8'
/tmp/ccqrsIMe.s:4456: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $t3,$t7,$t8'
/tmp/ccqrsIMe.s:4494: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $t3,$t7,$t8'
/tmp/ccqrsIMe.s:4520: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $v1,$t7,$t8'
/tmp/ccqrsIMe.s:4550: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $v0,$t8,$t7'
/tmp/ccqrsIMe.s:4621: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $v1,$t7,$t8'
/tmp/ccqrsIMe.s:5352: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.eq.d $f0,$f0'
/tmp/ccqrsIMe.s:5353: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_opGetByValSlow'
/tmp/ccqrsIMe.s:5585: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.eq.d $f0,$f0'
/tmp/ccqrsIMe.s:5586: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_putByVal__opPutByValSlow'
/tmp/ccqrsIMe.s:5894: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.eq.d $f0,$f0'
/tmp/ccqrsIMe.s:5895: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_48_putByVal__opPutByValSlow'
/tmp/ccqrsIMe.s:8216: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movz $v0,$t7,$t8'
/tmp/ccqrsIMe.s:8280: Error: opcode not supported on this processor: mips32r6 (mips32r6) `movn $v0,$t8,$t7'
/tmp/ccqrsIMe.s:8765: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.olt.d $f0,$f2'
/tmp/ccqrsIMe.s:8766: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1t .L_offlineasm_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:8778: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.olt.d $f0,$f2'
/tmp/ccqrsIMe.s:8779: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1t .L_offlineasm_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:8856: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.olt.d $f0,$f2'
/tmp/ccqrsIMe.s:8857: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_68_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:8869: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.olt.d $f0,$f2'
/tmp/ccqrsIMe.s:8870: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_68_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:8947: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ule.d $f0,$f2'
/tmp/ccqrsIMe.s:8948: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_69_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:8960: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ule.d $f0,$f2'
/tmp/ccqrsIMe.s:8961: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_69_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9038: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ule.d $f0,$f2'
/tmp/ccqrsIMe.s:9039: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1t .L_offlineasm_70_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9051: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ule.d $f0,$f2'
/tmp/ccqrsIMe.s:9052: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1t .L_offlineasm_70_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9129: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ole.d $f0,$f2'
/tmp/ccqrsIMe.s:9130: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1t .L_offlineasm_71_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9142: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ole.d $f0,$f2'
/tmp/ccqrsIMe.s:9143: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1t .L_offlineasm_71_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9220: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ole.d $f0,$f2'
/tmp/ccqrsIMe.s:9221: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_72_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9233: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ole.d $f0,$f2'
/tmp/ccqrsIMe.s:9234: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_72_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9311: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ult.d $f0,$f2'
/tmp/ccqrsIMe.s:9312: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_73_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9324: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ult.d $f0,$f2'
/tmp/ccqrsIMe.s:9325: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1f .L_offlineasm_73_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9402: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ult.d $f0,$f2'
/tmp/ccqrsIMe.s:9403: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1t .L_offlineasm_74_compareJump__jumpTarget'
/tmp/ccqrsIMe.s:9415: Error: opcode not supported on this processor: mips32r6 (mips32r6) `c.ult.d $f0,$f2'
/tmp/ccqrsIMe.s:9416: Error: opcode not supported on this processor: mips32r6 (mips32r6) `bc1t .L_offlineasm_74_compareJump__jumpTarget'
/tmp/ccNhC7qP.s: Assembler messages:
/tmp/ccNhC7qP.s:17: Error: opcode not supported on this processor: mips32r6 (mips32r6) `addi $a0,$sp,-8'