-# Copyright 2012, 2013
-# Free Software Foundation, Inc.
+# Copyright (C) 2012-2017 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# nollsc
# The CPU doesn't support ll, sc, lld and scd instructions.
#
+# oddspreg
+# The CPU has odd-numbered single-precision registers
+# available and GAS enables use of them by default.
+#
# as_flags: The assembler flags used when assembling tests for this
# architecture.
#
set proparch [lindex [mips_arch_properties $arch 0] 0]
set prefixes [list ${proparch}@ ]
+ if { [ string match "mips16e2*" $proparch ] } {
+ lappend prefixes mips16e2@
+ }
+ 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@
}
+ if { [ string match "mips*r6" $proparch ]} {
+ lappend prefixes mipsr6@
+ }
foreach prefix ${prefixes} {
set archname ${prefix}${name}
if { [file exists "$srcdir/$subdir/${archname}.d"] } {
# Invoke "run_list_test" for test NAME with additional assembler options OPTS.
# Add the assembler flags that are associated with architecture ARCH.
proc run_list_test_arch { name opts arch } {
- global subdir
+ global subdir srcdir
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 "mips16e2*" $proparch ] } {
+ lappend prefixes mips16e2@
+ }
+ 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@
+ }
+ if { [ string match "mips*r6" $proparch ]} {
+ lappend prefixes mipsr6@
+ }
+ foreach prefix ${prefixes} {
+ set archname ${prefix}${name}
+ if { [file exists "$srcdir/$subdir/${archname}.l"] } {
+ set name $archname
+ break
+ }
+ }
+
if [catch {run_list_test \
$name \
[concat $opts [mips_arch_as_flags $arch]] \
{ -march=mips32r2 -mtune=mips32r2 } \
{ -mmips:isa32r2 } \
{ mipsisa32r2-*-* mipsisa32r2el-*-* }
+mips_arch_create mips32r3 32 mips32r2 { fpisa3 fpisa4 fpisa5 ror } \
+ { -march=mips32r3 -mtune=mips32r3 } \
+ { -mmips:isa32r3 } \
+ { mipsisa32r3-*-* mipsisa32r3el-*-* }
+mips_arch_create mips32r5 32 mips32r3 { fpisa3 fpisa4 fpisa5 ror } \
+ { -march=mips32r5 -mtune=mips32r5 } \
+ { -mmips:isa32r5 } \
+ { mipsisa32r5-*-* mipsisa32r5el-*-* }
+mips_arch_create mips32r6 32 mips32r5 { fpisa3 fpisa4 fpisa5 ror } \
+ { -march=mips32r6 -mtune=mips32r6 --defsym r6=} \
+ { -mmips:isa32r6 } \
+ { mipsisa32r6-*-* mipsisa32r6el-*-* }
mips_arch_create mips64 64 mips5 { mips32 } \
{ -march=mips64 -mtune=mips64 } { -mmips:isa64 } \
{ mipsisa64-*-* mipsisa64el-*-* }
{ -march=mips64r2 -mtune=mips64r2 } \
{ -mmips:isa64r2 } \
{ mipsisa64r2-*-* mipsisa64r2el-*-* }
-mips_arch_create mips16 32 {} {} \
- { -march=mips1 -mips16 } { -mmips:16 }
+mips_arch_create mips64r3 64 mips64r2 { mips32r3 ror } \
+ { -march=mips64r3 -mtune=mips64r3 } \
+ { -mmips:isa64r3 } \
+ { mipsisa64r3-*-* mipsisa64r3el-*-* }
+mips_arch_create mips64r5 64 mips64r3 { mips32r5 ror } \
+ { -march=mips64r5 -mtune=mips64r5 } \
+ { -mmips:isa64r5 } \
+ { mipsisa64r5-*-* mipsisa64r5el-*-* }
+mips_arch_create mips64r6 64 mips64r5 { mips32r6 ror } \
+ { -march=mips64r6 -mtune=mips64r6 --defsym r6=} \
+ { -mmips:isa64r6 } \
+ { mipsisa64r6-*-* mipsisa64r6el-*-* }
+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 mips16e2-32 32 mips16e-32 {} \
+ { -march=mips32r2 -mips16 -mmips16e2 } \
+ { -mmips:isa32r2 }
+mips_arch_create mips16e-64 64 mips16-64 { mips16e-32 } \
+ { -march=mips64 -mips16 } { -mmips:isa64 }
+mips_arch_create mips16e2-64 64 mips16e-64 { mips16e2-32 } \
+ { -march=mips64r2 -mips16 -mmips16e2 } \
+ { -mmips:isa64r2 }
mips_arch_create micromips 64 mips64r2 {} \
- { -march=mips64 -mmicromips } {}
+ { -march=mips64r2 -mmicromips } {}
mips_arch_create r3000 32 mips1 {} \
{ -march=r3000 -mtune=r3000 } { -mmips:3000 }
mips_arch_create r3900 32 mips1 { gpr_ilocks } \
{ -march=r4000 -mtune=r4000 } { -mmips:4000 }
mips_arch_create vr5400 64 mips4 { ror } \
{ -march=vr5400 -mtune=vr5400 } { -mmips:5400 }
-mips_arch_create sb1 64 mips64 { mips3d } \
+mips_arch_create interaptiv-mr2 32 mips32r3 {} \
+ { -march=interaptiv-mr2 -mtune=interaptiv-mr2 } \
+ { -mmips:interaptiv-mr2 }
+mips_arch_create sb1 64 mips64 { mips3d oddspreg } \
{ -march=sb1 -mtune=sb1 } { -mmips:sb1 } \
{ mipsisa64sb1-*-* mipsisa64sb1el-*-* }
-mips_arch_create octeon 64 mips64r2 {} \
+mips_arch_create octeon 64 mips64r2 { oddspreg } \
{ -march=octeon -mtune=octeon } { -mmips:octeon } \
{ mips64octeon*-*-* }
-mips_arch_create octeonp 64 octeon {} \
+mips_arch_create octeonp 64 octeon { oddspreg } \
{ -march=octeon+ -mtune=octeon+ } { -mmips:octeon+ } \
{ }
-mips_arch_create octeon2 64 octeonp {} \
+mips_arch_create octeon2 64 octeonp { oddspreg } \
{ -march=octeon2 -mtune=octeon2 } { -mmips:octeon2 } \
{ }
-mips_arch_create xlr 64 mips64 {} \
+mips_arch_create octeon3 64 octeon2 { oddspreg } \
+ { -march=octeon3 -mtune=octeon3 } { -mmips:octeon3 } \
+ { }
+mips_arch_create xlr 64 mips64 { oddspreg } \
{ -march=xlr -mtune=xlr } { -mmips:xlr }
mips_arch_create r5900 64 mips3 { gpr_ilocks singlefloat nollsc } \
{ -march=r5900 -mtune=r5900 } { -mmips:5900 } \
{ mipsr5900el-*-* mips64r5900el-*-* }
+mips_arch_create mips16e2-interaptiv-mr2 32 mips16e2-32 {} \
+ { -march=interaptiv-mr2 -mips16 } \
+ { -mmips:interaptiv-mr2 }
#
# And now begin the actual tests! VxWorks uses RELA rather than REL
run_dump_test "vxworks1-xgot"
run_dump_test "vxworks1-el"
run_dump_test "vxworks1-xgot-el"
+
+ run_list_test "option-pic-vxworks-1" "-mvxworks-pic" \
+ "MIPS invalid PIC option in VxWorks PIC"
+ run_list_test "option-pic-vxworks-2" "-mvxworks-pic" \
+ "MIPS invalid switch to SVR4 PIC from VxWorks PIC"
} elseif { [istarget mips*-*-*] } {
- set addr32 [expr [istarget mipstx39*-*-*] || [istarget mips-*-linux*] || [istarget mipsel-*-linux*]]
+ set addr32 [expr [istarget mipstx39*-*-*] || [istarget mips-*-linux*] || [istarget mipsel-*-linux*] \
+ || [istarget mipsisa32-*-linux*] || [istarget mipsisa32el-*-linux*]]
set has_newabi [expr [istarget *-*-irix6*] || [istarget mips*-*-linux*] \
- || [istarget mips*-sde-elf*] || [istarget mips*-mti-elf*]]
+ || [istarget mips*-sde-elf*] || [istarget mips*-mti-elf*] \
+ || [istarget mips*-img-elf*]]
if { [istarget "mips*-*-*linux*"]
|| [istarget "mips*-sde-elf*"]
|| [istarget "mips*-mti-elf*"]
+ || [istarget "mips*-img-elf*"]
|| [istarget "mips*-*-*bsd*"] } then {
set tmips "t"
} else {
run_dump_test_arches "bgeu" [mips_arch_list_matching mips1]
run_dump_test_arches "blt" [mips_arch_list_matching mips1]
run_dump_test_arches "bltu" [mips_arch_list_matching mips1]
- run_dump_test_arches "branch-likely" [mips_arch_list_matching mips2]
+ run_dump_test_arches "branch-likely" [mips_arch_list_matching mips2 !mips32r6]
run_dump_test_arches "branch-misc-1" [mips_arch_list_matching mips1]
run_dump_test_arches "branch-misc-2" [mips_arch_list_matching mips1]
run_dump_test_arches "branch-misc-2pic" [mips_arch_list_matching mips1]
- run_dump_test_arches "branch-misc-2-64" [mips_arch_list_matching mips3]
- run_dump_test_arches "branch-misc-2pic-64" [mips_arch_list_matching mips3]
run_dump_test "branch-misc-3"
+ run_dump_test_arches "branch-misc-4" [mips_arch_list_matching mips1]
+ run_dump_test_arches "branch-misc-5" [mips_arch_list_matching mips1]
+ run_dump_test_arches "branch-misc-5pic" [mips_arch_list_matching mips1]
+ if $has_newabi {
+ run_dump_test_arches "branch-misc-2-64" \
+ [mips_arch_list_matching mips3]
+ run_dump_test_arches "branch-misc-2pic-64" \
+ [mips_arch_list_matching mips3]
+ run_dump_test_arches "branch-misc-4-64" \
+ [mips_arch_list_matching mips3]
+ run_dump_test_arches "branch-misc-5-64" \
+ [mips_arch_list_matching mips3]
+ run_dump_test_arches "branch-misc-5pic-64" \
+ [mips_arch_list_matching mips3]
+ }
run_dump_test "branch-swap"
# Sweep a range of branch offsets so that it hits a position where
"MIPS branch swapping ($count)"
}
+ run_dump_test_arches "branch-swap-3" [mips_arch_list_all]
+ run_dump_test_arches "branch-swap-4" [mips_arch_list_all]
+
+ run_dump_test "branch-section-1"
+ run_dump_test "branch-section-2"
+ run_dump_test "branch-section-3"
+ run_dump_test "branch-section-4"
+ run_dump_test "branch-extern-1"
+ run_dump_test "branch-extern-2"
+ run_dump_test "branch-extern-3"
+ run_dump_test "branch-extern-4"
+ run_dump_test "branch-weak-1"
+ run_dump_test "branch-weak-2"
+ run_dump_test "branch-weak-3"
+ run_dump_test "branch-weak-4"
+ run_dump_test "branch-weak-5"
+ run_dump_test "branch-weak-6"
+ run_dump_test "branch-weak-7"
+ run_dump_test "branch-local-1"
+ run_dump_test "branch-local-2"
+ run_dump_test "branch-local-ignore-2"
+ run_dump_test "branch-local-3"
+ run_dump_test "branch-local-ignore-3"
+ run_dump_test "branch-local-4"
+ if $has_newabi {
+ run_dump_test "branch-local-n32-1"
+ run_dump_test "branch-local-n32-2"
+ run_dump_test "branch-local-ignore-n32-2"
+ run_dump_test "branch-local-n32-3"
+ run_dump_test "branch-local-ignore-n32-3"
+ run_dump_test "branch-local-n32-4"
+ run_dump_test "branch-local-n64-1"
+ run_dump_test "branch-local-n64-2"
+ run_dump_test "branch-local-ignore-n64-2"
+ run_dump_test "branch-local-n64-3"
+ run_dump_test "branch-local-ignore-n64-3"
+ run_dump_test "branch-local-n64-4"
+ }
+ run_dump_test "branch-addend"
+ if $has_newabi {
+ run_dump_test "branch-addend-n32"
+ run_dump_test "branch-addend-n64"
+ }
+ run_dump_test "branch-absolute"
+ run_dump_test "branch-absolute-addend"
+ if $has_newabi {
+ run_dump_test "branch-absolute-n32"
+ run_dump_test "branch-absolute-addend-n32"
+ run_dump_test "branch-absolute-n64"
+ run_dump_test "branch-absolute-addend-n64"
+ }
+
+ run_dump_test_arches "nal-1" [mips_arch_list_matching mips1 !micromips]
+ run_dump_test_arches "nal-2" [mips_arch_list_matching mips1 !micromips]
+
+ run_dump_test "compact-eh-eb-1"
+ run_dump_test "compact-eh-eb-2"
+ run_dump_test "compact-eh-eb-3"
+ run_dump_test "compact-eh-eb-4"
+ run_dump_test "compact-eh-eb-5"
+ run_dump_test "compact-eh-eb-6"
+ run_dump_test "compact-eh-eb-7"
+ run_dump_test "compact-eh-el-1"
+ run_dump_test "compact-eh-el-2"
+ run_dump_test "compact-eh-el-3"
+ run_dump_test "compact-eh-el-4"
+ run_dump_test "compact-eh-el-5"
+ run_dump_test "compact-eh-el-6"
+ run_dump_test "compact-eh-el-7"
+ run_list_test "compact-eh-err1"
+ run_list_test "compact-eh-err2"
+
run_dump_test "div"
- if { !$addr32 } {
+ if { !$addr32 && $has_newabi } {
run_dump_test_arches "dli" [mips_arch_list_matching mips3]
}
run_dump_test_arches "jal" [mips_arch_list_matching mips1]
run_dump_test "eret-1"
run_dump_test "eret-2"
run_dump_test "eret-3"
- run_dump_test_arches "fix-rm7000-1" \
- [mips_arch_list_matching mips3 !singlefloat]
+ if { $has_newabi } {
+ run_dump_test_arches "fix-rm7000-1" \
+ [mips_arch_list_matching mips3 !singlefloat \
+ !mips64r6]
+ }
run_dump_test_arches "fix-rm7000-2" \
- [mips_arch_list_matching mips3 !singlefloat]
+ [mips_arch_list_matching mips3 !singlefloat \
+ !mips64r6]
run_dump_test_arches "24k-branch-delay-1" \
[mips_arch_list_matching mips1]
run_dump_test_arches "24k-triple-stores-1" \
run_dump_test_arches "jal-svr4pic" [mips_arch_list_matching mips1]
run_dump_test_arches "jal-svr4pic-noreorder" \
[mips_arch_list_matching mips1]
+ run_dump_test_arches "jal-svr4pic-local" \
+ [mips_arch_list_matching mips1]
+ if $has_newabi {
+ run_dump_test_arches "jal-svr4pic-local-n32" \
+ [mips_arch_list_matching mips3]
+ run_dump_test_arches "jal-svr4pic-local-n64" \
+ [mips_arch_list_matching mips3]
+ }
run_dump_test "jal-xgot"
run_list_test_arches "jal-range" "-32" [mips_arch_list_matching mips1]
if $has_newabi { run_dump_test "jal-newabi" }
run_list_test_arches "mips4-fp" "-32 -msoft-float" \
[mips_arch_list_matching fpisa4]
run_dump_test_arches "mips4-branch-likely" \
- [mips_arch_list_matching mips4]
+ [mips_arch_list_matching mips4 !mips32r6]
run_list_test_arches "mips4-branch-likely" "-32 -msoft-float" \
- [mips_arch_list_matching mips4]
+ [mips_arch_list_matching mips4 !mips32r6]
run_dump_test_arches "mips5-fp" "-32" \
[mips_arch_list_matching fpisa5]
run_dump_test_arches "mips5-fp" "-mabi=o64" \
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 "sdata-gp" [mips_arch_list_matching mips1]
run_dump_test "trunc"
run_dump_test "ulh"
- run_dump_test_arches "ulh2-eb" [mips_arch_list_matching mips1]
- run_dump_test_arches "ulh2-el" [mips_arch_list_matching mips1]
+ run_dump_test_arches "ulh2-eb" [mips_arch_list_matching mips1 !mips32r6]
+ run_dump_test_arches "ulh2-el" [mips_arch_list_matching mips1 !mips32r6]
run_dump_test "ulh-svr4pic"
run_dump_test "ulh-xgot"
run_dump_test "ulw"
run_dump_test "ush"
run_dump_test "usw"
run_dump_test "usd"
- run_dump_test_arches "ulw2-eb" [mips_arch_list_matching mips1 !gpr_ilocks]
- run_dump_test_arches "ulw2-eb-ilocks" [mips_arch_list_matching gpr_ilocks]
- run_dump_test_arches "ulw2-el" [mips_arch_list_matching mips1 !gpr_ilocks]
- run_dump_test_arches "ulw2-el-ilocks" [mips_arch_list_matching gpr_ilocks]
-
- run_dump_test_arches "uld2-eb" [mips_arch_list_matching mips3]
- run_dump_test_arches "uld2-el" [mips_arch_list_matching mips3]
-
- run_dump_test "mips16"
- run_dump_test "mips16-64"
- run_dump_test "mips16-macro"
+ run_dump_test_arches "ulw2-eb" [mips_arch_list_matching mips1 !gpr_ilocks \
+ !mips32r6]
+ run_dump_test_arches "ulw2-eb-ilocks" [mips_arch_list_matching gpr_ilocks \
+ !mips32r6]
+ run_dump_test_arches "ulw2-el" [mips_arch_list_matching mips1 !gpr_ilocks \
+ !mips32r6]
+ run_dump_test_arches "ulw2-el-ilocks" [mips_arch_list_matching gpr_ilocks \
+ !mips32r6]
+
+ 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_arches "mips16" [mips_arch_list_matching mips16-64]
+ if { $has_newabi } {
+ 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]
+ run_dump_test_arches "mips16e" [mips_arch_list_matching mips16e-32]
+ run_dump_test_arches "mips16e-64" [mips_arch_list_matching mips16e-32]
+ # Check MIPS16e2 extensions.
+ run_dump_test_arches "mips16e2" [mips_arch_list_matching mips16e2-32]
+ run_dump_test_arches "mips16e2-mt" [mips_arch_list_matching mips16e2-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]
+ run_dump_test_arches "mips16e2-sub" [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16e2-mt-sub" \
+ [mips_arch_list_matching mips16-32]
+
# Check jalx handling
run_dump_test "mips16-jalx"
run_dump_test "mips-jalx"
run_dump_test "mips-jalx-2"
+ run_dump_test "jalx-imm"
+ run_dump_test "jalx-addend"
+ run_dump_test "jalx-local"
+ if $has_newabi {
+ run_dump_test "jalx-imm-n32"
+ run_dump_test "jalx-addend-n32"
+ run_dump_test "jalx-local-n32"
+ run_dump_test "jalx-imm-n64"
+ run_dump_test "jalx-addend-n64"
+ run_dump_test "jalx-local-n64"
+ }
+
+ run_list_test "unaligned-jump-1" "-32" \
+ "MIPS jump to unaligned symbol 1"
+ run_list_test "unaligned-jump-2" "-32" \
+ "MIPS jump to unaligned symbol 2"
+ if $has_newabi {
+ run_dump_test "unaligned-jump-3"
+ }
+ run_list_test "unaligned-jump-mips16-1" "-32" \
+ "MIPS16 jump to unaligned symbol 1"
+ run_list_test "unaligned-jump-mips16-2" "-32" \
+ "MIPS16 jump to unaligned symbol 2"
+ if $has_newabi {
+ run_dump_test "unaligned-jump-mips16-3"
+ }
+ run_list_test "unaligned-jump-micromips-1" "-32" \
+ "microMIPS jump to unaligned symbol 1"
+ run_list_test "unaligned-jump-micromips-2" "-32" \
+ "microMIPS jump to unaligned symbol 2"
+ if $has_newabi {
+ run_dump_test "unaligned-jump-micromips-3"
+ }
+ run_list_test "unaligned-branch-1" "-32" \
+ "MIPS branch to unaligned symbol 1"
+ run_list_test "unaligned-branch-2" "-32" \
+ "MIPS branch to unaligned symbol 2"
+ if $has_newabi {
+ run_dump_test "unaligned-branch-3"
+ }
+ run_list_test "unaligned-branch-r6-1" "-32" \
+ "MIPSr6 branch to unaligned symbol 1"
+ run_list_test "unaligned-branch-r6-2" "-32 -mips64r6" \
+ "MIPSr6 branch to unaligned symbol 2"
+ run_list_test "unaligned-branch-r6-3" "-32" \
+ "MIPSr6 branch to unaligned symbol 3"
+ run_list_test "unaligned-branch-r6-4" "-32 -mips64r6" \
+ "MIPSr6 branch to unaligned symbol 4"
+ if $has_newabi {
+ run_dump_test "unaligned-branch-r6-5"
+ run_dump_test "unaligned-branch-r6-6"
+ }
+ run_list_test "unaligned-branch-mips16-1" "-32" \
+ "MIPS16 branch to unaligned symbol 1"
+ run_list_test "unaligned-branch-mips16-2" "-32" \
+ "MIPS16 branch to unaligned symbol 2"
+ if $has_newabi {
+ run_dump_test "unaligned-branch-mips16-3"
+ }
+ run_list_test "unaligned-branch-micromips-1" "-32" \
+ "microMIPS branch to unaligned symbol 1"
+ run_list_test "unaligned-branch-micromips-2" "-32" \
+ "microMIPS branch to unaligned symbol 2"
+ if $has_newabi {
+ run_dump_test "unaligned-branch-micromips-3"
+ }
+
# Check MIPS16 HI16/LO16 relocations
run_dump_test "mips16-hilo"
+ run_dump_test "mips16e2-hilo"
if $has_newabi {
run_dump_test "mips16-hilo-n32"
+ run_dump_test "mips16e2-hilo-n32"
}
run_dump_test "mips16-hilo-match"
+ run_dump_test "mips16-reloc-error"
+ run_dump_test "mips16e2-reloc-error"
+ run_dump_test "mips16-reg-error"
+ run_dump_test "mips16e2-imm-error"
+
run_dump_test "delay"
run_dump_test "nodelay"
run_dump_test "mips4010"
run_dump_test "sync"
run_dump_test_arches "virt" [mips_arch_list_matching mips32r2]
- run_dump_test_arches "virt64" [mips_arch_list_matching mips64r2]
+ if { $has_newabi } {
+ run_dump_test_arches "virt64" [mips_arch_list_matching mips64r2]
+ }
run_dump_test_arches "mips32" [mips_arch_list_matching mips32]
run_dump_test_arches "mips32-imm" [mips_arch_list_matching mips32]
if { !$addr32 } {
run_dump_test "mips64-mips3d"
- run_dump_test_arches "mips64-mips3d-incl" [mips_arch_list_matching mips3d]
+ if { $has_newabi } {
+ run_dump_test_arches "mips64-mips3d-incl" \
+ [mips_arch_list_matching mips3d]
+ }
run_dump_test "mips64-mdmx"
- run_dump_test "sb1-ext-mdmx"
- run_dump_test "sb1-ext-ps"
+ if { $has_newabi } {
+ run_dump_test "sb1-ext-mdmx"
+ run_dump_test "sb1-ext-ps"
+ }
run_dump_test "xlr-ext"
}
- run_dump_test_arches "relax" [mips_arch_list_matching mips2]
- run_dump_test_arches "relax-at" [mips_arch_list_matching mips2]
+ run_dump_test_arches "relax" [mips_arch_list_matching mips2 !mips32r6]
+ run_dump_test_arches "relax-at" [mips_arch_list_matching mips2 !mips32r6]
run_dump_test "relax-swap1-mips1"
run_dump_test "relax-swap1-mips2"
run_dump_test "relax-swap2"
run_dump_test_arches "relax-swap3" [mips_arch_list_all]
- run_list_test_arches "relax-bc1any" "-mips3d -relax-branch" \
+ run_list_test_arches "relax-bc1any" "-mips3d -mabi=o64 -relax-branch" \
[mips_arch_list_matching mips64 \
- !micromips]
+ !micromips !mips32r6]
run_list_test_arches "relax-bposge" "-mdsp -relax-branch" \
[mips_arch_list_matching mips64r2 \
- !micromips]
+ !micromips !mips32r6]
run_dump_test_arches "eva" [mips_arch_list_matching mips32r2 !octeon]
run_dump_test "elf_arch_mips5"
run_dump_test "elf_arch_mips32"
run_dump_test "elf_arch_mips32r2"
+ run_dump_test "elf_arch_mips32r3"
+ run_dump_test "elf_arch_mips32r5"
+ run_dump_test "elf_arch_mips32r6"
run_dump_test "elf_arch_mips64"
run_dump_test "elf_arch_mips64r2"
+ run_dump_test "elf_arch_mips64r3"
+ run_dump_test "elf_arch_mips64r5"
+ run_dump_test "elf_arch_mips64r6"
# Verify that ASE markings are handled properly.
run_dump_test "elf_ase_mips16"
run_dump_test "elf_ase_mips16-2"
+ run_dump_test "elf_ase_mips16e2"
+ run_dump_test "elf_ase_mips16e2-2"
run_dump_test "elf_ase_micromips"
run_dump_test "elf_ase_micromips-2"
+ # Verify that machine markings are handled properly.
+ run_dump_test "elf_mach_interaptiv-mr2"
+
run_dump_test "mips-gp32-fp32-pic"
run_dump_test "mips-gp32-fp64-pic"
run_dump_test "mips-gp64-fp32-pic"
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 "elf-rel8-mips16"
run_dump_test "elf-rel9"
run_dump_test "elf-rel9-mips16"
+ run_dump_test "elf-rel9-mips16e2"
if $has_newabi {
run_dump_test "elf-rel10"
run_dump_test "elf-rel11"
}
run_list_test_arches "elf-rel30" "-32" [mips_arch_list_all]
+ run_dump_test "comdat-reloc"
+
run_dump_test "${tmips}mips${el}16-e"
run_dump_test "${tmips}mips${el}16-f"
run_dump_test "tls-relw"
run_dump_test "jalr2"
run_dump_test_arches "jalr3" [mips_arch_list_matching mips1 \
- !micromips]
+ !micromips]
+ run_dump_test_arches "jalr4" [mips_arch_list_matching mips1 \
+ !micromips]
if $has_newabi {
run_dump_test_arches "jalr3-n32" \
- [mips_arch_list_matching mips3 \
- !micromips]
+ [mips_arch_list_matching mips3 \
+ !micromips]
+ run_dump_test_arches "jalr4-n32" \
+ [mips_arch_list_matching mips3 \
+ !micromips]
run_dump_test_arches "jalr3-n64" \
- [mips_arch_list_matching mips3 \
- !micromips]
+ [mips_arch_list_matching mips3 \
+ !micromips]
+ run_dump_test_arches "jalr4-n64" \
+ [mips_arch_list_matching mips3 \
+ !micromips]
}
- run_dump_test_arches "aent" [mips_arch_list_matching mips1]
-
- run_dump_test_arches "branch-misc-4" [mips_arch_list_matching mips1]
- run_dump_test_arches "branch-misc-4-64" [mips_arch_list_matching mips3]
+ run_dump_test_arches "aent" [mips_arch_list_matching mips1]
+ run_dump_test_arches "aent-2" [mips_arch_list_matching mips1]
+ run_dump_test_arches "aent-mdebug" [mips_arch_list_matching mips1]
+ run_dump_test_arches "aent-mdebug-2" \
+ [mips_arch_list_matching mips1]
run_dump_test_arches "loc-swap" [mips_arch_list_all]
run_dump_test_arches "loc-swap-dis" [mips_arch_list_all]
run_dump_test "n32-consec"
}
+ # tests of objdump's ability to disassemble the move mnemonic
+ run_dump_test_arches "move" [mips_arch_list_matching mips64 !micromips]
+ run_dump_test_arches "micromips32-move" [mips_arch_list_matching micromips]
+
# tests of objdump's ability to disassemble using different
# register names.
run_dump_test "gpr-names-numeric"
run_dump_test "loongson-3a-2"
run_dump_test "loongson-3a-3"
- run_dump_test_arches "octeon" [mips_arch_list_matching octeon]
+ if { $has_newabi } {
+ run_dump_test_arches "octeon" [mips_arch_list_matching octeon]
+ }
run_dump_test_arches "octeon-saa-saad" [mips_arch_list_matching octeonp]
run_list_test_arches "octeon-ill" [mips_arch_list_matching octeon]
- run_dump_test_arches "octeon-pref" [mips_arch_list_matching octeon]
+ if { $has_newabi } {
+ run_dump_test_arches "octeon-pref" \
+ [mips_arch_list_matching octeon]
+ }
run_dump_test_arches "octeon2" [mips_arch_list_matching octeon2]
+ run_dump_test_arches "octeon3" [mips_arch_list_matching octeon3]
run_dump_test "smartmips"
run_dump_test_arches "mips32-dsp" [mips_arch_list_matching mips32r2 \
!octeon]
run_dump_test_arches "mips32-dspr2" [mips_arch_list_matching mips32r2 \
!octeon]
+ run_dump_test_arches "mips32-dspr3" [mips_arch_list_matching mips32r6]
run_dump_test "mips64-dsp"
run_dump_test "mips32-mt"
+ run_dump_test_arches "save" [lsort -dictionary -unique [concat \
+ [mips_arch_list_matching mips16e-32] \
+ [mips_arch_list_matching interaptiv-mr2]]]
+ run_dump_test_arches "save-err" [lsort -dictionary -unique [concat \
+ [mips_arch_list_matching mips16e-32] \
+ [mips_arch_list_matching interaptiv-mr2]]]
+ run_dump_test_arches "save-sub" [lsort -dictionary -unique [concat \
+ [mips_arch_list_matching mips1 !micromips] \
+ [mips_arch_list_matching mips16-32]]]
+
run_dump_test "mips16-dwarf2"
if $has_newabi {
run_dump_test "mips16-dwarf2-n32"
run_dump_test "mips16-stabs"
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 "mips16e2-lui"
+ run_dump_test "mips16e2-mt-err"
+ run_dump_test "mips16e2-copy"
+ run_dump_test "mips16e2-copy-err"
+
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"
+ run_dump_test "mips16-relax-unextended-1"
+ run_dump_test "mips16-relax-unextended-2"
+ run_dump_test "mips16-jal-t"
+ run_dump_test "mips16-jal-e"
+
+ run_dump_test_arches "mips16-asmacro" [mips_arch_list_matching mips16-32]
run_dump_test "vxworks1"
run_dump_test "vxworks1-xgot"
run_dump_test "align2-el"
run_dump_test "align3"
run_dump_test "odd-float"
- run_dump_test "ehword"
+ run_dump_test "insn-opts"
run_list_test_arches "mips-macro-ill-sfp" "-32 -msingle-float" \
[mips_arch_list_matching mips2]
run_dump_test "mips16-vis-1"
run_dump_test "call-nonpic-1"
run_dump_test "mips32-sync"
- run_dump_test_arches "mips32r2-sync" \
- [mips_arch_list_matching mips32r2]
- run_dump_test_arches "alnv_ps-swap" [mips_arch_list_matching fpisa5]
+ run_dump_test_arches "mips32r2-sync" [lsort -dictionary -unique [concat \
+ [mips_arch_list_matching mips32r2] \
+ [mips_arch_list_matching mips16e2-32]]]
+ run_dump_test_arches "mips32r2-sync-1" [lsort -dictionary -unique [concat \
+ [mips_arch_list_matching mips32r2] \
+ [mips_arch_list_matching mips16e2-32]]]
+ run_dump_test_arches "alnv_ps-swap" [mips_arch_list_matching fpisa5 \
+ !mips32r6]
run_dump_test_arches "cache" [lsort -dictionary -unique [concat \
[mips_arch_list_matching mips3] \
[mips_arch_list_matching mips32] ] ]
- run_dump_test_arches "daddi" [mips_arch_list_matching mips3]
+ run_dump_test_arches "daddi" [mips_arch_list_matching mips3 \
+ !mips32r6]
run_dump_test_arches "pref" [lsort -dictionary -unique [concat \
[mips_arch_list_matching mips4] \
[mips_arch_list_matching mips32] ] ]
run_dump_test "micromips"
run_dump_test "micromips-trap"
+ run_dump_test "micromips-compact"
run_dump_test "micromips-insn32"
run_dump_test "micromips-noinsn32"
run_list_test "micromips" "-mips32r2 -32 -mfp64 -minsn32" \
run_dump_test "micromips-size-1"
run_dump_test "micromips-branch-relax"
run_dump_test "micromips-branch-relax-pic"
+ run_dump_test "micromips-branch-relax-insn32"
+ run_dump_test "micromips-branch-relax-insn32-pic"
run_dump_test "micromips-branch-delay"
run_dump_test "micromips-warn-branch-delay"
run_dump_test "micromips-warn-branch-delay-1"
+ run_dump_test "micromips-branch-absolute"
+ run_dump_test "micromips-branch-absolute-addend"
+ if $has_newabi {
+ run_dump_test "micromips-branch-absolute-n32"
+ run_dump_test "micromips-branch-absolute-addend-n32"
+ run_dump_test "micromips-branch-absolute-n64"
+ run_dump_test "micromips-branch-absolute-addend-n64"
+ }
run_dump_test "micromips-b16"
run_list_test "micromips-ill"
run_dump_test_arches "hilo-diff-el-n64" [mips_arch_list_matching mips3]
}
run_dump_test_arches "lui" [mips_arch_list_matching mips1]
- run_list_test_arches "lui-1" "-32" [mips_arch_list_matching mips1]
- run_list_test_arches "lui-2" "-32" [mips_arch_list_matching mips1]
+ run_dump_test_arches "lui-1" [lsort -dictionary -unique [concat \
+ [mips_arch_list_matching mips1] \
+ [mips_arch_list_matching mips16e2-32]]]
+ run_dump_test_arches "lui-2" [lsort -dictionary -unique [concat \
+ [mips_arch_list_matching mips1] \
+ [mips_arch_list_matching mips16e2-32]]]
+ run_dump_test_arches "addiu-error" [mips_arch_list_all]
+ run_dump_test_arches "break-error" [mips_arch_list_all]
run_dump_test "r5900"
run_dump_test "r5900-full"
run_list_test "ase-errors-4" "-mabi=o64 -march=mips3" "ASE errors (4)"
run_dump_test_arches "la-reloc" [mips_arch_list_matching mips1]
+ run_list_test "dla-warn" "-mabi=32 -march=mips3" \
+ "DLA with 32-bit addresses"
if { $has_newabi } {
run_dump_test_arches "dla-reloc" [mips_arch_list_matching mips3]
+ run_list_test "la-warn" "-mabi=64 -march=mips3" \
+ "LA with 64-bit addresses"
}
# Start with MIPS II to avoid load delay nops.
run_dump_test_arches "ld-reloc" [mips_arch_list_matching mips2]
- run_dump_test_arches "ulw-reloc" [mips_arch_list_matching mips2]
- run_dump_test_arches "ulh-reloc" [mips_arch_list_matching mips2]
+ run_dump_test_arches "ulw-reloc" [mips_arch_list_matching mips2 !mips32r6]
+ run_dump_test_arches "ulh-reloc" [mips_arch_list_matching mips2 !mips32r6]
run_dump_test "l_d-reloc"
run_list_test "bltzal"
run_dump_test_arches "msa" [mips_arch_list_matching mips32r2]
- run_dump_test_arches "msa64" [mips_arch_list_matching mips64r2]
- run_dump_test_arches "msa-relax" [mips_arch_list_matching mips32r2]
+ if { $has_newabi } {
+ run_dump_test_arches "msa64" [mips_arch_list_matching mips64r2]
+ }
+ run_dump_test_arches "msa-relax" [mips_arch_list_matching mips32r2 !mips32r6]
run_dump_test_arches "msa-branch" [mips_arch_list_matching mips32r2]
+
+ run_dump_test_arches "xpa" [mips_arch_list_matching mips32r2 !micromips]
+ run_dump_test_arches "xpa-err" [mips_arch_list_matching mips32r2 !micromips]
+ run_dump_test_arches "xpa-virt-err" \
+ [mips_arch_list_matching mips32r2 !micromips]
+ run_dump_test_arches "r5" "-32" [mips_arch_list_matching mips32r5]
+
+ run_dump_test "pcrel-1"
+ run_dump_test "pcrel-2"
+ run_list_test "pcrel-3" "" "Invalid cross-section PC-relative references"
+ run_dump_test "pcrel-4-32"
+ if $has_newabi {
+ run_dump_test "pcrel-4-n32"
+ run_dump_test "pcrel-4-64"
+ }
+
+ run_dump_test "pcrel-reloc-1"
+ run_dump_test "pcrel-reloc-1-r6"
+ run_dump_test "pcrel-reloc-2"
+ run_dump_test "pcrel-reloc-2-r6"
+ run_dump_test "pcrel-reloc-3"
+ run_dump_test "pcrel-reloc-3-r6"
+ run_dump_test "pcrel-reloc-4"
+ run_dump_test "pcrel-reloc-4-r6"
+ run_dump_test "pcrel-reloc-5"
+ run_dump_test "pcrel-reloc-5-r6"
+ run_dump_test "pcrel-reloc-6"
+ run_list_test "pcrel-reloc-6" "-32 --defsym offset=4" \
+ "MIPS local PC-relative relocations 6b"
+
+ run_dump_test_arches "mips16-pcrel-0" [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-1" [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-2" [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-3" [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-4" [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-5" [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-pic-0" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-pic-1" \
+ [mips_arch_list_matching mips16-64]
+ if $has_newabi {
+ run_dump_test_arches "mips16-pcrel-n32-0" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-n32-1" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-n64-sym32-0" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-n64-sym32-1" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-n64-0" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-n64-1" \
+ [mips_arch_list_matching mips16-64]
+ }
+ run_dump_test_arches "mips16-pcrel-delay-0" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-delay-1" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test "mips16-pcrel-relax-0"
+ run_dump_test "mips16-pcrel-relax-1"
+ run_dump_test "mips16-pcrel-relax-2"
+ run_dump_test "mips16-pcrel-relax-3"
+ run_dump_test_arches "mips16-pcrel-reloc-0" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-reloc-1" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-reloc-2" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-reloc-3" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-reloc-4" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-reloc-5" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-reloc-6" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-reloc-7" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-0" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-addend-1" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-addend-2" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-addend-3" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-addend-4" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-5" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-6" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-7" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-8" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-addend-9" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-pic-8" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-addend-pic-9" \
+ [mips_arch_list_matching mips16-64]
+ if $has_newabi {
+ run_dump_test_arches "mips16-pcrel-addend-n32-8" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-n32-9" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-n64-sym32-8" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-n64-sym32-9" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-n64-8" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-addend-n64-9" \
+ [mips_arch_list_matching mips16-64]
+ }
+ run_dump_test_arches "mips16-pcrel-absolute" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-absolute-1" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-absolute-2" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-3" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-4" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-absolute-5" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-absolute-6" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-7" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-pic-4" \
+ [mips_arch_list_matching mips16-32]
+ run_dump_test_arches "mips16-pcrel-absolute-pic-6" \
+ [mips_arch_list_matching mips16-64]
+ if $has_newabi {
+ run_dump_test_arches "mips16-pcrel-absolute-n32-4" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-n32-6" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-n64-4" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-n64-6" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-4" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-6" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-pic-n32-4" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-pic-n32-6" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-pic-n64-4" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-pic-n64-6" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-4" \
+ [mips_arch_list_matching mips16-64]
+ run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-6" \
+ [mips_arch_list_matching mips16-64]
+ }
+ run_dump_test "mips16-branch-reloc-0"
+ run_dump_test "mips16-branch-reloc-1"
+ run_dump_test "mips16-branch-reloc-2"
+ run_dump_test "mips16-branch-reloc-3"
+ run_dump_test "mips16-branch-addend-0"
+ run_dump_test "mips16-branch-addend-1"
+ run_dump_test "mips16-branch-addend-2"
+ run_dump_test "mips16-branch-addend-3"
+ run_dump_test "mips16-branch-addend-4"
+ run_dump_test "mips16-branch-addend-5"
+ run_dump_test "mips16-branch-absolute"
+ run_dump_test "mips16-branch-absolute-1"
+ run_dump_test "mips16-branch-absolute-2"
+ run_dump_test "mips16-branch-absolute-addend"
+ run_dump_test "mips16-branch-absolute-addend-1"
+ if $has_newabi {
+ run_dump_test "mips16-branch-absolute-n32"
+ run_dump_test "mips16-branch-absolute-n32-1"
+ run_dump_test "mips16-branch-absolute-n32-2"
+ run_dump_test "mips16-branch-absolute-addend-n32"
+ run_dump_test "mips16-branch-absolute-addend-n32-1"
+ run_dump_test "mips16-branch-absolute-n64"
+ run_dump_test "mips16-branch-absolute-n64-1"
+ run_dump_test "mips16-branch-absolute-n64-2"
+ run_dump_test "mips16-branch-absolute-addend-n64"
+ run_dump_test "mips16-branch-absolute-addend-n64-1"
+ }
+ run_dump_test "mips16-absolute-reloc-0"
+ run_dump_test "mips16-absolute-reloc-1"
+ run_dump_test "mips16-absolute-reloc-2"
+ run_dump_test "mips16-absolute-reloc-3"
+
+ run_dump_test_arches "attr-gnu-4-0" "-32" \
+ [mips_arch_list_matching mips1]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-gnu-4-0" "-64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_dump_test_arches "attr-gnu-4-0" "-mfp32 -32" \
+ [mips_arch_list_matching mips1 !mips32r6]
+ run_dump_test_arches "attr-gnu-4-0" "-mfpxx -32" \
+ [mips_arch_list_matching mips2 !r5900]
+ run_dump_test_arches "attr-gnu-4-0" "-mfp64 -32" \
+ [mips_arch_list_matching mips32r2]
+ run_dump_test_arches "attr-gnu-4-0" "-mfp64 -mno-odd-spreg -32" \
+ [mips_arch_list_matching mips32r2]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-gnu-4-0" "-mfp64 -64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_dump_test_arches "attr-gnu-4-0" "-msingle-float -32" \
+ [mips_arch_list_matching mips1]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-gnu-4-0" "-msingle-float -64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_dump_test_arches "attr-gnu-4-0" "-msoft-float -32" \
+ [mips_arch_list_matching mips1]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-gnu-4-0" "-msoft-float -64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_dump_test_arches "attr-none-double" "-32" \
+ [mips_arch_list_matching mips1 !mips32r6]
+ run_dump_test_arches "r6-attr-none-double" "-32" \
+ [mips_arch_list_matching mips32r6]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-none-double" "-64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_dump_test_arches "attr-none-o32-fpxx" \
+ [mips_arch_list_matching mips2 !r5900]
+ run_dump_test_arches "attr-none-o32-fp64" \
+ [mips_arch_list_matching mips32r2]
+ run_dump_test_arches "attr-none-o32-fp64-nooddspreg" \
+ [mips_arch_list_matching mips32r2]
+ run_dump_test_arches "attr-none-single-float" "-32" \
+ [mips_arch_list_matching mips1]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-none-single-float" "-64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_dump_test_arches "attr-none-soft-float" "-32 -msoft-float" \
+ [mips_arch_list_matching mips1]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-none-soft-float" "-64 -msoft-float" \
+ [mips_arch_list_matching mips3]
+ }
+
+ run_list_test_arches "attr-gnu-4-1-mfp64" \
+ "-32 -mfp64 -mno-odd-spreg" \
+ [mips_arch_list_matching mips32r2]
+ run_list_test_arches "attr-gnu-4-1-mfp64" "-32 -mfp64" \
+ [mips_arch_list_matching mips32r2]
+ if { $has_newabi } {
+ run_list_test_arches "attr-gnu-4-1-mfp32" "-64 -mfp32" \
+ [mips_arch_list_matching mips3 !mips64r6]
+ }
+ run_list_test_arches "attr-gnu-4-1-msingle-float" "-32 -msingle-float" \
+ [mips_arch_list_matching mips1]
+ run_list_test_arches "attr-gnu-4-1-msoft-float" "-32 -msoft-float" \
+ [mips_arch_list_matching mips1]
+ run_dump_test_arches "attr-gnu-4-1" "-32 -mfpxx" \
+ [mips_arch_list_matching mips2 !r5900]
+ run_dump_test_arches "attr-gnu-4-1" "-32 -mfp32" \
+ [mips_arch_list_matching mips1 !mips32r6]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-gnu-4-1" "-64 -mfp64" \
+ [mips_arch_list_matching mips3]
+ }
+
+ run_list_test_arches "attr-gnu-4-2-mdouble-float" "-32 -mfp32" \
+ [mips_arch_list_matching mips1 !mips32r6]
+ run_list_test_arches "attr-gnu-4-2-mdouble-float" "-32 -mfpxx" \
+ [mips_arch_list_matching mips2 !r5900]
+ run_list_test_arches "attr-gnu-4-2-mdouble-float" "-32 -mfp64" \
+ [mips_arch_list_matching mips32r2]
+ run_list_test_arches "attr-gnu-4-2-mdouble-float" \
+ "-32 -mfp64 -mno-odd-spreg" \
+ [mips_arch_list_matching mips32r2]
+ if { $has_newabi } {
+ run_list_test_arches "attr-gnu-4-2-mdouble-float" "-64 -mfp64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_list_test_arches "attr-gnu-4-2-msoft-float" "-32 -msoft-float" \
+ [mips_arch_list_matching mips1]
+ run_dump_test_arches "attr-gnu-4-2" "-32" \
+ [mips_arch_list_matching mips1]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-gnu-4-2" "-64" \
+ [mips_arch_list_matching mips3]
+ }
+
+ run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -mfp32" \
+ [mips_arch_list_matching mips1 !mips32r6]
+ run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -mfpxx" \
+ [mips_arch_list_matching mips2 !r5900]
+ run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -mfp64" \
+ [mips_arch_list_matching mips32r2]
+ run_list_test_arches "attr-gnu-4-3-mhard-float" \
+ "-32 -mfp64 -mno-odd-spreg" \
+ [mips_arch_list_matching mips32r2]
+ if { $has_newabi } {
+ run_list_test_arches "attr-gnu-4-3-mhard-float" "-64 -mfp64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_list_test_arches "attr-gnu-4-3-mhard-float" "-32 -msingle-float" \
+ [mips_arch_list_matching mips1]
+ run_dump_test_arches "attr-gnu-4-3" "-32" \
+ [mips_arch_list_matching mips1]
+ if { $has_newabi } {
+ run_dump_test_arches "attr-gnu-4-3" "-64" \
+ [mips_arch_list_matching mips3]
+ }
+
+ run_list_test_arches "attr-gnu-4-4" "-32 -mfp32" \
+ [mips_arch_list_matching mips1 !mips32r6]
+ run_list_test_arches "attr-gnu-4-4" "-32 -mfpxx" \
+ [mips_arch_list_matching mips2 !r5900]
+ run_list_test_arches "attr-gnu-4-4" "-32 -mfp64" \
+ [mips_arch_list_matching mips32r2]
+ run_list_test_arches "attr-gnu-4-4" "-32 -mfp64 -mno-odd-spreg" \
+ [mips_arch_list_matching mips32r2]
+ if { $has_newabi } {
+ run_list_test_arches "attr-gnu-4-4" "-64 -mfp64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_list_test_arches "attr-gnu-4-4" "-32 -msingle-float" \
+ [mips_arch_list_matching mips1]
+ run_list_test_arches "attr-gnu-4-4" "-32 -msoft-float" \
+ [mips_arch_list_matching mips1]
+
+ run_list_test_arches "attr-gnu-4-5" "-32 -mfp32" \
+ [mips_arch_list_matching mips1 !mips32r6]
+ run_list_test_arches "attr-gnu-4-5" "-32 -mfp64" \
+ [mips_arch_list_matching mips32r2]
+ run_list_test_arches "attr-gnu-4-5" "-32 -mfp64 -mno-odd-spreg" \
+ [mips_arch_list_matching mips32r2]
+ if { $has_newabi } {
+ run_list_test_arches "attr-gnu-4-5-64" "-64 -mfp64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_list_test_arches "attr-gnu-4-5-msingle-float" "-32 -msingle-float" \
+ [mips_arch_list_matching mips1]
+ run_list_test_arches "attr-gnu-4-5-msoft-float" "-32 -msoft-float" \
+ [mips_arch_list_matching mips1]
+ run_dump_test_arches "attr-gnu-4-5" \
+ [mips_arch_list_matching mips2 !r5900]
+
+ run_list_test_arches "attr-gnu-4-6" "-32 -mfp32" \
+ [mips_arch_list_matching mips1 !mips32r6]
+ run_list_test_arches "attr-gnu-4-6-noodd" "-32 -mfp64 -mno-odd-spreg" \
+ [mips_arch_list_matching mips32r2]
+ if { $has_newabi } {
+ run_list_test_arches "attr-gnu-4-6-64" "-64 -mfp64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_list_test_arches "attr-gnu-4-6-msingle-float" "-32 -msingle-float" \
+ [mips_arch_list_matching mips1]
+ run_list_test_arches "attr-gnu-4-6-msoft-float" "-32 -msoft-float" \
+ [mips_arch_list_matching mips1]
+ run_list_test_arches "attr-gnu-4-6" "-32 -mfpxx" \
+ [mips_arch_list_matching mips2 !r5900]
+ run_dump_test_arches "attr-gnu-4-6" "-32 -mfp64" \
+ [mips_arch_list_matching mips32r2]
+
+ run_list_test_arches "attr-gnu-4-7" "-32 -mfp32" \
+ [mips_arch_list_matching mips1 !mips32r6]
+ run_list_test_arches "attr-gnu-4-7-odd" "-32 -mfp64" \
+ [mips_arch_list_matching mips32r2]
+ if { $has_newabi } {
+ run_list_test_arches "attr-gnu-4-7-64" "-64 -mfp64" \
+ [mips_arch_list_matching mips3]
+ }
+ run_list_test_arches "attr-gnu-4-7-msingle-float" "-32 -msingle-float" \
+ [mips_arch_list_matching mips1]
+ run_list_test_arches "attr-gnu-4-7-msoft-float" "-32 -msoft-float" \
+ [mips_arch_list_matching mips1]
+ run_list_test_arches "attr-gnu-4-7" "-32 -mfpxx" \
+ [mips_arch_list_matching mips2 !r5900]
+ run_dump_test_arches "attr-gnu-4-7" "-32 -mfp64 -mno-odd-spreg" \
+ [mips_arch_list_matching mips32r2]
+
+ run_dump_test "attr-gnu-abi-fp-1"
+ run_dump_test "attr-gnu-abi-msa-1"
+
+ run_dump_test "module-override"
+ run_dump_test "module-defer-warn1"
+ run_list_test "module-defer-warn2" "-32"
+
+ foreach testopt [list -mfp32 -mfpxx -mfp64 "-mfp64-noodd" \
+ -msingle-float -msoft-float] {
+ foreach cmdopt [list -mfp32 -mfpxx -mfp64 "-mfp64 -mno-odd-spreg" \
+ -msingle-float -msoft-float] {
+ run_dump_test "module${testopt}" \
+ [list [list as $cmdopt] [list name ($cmdopt)]]
+ }
+ }
+
+ run_dump_test "module-set-mfpxx"
+ run_list_test_arches "fpxx-oddfpreg" "-32 -mfpxx" \
+ [mips_arch_list_matching mips2 !singlefloat]
+ run_list_test_arches "fpxx-oddfpreg" "-32 -mfpxx -mno-odd-spreg" \
+ [mips_arch_list_matching mips2 !singlefloat]
+ run_dump_test_arches "fpxx-oddfpreg" \
+ [mips_arch_list_matching oddspreg]
+ run_dump_test_arches "odd-spreg" "-mfp32" [mips_arch_list_matching oddspreg]
+ run_dump_test_arches "odd-spreg" "-mfpxx" [mips_arch_list_matching oddspreg]
+ run_dump_test_arches "odd-spreg" "-mfp64" [mips_arch_list_matching mips32r2]
+ run_dump_test_arches "no-odd-spreg" "-mfp32" [mips_arch_list_matching mips1 \
+ !mips32r6]
+ run_dump_test_arches "no-odd-spreg" "-mfpxx" [mips_arch_list_matching mips2 !r5900]
+ run_dump_test_arches "no-odd-spreg" "-mfp64" [mips_arch_list_matching mips32r2]
+ run_dump_test "module-check"
+ run_list_test "module-check-warn" "-32"
+
+ run_dump_test "li-d"
+
+ run_dump_test "option-pic-1"
+ run_list_test "option-pic-2" "" \
+ "MIPS invalid PIC option"
+ run_list_test "option-pic-vxworks-1" "-mvxworks-pic" \
+ "MIPS invalid PIC option in VxWorks PIC"
+ run_list_test "option-pic-vxworks-2" "-mvxworks-pic" \
+ "MIPS invalid switch to SVR4 PIC from VxWorks PIC"
+ run_dump_test "option-pic-relax-0"
+ run_dump_test "option-pic-relax-1"
+ run_dump_test "option-pic-relax-2"
+ run_dump_test "option-pic-relax-3"
+ run_dump_test "option-pic-relax-3a"
+ run_dump_test "option-pic-relax-4"
+ run_dump_test "option-pic-relax-5"
+
+ run_dump_test_arches "isa-override-1" "" [mips_arch_list_matching mips1]
+ run_dump_test_arches "isa-override-2" "" [mips_arch_list_matching mips1]
+
+ run_dump_test "debug-label-end-1"
+ run_dump_test "debug-label-end-2"
+ run_dump_test "debug-label-end-3"
+
+ run_dump_test "org-1"
+ run_dump_test "org-2"
+ run_dump_test "org-3"
+ run_dump_test "org-4"
+ run_dump_test "org-5"
+ run_dump_test "org-6"
+ run_dump_test "org-7"
+ run_dump_test "org-8"
+ run_dump_test "org-9"
+ run_dump_test "org-10"
+ run_dump_test "org-11"
+ run_dump_test "org-12"
+
+ run_dump_test_arches "r6" [mips_arch_list_matching mips32r6]
+ if $has_newabi {
+ run_dump_test_arches "r6-n32" [mips_arch_list_matching mips64r6]
+ run_dump_test_arches "r6-n64" [mips_arch_list_matching mips64r6]
+ run_dump_test_arches "r6-64-n32" [mips_arch_list_matching mips64r6]
+ run_dump_test_arches "r6-64-n64" [mips_arch_list_matching mips64r6]
+ run_list_test_arches "ldpc-unalign" "-64" [mips_arch_list_matching mips64r6]
+ }
+ run_list_test_arches "r6-removed" "-32" [mips_arch_list_matching mips32r6]
+ run_list_test_arches "r6-64-removed" [mips_arch_list_matching mips64r6]
+
+ run_list_test_arches "r6-branch-constraints" "-32" \
+ [mips_arch_list_matching mips32r6]
}