X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Ftestsuite%2Fgas%2Fmips%2Fmips.exp;h=793505fea3c7cbb91331f254a268398b85319ba9;hb=f5b2fd523f8f180e11f77b84a107279c562672cd;hp=7ccbed5ce548d2be64feb04385f47b67335e6a21;hpb=263b257428741e10dc4a127cc46c57379307f421;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 7ccbed5ce5..793505fea3 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2014 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 @@ -86,6 +86,10 @@ # 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. # @@ -320,9 +324,21 @@ proc run_dump_test_arch { name opts 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}.d"] } { @@ -362,9 +378,34 @@ proc run_dump_test_arches { name args } { # 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]] \ @@ -424,6 +465,10 @@ 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-*-* } @@ -439,10 +484,26 @@ mips_arch_create mips64r5 64 mips64r3 { mips32r5 ror } \ { -march=mips64r5 -mtune=mips64r5 } \ { -mmips:isa64r5 } \ { mipsisa64r5-*-* mipsisa64r5el-*-* } -mips_arch_create mips16 32 {} {} \ - { -march=mips1 -mips16 } { -mmips:16 } +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 } \ @@ -452,23 +513,32 @@ mips_arch_create r4000 64 mips3 {} \ { -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 @@ -479,14 +549,22 @@ if { [istarget mips*-*-vxworks*] } { 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 { @@ -513,13 +591,26 @@ if { [istarget mips*-*-vxworks*] } { 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 @@ -533,9 +624,81 @@ if { [istarget mips*-*-vxworks*] } { "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] @@ -546,10 +709,14 @@ if { [istarget mips*-*-vxworks*] } { 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" \ @@ -580,6 +747,14 @@ if { [istarget mips*-*-vxworks*] } { 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" } @@ -669,9 +844,9 @@ if { [istarget mips*-*-vxworks*] } { 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" \ @@ -681,14 +856,16 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -696,29 +873,131 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -737,7 +1016,9 @@ if { [istarget mips*-*-vxworks*] } { 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] @@ -773,26 +1054,31 @@ if { [istarget mips*-*-vxworks*] } { 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] @@ -824,16 +1110,27 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -844,10 +1141,11 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -860,6 +1158,7 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -906,6 +1205,8 @@ if { [istarget mips*-*-vxworks*] } { } 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" @@ -917,20 +1218,29 @@ if { [istarget mips*-*-vxworks*] } { 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] @@ -955,6 +1265,10 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -1050,20 +1364,37 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -1071,11 +1402,26 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -1088,7 +1434,7 @@ if { [istarget mips*-*-vxworks*] } { 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] @@ -1105,13 +1451,19 @@ if { [istarget mips*-*-vxworks*] } { 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] ] ] @@ -1124,6 +1476,7 @@ if { [istarget mips*-*-vxworks*] } { 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" \ @@ -1133,9 +1486,19 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -1150,8 +1513,14 @@ if { [istarget mips*-*-vxworks*] } { 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" @@ -1169,25 +1538,34 @@ if { [istarget mips*-*-vxworks*] } { 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 "r5" [mips_arch_list_matching mips32r5 !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" @@ -1198,6 +1576,456 @@ if { [istarget mips*-*-vxworks*] } { 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] }