set proparch [lindex [mips_arch_properties $arch 0] 0]
set prefixes [list ${proparch}@ ]
+ if { [ string match "mips16e*" $proparch ] } {
+ lappend prefixes mips16e@
+ }
+ if { [ string match "mips16*" $proparch ] } {
+ lappend prefixes mips16@
+ }
if { [ string match "octeon*" $proparch ] && $proparch != "octeon" } {
lappend prefixes octeon@
}
set testname "MIPS $name ([concat $opts [mips_arch_displayname $arch]])"
set proparch [lindex [mips_arch_properties $arch 0] 0]
set prefixes [list ${proparch}@ ]
+ if { [ string match "mips16e*" $proparch ] } {
+ lappend prefixes mips16e@
+ }
+ if { [ string match "mips16*" $proparch ] } {
+ lappend prefixes mips16@
+ }
if { [ string match "octeon*" $proparch ] && $proparch != "octeon" } {
lappend prefixes octeon@
}
{ -march=mips64r6 -mtune=mips64r6 --defsym r6=} \
{ -mmips:isa64r6 } \
{ mipsisa64r6-*-* mipsisa64r6el-*-* }
-mips_arch_create mips16 32 {} {} \
- { -march=mips1 -mips16 } { -mmips:16 }
+mips_arch_create mips16-32 32 {} {} \
+ { -march=mips1 -mips16 } { -mmips:3000 }
+mips_arch_create mips16-64 64 mips16-32 {} \
+ { -march=mips3 -mips16 } { -mmips:4000 }
+mips_arch_create mips16e-32 32 mips16-32 {} \
+ { -march=mips32 -mips16 } { -mmips:isa32 }
+mips_arch_create mips16e-64 64 mips16-64 { mips16e-32 } \
+ { -march=mips64 -mips16 } { -mmips:isa64 }
mips_arch_create micromips 64 mips64r2 {} \
{ -march=mips64r2 -mmicromips } {}
mips_arch_create r3000 32 mips1 {} \
run_dump_test_arches "rol" [mips_arch_list_matching mips1 !ror]
run_dump_test_arches "rol-hw" [mips_arch_list_matching ror]
- run_dump_test_arches "rol64" [mips_arch_list_matching gpr64 !ror]
+ run_dump_test_arches "rol64" \
+ [mips_arch_list_matching gpr64 !ror !mips16-32]
run_dump_test_arches "rol64-hw" [mips_arch_list_matching gpr64 ror]
run_dump_test "sb"
run_dump_test_arches "uld2-eb" [mips_arch_list_matching mips3 !mips32r6]
run_dump_test_arches "uld2-el" [mips_arch_list_matching mips3 !mips32r6]
- run_dump_test "mips16"
+ run_dump_test_arches "mips16" [mips_arch_list_matching mips16-64]
if { $has_newabi } {
- run_dump_test "mips16-64"
- }
- run_dump_test "mips16-macro"
- run_list_test "mips16-macro" "-32 -march=mips1"
- run_dump_test "mips16-macro-t" "{{as} {-march=mips3}}"
- run_dump_test "mips16-macro-e" "{{as} {-march=mips3}}"
+ run_dump_test_arches "mips16-64" \
+ [mips_arch_list_matching mips16-64]
+ }
+ run_dump_test_arches "mips16-macro" [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-macro-t" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-macro-e" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-insn-t" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-insn-e" \
+ [mips_arch_list_matching mips16-32]
# Check MIPS16e extensions
- run_dump_test_arches "mips16e" [mips_arch_list_matching mips32 !micromips \
- !mips32r6]
+ run_dump_test_arches "mips16e" [mips_arch_list_matching mips16e-32]
+ run_dump_test_arches "mips16e-64" [mips_arch_list_matching mips16e-32]
+ # Check MIPS16 ISA subset disassembly
+ run_dump_test_arches "mips16-sub" [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16e-sub" [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16e-64-sub" \
+ [mips_arch_list_matching mips16-32]
+
# Check jalx handling
run_dump_test "mips16-jalx"
run_dump_test "mips-jalx"
run_dump_test "mips-abi32-pic2"
run_dump_test "elf${el}-rel"
- run_dump_test_arches "elf${el}-rel2" [mips_arch_list_matching gpr64 !singlefloat]
+ run_dump_test_arches "elf${el}-rel2" \
+ [mips_arch_list_matching gpr64 !singlefloat !mips16-32]
run_dump_test "e32${el}-rel2"
run_dump_test "elf${el}-rel3"
- run_dump_test_arches "elf-rel4" [mips_arch_list_matching gpr64]
+ run_dump_test_arches "elf-rel4" [mips_arch_list_matching gpr64 !mips16-32]
run_dump_test "e32-rel4"
run_dump_test "elf-rel5"
run_dump_test "elf-rel6"
run_dump_test "mips16e-jrc"
run_dump_test "mips16e-save"
run_list_test "mips16e-save-err" "-march=mips32 -32"
- run_dump_test "mips16e-64"
- run_list_test "mips16e-64" "-march=mips32 -32"
run_dump_test "mips16-intermix"
run_dump_test "mips16-extend"
+ run_dump_test "mips16-extend-swap"
run_dump_test "mips16-sprel-swap"
run_dump_test "mips16-sdrasp"
+ run_dump_test "mips16-insn-length-noargs"
run_dump_test "mips16-branch-unextended-1"
run_dump_test "mips16-branch-unextended-2"