From ffc528aed56b9e2c171137da28690a9bb6861b0b Mon Sep 17 00:00:00 2001 From: YunQiang Su Date: Wed, 10 May 2023 15:50:19 +0800 Subject: [PATCH] MIPS: fix r6 testsuites Introduce run_dump_test_o32l run_dump_test_n32l run_dump_test_n64l Which use `-march=from-abi` for pre-R6 testcases, like micromips/mips16e etc. For cases doesn't use run_dump_test_*, we use -mips32r2 for micromips32 -mips1 for mips16-32 -march=from-abi for testcases to o32/n32/n64 both/all. Replace `addi` with `addiu` for some cases for both r6 and pre-R6. Introduce some new testcases for r6 with FPXX/FP64. Introduce new testcase: comdat-reloc-r6. Skip `default` in mips_arch_list_matching if triple is mipsisa*, due to: 1)it will cannot match mipsr6@*.d: since mips32rN/mips64rN will always be used, it won't be a problem. 2)some test think -march=mips64rN will alway true for mipsisa64rN, which is not true now. This patch fix testsuite for all r6-default gnu triples: mipsisa32r6-linux-gnu mipsisa32r6el-linux-gnu mips-img-linux-gnu mipsel-img-linux-gnu mipsisa64r6-linux-gnu mipsisa64r6el-linux-gnu --- binutils/testsuite/binutils-all/mips/mips.exp | 75 ++++- gas/testsuite/gas/mips/align2-el.d | 2 +- gas/testsuite/gas/mips/align2.d | 2 +- gas/testsuite/gas/mips/attr-gnu-abi-fp-1.d | 2 +- gas/testsuite/gas/mips/attr-gnu-abi-fp-5.d | 21 ++ gas/testsuite/gas/mips/attr-gnu-abi-fp-5.s | 1 + gas/testsuite/gas/mips/attr-gnu-abi-fp-6.d | 21 ++ gas/testsuite/gas/mips/attr-gnu-abi-fp-6.s | 1 + gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d | 2 +- .../gas/mips/branch-absolute-addend.d | 2 +- gas/testsuite/gas/mips/branch-absolute.d | 2 +- .../gas/mips/branch-addend-micromips.d | 2 +- gas/testsuite/gas/mips/branch-addend.d | 2 +- gas/testsuite/gas/mips/branch-extern-2.d | 2 +- gas/testsuite/gas/mips/branch-extern-4.d | 2 +- gas/testsuite/gas/mips/branch-local-1.d | 2 +- gas/testsuite/gas/mips/branch-local-2.d | 2 +- gas/testsuite/gas/mips/branch-local-3.d | 2 +- gas/testsuite/gas/mips/branch-local-4.d | 2 +- gas/testsuite/gas/mips/branch-local-5.d | 2 +- gas/testsuite/gas/mips/branch-local-6.d | 2 +- gas/testsuite/gas/mips/branch-local-7.d | 2 +- .../gas/mips/branch-local-ignore-2.d | 2 +- .../gas/mips/branch-local-ignore-3.d | 2 +- .../gas/mips/branch-local-ignore-5.d | 2 +- .../gas/mips/branch-local-ignore-6.d | 2 +- gas/testsuite/gas/mips/branch-section-1.d | 2 +- gas/testsuite/gas/mips/branch-section-2.d | 2 +- gas/testsuite/gas/mips/branch-section-3.d | 2 +- gas/testsuite/gas/mips/branch-section-4.d | 2 +- gas/testsuite/gas/mips/branch-weak-1.d | 2 +- gas/testsuite/gas/mips/branch-weak-2.d | 2 +- gas/testsuite/gas/mips/branch-weak-3.d | 2 +- gas/testsuite/gas/mips/branch-weak-4.d | 2 +- gas/testsuite/gas/mips/branch-weak-5.d | 2 +- gas/testsuite/gas/mips/branch-weak-6.d | 2 +- gas/testsuite/gas/mips/branch-weak-7.d | 2 +- gas/testsuite/gas/mips/comdat-reloc-r6.d | 34 ++ gas/testsuite/gas/mips/comdat-reloc.d | 2 +- gas/testsuite/gas/mips/compact-eh-eb-1.d | 2 +- gas/testsuite/gas/mips/compact-eh-eb-2.d | 2 +- gas/testsuite/gas/mips/compact-eh-eb-3.d | 2 +- gas/testsuite/gas/mips/compact-eh-eb-4.d | 2 +- gas/testsuite/gas/mips/compact-eh-eb-5.d | 2 +- gas/testsuite/gas/mips/compact-eh-eb-6.d | 2 +- gas/testsuite/gas/mips/compact-eh-eb-7.d | 2 +- gas/testsuite/gas/mips/compact-eh-el-1.d | 2 +- gas/testsuite/gas/mips/compact-eh-el-2.d | 2 +- gas/testsuite/gas/mips/compact-eh-el-3.d | 2 +- gas/testsuite/gas/mips/compact-eh-el-4.d | 2 +- gas/testsuite/gas/mips/compact-eh-el-5.d | 2 +- gas/testsuite/gas/mips/compact-eh-el-6.d | 2 +- gas/testsuite/gas/mips/compact-eh-el-7.d | 2 +- gas/testsuite/gas/mips/elf-rel.d | 12 +- gas/testsuite/gas/mips/elf-rel.s | 36 +- gas/testsuite/gas/mips/elf-rel6.d | 2 +- gas/testsuite/gas/mips/elf_ase_micromips-2.d | 2 +- gas/testsuite/gas/mips/elf_ase_micromips.d | 2 +- gas/testsuite/gas/mips/elf_ase_mips16-2.d | 2 +- gas/testsuite/gas/mips/elf_ase_mips16.d | 2 +- gas/testsuite/gas/mips/elfel-rel.d | 12 +- gas/testsuite/gas/mips/insn-isa-mode.d | 2 +- gas/testsuite/gas/mips/insn-opts.d | 1 + gas/testsuite/gas/mips/jalx-addend.d | 2 +- gas/testsuite/gas/mips/jalx-imm.d | 2 +- gas/testsuite/gas/mips/jalx-local.d | 2 +- gas/testsuite/gas/mips/loongson-2f-3.d | 2 +- gas/testsuite/gas/mips/micromips-b16.d | 2 +- .../mips/micromips-branch-absolute-addend.d | 2 +- .../gas/mips/micromips-branch-absolute.d | 2 +- .../gas/mips/micromips-warn-branch-delay-1.d | 2 +- .../gas/mips/micromips-warn-branch-delay.d | 2 +- gas/testsuite/gas/mips/mips-jalx-2.d | 2 +- gas/testsuite/gas/mips/mips.exp | 58 ++-- .../gas/mips/mips16-absolute-reloc-0.d | 2 +- .../gas/mips/mips16-absolute-reloc-2.d | 2 +- .../gas/mips/mips16-branch-absolute-1.d | 2 +- .../gas/mips/mips16-branch-absolute-2.d | 2 +- .../mips/mips16-branch-absolute-addend-1.d | 2 +- .../gas/mips/mips16-branch-absolute-addend.d | 2 +- .../gas/mips/mips16-branch-absolute.d | 2 +- .../gas/mips/mips16-branch-addend-0.d | 2 +- .../gas/mips/mips16-branch-addend-1.d | 2 +- .../gas/mips/mips16-branch-addend-2.d | 2 +- .../gas/mips/mips16-branch-addend-3.d | 2 +- .../gas/mips/mips16-branch-addend-4.d | 2 +- .../gas/mips/mips16-branch-addend-5.d | 2 +- .../gas/mips/mips16-branch-reloc-0.d | 2 +- .../gas/mips/mips16-branch-reloc-1.d | 2 +- .../gas/mips/mips16-branch-reloc-2.d | 2 +- .../gas/mips/mips16-branch-reloc-3.d | 2 +- .../gas/mips/mips16-branch-reloc-4.d | 2 +- .../gas/mips/mips16-branch-reloc-5.d | 2 +- .../gas/mips/mips16-branch-unextended-1.d | 2 +- .../gas/mips/mips16-branch-unextended-2.d | 2 +- gas/testsuite/gas/mips/mips16-dwarf2.d | 2 +- gas/testsuite/gas/mips/mips16-e.d | 2 +- gas/testsuite/gas/mips/mips16-extend.d | 2 +- gas/testsuite/gas/mips/mips16-f.d | 2 +- gas/testsuite/gas/mips/mips16-hilo.d | 2 +- .../gas/mips/mips16-insn-length-noargs.d | 2 +- gas/testsuite/gas/mips/mips16-jal-e.d | 2 +- gas/testsuite/gas/mips/mips16-jal-t.d | 2 +- gas/testsuite/gas/mips/mips16-pcrel-relax-0.d | 2 +- gas/testsuite/gas/mips/mips16-pcrel-relax-1.d | 2 +- gas/testsuite/gas/mips/mips16-pcrel-relax-2.d | 2 +- gas/testsuite/gas/mips/mips16-pcrel-relax-3.d | 2 +- gas/testsuite/gas/mips/mips16-vis-1.d | 1 + gas/testsuite/gas/mips/mipsel16-e.d | 2 +- gas/testsuite/gas/mips/mipsel16-f.d | 2 +- gas/testsuite/gas/mips/module-mfp32.d | 2 +- gas/testsuite/gas/mips/module-mfp64r6-noodd.d | 21 ++ gas/testsuite/gas/mips/module-mfp64r6.d | 21 ++ .../gas/mips/module-msoft-float-r6.d | 20 ++ .../gas/mips/module-msoft-float-r6.s | 3 + gas/testsuite/gas/mips/module-msoft-float.d | 2 +- gas/testsuite/gas/mips/nan-2008-3.d | 1 + gas/testsuite/gas/mips/nan-legacy-1.d | 1 + gas/testsuite/gas/mips/nan-legacy-2.d | 2 +- gas/testsuite/gas/mips/nan-legacy-3.d | 1 + gas/testsuite/gas/mips/nan-legacy-4.d | 2 +- gas/testsuite/gas/mips/nan-legacy-5.d | 1 + gas/testsuite/gas/mips/option-pic-1.d | 2 +- gas/testsuite/gas/mips/option-pic-relax-0.d | 2 +- gas/testsuite/gas/mips/option-pic-relax-1.d | 2 +- gas/testsuite/gas/mips/option-pic-relax-3.d | 4 +- gas/testsuite/gas/mips/option-pic-relax-3a.d | 2 +- gas/testsuite/gas/mips/option-pic-relax-4.d | 2 +- gas/testsuite/gas/mips/option-pic-relax-5.d | 2 +- gas/testsuite/gas/mips/org-1.d | 2 +- gas/testsuite/gas/mips/org-10.d | 2 +- gas/testsuite/gas/mips/org-11.d | 2 +- gas/testsuite/gas/mips/org-12.d | 1 + gas/testsuite/gas/mips/org-2.d | 2 +- gas/testsuite/gas/mips/org-3.d | 1 + gas/testsuite/gas/mips/org-4.d | 2 +- gas/testsuite/gas/mips/org-5.d | 2 +- gas/testsuite/gas/mips/org-6.d | 1 + gas/testsuite/gas/mips/org-7.d | 2 +- gas/testsuite/gas/mips/org-8.d | 2 +- gas/testsuite/gas/mips/org-9.d | 1 + gas/testsuite/gas/mips/pcrel-reloc-1.d | 2 +- gas/testsuite/gas/mips/pcrel-reloc-2.d | 2 +- gas/testsuite/gas/mips/pcrel-reloc-3.d | 2 +- gas/testsuite/gas/mips/pcrel-reloc-4.d | 2 +- gas/testsuite/gas/mips/pcrel-reloc-5.d | 2 +- gas/testsuite/gas/mips/pcrel-reloc-6.d | 2 +- gas/testsuite/gas/mips/set-arch.d | 4 + gas/testsuite/gas/mips/tmips16-e.d | 2 +- gas/testsuite/gas/mips/tmips16-f.d | 2 +- gas/testsuite/gas/mips/tmipsel16-e.d | 2 +- gas/testsuite/gas/mips/tmipsel16-f.d | 2 +- .../gas/mips/unaligned-branch-r6-1.s | 1 + .../gas/mips/unaligned-branch-r6-3.s | 1 + .../gas/mips/unaligned-branch-r6-5.d | 2 +- .../gas/mips/unaligned-jump-mips16-3.d | 2 +- ld/testsuite/ld-mips-elf/attr-gnu-4-01.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-4-11.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-4-40.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-4-41.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-8-00.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-8-01.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-8-02.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-8-10.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-8-11.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-8-20.d | 1 + ld/testsuite/ld-mips-elf/attr-gnu-8-22.d | 1 + ld/testsuite/ld-mips-elf/emit-relocs-1.d | 2 +- ld/testsuite/ld-mips-elf/gp-disp-sym.s | 2 +- ld/testsuite/ld-mips-elf/jalr3.dd | 2 +- ld/testsuite/ld-mips-elf/jalx-1.d | 2 +- ld/testsuite/ld-mips-elf/mips-elf.exp | 316 ++++++++++-------- ld/testsuite/ld-mips-elf/mips16-1.d | 4 +- .../ld-mips-elf/mips16-and-micromips.d | 4 +- .../ld-mips-elf/mode-change-error-1.d | 4 +- ld/testsuite/ld-mips-elf/n64-plt-1.dd | 2 +- ld/testsuite/ld-mips-elf/n64-plt-4.dd | 2 +- ld/testsuite/ld-mips-elf/nan-legacy.d | 1 + ld/testsuite/ld-mips-elf/nan-mixed-1.d | 1 + ld/testsuite/ld-mips-elf/nan-mixed-2.d | 1 + ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d | 2 +- ld/testsuite/ld-mips-elf/reloc-3.d | 2 +- 182 files changed, 621 insertions(+), 349 deletions(-) create mode 100644 gas/testsuite/gas/mips/attr-gnu-abi-fp-5.d create mode 100644 gas/testsuite/gas/mips/attr-gnu-abi-fp-5.s create mode 100644 gas/testsuite/gas/mips/attr-gnu-abi-fp-6.d create mode 100644 gas/testsuite/gas/mips/attr-gnu-abi-fp-6.s create mode 100644 gas/testsuite/gas/mips/comdat-reloc-r6.d create mode 100644 gas/testsuite/gas/mips/module-mfp64r6-noodd.d create mode 100644 gas/testsuite/gas/mips/module-mfp64r6.d create mode 100644 gas/testsuite/gas/mips/module-msoft-float-r6.d create mode 100644 gas/testsuite/gas/mips/module-msoft-float-r6.s diff --git a/binutils/testsuite/binutils-all/mips/mips.exp b/binutils/testsuite/binutils-all/mips/mips.exp index 91bf3274592..3b7bc29056a 100644 --- a/binutils/testsuite/binutils-all/mips/mips.exp +++ b/binutils/testsuite/binutils-all/mips/mips.exp @@ -52,7 +52,8 @@ proc run_dump_test_abi { abi name args } { set ldflags $abi_ldflags($abi) set args [lreplace $args 0 0] } - if !$has_abi($abi) { + set abi_r [regsub "l$" $abi {}] + if !$has_abi($abi_r) { lappend args {notarget *-*-*} } @@ -74,6 +75,13 @@ proc run_dump_test_abi { abi name args } { proc run_dump_test_o32 { name args } { run_dump_test_abi o32 $name [lindex $args 0] } +proc run_dump_test_o32l { name args } { + if {[istarget *-linux*] || [istarget *-img-elf]} { + run_dump_test_abi o32l $name [lindex $args 0] + } else { + run_dump_test_abi o32 $name [lindex $args 0] + } +} # run_dump_test_n32 NAME ARGS # @@ -82,6 +90,13 @@ proc run_dump_test_o32 { name args } { proc run_dump_test_n32 { name args } { run_dump_test_abi n32 $name [lindex $args 0] } +proc run_dump_test_n32l { name args } { + if {[istarget *-linux*] || [istarget *-img-elf]} { + run_dump_test_abi n32l $name [lindex $args 0] + } else { + run_dump_test_abi n32 $name [lindex $args 0] + } +} # run_dump_test_n64 NAME ARGS # @@ -90,6 +105,13 @@ proc run_dump_test_n32 { name args } { proc run_dump_test_n64 { name args } { run_dump_test_abi n64 $name [lindex $args 0] } +proc run_dump_test_n64l { name args } { + if {[istarget *-linux*] || [istarget *-img-elf]} { + run_dump_test_abi n64l $name [lindex $args 0] + } else { + run_dump_test_abi n64 $name [lindex $args 0] + } +} set has_abi(o32) [expr ![istarget *-*-openbsd*] \ && ![istarget mips64*el-ps2-elf*]] @@ -109,49 +131,68 @@ set has_abi(n64) [expr [istarget *-*-freebsd*] \ || [istarget *-*-openbsd*]] # Set defaults. +# ABI with l tail means legacy, aka pre-R6. +# Please use them, if the test only suite for pre-R6, +# such as mips16/micromips tests. set abi_asflags(o32) "" +set abi_asflags(o32l) "" set abi_asflags(n32) "" +set abi_asflags(n32l) "" set abi_asflags(n64) "" +set abi_asflags(n64l) "" set abi_asflags(eabi) "" set abi_ldflags(o32) "" +set abi_ldflags(o32l) "" set abi_ldflags(n32) "" +set abi_ldflags(n32l) "" set abi_ldflags(n64) "" +set abi_ldflags(n64l) "" set abi_ldflags(eabi) "" # Override as needed. if {[istarget *-*-openbsd*] } { set irixemul 0 -} elseif { [istarget mips64*-*-linux*] } { +} elseif { [istarget mips*64*-*-linux*] } { + set abi_asflags(o32) -32 + set abi_asflags(o32l) "-32 -march=from-abi" + set abi_asflags(n32) "" + set abi_asflags(n32l) "-n32 -march=from-abi" + set abi_asflags(n64) "-64" + set abi_asflags(n64l) "-march=from-abi -64" if [istarget *el-*-*] { - set abi_asflags(o32) -32 set abi_ldflags(o32) -melf32ltsmip - set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(o32l) -melf32ltsmip set abi_ldflags(n64) -melf64ltsmip + set abi_ldflags(n64l) -melf64ltsmip } else { - set abi_asflags(o32) -32 set abi_ldflags(o32) -melf32btsmip - set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(o32l) -melf32btsmip set abi_ldflags(n64) -melf64btsmip + set abi_ldflags(n64l) -melf64btsmip } set irixemul 0 -} elseif {[istarget *-*-linux*] } { +} elseif {[istarget *-*-linux*] || [istarget *-img-elf] } { + set abi_asflags(o32) "" + set abi_asflags(o32l) "-march=from-abi" + set abi_asflags(n32) "-n32" + set abi_asflags(n32l) "-n32 -march=from-abi" + set abi_asflags(n64) "-64" + set abi_asflags(n64l) "-64 -march=from-abi" if [istarget *el-*-*] { - set abi_asflags(n32) "-march=from-abi -n32" set abi_ldflags(n32) -melf32ltsmipn32 - set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(n32l) -melf32ltsmipn32 set abi_ldflags(n64) -melf64ltsmip + set abi_ldflags(n64l) -melf64ltsmip } else { - set abi_asflags(n32) "-march=from-abi -n32" set abi_ldflags(n32) -melf32btsmipn32 - set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(n32l) -melf32btsmipn32 set abi_ldflags(n64) -melf64btsmip + set abi_ldflags(n64l) -melf64btsmip } set irixemul 0 -} elseif {[istarget *-img-elf*] \ - || [istarget *-mti-elf*] \ +} elseif {[istarget *-mti-elf*] \ || [istarget *-sde-elf*] \ || [istarget *-*-netbsd*] \ - || [istarget *-*-linux*] \ || [istarget *-*-sysv4*] } { if [istarget *el-*-*] { set abi_asflags(o32) -32 @@ -229,11 +270,13 @@ run_dump_test "mips-xpa-virt-3" run_dump_test "mips-xpa-virt-4" run_dump_test_o32 "mixed-mips16" noarch run_dump_test_o32 "mixed-micromips" noarch -run_dump_test "mixed-mips16-micromips" +run_dump_test_o32l "mixed-mips16-micromips" +run_dump_test_n32l "mixed-mips16-micromips" +run_dump_test_n64l "mixed-mips16-micromips" run_dump_test_o32 "mips16-undecoded" noarch run_dump_test_o32 "mips16e2-undecoded" noarch run_dump_test_o32 "mips16-pcrel" -run_dump_test_o32 "mips16-extend-noinsn" +run_dump_test_o32l "mips16-extend-noinsn" run_dump_test_o32 "mips16-extend-insn" noarch run_dump_test_o32 "mips16e2-extend-insn" noarch run_dump_test_o32 "mips16-alias" noarch diff --git a/gas/testsuite/gas/mips/align2-el.d b/gas/testsuite/gas/mips/align2-el.d index 1f50774f4d0..8072c528282 100644 --- a/gas/testsuite/gas/mips/align2-el.d +++ b/gas/testsuite/gas/mips/align2-el.d @@ -1,5 +1,5 @@ # source: align2.s -# as: -EL +# as: -EL -march=from-abi # objdump: -dr .* file format .* diff --git a/gas/testsuite/gas/mips/align2.d b/gas/testsuite/gas/mips/align2.d index 7090ceeb5c6..d14fa2ce7c4 100644 --- a/gas/testsuite/gas/mips/align2.d +++ b/gas/testsuite/gas/mips/align2.d @@ -1,4 +1,4 @@ -# as: -EB +# as: -EB -march=from-abi # objdump: -dr .* file format .* diff --git a/gas/testsuite/gas/mips/attr-gnu-abi-fp-1.d b/gas/testsuite/gas/mips/attr-gnu-abi-fp-1.d index 17218d31a11..9009c704bb6 100644 --- a/gas/testsuite/gas/mips/attr-gnu-abi-fp-1.d +++ b/gas/testsuite/gas/mips/attr-gnu-abi-fp-1.d @@ -1,4 +1,4 @@ -#as: -32 +#as: -32 -mips1 #source: attr-gnu-abi-fp-1.s #readelf: -A #name: MIPS gnu_attribute Tag_GNU_MIPS_ABI_FP,1 diff --git a/gas/testsuite/gas/mips/attr-gnu-abi-fp-5.d b/gas/testsuite/gas/mips/attr-gnu-abi-fp-5.d new file mode 100644 index 00000000000..2550241b925 --- /dev/null +++ b/gas/testsuite/gas/mips/attr-gnu-abi-fp-5.d @@ -0,0 +1,21 @@ +#as: -32 -mips2 -mfpxx +#source: attr-gnu-abi-fp-5.s +#readelf: -A +#name: MIPS gnu_attribute Tag_GNU_MIPS_ABI_FP,5 + +Attribute Section: gnu +File Attributes + Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, Any FPU\) + +MIPS ABI Flags Version: 0 + +ISA: MIPS.* +GPR size: 32 +CPR1 size: 32 +CPR2 size: 0 +FP ABI: Hard float \(32-bit CPU, Any FPU\) +ISA Extension: .* +ASEs: + None +FLAGS 1: 0000000. +FLAGS 2: 00000000 diff --git a/gas/testsuite/gas/mips/attr-gnu-abi-fp-5.s b/gas/testsuite/gas/mips/attr-gnu-abi-fp-5.s new file mode 100644 index 00000000000..8d861309768 --- /dev/null +++ b/gas/testsuite/gas/mips/attr-gnu-abi-fp-5.s @@ -0,0 +1 @@ +.gnu_attribute Tag_GNU_MIPS_ABI_FP,5 diff --git a/gas/testsuite/gas/mips/attr-gnu-abi-fp-6.d b/gas/testsuite/gas/mips/attr-gnu-abi-fp-6.d new file mode 100644 index 00000000000..ecb6fcd42a8 --- /dev/null +++ b/gas/testsuite/gas/mips/attr-gnu-abi-fp-6.d @@ -0,0 +1,21 @@ +#as: -32 -mips32r2 -mfp64 +#source: attr-gnu-abi-fp-6.s +#readelf: -A +#name: MIPS gnu_attribute Tag_GNU_MIPS_ABI_FP,6 + +Attribute Section: gnu +File Attributes + Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, 64-bit FPU\) + +MIPS ABI Flags Version: 0 + +ISA: MIPS.* +GPR size: 32 +CPR1 size: 64 +CPR2 size: 0 +FP ABI: Hard float \(32-bit CPU, 64-bit FPU\) +ISA Extension: .* +ASEs: + None +FLAGS 1: 0000000. +FLAGS 2: 00000000 diff --git a/gas/testsuite/gas/mips/attr-gnu-abi-fp-6.s b/gas/testsuite/gas/mips/attr-gnu-abi-fp-6.s new file mode 100644 index 00000000000..d0eefe4e50a --- /dev/null +++ b/gas/testsuite/gas/mips/attr-gnu-abi-fp-6.s @@ -0,0 +1 @@ +.gnu_attribute Tag_GNU_MIPS_ABI_FP,6 diff --git a/gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d b/gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d index 97fc8bf3f46..a4868af9c86 100644 --- a/gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d +++ b/gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d @@ -4,7 +4,7 @@ Attribute Section: gnu File Attributes - Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\) + Tag_GNU_MIPS_ABI_FP: Hard float \(.*\) Tag_GNU_MIPS_ABI_MSA: 128-bit MSA #... diff --git a/gas/testsuite/gas/mips/branch-absolute-addend.d b/gas/testsuite/gas/mips/branch-absolute-addend.d index df868468ff1..8760db07fe6 100644 --- a/gas/testsuite/gas/mips/branch-absolute-addend.d +++ b/gas/testsuite/gas/mips/branch-absolute-addend.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS branch to absolute expression with addend -#as: -32 +#as: -32 -mips2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-absolute.d b/gas/testsuite/gas/mips/branch-absolute.d index 816c139e778..6199f17af5c 100644 --- a/gas/testsuite/gas/mips/branch-absolute.d +++ b/gas/testsuite/gas/mips/branch-absolute.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS branch to absolute expression -#as: -32 +#as: -32 -mips2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-addend-micromips.d b/gas/testsuite/gas/mips/branch-addend-micromips.d index 345d9df9bfd..9b3313fe456 100644 --- a/gas/testsuite/gas/mips/branch-addend-micromips.d +++ b/gas/testsuite/gas/mips/branch-addend-micromips.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS BAL addend encoding -#as: -32 +#as: -32 -mips32r2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-addend.d b/gas/testsuite/gas/mips/branch-addend.d index ecee734abd4..4f12717ddfb 100644 --- a/gas/testsuite/gas/mips/branch-addend.d +++ b/gas/testsuite/gas/mips/branch-addend.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS BAL addend encoding -#as: -32 +#as: -32 -mips32r2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-extern-2.d b/gas/testsuite/gas/mips/branch-extern-2.d index 4c0078fb04b..e12d3cabb50 100644 --- a/gas/testsuite/gas/mips/branch-extern-2.d +++ b/gas/testsuite/gas/mips/branch-extern-2.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS branch to an external symbol -#as: -32 -KPIC -mmicromips +#as: -32 -KPIC -mips32r2 -mmicromips #source: branch-extern.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-extern-4.d b/gas/testsuite/gas/mips/branch-extern-4.d index 7aa73566e07..f76278dae44 100644 --- a/gas/testsuite/gas/mips/branch-extern-4.d +++ b/gas/testsuite/gas/mips/branch-extern-4.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS relaxed branch to an external symbol -#as: -32 -KPIC -mmicromips --relax-branch +#as: -32 -KPIC -mips32r2 -mmicromips --relax-branch #source: branch-extern.s #warning_output: branch-extern.l diff --git a/gas/testsuite/gas/mips/branch-local-1.d b/gas/testsuite/gas/mips/branch-local-1.d index f85bb8da5ff..f4d2f955654 100644 --- a/gas/testsuite/gas/mips/branch-local-1.d +++ b/gas/testsuite/gas/mips/branch-local-1.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS branch local symbol relocation 1 -#as: -32 +#as: -32 -mips32r2 #source: branch-local-1.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-local-2.d b/gas/testsuite/gas/mips/branch-local-2.d index e11569610a6..b8d34f72f66 100644 --- a/gas/testsuite/gas/mips/branch-local-2.d +++ b/gas/testsuite/gas/mips/branch-local-2.d @@ -1,3 +1,3 @@ #name: MIPS branch local symbol relocation 2 -#as: -32 +#as: -32 -mips32r2 #error_output: branch-local-2.l diff --git a/gas/testsuite/gas/mips/branch-local-3.d b/gas/testsuite/gas/mips/branch-local-3.d index 4dc3a59059b..06f9a769f01 100644 --- a/gas/testsuite/gas/mips/branch-local-3.d +++ b/gas/testsuite/gas/mips/branch-local-3.d @@ -1,3 +1,3 @@ #name: MIPS branch local symbol relocation 3 -#as: -32 +#as: -32 -mips32r2 #error_output: branch-local-3.l diff --git a/gas/testsuite/gas/mips/branch-local-4.d b/gas/testsuite/gas/mips/branch-local-4.d index cf5f8b3cc3f..7675dacb737 100644 --- a/gas/testsuite/gas/mips/branch-local-4.d +++ b/gas/testsuite/gas/mips/branch-local-4.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS branch local symbol relocation 4 -#as: -32 +#as: -32 -mips32r2 #source: branch-local-4.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-local-5.d b/gas/testsuite/gas/mips/branch-local-5.d index 252defb8917..1c43885f83e 100644 --- a/gas/testsuite/gas/mips/branch-local-5.d +++ b/gas/testsuite/gas/mips/branch-local-5.d @@ -1,3 +1,3 @@ #name: MIPS branch local symbol relocation 5 -#as: -32 +#as: -32 -mips1 #error_output: branch-local-5.l diff --git a/gas/testsuite/gas/mips/branch-local-6.d b/gas/testsuite/gas/mips/branch-local-6.d index dd7c9809871..276ed3eddc6 100644 --- a/gas/testsuite/gas/mips/branch-local-6.d +++ b/gas/testsuite/gas/mips/branch-local-6.d @@ -1,3 +1,3 @@ #name: MIPS branch local symbol relocation 6 -#as: -32 +#as: -32 -mips32r2 #error_output: branch-local-6.l diff --git a/gas/testsuite/gas/mips/branch-local-7.d b/gas/testsuite/gas/mips/branch-local-7.d index 0cc2a1140bb..d490a7bfebe 100644 --- a/gas/testsuite/gas/mips/branch-local-7.d +++ b/gas/testsuite/gas/mips/branch-local-7.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS branch local symbol relocation 7 -#as: -32 +#as: -32 -mips32r2 #source: branch-local-7.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-local-ignore-2.d b/gas/testsuite/gas/mips/branch-local-ignore-2.d index ddac741f65d..6674a2d4043 100644 --- a/gas/testsuite/gas/mips/branch-local-ignore-2.d +++ b/gas/testsuite/gas/mips/branch-local-ignore-2.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS branch local symbol relocation 2 (ignore branch ISA) -#as: -32 -mignore-branch-isa +#as: -32 -mips32r2 -mignore-branch-isa #source: branch-local-2.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-local-ignore-3.d b/gas/testsuite/gas/mips/branch-local-ignore-3.d index 918a2cedfda..433fc414a14 100644 --- a/gas/testsuite/gas/mips/branch-local-ignore-3.d +++ b/gas/testsuite/gas/mips/branch-local-ignore-3.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32r6 #name: MIPS branch local symbol relocation 3 (ignore branch ISA) -#as: -32 -mignore-branch-isa +#as: -32 -mips32r2 -mignore-branch-isa #source: branch-local-3.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-local-ignore-5.d b/gas/testsuite/gas/mips/branch-local-ignore-5.d index 94ffe196900..3102ee5c6aa 100644 --- a/gas/testsuite/gas/mips/branch-local-ignore-5.d +++ b/gas/testsuite/gas/mips/branch-local-ignore-5.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS branch local symbol relocation 5 (ignore branch ISA) -#as: -32 -mignore-branch-isa +#as: -32 -mips1 -mignore-branch-isa #source: branch-local-5.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-local-ignore-6.d b/gas/testsuite/gas/mips/branch-local-ignore-6.d index 156568822e3..71d110d1856 100644 --- a/gas/testsuite/gas/mips/branch-local-ignore-6.d +++ b/gas/testsuite/gas/mips/branch-local-ignore-6.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS branch local symbol relocation 6 (ignore branch ISA) -#as: -32 -mignore-branch-isa +#as: -32 -mips32r2 -mignore-branch-isa #source: branch-local-6.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-section-1.d b/gas/testsuite/gas/mips/branch-section-1.d index 7782d0c0754..08c678d27ed 100644 --- a/gas/testsuite/gas/mips/branch-section-1.d +++ b/gas/testsuite/gas/mips/branch-section-1.d @@ -12,6 +12,6 @@ Disassembly of section \.text: \.\.\. Disassembly of section \.init: -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/gas/testsuite/gas/mips/branch-section-2.d b/gas/testsuite/gas/mips/branch-section-2.d index 6009fe5b120..caf092c932a 100644 --- a/gas/testsuite/gas/mips/branch-section-2.d +++ b/gas/testsuite/gas/mips/branch-section-2.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS branch to a different section -#as: -32 -mmicromips +#as: -32 -mips32r2 -mmicromips #source: branch-section.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-section-3.d b/gas/testsuite/gas/mips/branch-section-3.d index b10fcde731d..d9072cbe5ac 100644 --- a/gas/testsuite/gas/mips/branch-section-3.d +++ b/gas/testsuite/gas/mips/branch-section-3.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS relaxed branch to a different section -#as: -32 --relax-branch +#as: -32 -mips32r2 --relax-branch #source: branch-section.s #warning_output: branch-section.l diff --git a/gas/testsuite/gas/mips/branch-section-4.d b/gas/testsuite/gas/mips/branch-section-4.d index b6ad0bba6b2..a831b6d06f0 100644 --- a/gas/testsuite/gas/mips/branch-section-4.d +++ b/gas/testsuite/gas/mips/branch-section-4.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS relaxed branch to a different section -#as: -32 -mmicromips --relax-branch +#as: -32 -mips32r2 -mmicromips --relax-branch #source: branch-section.s #warning_output: branch-section.l diff --git a/gas/testsuite/gas/mips/branch-weak-1.d b/gas/testsuite/gas/mips/branch-weak-1.d index 859a2ca69fb..349b5d96c8d 100644 --- a/gas/testsuite/gas/mips/branch-weak-1.d +++ b/gas/testsuite/gas/mips/branch-weak-1.d @@ -10,6 +10,6 @@ Disassembly of section \.text: [ ]*[0-9a-f]+: R_MIPS_PC16 bar [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/gas/testsuite/gas/mips/branch-weak-2.d b/gas/testsuite/gas/mips/branch-weak-2.d index 61a10e00e6e..a7fbcabb2db 100644 --- a/gas/testsuite/gas/mips/branch-weak-2.d +++ b/gas/testsuite/gas/mips/branch-weak-2.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS branch to a weak symbol -#as: -32 -mmicromips --defsym align=12 +#as: -32 -mips32r2 -mmicromips --defsym align=12 #source: branch-weak.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-weak-3.d b/gas/testsuite/gas/mips/branch-weak-3.d index 8e6e8cfe4fe..11ceade64e0 100644 --- a/gas/testsuite/gas/mips/branch-weak-3.d +++ b/gas/testsuite/gas/mips/branch-weak-3.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS relaxed branch to a weak symbol -#as: -32 --relax-branch --defsym align=12 +#as: -32 -mips1 --relax-branch --defsym align=12 #source: branch-weak.s #warning_output: branch-weak.l diff --git a/gas/testsuite/gas/mips/branch-weak-4.d b/gas/testsuite/gas/mips/branch-weak-4.d index d21e1477b06..8cc1f51ad32 100644 --- a/gas/testsuite/gas/mips/branch-weak-4.d +++ b/gas/testsuite/gas/mips/branch-weak-4.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS relaxed branch to a weak symbol -#as: -32 -mmicromips --relax-branch --defsym align=12 +#as: -32 -mips32r2 -mmicromips --relax-branch --defsym align=12 #source: branch-weak.s #warning_output: branch-weak.l diff --git a/gas/testsuite/gas/mips/branch-weak-5.d b/gas/testsuite/gas/mips/branch-weak-5.d index 13d8bdf13fc..67cd02ba8f5 100644 --- a/gas/testsuite/gas/mips/branch-weak-5.d +++ b/gas/testsuite/gas/mips/branch-weak-5.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS short branch to a weak symbol -#as: -32 -mmicromips --defsym align=4 +#as: -32 -mips32r2 -mmicromips --defsym align=4 #source: branch-weak.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-weak-6.d b/gas/testsuite/gas/mips/branch-weak-6.d index e16b1b89c16..f7076a79cc5 100644 --- a/gas/testsuite/gas/mips/branch-weak-6.d +++ b/gas/testsuite/gas/mips/branch-weak-6.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch to a weak symbol -#as: -32 -mips16 --defsym align=12 +#as: -32 -mips1 -mips16 --defsym align=12 #source: branch-weak.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/branch-weak-7.d b/gas/testsuite/gas/mips/branch-weak-7.d index b291289fbfb..90743d43216 100644 --- a/gas/testsuite/gas/mips/branch-weak-7.d +++ b/gas/testsuite/gas/mips/branch-weak-7.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 short branch to a weak symbol -#as: -32 -mips16 --defsym align=4 +#as: -32 -mips1 -mips16 --defsym align=4 #source: branch-weak.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/comdat-reloc-r6.d b/gas/testsuite/gas/mips/comdat-reloc-r6.d new file mode 100644 index 00000000000..513589e73d3 --- /dev/null +++ b/gas/testsuite/gas/mips/comdat-reloc-r6.d @@ -0,0 +1,34 @@ +#readelf: -gr +#name: MIPS ELF o32 PIC comdat GOT16/LO16 relocation pairing +#as: -32 -mno-pdr -mips32r6 +#source: comdat-reloc.s + +# Make sure the orphan GOT16 relocation is paired with LO16 for a local +# symbol in a comdat section, i.e. rather than this: +# +# 00000014 00000509 R_MIPS_GOT16 00000000 foo +# 00000020 00000506 R_MIPS_LO16 00000000 foo +# 0000001c 00000509 R_MIPS_GOT16 00000000 foo +# +# we have this: +# +# 00000014 00000509 R_MIPS_GOT16 00000000 foo +# 00000024 00000509 R_MIPS_GOT16 00000000 foo +# 0000001c 00000506 R_MIPS_LO16 00000000 foo + +#... +COMDAT group section \[.....\] `\.group' \[bar\] contains .+ sections: + \[Index\] Name + \[.....\] \.text\.foo + \[.....\] \.text\.bar +#... +Relocation section '\.rel\.text\.bar' at offset .+ contains .+ entries: + Offset Info Type Sym\.Value Sym\. Name +00000000 ......05 R_MIPS_HI16 00000000 _gp_disp +00000004 ......06 R_MIPS_LO16 00000000 _gp_disp +0000000c 0000070a R_MIPS_PC16 00000020 \.L1\^B1 +00000014 ......09 R_MIPS_GOT16 00000000 foo +00000024 ......09 R_MIPS_GOT16 00000000 foo +0000001c ......06 R_MIPS_LO16 00000000 foo +00000020 0000080a R_MIPS_PC16 00000018 \.L0\^B1 +#pass diff --git a/gas/testsuite/gas/mips/comdat-reloc.d b/gas/testsuite/gas/mips/comdat-reloc.d index 12d092a5bb1..f9bc12fdac9 100644 --- a/gas/testsuite/gas/mips/comdat-reloc.d +++ b/gas/testsuite/gas/mips/comdat-reloc.d @@ -1,6 +1,6 @@ #readelf: -gr #name: MIPS ELF o32 PIC comdat GOT16/LO16 relocation pairing -#as: -32 -mno-pdr +#as: -32 -mno-pdr -mips1 # Make sure the orphan GOT16 relocation is paired with LO16 for a local # symbol in a comdat section, i.e. rather than this: diff --git a/gas/testsuite/gas/mips/compact-eh-eb-1.d b/gas/testsuite/gas/mips/compact-eh-eb-1.d index c4121629f46..de88882296d 100644 --- a/gas/testsuite/gas/mips/compact-eh-eb-1.d +++ b/gas/testsuite/gas/mips/compact-eh-eb-1.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EB #1 with personality ID and FDE data #source: compact-eh-1.s -#as: -EB -mno-pdr +#as: -march=from-abi -EB -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-eb-2.d b/gas/testsuite/gas/mips/compact-eh-eb-2.d index e0885864bc5..e8d9f489d92 100644 --- a/gas/testsuite/gas/mips/compact-eh-eb-2.d +++ b/gas/testsuite/gas/mips/compact-eh-eb-2.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EB #2 with personality routine and FDE data #source: compact-eh-2.s -#as: -EB -mno-pdr +#as: -march=from-abi -EB -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-eb-3.d b/gas/testsuite/gas/mips/compact-eh-eb-3.d index 2f0e8447fc2..3a5345c79c6 100644 --- a/gas/testsuite/gas/mips/compact-eh-eb-3.d +++ b/gas/testsuite/gas/mips/compact-eh-eb-3.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EB #3 with personality id and large FDE data #source: compact-eh-3.s -#as: -EB -mno-pdr +#as: -march=from-abi -EB -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-eb-4.d b/gas/testsuite/gas/mips/compact-eh-eb-4.d index 4ca4a24bc19..a39ab45455c 100644 --- a/gas/testsuite/gas/mips/compact-eh-eb-4.d +++ b/gas/testsuite/gas/mips/compact-eh-eb-4.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EB #4 with personality id, FDE data and LSDA #source: compact-eh-4.s -#as: -EB -mno-pdr +#as: -march=from-abi -EB -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-eb-5.d b/gas/testsuite/gas/mips/compact-eh-eb-5.d index 298d2831a9d..bc568353605 100644 --- a/gas/testsuite/gas/mips/compact-eh-eb-5.d +++ b/gas/testsuite/gas/mips/compact-eh-eb-5.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EB #5 with personality routine, FDE data and LSDA #source: compact-eh-5.s -#as: -EB -mno-pdr +#as: -march=from-abi -EB -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-eb-6.d b/gas/testsuite/gas/mips/compact-eh-eb-6.d index 3766ecb7432..a3d13c50035 100644 --- a/gas/testsuite/gas/mips/compact-eh-eb-6.d +++ b/gas/testsuite/gas/mips/compact-eh-eb-6.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EB #6 with personality id, LSDA and large FDE data #source: compact-eh-6.s -#as: -EB -mno-pdr +#as: -march=from-abi -EB -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-eb-7.d b/gas/testsuite/gas/mips/compact-eh-eb-7.d index 8c891237fee..82da65ca286 100644 --- a/gas/testsuite/gas/mips/compact-eh-eb-7.d +++ b/gas/testsuite/gas/mips/compact-eh-eb-7.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EB #7 with personality id and fallback FDE #source: compact-eh-7.s -#as: -EB -mno-pdr +#as: -march=from-abi -EB -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-el-1.d b/gas/testsuite/gas/mips/compact-eh-el-1.d index 7046dd4cfde..d88871242aa 100644 --- a/gas/testsuite/gas/mips/compact-eh-el-1.d +++ b/gas/testsuite/gas/mips/compact-eh-el-1.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EL #1 with personality ID and FDE data #source: compact-eh-1.s -#as: -EL -mno-pdr +#as: -march=from-abi -EL -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-el-2.d b/gas/testsuite/gas/mips/compact-eh-el-2.d index 3573670880c..b589122af59 100644 --- a/gas/testsuite/gas/mips/compact-eh-el-2.d +++ b/gas/testsuite/gas/mips/compact-eh-el-2.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EL #2 with personality routine and FDE data #source: compact-eh-2.s -#as: -EL -mno-pdr +#as: -march=from-abi -EL -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-el-3.d b/gas/testsuite/gas/mips/compact-eh-el-3.d index b426ec96566..bffe5772343 100644 --- a/gas/testsuite/gas/mips/compact-eh-el-3.d +++ b/gas/testsuite/gas/mips/compact-eh-el-3.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EL #3 with personality id and large FDE data #source: compact-eh-3.s -#as: -EL -mno-pdr +#as: -march=from-abi -EL -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-el-4.d b/gas/testsuite/gas/mips/compact-eh-el-4.d index 67d85926331..85bc6d10e1d 100644 --- a/gas/testsuite/gas/mips/compact-eh-el-4.d +++ b/gas/testsuite/gas/mips/compact-eh-el-4.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EL #4 with personality id, FDE data and LSDA #source: compact-eh-4.s -#as: -EL -mno-pdr +#as: -march=from-abi -EL -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-el-5.d b/gas/testsuite/gas/mips/compact-eh-el-5.d index 623cc067dbd..ffa93b6e7e8 100644 --- a/gas/testsuite/gas/mips/compact-eh-el-5.d +++ b/gas/testsuite/gas/mips/compact-eh-el-5.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EL #5 with personality routine, FDE data and LSDA #source: compact-eh-5.s -#as: -EL -mno-pdr +#as: -march=from-abi -EL -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-el-6.d b/gas/testsuite/gas/mips/compact-eh-el-6.d index 7d5e2dd15c3..3dc8fb9ac57 100644 --- a/gas/testsuite/gas/mips/compact-eh-el-6.d +++ b/gas/testsuite/gas/mips/compact-eh-el-6.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EL #6 with personality id, LSDA and large FDE data #source: compact-eh-6.s -#as: -EL -mno-pdr +#as: -march=from-abi -EL -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/compact-eh-el-7.d b/gas/testsuite/gas/mips/compact-eh-el-7.d index 7296c606e01..626f84c0202 100644 --- a/gas/testsuite/gas/mips/compact-eh-el-7.d +++ b/gas/testsuite/gas/mips/compact-eh-el-7.d @@ -1,7 +1,7 @@ #objdump: -sr #name: Compact EH EL #7 with personality id and fallback FDE #source: compact-eh-7.s -#as: -EL -mno-pdr +#as: -march=from-abi -EL -mno-pdr .*: file format.* diff --git a/gas/testsuite/gas/mips/elf-rel.d b/gas/testsuite/gas/mips/elf-rel.d index bb7077eb771..27d3d8848d4 100644 --- a/gas/testsuite/gas/mips/elf-rel.d +++ b/gas/testsuite/gas/mips/elf-rel.d @@ -48,12 +48,12 @@ OFFSET +TYPE +VALUE Contents of section \.text: 0000 3c010000 3c010000 3c010001 3c010001 .* - 0010 3c010000 3c010001 20210018 2021001c .* - 0020 20210018 2021001c 20218018 2021fffc .* + 0010 3c010000 3c010001 24210018 2421001c .* + 0020 24210018 2421001c 24218018 2421fffc .* 0030 3c010001 3c010001 3c010002 3c010002 .* - 0040 3c010001 3c010001 2021bffe 2021c002 .* - 0050 2021bffe 2021c002 20213ffe 2021bffa .* + 0040 3c010001 3c010001 2421bffe 2421c002 .* + 0050 2421bffe 2421c002 24213ffe 2421bffa .* 0060 3c010001 3c010001 3c010002 3c010002 .* - 0070 3c010001 3c010001 2021bffe 2021c002 .* - 0080 2021bffe 2021c002 20213ffe 2021bffa .* + 0070 3c010001 3c010001 2421bffe 2421c002 .* + 0080 2421bffe 2421c002 24213ffe 2421bffa .* #pass diff --git a/gas/testsuite/gas/mips/elf-rel.s b/gas/testsuite/gas/mips/elf-rel.s index 873bc5fd86a..06c67a659bf 100644 --- a/gas/testsuite/gas/mips/elf-rel.s +++ b/gas/testsuite/gas/mips/elf-rel.s @@ -12,12 +12,12 @@ l2 = l0+49150 lui $at,%hi(l0-4) lui $at,%hi(l1+0x8000) l1: - addi $at,$at,%lo(l1) - addi $at,$at,%lo(l1+0x10004) - addi $at,$at,%lo(l1+0x10000) - addi $at,$at,%lo(l1+4) - addi $at,$at,%lo(l1+0x8000) - addi $at,$at,%lo(l0-4) + addiu $at,$at,%lo(l1) + addiu $at,$at,%lo(l1+0x10004) + addiu $at,$at,%lo(l1+0x10000) + addiu $at,$at,%lo(l1+4) + addiu $at,$at,%lo(l1+0x8000) + addiu $at,$at,%lo(l0-4) lui $at,%hi(l2) lui $at,%hi(l2+4) @@ -25,12 +25,12 @@ l1: lui $at,%hi(l2+0x10004) lui $at,%hi(l2-4) lui $at,%hi(l2+0x8000) - addi $at,$at,%lo(l2) - addi $at,$at,%lo(l2+4) - addi $at,$at,%lo(l2+0x10000) - addi $at,$at,%lo(l2+0x10004) - addi $at,$at,%lo(l2+0x8000) - addi $at,$at,%lo(l2-4) + addiu $at,$at,%lo(l2) + addiu $at,$at,%lo(l2+4) + addiu $at,$at,%lo(l2+0x10000) + addiu $at,$at,%lo(l2+0x10004) + addiu $at,$at,%lo(l2+0x8000) + addiu $at,$at,%lo(l2-4) lui $at,%hi((l2)) lui $at,%hi(((l2+4))) @@ -38,9 +38,9 @@ l1: lui $at,%hi(((((l2+0x10004))))) lui $at,%hi((((((l2-4)))))) lui $at,%hi(((((((l2+0x8000))))))) - addi $at,$at,%lo((l2)) - addi $at,$at,%lo(((l2+4))) - addi $at,$at,%lo((((l2+0x10000)))) - addi $at,$at,%lo(((((l2+0x10004))))) - addi $at,$at,%lo((((((l2+0x8000)))))) - addi $at,$at,%lo(((((((l2-4))))))) + addiu $at,$at,%lo((l2)) + addiu $at,$at,%lo(((l2+4))) + addiu $at,$at,%lo((((l2+0x10000)))) + addiu $at,$at,%lo(((((l2+0x10004))))) + addiu $at,$at,%lo((((((l2+0x8000)))))) + addiu $at,$at,%lo(((((((l2-4))))))) diff --git a/gas/testsuite/gas/mips/elf-rel6.d b/gas/testsuite/gas/mips/elf-rel6.d index cea8d7fd81b..4918344b54e 100644 --- a/gas/testsuite/gas/mips/elf-rel6.d +++ b/gas/testsuite/gas/mips/elf-rel6.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses #name: MIPS ELF reloc 6 -#as: -32 +#as: -32 -mips1 .*: +file format elf.*mips.* diff --git a/gas/testsuite/gas/mips/elf_ase_micromips-2.d b/gas/testsuite/gas/mips/elf_ase_micromips-2.d index 0eab856bd53..b7c38374853 100644 --- a/gas/testsuite/gas/mips/elf_ase_micromips-2.d +++ b/gas/testsuite/gas/mips/elf_ase_micromips-2.d @@ -1,7 +1,7 @@ # name: ELF microMIPS ASE markings 2 # source: nop.s # objdump: -p -# as: -32 -mmicromips +# as: -32 -mips32r2 -mmicromips .*:.*file format.*mips.* private flags = [0-9a-f]*[2367abef]......: .*[[,]micromips[],].* diff --git a/gas/testsuite/gas/mips/elf_ase_micromips.d b/gas/testsuite/gas/mips/elf_ase_micromips.d index 507e2708cc0..9afc1f3e6c5 100644 --- a/gas/testsuite/gas/mips/elf_ase_micromips.d +++ b/gas/testsuite/gas/mips/elf_ase_micromips.d @@ -1,7 +1,7 @@ # name: ELF microMIPS ASE markings # source: empty.s # objdump: -p -# as: -32 -mmicromips +# as: -32 -mips32r2 -mmicromips .*:.*file format.*mips.* !private flags = .*micromips.* diff --git a/gas/testsuite/gas/mips/elf_ase_mips16-2.d b/gas/testsuite/gas/mips/elf_ase_mips16-2.d index d19a07d4912..bedf56c2127 100644 --- a/gas/testsuite/gas/mips/elf_ase_mips16-2.d +++ b/gas/testsuite/gas/mips/elf_ase_mips16-2.d @@ -1,7 +1,7 @@ # name: ELF MIPS16 ASE markings 2 # source: nop.s # objdump: -p -# as: -32 -mips16 +# as: -32 -mips1 -mips16 .*:.*file format.*mips.* private flags = [0-9a-f]*[4-7c-f]......: .*[[,]mips16[],].* diff --git a/gas/testsuite/gas/mips/elf_ase_mips16.d b/gas/testsuite/gas/mips/elf_ase_mips16.d index 20e0d8a5ba4..1b9c24ae959 100644 --- a/gas/testsuite/gas/mips/elf_ase_mips16.d +++ b/gas/testsuite/gas/mips/elf_ase_mips16.d @@ -1,7 +1,7 @@ # name: ELF MIPS16 ASE markings # source: empty.s # objdump: -p -# as: -32 -mips16 +# as: -32 -mips1 -mips16 .*:.*file format.*mips.* !private flags = .*mips16.* diff --git a/gas/testsuite/gas/mips/elfel-rel.d b/gas/testsuite/gas/mips/elfel-rel.d index 7a9a3b92bfb..11fc7ad2157 100644 --- a/gas/testsuite/gas/mips/elfel-rel.d +++ b/gas/testsuite/gas/mips/elfel-rel.d @@ -49,12 +49,12 @@ OFFSET +TYPE +VALUE Contents of section \.text: 0000 0000013c 0000013c 0100013c 0100013c .* - 0010 0000013c 0100013c 18002120 1c002120 .* - 0020 18002120 1c002120 18802120 fcff2120 .* + 0010 0000013c 0100013c 18002124 1c002124 .* + 0020 18002124 1c002124 18802124 fcff2124 .* 0030 0100013c 0100013c 0200013c 0200013c .* - 0040 0100013c 0100013c febf2120 02c02120 .* - 0050 febf2120 02c02120 fe3f2120 fabf2120 .* + 0040 0100013c 0100013c febf2124 02c02124 .* + 0050 febf2124 02c02124 fe3f2124 fabf2124 .* 0060 0100013c 0100013c 0200013c 0200013c .* - 0070 0100013c 0100013c febf2120 02c02120 .* - 0080 febf2120 02c02120 fe3f2120 fabf2120 .* + 0070 0100013c 0100013c febf2124 02c02124 .* + 0080 febf2124 02c02124 fe3f2124 fabf2124 .* #pass diff --git a/gas/testsuite/gas/mips/insn-isa-mode.d b/gas/testsuite/gas/mips/insn-isa-mode.d index 9d2c61b96c1..6307ae57266 100644 --- a/gas/testsuite/gas/mips/insn-isa-mode.d +++ b/gas/testsuite/gas/mips/insn-isa-mode.d @@ -1,6 +1,6 @@ #objdump: -dr --show-raw-insn #name: microMIPS ISA mode for .insn label references -#as: -32 +#as: -32 -mips32r2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/insn-opts.d b/gas/testsuite/gas/mips/insn-opts.d index a61c95e12b6..2466397fd07 100644 --- a/gas/testsuite/gas/mips/insn-opts.d +++ b/gas/testsuite/gas/mips/insn-opts.d @@ -1,5 +1,6 @@ #objdump: -dtz -j .text --prefix-addresses --show-raw-insn #name: MIPS .insn default file options +#as: -march=from-abi # Check that .insn at the beginning of assembly sees default file options # such as the ISA mode right. diff --git a/gas/testsuite/gas/mips/jalx-addend.d b/gas/testsuite/gas/mips/jalx-addend.d index 442bc69741b..a022eafe861 100644 --- a/gas/testsuite/gas/mips/jalx-addend.d +++ b/gas/testsuite/gas/mips/jalx-addend.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS JAL/JALX addend encoding -#as: -32 +#as: -32 -mips32r2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/jalx-imm.d b/gas/testsuite/gas/mips/jalx-imm.d index aa487ffc176..4d265b59425 100644 --- a/gas/testsuite/gas/mips/jalx-imm.d +++ b/gas/testsuite/gas/mips/jalx-imm.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS JAL/JALX immediate operand encoding -#as: -32 +#as: -32 -mips32r2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/jalx-local.d b/gas/testsuite/gas/mips/jalx-local.d index e380160ff38..65bb9f8a2e5 100644 --- a/gas/testsuite/gas/mips/jalx-local.d +++ b/gas/testsuite/gas/mips/jalx-local.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS JALX local symbol relocation -#as: -32 +#as: -32 -mips32r2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/loongson-2f-3.d b/gas/testsuite/gas/mips/loongson-2f-3.d index 9063df1a856..5269bcc33bc 100644 --- a/gas/testsuite/gas/mips/loongson-2f-3.d +++ b/gas/testsuite/gas/mips/loongson-2f-3.d @@ -1,4 +1,4 @@ -#as: -mfix-loongson2f-jump +#as: -march=loongson2f -mfix-loongson2f-jump #objdump: -M reg-names=numeric -dr #name: ST Microelectronics Loongson-2F workarounds of Jump Instruction issue diff --git a/gas/testsuite/gas/mips/micromips-b16.d b/gas/testsuite/gas/mips/micromips-b16.d index 16e8a7a9e67..e0661892e8c 100644 --- a/gas/testsuite/gas/mips/micromips-b16.d +++ b/gas/testsuite/gas/mips/micromips-b16.d @@ -1,6 +1,6 @@ #objdump: -dr --show-raw-insn #name: microMIPS b16, bnez16, beqz16 -#as: -32 -mmicromips +#as: -32 -mmicromips -mips32r2 #source: micromips-b16.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/micromips-branch-absolute-addend.d b/gas/testsuite/gas/mips/micromips-branch-absolute-addend.d index fd224b56caa..3f6e3369856 100644 --- a/gas/testsuite/gas/mips/micromips-branch-absolute-addend.d +++ b/gas/testsuite/gas/mips/micromips-branch-absolute-addend.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS branch to absolute expression with addend -#as: -32 +#as: -32 -mips32r2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/micromips-branch-absolute.d b/gas/testsuite/gas/mips/micromips-branch-absolute.d index 7fc6b9a7832..73328726013 100644 --- a/gas/testsuite/gas/mips/micromips-branch-absolute.d +++ b/gas/testsuite/gas/mips/micromips-branch-absolute.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS branch to absolute expression -#as: -32 +#as: -32 -mips32r2 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/micromips-warn-branch-delay-1.d b/gas/testsuite/gas/mips/micromips-warn-branch-delay-1.d index b2d820ec106..43a5cca20f2 100644 --- a/gas/testsuite/gas/mips/micromips-warn-branch-delay-1.d +++ b/gas/testsuite/gas/mips/micromips-warn-branch-delay-1.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: microMIPS fixed-size branch delay slots 1 -#as: -32 -mmicromips +#as: -32 -mmicromips -mips32r2 #source: micromips-warn-branch-delay-1.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/micromips-warn-branch-delay.d b/gas/testsuite/gas/mips/micromips-warn-branch-delay.d index c30edc62d77..44fffdaaa71 100644 --- a/gas/testsuite/gas/mips/micromips-warn-branch-delay.d +++ b/gas/testsuite/gas/mips/micromips-warn-branch-delay.d @@ -1,6 +1,6 @@ #objdump: -dr --show-raw-insn -M gpr-names=numeric #name: microMIPS fixed-size branch delay slots -#as: -mmicromips +#as: -mmicromips -march=from-abi #source: micromips-warn-branch-delay.s #warning_output: micromips-warn-branch-delay.l diff --git a/gas/testsuite/gas/mips/mips-jalx-2.d b/gas/testsuite/gas/mips/mips-jalx-2.d index fa8bfaceb53..2cc1323adc5 100644 --- a/gas/testsuite/gas/mips/mips-jalx-2.d +++ b/gas/testsuite/gas/mips/mips-jalx-2.d @@ -1,5 +1,5 @@ #objdump: -d -#as: +#as: -march=from-abi #name: mips jalx-2 .*: file format .* diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 17eb95f4aa4..7f964ed775f 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -296,7 +296,15 @@ proc mips_arch_list_matching {args} { continue } if { [mips_arch_matches $arch $args] } { - lappend l $arch + # If the triple is mipsisa32*/mipsisa64*, we skip the 'default' + # Since it will always run. + if { [string compare $arch default] == 0 && [istarget mipsisa32*-*] } { + continue + } elseif { [string compare $arch default] == 0 && [istarget mipsisa64*-*] } { + continue + } else { + lappend l $arch + } } } return $l @@ -556,7 +564,8 @@ if { [istarget mips*-*-vxworks*] } { "MIPS invalid switch to SVR4 PIC from VxWorks PIC" } elseif { [istarget mips*-*-*] } { set addr32 [expr [istarget mipstx39*-*-*] || [istarget mips-*-linux*] || [istarget mipsel-*-linux*] \ - || [istarget mipsisa32*-*-linux*] || [istarget mipsisa32*el-*-linux*]] + || [istarget mipsisa32*-*-linux*] || [istarget mipsisa32*el-*-linux*] \ + || [istarget mips-*-elf] || [istarget mipsel-*-elf]] set has_newabi [expr [istarget *-*-irix6*] || [istarget mips*-*-linux*] \ || [istarget mips*-sde-elf*] || [istarget mips*-mti-elf*] \ || [istarget mips*-img-elf*]] @@ -621,7 +630,7 @@ if { [istarget mips*-*-vxworks*] } { # we use and some space will have been already consumed. The exact # amount depends on the host's programming model. for { set count 960 } { $count <= 1024 } { incr count } { - run_list_test "branch-swap-2" "--defsym count=$count" \ + run_list_test "branch-swap-2" "-march=from-abi --defsym count=$count" \ "MIPS branch swapping ($count)" } @@ -712,8 +721,8 @@ if { [istarget mips*-*-vxworks*] } { 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_list_test "compact-eh-err1" "-march=from-abi" + run_list_test "compact-eh-err2" "-march=from-abi" run_dump_test "div" @@ -950,30 +959,30 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "jalx-local-n64" } - run_list_test "unaligned-jump-1" "-32" \ + run_list_test "unaligned-jump-1" "-32 -mips32r2" \ "MIPS jump to unaligned symbol 1" - run_list_test "unaligned-jump-2" "-32" \ + run_list_test "unaligned-jump-2" "-32 -mips32r2" \ "MIPS jump to unaligned symbol 2" if $has_newabi { run_dump_test "unaligned-jump-3" } - run_list_test "unaligned-jump-mips16-1" "-32" \ + run_list_test "unaligned-jump-mips16-1" "-32 -mips1" \ "MIPS16 jump to unaligned symbol 1" - run_list_test "unaligned-jump-mips16-2" "-32" \ + run_list_test "unaligned-jump-mips16-2" "-32 -mips1" \ "MIPS16 jump to unaligned symbol 2" if $has_newabi { run_dump_test "unaligned-jump-mips16-3" } - run_list_test "unaligned-jump-micromips-1" "-32" \ + run_list_test "unaligned-jump-micromips-1" "-32 -mips32r2" \ "microMIPS jump to unaligned symbol 1" - run_list_test "unaligned-jump-micromips-2" "-32" \ + run_list_test "unaligned-jump-micromips-2" "-32 -mips32r2" \ "microMIPS jump to unaligned symbol 2" if $has_newabi { run_dump_test "unaligned-jump-micromips-3" } - run_list_test "unaligned-branch-1" "-32" \ + run_list_test "unaligned-branch-1" "-32 -mips32r2" \ "MIPS branch to unaligned symbol 1" - run_list_test "unaligned-branch-2" "-32" \ + run_list_test "unaligned-branch-2" "-32 -mips32r2" \ "MIPS branch to unaligned symbol 2" if $has_newabi { run_dump_test "unaligned-branch-3" @@ -990,16 +999,16 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "unaligned-branch-r6-5" run_dump_test "unaligned-branch-r6-6" } - run_list_test "unaligned-branch-mips16-1" "-32" \ + run_list_test "unaligned-branch-mips16-1" "-32 -mips1" \ "MIPS16 branch to unaligned symbol 1" - run_list_test "unaligned-branch-mips16-2" "-32" \ + run_list_test "unaligned-branch-mips16-2" "-32 -mips1" \ "MIPS16 branch to unaligned symbol 2" if $has_newabi { run_dump_test "unaligned-branch-mips16-3" } - run_list_test "unaligned-branch-micromips-1" "-32" \ + run_list_test "unaligned-branch-micromips-1" "-32 -mips32r2" \ "microMIPS branch to unaligned symbol 1" - run_list_test "unaligned-branch-micromips-2" "-32" \ + run_list_test "unaligned-branch-micromips-2" "-32 -mips32r2" \ "microMIPS branch to unaligned symbol 2" if $has_newabi { run_dump_test "unaligned-branch-micromips-3" @@ -1104,7 +1113,7 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "eva" [mips_arch_list_matching mips32r2 !octeon] - run_list_test "illegal" "-32" + run_list_test "illegal" "-32 -mips1" run_list_test "baddata1" "-32" run_list_test "jalr" "" @@ -1238,6 +1247,7 @@ if { [istarget mips*-*-vxworks*] } { run_list_test_arches "elf-rel30" "-32" [mips_arch_list_all] run_dump_test "comdat-reloc" + run_dump_test "comdat-reloc-r6" run_dump_test "${tmips}mips${el}16-e" run_dump_test "${tmips}mips${el}16-f" @@ -1592,7 +1602,7 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "micromips-branch-absolute-addend-n64" } run_dump_test "micromips-b16" - run_list_test "micromips-ill" + run_list_test "micromips-ill" "-march=from-abi" run_dump_test_arches "mcu" [mips_arch_list_matching mips32r2 \ !octeon] @@ -1646,7 +1656,7 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "ulh-reloc" [mips_arch_list_matching mips2 !mips32r6] run_dump_test "l_d-reloc" - run_list_test "bltzal" + run_list_test "bltzal" "-march=from-abi" run_dump_test_arches "msa" [mips_arch_list_matching mips32r2] if { $has_newabi } { @@ -1680,7 +1690,7 @@ if { [istarget mips*-*-vxworks*] } { 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" \ + run_list_test "pcrel-reloc-6" "-32 --defsym offset=4 -mips1" \ "MIPS local PC-relative relocations 6b" run_dump_test_arches "mips16-pcrel-0" [mips_arch_list_matching mips16-32] @@ -2041,14 +2051,16 @@ if { [istarget mips*-*-vxworks*] } { [mips_arch_list_matching mips32r2] run_dump_test "attr-gnu-abi-fp-1" + run_dump_test "attr-gnu-abi-fp-5" + run_dump_test "attr-gnu-abi-fp-6" 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 -mips1" - foreach testopt [list -mfp32 -mfpxx -mfp64 "-mfp64-noodd" \ - -msingle-float -msoft-float] { + foreach testopt [list -mfp32 -mfpxx -mfp64 "-mfp64-noodd" -mfp64r6 "-mfp64r6-noodd" \ + -msingle-float -msoft-float -msoft-float-r6] { foreach cmdopt [list -mfp32 -mfpxx -mfp64 "-mfp64 -mno-odd-spreg" \ -msingle-float -msoft-float] { run_dump_test "module${testopt}" \ diff --git a/gas/testsuite/gas/mips/mips16-absolute-reloc-0.d b/gas/testsuite/gas/mips/mips16-absolute-reloc-0.d index d352a79376a..9859f126449 100644 --- a/gas/testsuite/gas/mips/mips16-absolute-reloc-0.d +++ b/gas/testsuite/gas/mips/mips16-absolute-reloc-0.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 absolute relocation 0 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-absolute-reloc-2.d b/gas/testsuite/gas/mips/mips16-absolute-reloc-2.d index 4f00861a8d1..45d3a1b0363 100644 --- a/gas/testsuite/gas/mips/mips16-absolute-reloc-2.d +++ b/gas/testsuite/gas/mips/mips16-absolute-reloc-2.d @@ -1,3 +1,3 @@ #name: MIPS16 absolute relocation 2 -#as: -32 +#as: -32 -mips1 #error_output: mips16-absolute-reloc-2.l diff --git a/gas/testsuite/gas/mips/mips16-branch-absolute-1.d b/gas/testsuite/gas/mips/mips16-branch-absolute-1.d index ed0b9f9118e..023c4fe51f1 100644 --- a/gas/testsuite/gas/mips/mips16-branch-absolute-1.d +++ b/gas/testsuite/gas/mips/mips16-branch-absolute-1.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch to absolute expression 1 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-absolute-2.d b/gas/testsuite/gas/mips/mips16-branch-absolute-2.d index 49a331fd694..be0d7c085ce 100644 --- a/gas/testsuite/gas/mips/mips16-branch-absolute-2.d +++ b/gas/testsuite/gas/mips/mips16-branch-absolute-2.d @@ -1,4 +1,4 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch to absolute expression 2 -#as: -32 +#as: -32 -mips1 #dump: mips16-branch-absolute-1.d diff --git a/gas/testsuite/gas/mips/mips16-branch-absolute-addend-1.d b/gas/testsuite/gas/mips/mips16-branch-absolute-addend-1.d index 66841c392b6..74e97825656 100644 --- a/gas/testsuite/gas/mips/mips16-branch-absolute-addend-1.d +++ b/gas/testsuite/gas/mips/mips16-branch-absolute-addend-1.d @@ -1,4 +1,4 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch to absolute expression with addend 1 -#as: -32 +#as: -32 -mips1 #dump: mips16-branch-absolute-1.d diff --git a/gas/testsuite/gas/mips/mips16-branch-absolute-addend.d b/gas/testsuite/gas/mips/mips16-branch-absolute-addend.d index de64afb97e4..3aa1e26f204 100644 --- a/gas/testsuite/gas/mips/mips16-branch-absolute-addend.d +++ b/gas/testsuite/gas/mips/mips16-branch-absolute-addend.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch to absolute expression with addend -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-absolute.d b/gas/testsuite/gas/mips/mips16-branch-absolute.d index 68b3fb4e8d0..bad4676a654 100644 --- a/gas/testsuite/gas/mips/mips16-branch-absolute.d +++ b/gas/testsuite/gas/mips/mips16-branch-absolute.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch to absolute expression -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-addend-0.d b/gas/testsuite/gas/mips/mips16-branch-addend-0.d index 9fe83e46a51..aef3b306a61 100644 --- a/gas/testsuite/gas/mips/mips16-branch-addend-0.d +++ b/gas/testsuite/gas/mips/mips16-branch-addend-0.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation with addend 0 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-addend-1.d b/gas/testsuite/gas/mips/mips16-branch-addend-1.d index b7b305429fe..884593c01f2 100644 --- a/gas/testsuite/gas/mips/mips16-branch-addend-1.d +++ b/gas/testsuite/gas/mips/mips16-branch-addend-1.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation with addend 1 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-addend-2.d b/gas/testsuite/gas/mips/mips16-branch-addend-2.d index 3e61c24e5ea..0b9f5c758c5 100644 --- a/gas/testsuite/gas/mips/mips16-branch-addend-2.d +++ b/gas/testsuite/gas/mips/mips16-branch-addend-2.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation with addend 2 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-addend-3.d b/gas/testsuite/gas/mips/mips16-branch-addend-3.d index f3ecb7516d6..aacaf413dde 100644 --- a/gas/testsuite/gas/mips/mips16-branch-addend-3.d +++ b/gas/testsuite/gas/mips/mips16-branch-addend-3.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation with addend 3 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-addend-4.d b/gas/testsuite/gas/mips/mips16-branch-addend-4.d index 273a6e1f543..cee2aa035a3 100644 --- a/gas/testsuite/gas/mips/mips16-branch-addend-4.d +++ b/gas/testsuite/gas/mips/mips16-branch-addend-4.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation with addend 4 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-addend-5.d b/gas/testsuite/gas/mips/mips16-branch-addend-5.d index 6b922350f9f..e3c79a49f69 100644 --- a/gas/testsuite/gas/mips/mips16-branch-addend-5.d +++ b/gas/testsuite/gas/mips/mips16-branch-addend-5.d @@ -1,4 +1,4 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation with addend 5 -#as: -32 +#as: -32 -mips1 #error_output: mips16-branch-addend-5.l diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-0.d b/gas/testsuite/gas/mips/mips16-branch-reloc-0.d index 80ad83bf7b1..79685d0a2f6 100644 --- a/gas/testsuite/gas/mips/mips16-branch-reloc-0.d +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-0.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation 0 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-1.d b/gas/testsuite/gas/mips/mips16-branch-reloc-1.d index d2ae8a7c980..e4eb5d62e4d 100644 --- a/gas/testsuite/gas/mips/mips16-branch-reloc-1.d +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-1.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation 1 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-2.d b/gas/testsuite/gas/mips/mips16-branch-reloc-2.d index 4f920d203c4..ada2644b8eb 100644 --- a/gas/testsuite/gas/mips/mips16-branch-reloc-2.d +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-2.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation 2 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-3.d b/gas/testsuite/gas/mips/mips16-branch-reloc-3.d index c8e75fba223..9b54bb77038 100644 --- a/gas/testsuite/gas/mips/mips16-branch-reloc-3.d +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-3.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation 3 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-4.d b/gas/testsuite/gas/mips/mips16-branch-reloc-4.d index a2705f09a3b..5d17b2656d9 100644 --- a/gas/testsuite/gas/mips/mips16-branch-reloc-4.d +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-4.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation 4 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-5.d b/gas/testsuite/gas/mips/mips16-branch-reloc-5.d index 6cd7ebb42e1..bd02ac2597c 100644 --- a/gas/testsuite/gas/mips/mips16-branch-reloc-5.d +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-5.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 branch relocation 5 -#as: -32 +#as: -32 -mips1 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-branch-unextended-1.d b/gas/testsuite/gas/mips/mips16-branch-unextended-1.d index a3981560164..a77ed159a24 100644 --- a/gas/testsuite/gas/mips/mips16-branch-unextended-1.d +++ b/gas/testsuite/gas/mips/mips16-branch-unextended-1.d @@ -1,3 +1,3 @@ #name: MIPS16 unextended branch instructions with relocation 1 -#as: -32 +#as: -32 -mips32 #error_output: mips16-branch-unextended.l diff --git a/gas/testsuite/gas/mips/mips16-branch-unextended-2.d b/gas/testsuite/gas/mips/mips16-branch-unextended-2.d index 008bfb137d6..8d760bca8cb 100644 --- a/gas/testsuite/gas/mips/mips16-branch-unextended-2.d +++ b/gas/testsuite/gas/mips/mips16-branch-unextended-2.d @@ -1,3 +1,3 @@ #name: MIPS16 unextended branch instructions with relocation 2 -#as: -32 +#as: -32 -mips32 #error_output: mips16-branch-unextended.l diff --git a/gas/testsuite/gas/mips/mips16-dwarf2.d b/gas/testsuite/gas/mips/mips16-dwarf2.d index 6b79dac577d..eb609fa775f 100644 --- a/gas/testsuite/gas/mips/mips16-dwarf2.d +++ b/gas/testsuite/gas/mips/mips16-dwarf2.d @@ -1,6 +1,6 @@ #readelf: -r -wl #name: MIPS16 DWARF2 -#as: -mabi=32 -mips16 -no-mdebug -g0 +#as: -mabi=32 -mips16 -no-mdebug -g0 -mips32 #source: mips16-dwarf2.s Relocation section '\.rel\.debug_info' at offset .* contains 4 entries: diff --git a/gas/testsuite/gas/mips/mips16-e.d b/gas/testsuite/gas/mips/mips16-e.d index d64b882c81c..d4522d6e7c8 100644 --- a/gas/testsuite/gas/mips/mips16-e.d +++ b/gas/testsuite/gas/mips/mips16-e.d @@ -1,6 +1,6 @@ #objdump: -rst --special-syms -mips16 #name: MIPS16 reloc -#as: -32 -mips16 +#as: -32 -mips16 -mips32 # Check MIPS16 reloc processing diff --git a/gas/testsuite/gas/mips/mips16-extend.d b/gas/testsuite/gas/mips/mips16-extend.d index eec0b1906fb..def16c92e44 100644 --- a/gas/testsuite/gas/mips/mips16-extend.d +++ b/gas/testsuite/gas/mips/mips16-extend.d @@ -1,6 +1,6 @@ #objdump: -d --prefix-addresses --show-raw-insn #name: MIPS16 explicit EXTEND encoding -#as: -32 +#as: -32 -mips32 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-f.d b/gas/testsuite/gas/mips/mips16-f.d index 9605b6f183e..62e30a31840 100644 --- a/gas/testsuite/gas/mips/mips16-f.d +++ b/gas/testsuite/gas/mips/mips16-f.d @@ -1,6 +1,6 @@ #objdump: -rst -mips16 #name: MIPS16 reloc 2 -#as: -32 -mips16 +#as: -32 -mips16 -mips32 # Check MIPS16 reloc processing diff --git a/gas/testsuite/gas/mips/mips16-hilo.d b/gas/testsuite/gas/mips/mips16-hilo.d index 081993a94e5..2eabee73ba4 100644 --- a/gas/testsuite/gas/mips/mips16-hilo.d +++ b/gas/testsuite/gas/mips/mips16-hilo.d @@ -1,6 +1,6 @@ #objdump: -dr #name: MIPS16 lui/addi -#as: -mips16 -mabi=32 +#as: -mips16 -mabi=32 -mips32 #source: mips16-hilo.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-insn-length-noargs.d b/gas/testsuite/gas/mips/mips16-insn-length-noargs.d index 18047957472..6f550f45f45 100644 --- a/gas/testsuite/gas/mips/mips16-insn-length-noargs.d +++ b/gas/testsuite/gas/mips/mips16-insn-length-noargs.d @@ -1,6 +1,6 @@ #objdump: -d --prefix-addresses --show-raw-insn #name: MIPS16 argumentless instruction size override -#as: -32 +#as: -32 -mips32 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-jal-e.d b/gas/testsuite/gas/mips/mips16-jal-e.d index bbccb7c1d88..0819742c2a1 100644 --- a/gas/testsuite/gas/mips/mips16-jal-e.d +++ b/gas/testsuite/gas/mips/mips16-jal-e.d @@ -1,6 +1,6 @@ #objdump: -d --prefix-addresses --show-raw-insn #name: MIPS16 explicit extended JAL instructions -#as: -32 +#as: -32 -mips32 .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/mips16-jal-t.d b/gas/testsuite/gas/mips/mips16-jal-t.d index adb9856c620..d5b71def4c6 100644 --- a/gas/testsuite/gas/mips/mips16-jal-t.d +++ b/gas/testsuite/gas/mips/mips16-jal-t.d @@ -1,3 +1,3 @@ #name: MIPS16 explicit unextended JAL instructions -#as: -32 +#as: -32 -mips32 #error_output: mips16-jal-t.l diff --git a/gas/testsuite/gas/mips/mips16-pcrel-relax-0.d b/gas/testsuite/gas/mips/mips16-pcrel-relax-0.d index 55d15e1e624..a4cd8ca350c 100644 --- a/gas/testsuite/gas/mips/mips16-pcrel-relax-0.d +++ b/gas/testsuite/gas/mips/mips16-pcrel-relax-0.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 PC-relative relaxation 0 -#as: -32 +#as: -32 -mips1 # Check that PC-relative relaxation does not go into oscillation # where the address referred depends on the size of the instruction; diff --git a/gas/testsuite/gas/mips/mips16-pcrel-relax-1.d b/gas/testsuite/gas/mips/mips16-pcrel-relax-1.d index 1b19d45422c..9b263da261b 100644 --- a/gas/testsuite/gas/mips/mips16-pcrel-relax-1.d +++ b/gas/testsuite/gas/mips/mips16-pcrel-relax-1.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 PC-relative relaxation 1 -#as: -32 --defsym align=1 +#as: -32 -mips1 --defsym align=1 #source: mips16-pcrel-relax-0.s # Check that PC-relative relaxation chooses the short encoding diff --git a/gas/testsuite/gas/mips/mips16-pcrel-relax-2.d b/gas/testsuite/gas/mips/mips16-pcrel-relax-2.d index 6c3b4fe7ffa..0b3b5c18efc 100644 --- a/gas/testsuite/gas/mips/mips16-pcrel-relax-2.d +++ b/gas/testsuite/gas/mips/mips16-pcrel-relax-2.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 PC-relative relaxation 2 -#as: -32 +#as: -32 -mips1 # Check that PC-relative relaxation does not go into oscillation # where the address referred depends on the size of the instruction; diff --git a/gas/testsuite/gas/mips/mips16-pcrel-relax-3.d b/gas/testsuite/gas/mips/mips16-pcrel-relax-3.d index 2d0c6ca614b..337a886b113 100644 --- a/gas/testsuite/gas/mips/mips16-pcrel-relax-3.d +++ b/gas/testsuite/gas/mips/mips16-pcrel-relax-3.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 PC-relative relaxation 3 -#as: -32 --defsym align=1 +#as: -32 -mips1 --defsym align=1 #source: mips16-pcrel-relax-2.s # Check that PC-relative relaxation chooses the short encoding diff --git a/gas/testsuite/gas/mips/mips16-vis-1.d b/gas/testsuite/gas/mips/mips16-vis-1.d index 90a190afc0e..594305cd6a7 100644 --- a/gas/testsuite/gas/mips/mips16-vis-1.d +++ b/gas/testsuite/gas/mips/mips16-vis-1.d @@ -1,3 +1,4 @@ # readelf: --symbols +# as: -march=from-abi #... .*: 0+0 +2 +FUNC +GLOBAL +HIDDEN +\[MIPS16\] +[0-9]+ foo diff --git a/gas/testsuite/gas/mips/mipsel16-e.d b/gas/testsuite/gas/mips/mipsel16-e.d index 2e4e8417dfb..266b2218c8d 100644 --- a/gas/testsuite/gas/mips/mipsel16-e.d +++ b/gas/testsuite/gas/mips/mipsel16-e.d @@ -1,6 +1,6 @@ #objdump: -rst --special-syms -mips16 #name: MIPS16 reloc -#as: -32 -mips16 +#as: -32 -mips1 -mips16 #source: mips16-e.s # Check MIPS16 reloc processing diff --git a/gas/testsuite/gas/mips/mipsel16-f.d b/gas/testsuite/gas/mips/mipsel16-f.d index 57db1a7955b..dbce3b03e74 100644 --- a/gas/testsuite/gas/mips/mipsel16-f.d +++ b/gas/testsuite/gas/mips/mipsel16-f.d @@ -1,6 +1,6 @@ #objdump: -rst -mips16 #name: MIPS16 reloc 2 -#as: -32 -mips16 +#as: -32 -mips1 -mips16 #source: mips16-f.s # Check MIPS16 reloc processing diff --git a/gas/testsuite/gas/mips/module-mfp32.d b/gas/testsuite/gas/mips/module-mfp32.d index 28b47f63517..7cc38c5ca1c 100644 --- a/gas/testsuite/gas/mips/module-mfp32.d +++ b/gas/testsuite/gas/mips/module-mfp32.d @@ -1,4 +1,4 @@ -#as: -32 +#as: -32 -mips1 #readelf: -A #name: MIPS module fp=32 diff --git a/gas/testsuite/gas/mips/module-mfp64r6-noodd.d b/gas/testsuite/gas/mips/module-mfp64r6-noodd.d new file mode 100644 index 00000000000..a97e94daf06 --- /dev/null +++ b/gas/testsuite/gas/mips/module-mfp64r6-noodd.d @@ -0,0 +1,21 @@ +#as: -mips32r6 -32 +#readelf: -A +#name: MIPS module fp=64 nooddspreg +#source: module-mfp64-noodd.s + +Attribute Section: gnu +File Attributes + Tag_GNU_MIPS_ABI_FP: Hard float compat \(32-bit CPU, 64-bit FPU\) + +MIPS ABI Flags Version: 0 + +ISA: MIPS32r6 +GPR size: 32 +CPR1 size: 64 +CPR2 size: 0 +FP ABI: Hard float compat \(32-bit CPU, 64-bit FPU\) +ISA Extension: None +ASEs: + None +FLAGS 1: 0000000. +FLAGS 2: 00000000 diff --git a/gas/testsuite/gas/mips/module-mfp64r6.d b/gas/testsuite/gas/mips/module-mfp64r6.d new file mode 100644 index 00000000000..38bc1bdc2dd --- /dev/null +++ b/gas/testsuite/gas/mips/module-mfp64r6.d @@ -0,0 +1,21 @@ +#as: -mips32r6 -32 +#readelf: -A +#name: MIPS module fp=64 +#source: module-mfp64.s + +Attribute Section: gnu +File Attributes + Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, 64-bit FPU\) + +MIPS ABI Flags Version: 0 + +ISA: MIPS32r6 +GPR size: 32 +CPR1 size: 64 +CPR2 size: 0 +FP ABI: Hard float \(32-bit CPU, 64-bit FPU\) +ISA Extension: None +ASEs: + None +FLAGS 1: 0000000. +FLAGS 2: 00000000 diff --git a/gas/testsuite/gas/mips/module-msoft-float-r6.d b/gas/testsuite/gas/mips/module-msoft-float-r6.d new file mode 100644 index 00000000000..18ba3b2f654 --- /dev/null +++ b/gas/testsuite/gas/mips/module-msoft-float-r6.d @@ -0,0 +1,20 @@ +#as: -32 -march=mips32r6 +#readelf: -A +#name: MIPS module softfloat + +Attribute Section: gnu +File Attributes + Tag_GNU_MIPS_ABI_FP: Soft float + +MIPS ABI Flags Version: 0 + +ISA: MIPS.* +GPR size: 32 +CPR1 size: 0 +CPR2 size: 0 +FP ABI: Soft float +ISA Extension: .* +ASEs: + None +FLAGS 1: 0000000. +FLAGS 2: 00000000 diff --git a/gas/testsuite/gas/mips/module-msoft-float-r6.s b/gas/testsuite/gas/mips/module-msoft-float-r6.s new file mode 100644 index 00000000000..12aea5907c5 --- /dev/null +++ b/gas/testsuite/gas/mips/module-msoft-float-r6.s @@ -0,0 +1,3 @@ +.module fp=64 +.module doublefloat +.module softfloat diff --git a/gas/testsuite/gas/mips/module-msoft-float.d b/gas/testsuite/gas/mips/module-msoft-float.d index e081e519dc3..bf2e2ebbb5e 100644 --- a/gas/testsuite/gas/mips/module-msoft-float.d +++ b/gas/testsuite/gas/mips/module-msoft-float.d @@ -1,4 +1,4 @@ -#as: -32 +#as: -32 -mips1 #readelf: -A #name: MIPS module softfloat diff --git a/gas/testsuite/gas/mips/nan-2008-3.d b/gas/testsuite/gas/mips/nan-2008-3.d index 8f179fb4aed..50075678292 100644 --- a/gas/testsuite/gas/mips/nan-2008-3.d +++ b/gas/testsuite/gas/mips/nan-2008-3.d @@ -1,6 +1,7 @@ #name: MIPS 2008 NaN setting 3 #source: nan-2008-override.s #objdump: -p +#as: -march=from-abi .*:.*file format.*mips.* private flags = [0-9a-f]*[4-7c-f]..: .*[[,]nan2008[],].* diff --git a/gas/testsuite/gas/mips/nan-legacy-1.d b/gas/testsuite/gas/mips/nan-legacy-1.d index c13d634b486..5534f04c837 100644 --- a/gas/testsuite/gas/mips/nan-legacy-1.d +++ b/gas/testsuite/gas/mips/nan-legacy-1.d @@ -1,6 +1,7 @@ #name: MIPS legacy NaN setting 1 #source: nan-legacy.s #objdump: -p +#as: -march=from-abi .*:.*file format.*mips.* #failif diff --git a/gas/testsuite/gas/mips/nan-legacy-2.d b/gas/testsuite/gas/mips/nan-legacy-2.d index 4a4af6155cc..d541fffa406 100644 --- a/gas/testsuite/gas/mips/nan-legacy-2.d +++ b/gas/testsuite/gas/mips/nan-legacy-2.d @@ -1,7 +1,7 @@ #name: MIPS legacy NaN setting 2 #source: nan-legacy.s #objdump: -p -#as: -mnan=2008 +#as: -mnan=2008 -march=from-abi .*:.*file format.*mips.* #failif diff --git a/gas/testsuite/gas/mips/nan-legacy-3.d b/gas/testsuite/gas/mips/nan-legacy-3.d index c463f2b2d38..167945ae23f 100644 --- a/gas/testsuite/gas/mips/nan-legacy-3.d +++ b/gas/testsuite/gas/mips/nan-legacy-3.d @@ -1,6 +1,7 @@ #name: MIPS legacy NaN setting 3 #source: nan-legacy-override.s #objdump: -p +#as: -march=from-abi .*:.*file format.*mips.* #failif diff --git a/gas/testsuite/gas/mips/nan-legacy-4.d b/gas/testsuite/gas/mips/nan-legacy-4.d index 99c5de750c6..b0d6b06d810 100644 --- a/gas/testsuite/gas/mips/nan-legacy-4.d +++ b/gas/testsuite/gas/mips/nan-legacy-4.d @@ -1,7 +1,7 @@ #name: MIPS legacy NaN setting 4 #source: empty.s #objdump: -p -#as: -mnan=legacy +#as: -mnan=legacy -march=from-abi .*:.*file format.*mips.* #failif diff --git a/gas/testsuite/gas/mips/nan-legacy-5.d b/gas/testsuite/gas/mips/nan-legacy-5.d index b0ccb31ff58..12481543327 100644 --- a/gas/testsuite/gas/mips/nan-legacy-5.d +++ b/gas/testsuite/gas/mips/nan-legacy-5.d @@ -1,6 +1,7 @@ #name: MIPS legacy NaN setting 5 #source: empty.s #objdump: -p +#as: -march=from-abi .*:.*file format.*mips.* #failif diff --git a/gas/testsuite/gas/mips/option-pic-1.d b/gas/testsuite/gas/mips/option-pic-1.d index da32af6a6ce..612414ae752 100644 --- a/gas/testsuite/gas/mips/option-pic-1.d +++ b/gas/testsuite/gas/mips/option-pic-1.d @@ -13,6 +13,6 @@ Disassembly of section \.text: [ ]*[0-9a-f]+: R_MIPS_LO16 bar [0-9a-f]+ <[^>]*> 8f820000 lw v0,0\(gp\) [ ]*[0-9a-f]+: R_MIPS_GOT16 bar -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/gas/testsuite/gas/mips/option-pic-relax-0.d b/gas/testsuite/gas/mips/option-pic-relax-0.d index 141cc5dc8ee..5e14b289c2d 100644 --- a/gas/testsuite/gas/mips/option-pic-relax-0.d +++ b/gas/testsuite/gas/mips/option-pic-relax-0.d @@ -16,6 +16,6 @@ Disassembly of section \.text: [0-9a-f]+ <[^>]*> 0399e021 addu gp,gp,t9 [0-9a-f]+ <[^>]*> 8f820000 lw v0,0\(gp\) [ ]*[0-9a-f]+: R_MIPS_GOT16 bar -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/gas/testsuite/gas/mips/option-pic-relax-1.d b/gas/testsuite/gas/mips/option-pic-relax-1.d index dd68fc8c96b..717a0990e2a 100644 --- a/gas/testsuite/gas/mips/option-pic-relax-1.d +++ b/gas/testsuite/gas/mips/option-pic-relax-1.d @@ -13,6 +13,6 @@ Disassembly of section \.text: [ ]*[0-9a-f]+: R_MIPS_HI16 bar [0-9a-f]+ <[^>]*> 24420000 addiu v0,v0,0 [ ]*[0-9a-f]+: R_MIPS_LO16 bar -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/gas/testsuite/gas/mips/option-pic-relax-3.d b/gas/testsuite/gas/mips/option-pic-relax-3.d index 30f9c5fae4a..f917ab0d6c5 100644 --- a/gas/testsuite/gas/mips/option-pic-relax-3.d +++ b/gas/testsuite/gas/mips/option-pic-relax-3.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS `.option picX' with relaxation 3 -#as: -32 --relax-branch +#as: -32 -mips1 --relax-branch #warning_output: option-pic-relax-3.l # Verify that relaxation is done according to the `.option picX' setting @@ -15,6 +15,6 @@ Disassembly of section \.text: [ ]*[0-9a-f]+: R_MIPS_26 \.text [0-9a-f]+ <[^>]*> 00a01825 move v1,a1 \.\.\. -[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 03e0000[89] jr ra [0-9a-f]+ <[^>]*> 00000000 nop \.\.\. diff --git a/gas/testsuite/gas/mips/option-pic-relax-3a.d b/gas/testsuite/gas/mips/option-pic-relax-3a.d index d6d4088d791..3c557d37a9d 100644 --- a/gas/testsuite/gas/mips/option-pic-relax-3a.d +++ b/gas/testsuite/gas/mips/option-pic-relax-3a.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS `.option picX' with relaxation 3a -#as: -32 +#as: -32 -mips1 #source: option-pic-relax-3.s #dump: option-pic-relax-3.d diff --git a/gas/testsuite/gas/mips/option-pic-relax-4.d b/gas/testsuite/gas/mips/option-pic-relax-4.d index 15adf1155c2..a891b2b45ac 100644 --- a/gas/testsuite/gas/mips/option-pic-relax-4.d +++ b/gas/testsuite/gas/mips/option-pic-relax-4.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS `.option picX' with relaxation 4 -#as: -32 -mmicromips --relax-branch +#as: -32 -mips32r2 -mmicromips --relax-branch #warning_output: option-pic-relax-4.l # Verify that relaxation is done according to the `.option picX' setting diff --git a/gas/testsuite/gas/mips/option-pic-relax-5.d b/gas/testsuite/gas/mips/option-pic-relax-5.d index 948f3299abc..827c303a02c 100644 --- a/gas/testsuite/gas/mips/option-pic-relax-5.d +++ b/gas/testsuite/gas/mips/option-pic-relax-5.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS `.option picX' with relaxation 5 -#as: -32 -mmicromips --relax-branch +#as: -32 -mips32r2 -mmicromips --relax-branch #warning_output: option-pic-relax-5.l # Verify that relaxation is done according to the `.option picX' setting diff --git a/gas/testsuite/gas/mips/org-1.d b/gas/testsuite/gas/mips/org-1.d index b21951f8c1c..da1fad094ef 100644 --- a/gas/testsuite/gas/mips/org-1.d +++ b/gas/testsuite/gas/mips/org-1.d @@ -1,5 +1,5 @@ #nm: -g --defined-only -#as: --relax-branch +#as: --relax-branch -march=from-abi #name: MIPS .org test 1 #warning_output: org-1.l diff --git a/gas/testsuite/gas/mips/org-10.d b/gas/testsuite/gas/mips/org-10.d index 0670988eadb..1ec11e37242 100644 --- a/gas/testsuite/gas/mips/org-10.d +++ b/gas/testsuite/gas/mips/org-10.d @@ -1,5 +1,5 @@ #nm: -g --defined-only -#as: --relax-branch +#as: --relax-branch -march=from-abi #name: MIPS .org test 10 #warning_output: org-10.l diff --git a/gas/testsuite/gas/mips/org-11.d b/gas/testsuite/gas/mips/org-11.d index b464230cd77..47c6e96c02b 100644 --- a/gas/testsuite/gas/mips/org-11.d +++ b/gas/testsuite/gas/mips/org-11.d @@ -1,5 +1,5 @@ #nm: -g --defined-only -#as: -32 +#as: -32 -mips1 #name: MIPS .org test 11 0+001000 . bar diff --git a/gas/testsuite/gas/mips/org-12.d b/gas/testsuite/gas/mips/org-12.d index 323c3010456..d634baa7afe 100644 --- a/gas/testsuite/gas/mips/org-12.d +++ b/gas/testsuite/gas/mips/org-12.d @@ -1,5 +1,6 @@ #nm: -g --defined-only #name: MIPS .org test 12 +#as: -march=from-abi 0+001000 . bar 0+000000 . foo diff --git a/gas/testsuite/gas/mips/org-2.d b/gas/testsuite/gas/mips/org-2.d index abdd5638a0d..b5c7c9b499d 100644 --- a/gas/testsuite/gas/mips/org-2.d +++ b/gas/testsuite/gas/mips/org-2.d @@ -1,5 +1,5 @@ #nm: -g --defined-only -#as: -32 +#as: -32 -mips1 #name: MIPS .org test 2 0+001000 . bar diff --git a/gas/testsuite/gas/mips/org-3.d b/gas/testsuite/gas/mips/org-3.d index 04d520874db..31fa39d7a24 100644 --- a/gas/testsuite/gas/mips/org-3.d +++ b/gas/testsuite/gas/mips/org-3.d @@ -1,5 +1,6 @@ #nm: -g --defined-only #name: MIPS .org test 3 +#as: -march=from-abi 0+001000 . bar 0+000000 . foo diff --git a/gas/testsuite/gas/mips/org-4.d b/gas/testsuite/gas/mips/org-4.d index a1603ebb81c..cd038cc5307 100644 --- a/gas/testsuite/gas/mips/org-4.d +++ b/gas/testsuite/gas/mips/org-4.d @@ -1,3 +1,3 @@ -#as: --relax-branch +#as: --relax-branch -march=from-abi #name: MIPS .org test 4 #error_output: org-4.l diff --git a/gas/testsuite/gas/mips/org-5.d b/gas/testsuite/gas/mips/org-5.d index b63fcca0979..5638496db34 100644 --- a/gas/testsuite/gas/mips/org-5.d +++ b/gas/testsuite/gas/mips/org-5.d @@ -1,3 +1,3 @@ -#as: -32 +#as: -32 -mips1 #name: MIPS .org test 5 #error_output: org-5.l diff --git a/gas/testsuite/gas/mips/org-6.d b/gas/testsuite/gas/mips/org-6.d index 887cb326665..bbf0f5006be 100644 --- a/gas/testsuite/gas/mips/org-6.d +++ b/gas/testsuite/gas/mips/org-6.d @@ -1,2 +1,3 @@ #name: MIPS .org test 6 #error_output: org-6.l +#as: -march=from-abi diff --git a/gas/testsuite/gas/mips/org-7.d b/gas/testsuite/gas/mips/org-7.d index 71f545db14e..228f2c9fab9 100644 --- a/gas/testsuite/gas/mips/org-7.d +++ b/gas/testsuite/gas/mips/org-7.d @@ -1,5 +1,5 @@ #nm: -g --defined-only -#as: --relax-branch +#as: --relax-branch -march=from-abi #name: MIPS .org test 7 0+010000 . bar diff --git a/gas/testsuite/gas/mips/org-8.d b/gas/testsuite/gas/mips/org-8.d index 0d1acf934e0..d44f5475a50 100644 --- a/gas/testsuite/gas/mips/org-8.d +++ b/gas/testsuite/gas/mips/org-8.d @@ -1,5 +1,5 @@ #nm: -g --defined-only -#as: -32 +#as: -32 -mips1 #name: MIPS .org test 8 0+000100 . bar diff --git a/gas/testsuite/gas/mips/org-9.d b/gas/testsuite/gas/mips/org-9.d index fe9e3f313c3..e2bcb98ecd9 100644 --- a/gas/testsuite/gas/mips/org-9.d +++ b/gas/testsuite/gas/mips/org-9.d @@ -1,5 +1,6 @@ #nm: -g --defined-only #name: MIPS .org test 9 +#as: -march=from-abi 0+000080 . bar 0+000000 . foo diff --git a/gas/testsuite/gas/mips/pcrel-reloc-1.d b/gas/testsuite/gas/mips/pcrel-reloc-1.d index 4d4d21f4d4f..1851e7478f7 100644 --- a/gas/testsuite/gas/mips/pcrel-reloc-1.d +++ b/gas/testsuite/gas/mips/pcrel-reloc-1.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS local PC-relative relocations 1 -#as: -32 +#as: -32 -mips1 #source: pcrel-reloc-1.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/pcrel-reloc-2.d b/gas/testsuite/gas/mips/pcrel-reloc-2.d index 25f7f7bc0d8..d4d55d1ea3d 100644 --- a/gas/testsuite/gas/mips/pcrel-reloc-2.d +++ b/gas/testsuite/gas/mips/pcrel-reloc-2.d @@ -1,5 +1,5 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS local PC-relative relocations 2 -#as: -32 --defsym setmips3=1 +#as: -32 -mips1 --defsym setmips3=1 #source: pcrel-reloc-1.s #dump: pcrel-reloc-1.d diff --git a/gas/testsuite/gas/mips/pcrel-reloc-3.d b/gas/testsuite/gas/mips/pcrel-reloc-3.d index cb587b9b201..399ce104078 100644 --- a/gas/testsuite/gas/mips/pcrel-reloc-3.d +++ b/gas/testsuite/gas/mips/pcrel-reloc-3.d @@ -1,5 +1,5 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS local PC-relative relocations 3 -#as: -32 --defsym setmips64r6=1 +#as: -32 -mips1 --defsym setmips64r6=1 #source: pcrel-reloc-1.s #dump: pcrel-reloc-1.d diff --git a/gas/testsuite/gas/mips/pcrel-reloc-4.d b/gas/testsuite/gas/mips/pcrel-reloc-4.d index faeb6a5f3de..2322524fd77 100644 --- a/gas/testsuite/gas/mips/pcrel-reloc-4.d +++ b/gas/testsuite/gas/mips/pcrel-reloc-4.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa64r6 #name: MIPS local PC-relative relocations 4 -#as: -32 +#as: -32 -mips1 #source: pcrel-reloc-4.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/pcrel-reloc-5.d b/gas/testsuite/gas/mips/pcrel-reloc-5.d index 227b3fc45ba..6b52c573c38 100644 --- a/gas/testsuite/gas/mips/pcrel-reloc-5.d +++ b/gas/testsuite/gas/mips/pcrel-reloc-5.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa64r6 #name: MIPS local PC-relative relocations 5 -#as: -32 --defsym reverse=1 +#as: -32 -mips1 --defsym reverse=1 #source: pcrel-reloc-4.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/pcrel-reloc-6.d b/gas/testsuite/gas/mips/pcrel-reloc-6.d index 03e65f62fb9..01e5bd734f7 100644 --- a/gas/testsuite/gas/mips/pcrel-reloc-6.d +++ b/gas/testsuite/gas/mips/pcrel-reloc-6.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa64r6 #name: MIPS local PC-relative relocations 6a -#as: -32 --defsym offset=0 +#as: -32 -mips1 --defsym offset=0 #source: pcrel-reloc-6.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/set-arch.d b/gas/testsuite/gas/mips/set-arch.d index d1799dc793d..49f6c19aad5 100644 --- a/gas/testsuite/gas/mips/set-arch.d +++ b/gas/testsuite/gas/mips/set-arch.d @@ -1,6 +1,10 @@ #objdump: -dr --prefix-addresses --show-raw-insn -mmips:sb1 -M gpr-names=32 #name: .set arch=FOO #warning_output: set-arch.l +#as: -march=from-abi + +#FIXME: -march=mips32r6 will break this test: which is a problem +#FIXME: We should find the real problem, and drop -march=from-abi .*: file format .* diff --git a/gas/testsuite/gas/mips/tmips16-e.d b/gas/testsuite/gas/mips/tmips16-e.d index bcf3de0cab2..75ed1b15f7b 100644 --- a/gas/testsuite/gas/mips/tmips16-e.d +++ b/gas/testsuite/gas/mips/tmips16-e.d @@ -1,6 +1,6 @@ #objdump: -rst --special-syms -mips16 #name: MIPS16 reloc -#as: -32 -mips16 +#as: -32 -mips1 -mips16 #source: mips16-e.s # Check MIPS16 reloc processing diff --git a/gas/testsuite/gas/mips/tmips16-f.d b/gas/testsuite/gas/mips/tmips16-f.d index 95bb5647a09..7cec0b96ac7 100644 --- a/gas/testsuite/gas/mips/tmips16-f.d +++ b/gas/testsuite/gas/mips/tmips16-f.d @@ -1,6 +1,6 @@ #objdump: -rst -mips16 #name: MIPS16 reloc 2 -#as: -32 -mips16 +#as: -32 -mips1 -mips16 #source: mips16-f.s # Check MIPS16 reloc processing diff --git a/gas/testsuite/gas/mips/tmipsel16-e.d b/gas/testsuite/gas/mips/tmipsel16-e.d index 95d473c054c..161ee2fa586 100644 --- a/gas/testsuite/gas/mips/tmipsel16-e.d +++ b/gas/testsuite/gas/mips/tmipsel16-e.d @@ -1,6 +1,6 @@ #objdump: -rst --special-syms -mips16 #name: MIPS16 reloc -#as: -32 -mips16 +#as: -32 -mips1 -mips16 #source: mips16-e.s # Check MIPS16 reloc processing diff --git a/gas/testsuite/gas/mips/tmipsel16-f.d b/gas/testsuite/gas/mips/tmipsel16-f.d index 5639bb0b16d..ced710bc08c 100644 --- a/gas/testsuite/gas/mips/tmipsel16-f.d +++ b/gas/testsuite/gas/mips/tmipsel16-f.d @@ -1,6 +1,6 @@ #objdump: -rst -mips16 #name: MIPS16 reloc 2 -#as: -32 -mips16 +#as: -32 -mips1 -mips16 #source: mips16-f.s # Check MIPS16 reloc processing diff --git a/gas/testsuite/gas/mips/unaligned-branch-r6-1.s b/gas/testsuite/gas/mips/unaligned-branch-r6-1.s index 1e5960cbe09..b5995e877ed 100644 --- a/gas/testsuite/gas/mips/unaligned-branch-r6-1.s +++ b/gas/testsuite/gas/mips/unaligned-branch-r6-1.s @@ -134,6 +134,7 @@ bar\@ : .endm .align 4 + .set mips32r2 .set micromips obj 16 fun 8 diff --git a/gas/testsuite/gas/mips/unaligned-branch-r6-3.s b/gas/testsuite/gas/mips/unaligned-branch-r6-3.s index beb59128d03..354e5bce7ad 100644 --- a/gas/testsuite/gas/mips/unaligned-branch-r6-3.s +++ b/gas/testsuite/gas/mips/unaligned-branch-r6-3.s @@ -136,6 +136,7 @@ bar\@ : .endm .align 4 + .set mips32r2 .set micromips obj 16 fun 8 diff --git a/gas/testsuite/gas/mips/unaligned-branch-r6-5.d b/gas/testsuite/gas/mips/unaligned-branch-r6-5.d index eed864a46a2..b5b7e2bb4f8 100644 --- a/gas/testsuite/gas/mips/unaligned-branch-r6-5.d +++ b/gas/testsuite/gas/mips/unaligned-branch-r6-5.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn -m mips:isa64r6 #name: MIPSr6 branch to unaligned symbol 5 -#as: -n32 -march=from-abi +#as: -n32 -march=mips64r6 #source: unaligned-branch-r6-3.s .*: +file format .*mips.* diff --git a/gas/testsuite/gas/mips/unaligned-jump-mips16-3.d b/gas/testsuite/gas/mips/unaligned-jump-mips16-3.d index a3427a8ba28..f9ca353b11b 100644 --- a/gas/testsuite/gas/mips/unaligned-jump-mips16-3.d +++ b/gas/testsuite/gas/mips/unaligned-jump-mips16-3.d @@ -1,6 +1,6 @@ #objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS16 jump to unaligned symbol 3 -#as: -n32 -march=from-abi +#as: -n32 -march=from-abi --defsym n32=1 #source: unaligned-jump-mips16-2.s .*: +file format .*mips.* diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d index 24d051d5c42..71bce95ea53 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d @@ -1,5 +1,6 @@ #source: attr-gnu-4-0.s #source: attr-gnu-4-1.s +#as: -march=from-abi #ld: -r #readelf: -A diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d index ce94a818eb6..12268fb6f5c 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d @@ -1,5 +1,6 @@ #source: attr-gnu-4-1.s #source: attr-gnu-4-1.s +#as: -march=from-abi #ld: -r #readelf: -A diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d index 6aa22b9901c..67f2bdf0db9 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d @@ -1,5 +1,6 @@ #source: attr-gnu-4-4.s -W #source: attr-gnu-4-0.s +#as: -march=from-abi #ld: -r #error: \A[^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n #error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d index 49f2137e0e2..029d0ed3784 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d @@ -1,5 +1,6 @@ #source: attr-gnu-4-4.s -W #source: attr-gnu-4-1.s +#as: -march=from-abi #ld: -r #error: \A[^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n #error: [^\n]*: warning: .* uses -mips32r2 -mfp64 \(12 callee-saved\) \(set by .*\), .* uses -mdouble-float\n diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d index 2f8e5f09253..a8a2aaa2420 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d @@ -1,5 +1,6 @@ #source: attr-gnu-8-0.s #source: attr-gnu-8-0.s +#as: -march=from-abi #ld: -r #readelf: -A diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d index e2cda3341e7..82006ff4b76 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d @@ -1,5 +1,6 @@ #source: attr-gnu-8-0.s #source: attr-gnu-8-1.s +#as: -march=from-abi #ld: -r #readelf: -A diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d index 54b196fa38b..9f08a438bb2 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d @@ -1,5 +1,6 @@ #source: attr-gnu-8-0.s #source: attr-gnu-8-2.s +#as: -march=from-abi #ld: -r #readelf: -A diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d index f7c512beeb4..97962829120 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d @@ -1,5 +1,6 @@ #source: attr-gnu-8-1.s #source: attr-gnu-8-0.s +#as: -march=from-abi #ld: -r #readelf: -A diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d index be87af4bd18..8d3cf40c834 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d @@ -1,5 +1,6 @@ #source: attr-gnu-8-1.s #source: attr-gnu-8-1.s +#as: -march=from-abi #ld: -r #readelf: -A diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d index 05f4da064a9..02abcc7583a 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d @@ -1,5 +1,6 @@ #source: attr-gnu-8-2.s #source: attr-gnu-8-0.s +#as: -march=from-abi #ld: -r #readelf: -A diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d b/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d index 908ce4f00a2..164bc25b326 100644 --- a/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d +++ b/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d @@ -1,5 +1,6 @@ #source: attr-gnu-8-2.s #source: attr-gnu-8-2.s +#as: -march=from-abi #ld: -r #readelf: -A diff --git a/ld/testsuite/ld-mips-elf/emit-relocs-1.d b/ld/testsuite/ld-mips-elf/emit-relocs-1.d index 0de07297323..32e15a2541e 100644 --- a/ld/testsuite/ld-mips-elf/emit-relocs-1.d +++ b/ld/testsuite/ld-mips-elf/emit-relocs-1.d @@ -23,7 +23,7 @@ OFFSET +TYPE +VALUE Contents of section \.text: - 80000 03e00008 00000000 00000000 00000000 .* + 80000 03e0000[89] 00000000 00000000 00000000 .* Contents of section \.merge1: 80400 666c7574 74657200 flutter.* Contents of section \.merge2: diff --git a/ld/testsuite/ld-mips-elf/gp-disp-sym.s b/ld/testsuite/ld-mips-elf/gp-disp-sym.s index c6380ba1fb0..3b06e717f5f 100644 --- a/ld/testsuite/ld-mips-elf/gp-disp-sym.s +++ b/ld/testsuite/ld-mips-elf/gp-disp-sym.s @@ -2,4 +2,4 @@ .text foo: lui $t0, %hi(_gp_disp) - addi $t0, $t0, %lo(_gp_disp) + addiu $t0, $t0, %lo(_gp_disp) diff --git a/ld/testsuite/ld-mips-elf/jalr3.dd b/ld/testsuite/ld-mips-elf/jalr3.dd index 6b6d4841208..5c9d83fdfd4 100644 --- a/ld/testsuite/ld-mips-elf/jalr3.dd +++ b/ld/testsuite/ld-mips-elf/jalr3.dd @@ -9,6 +9,6 @@ Disassembly of section \.text: c: 00000000 nop 0+000010 <\$bar>: - 10: 03e00008 jr ra + 10: 03e0000[89] jr ra 14: 00000000 nop \.\.\. diff --git a/ld/testsuite/ld-mips-elf/jalx-1.d b/ld/testsuite/ld-mips-elf/jalx-1.d index f0826288ecb..80c3be229a4 100644 --- a/ld/testsuite/ld-mips-elf/jalx-1.d +++ b/ld/testsuite/ld-mips-elf/jalx-1.d @@ -1,5 +1,5 @@ #name: MIPS jalx-1 -#source: jalx-1.s +#source: jalx-1.s -march=from-abi #ld: -T jalx-1.ld #objdump: -d diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index 920bb121a67..ff9635ec9d1 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -72,7 +72,8 @@ proc run_dump_test_abi { abi name args } { set asflags [regsub -- {-march=[^[:blank:]]*} $asflags {}] set args [lreplace $args 0 0] } - if !$has_abi($abi) { + set abi_r [regsub "l$" $abi {}] + if !$has_abi($abi_r) { lappend args {notarget *-*-*} } if { [llength $args] > 0 } { @@ -91,6 +92,13 @@ proc run_dump_test_abi { abi name args } { proc run_dump_test_o32 { name args } { run_dump_test_abi o32 $name [lindex $args 0] } +proc run_dump_test_o32l { name args } { + if {[istarget *-linux*] || [istarget *-img-elf]} { + run_dump_test_abi o32l $name [lindex $args 0] + } else { + run_dump_test_abi o32 $name [lindex $args 0] + } +} # run_dump_test_n32 NAME ARGS # @@ -99,6 +107,13 @@ proc run_dump_test_o32 { name args } { proc run_dump_test_n32 { name args } { run_dump_test_abi n32 $name [lindex $args 0] } +proc run_dump_test_n32l { name args } { + if {[istarget *-linux*] || [istarget *-img-elf]} { + run_dump_test_abi n32l $name [lindex $args 0] + } else { + run_dump_test_abi n32 $name [lindex $args 0] + } +} # run_dump_test_n64 NAME ARGS # @@ -107,6 +122,13 @@ proc run_dump_test_n32 { name args } { proc run_dump_test_n64 { name args } { run_dump_test_abi n64 $name [lindex $args 0] } +proc run_dump_test_n64l { name args } { + if {[istarget *-linux*] || [istarget *-img-elf]} { + run_dump_test_abi n64l $name [lindex $args 0] + } else { + run_dump_test_abi n64 $name [lindex $args 0] + } +} # run_dump_test_eabi NAME ARGS # @@ -139,49 +161,69 @@ set linux_gnu [expr [istarget mips*-*-linux*]] set embedded_elf [expr [istarget mips*-*-elf]] # Set defaults. +# ABI with l tail means legacy, aka pre-R6. +# Please use them, if the test only suite for pre-R6, +# such as mips16/micromips tests. set abi_asflags(o32) "" +set abi_asflags(o32l) "" set abi_asflags(n32) "" +set abi_asflags(n32l) "" set abi_asflags(n64) "" +set abi_asflags(n64l) "" set abi_asflags(eabi) "" set abi_ldflags(o32) "" +set abi_ldflags(o32l) "" set abi_ldflags(n32) "" +set abi_ldflags(n32l) "" set abi_ldflags(n64) "" +set abi_ldflags(n64l) "" set abi_ldflags(eabi) "" # Override as needed. if {[istarget *-*-openbsd*] } { set irixemul 0 -} elseif { [istarget mips64*-*-linux*] } { +} elseif { [istarget mips*64*-*-linux*] } { + set abi_asflags(o32) -32 + set abi_asflags(o32l) "-32 -march=from-abi" + set abi_asflags(n32) "" + set abi_asflags(n32l) "-n32 -march=from-abi" + set abi_asflags(n64) "-64" + set abi_asflags(n64l) "-march=from-abi -64" if [istarget *el-*-*] { - set abi_asflags(o32) -32 set abi_ldflags(o32) -melf32ltsmip - set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(o32l) -melf32ltsmip set abi_ldflags(n64) -melf64ltsmip + set abi_ldflags(n64l) -melf64ltsmip } else { - set abi_asflags(o32) -32 set abi_ldflags(o32) -melf32btsmip - set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(o32l) -melf32btsmip set abi_ldflags(n64) -melf64btsmip + set abi_ldflags(n64l) -melf64btsmip } set irixemul 0 -} elseif {[istarget *-*-linux*] } { +} elseif {[istarget *-*-linux*] || [istarget *-img-elf] } { + set abi_asflags(o32) "" + set abi_asflags(o32l) "-march=from-abi" + set abi_asflags(n32) "-n32" + set abi_asflags(n32l) "-n32 -march=from-abi" + set abi_asflags(n64) "-64" + set abi_asflags(n64l) "-64 -march=from-abi" if [istarget *el-*-*] { - set abi_asflags(n32) "-march=from-abi -n32" set abi_ldflags(n32) -melf32ltsmipn32 - set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(n32l) -melf32ltsmipn32 set abi_ldflags(n64) -melf64ltsmip + set abi_ldflags(n64l) -melf64ltsmip } else { - set abi_asflags(n32) "-march=from-abi -n32" set abi_ldflags(n32) -melf32btsmipn32 - set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(n32l) -melf32btsmipn32 set abi_ldflags(n64) -melf64btsmip + set abi_ldflags(n64l) -melf64btsmip } set irixemul 0 } elseif {[istarget *-img-elf*] \ || [istarget *-mti-elf*] \ || [istarget *-sde-elf*] \ || [istarget *-*-netbsd*] \ - || [istarget *-*-linux*] \ || [istarget *-*-sysv4*] } { if [istarget *el-*-*] { set abi_asflags(o32) -32 @@ -305,56 +347,56 @@ run_dump_test "mips16-1" # MIPS branch offset final link checking. run_dump_test "branch-misc-1" run_dump_test "branch-misc-2" -run_dump_test_o32 "branch-absolute" -run_dump_test_o32 "branch-absolute-addend" -run_dump_test_n32 "branch-absolute-n32" -run_dump_test_n32 "branch-absolute-addend-n32" -run_dump_test_n64 "branch-absolute-n64" -run_dump_test_n64 "branch-absolute-addend-n64" - -run_dump_test_o32 "mips16-pcrel-0" -run_dump_test_o32 "mips16-pcrel-1" noarch -run_dump_test_o32 "mips16e2-pcrel-0" noarch -run_dump_test_o32 "mips16e2-pcrel-1" noarch -run_dump_test_o32 "mips16-pcrel-addend-2" -run_dump_test_o32 "mips16-pcrel-addend-6" -run_dump_test_o32 "mips16e2-pcrel-addend-2" noarch -run_dump_test_o32 "mips16e2-pcrel-addend-6" noarch -run_dump_test_n32 "mips16-pcrel-n32-0" -run_dump_test_n32 "mips16-pcrel-n32-1" -run_dump_test_n64 "mips16-pcrel-n64-sym32-0" -run_dump_test_n64 "mips16-pcrel-n64-sym32-1" -run_dump_test_n32 "mips16e2-pcrel-n32-0" noarch -run_dump_test_n32 "mips16e2-pcrel-n32-1" noarch -run_dump_test_n64 "mips16e2-pcrel-n64-sym32-0" noarch -run_dump_test_n64 "mips16e2-pcrel-n64-sym32-1" noarch - -run_dump_test_o32 "mips16-branch-2" -run_dump_test_o32 "mips16-branch-3" -run_dump_test_o32 "mips16-branch-addend-2" -run_dump_test_o32 "mips16-branch-addend-3" -run_dump_test_o32 "mips16-branch-absolute" -run_dump_test_o32 "mips16-branch-absolute-1" -run_dump_test_o32 "mips16-branch-absolute-2" -run_dump_test_o32 "mips16-branch-absolute-addend" -run_dump_test_o32 "mips16-branch-absolute-addend-1" -run_dump_test_n32 "mips16-branch-absolute-n32" -run_dump_test_n32 "mips16-branch-absolute-n32-1" -run_dump_test_n32 "mips16-branch-absolute-n32-2" -run_dump_test_n32 "mips16-branch-absolute-addend-n32" -run_dump_test_n32 "mips16-branch-absolute-addend-n32-1" -run_dump_test_n64 "mips16-branch-absolute-n64" -run_dump_test_n64 "mips16-branch-absolute-n64-1" -run_dump_test_n64 "mips16-branch-absolute-n64-2" -run_dump_test_n64 "mips16-branch-absolute-addend-n64" -run_dump_test_n64 "mips16-branch-absolute-addend-n64-1" - -run_dump_test_o32 "micromips-branch-absolute" -run_dump_test_o32 "micromips-branch-absolute-addend" -run_dump_test_n32 "micromips-branch-absolute-n32" -run_dump_test_n32 "micromips-branch-absolute-addend-n32" -run_dump_test_n64 "micromips-branch-absolute-n64" -run_dump_test_n64 "micromips-branch-absolute-addend-n64" +run_dump_test_o32l "branch-absolute" +run_dump_test_o32l "branch-absolute-addend" +run_dump_test_n32l "branch-absolute-n32" +run_dump_test_n32l "branch-absolute-addend-n32" +run_dump_test_n64l "branch-absolute-n64" +run_dump_test_n64l "branch-absolute-addend-n64" + +run_dump_test_o32l "mips16-pcrel-0" +run_dump_test_o32l "mips16-pcrel-1" noarch +run_dump_test_o32l "mips16e2-pcrel-0" noarch +run_dump_test_o32l "mips16e2-pcrel-1" noarch +run_dump_test_o32l "mips16-pcrel-addend-2" +run_dump_test_o32l "mips16-pcrel-addend-6" noarch +run_dump_test_o32l "mips16e2-pcrel-addend-2" noarch +run_dump_test_o32l "mips16e2-pcrel-addend-6" noarch +run_dump_test_n32l "mips16-pcrel-n32-0" +run_dump_test_n32l "mips16-pcrel-n32-1" +run_dump_test_n64l "mips16-pcrel-n64-sym32-0" +run_dump_test_n64l "mips16-pcrel-n64-sym32-1" +run_dump_test_n32l "mips16e2-pcrel-n32-0" noarch +run_dump_test_n32l "mips16e2-pcrel-n32-1" noarch +run_dump_test_n64l "mips16e2-pcrel-n64-sym32-0" noarch +run_dump_test_n64l "mips16e2-pcrel-n64-sym32-1" noarch + +run_dump_test_o32l "mips16-branch-2" +run_dump_test_o32l "mips16-branch-3" +run_dump_test_o32l "mips16-branch-addend-2" +run_dump_test_o32l "mips16-branch-addend-3" +run_dump_test_o32l "mips16-branch-absolute" +run_dump_test_o32l "mips16-branch-absolute-1" +run_dump_test_o32l "mips16-branch-absolute-2" +run_dump_test_o32l "mips16-branch-absolute-addend" +run_dump_test_o32l "mips16-branch-absolute-addend-1" +run_dump_test_n32l "mips16-branch-absolute-n32" +run_dump_test_n32l "mips16-branch-absolute-n32-1" +run_dump_test_n32l "mips16-branch-absolute-n32-2" +run_dump_test_n32l "mips16-branch-absolute-addend-n32" +run_dump_test_n32l "mips16-branch-absolute-addend-n32-1" +run_dump_test_n64l "mips16-branch-absolute-n64" +run_dump_test_n64l "mips16-branch-absolute-n64-1" +run_dump_test_n64l "mips16-branch-absolute-n64-2" +run_dump_test_n64l "mips16-branch-absolute-addend-n64" +run_dump_test_n64l "mips16-branch-absolute-addend-n64-1" + +run_dump_test_o32l "micromips-branch-absolute" +run_dump_test_o32l "micromips-branch-absolute-addend" +run_dump_test_n32l "micromips-branch-absolute-n32" +run_dump_test_n32l "micromips-branch-absolute-addend-n32" +run_dump_test_n64l "micromips-branch-absolute-n64" +run_dump_test_n64l "micromips-branch-absolute-addend-n64" # Jalx test run_dump_test "jalx-1" @@ -381,69 +423,69 @@ if { $linux_gnu } { "jalx-2"]] } -run_dump_test_o32 "jalx-addend" -run_dump_test_o32 "jalx-local" -run_dump_test_o32 "bal-jalx-addend" -run_dump_test_o32 "bal-jalx-addend-micromips" -run_dump_test_o32 "bal-jalx-local" -run_dump_test_o32 "bal-jalx-local-micromips" -run_dump_test_o32 "bal-jalx-pic" -run_dump_test_o32 "bal-jalx-pic-micromips" -run_dump_test_o32 "bal-jalx-pic-ignore" -run_dump_test_o32 "bal-jalx-pic-ignore-micromips" -run_dump_test_n32 "jalx-addend-n32" -run_dump_test_n32 "jalx-local-n32" -run_dump_test_n32 "bal-jalx-addend-n32" -run_dump_test_n32 "bal-jalx-addend-micromips-n32" -run_dump_test_n32 "bal-jalx-local-n32" -run_dump_test_n32 "bal-jalx-local-micromips-n32" -run_dump_test_n32 "bal-jalx-pic-n32" -run_dump_test_n32 "bal-jalx-pic-micromips-n32" -run_dump_test_n32 "bal-jalx-pic-ignore-n32" -run_dump_test_n32 "bal-jalx-pic-ignore-micromips-n32" -run_dump_test_n64 "jalx-addend-n64" -run_dump_test_n64 "jalx-local-n64" -run_dump_test_n64 "bal-jalx-addend-n64" -run_dump_test_n64 "bal-jalx-addend-micromips-n64" -run_dump_test_n64 "bal-jalx-local-n64" -run_dump_test_n64 "bal-jalx-local-micromips-n64" -run_dump_test_n64 "bal-jalx-pic-n64" -run_dump_test_n64 "bal-jalx-pic-micromips-n64" -run_dump_test_n64 "bal-jalx-pic-ignore-n64" -run_dump_test_n64 "bal-jalx-pic-ignore-micromips-n64" - -run_dump_test "unaligned-jalx-0" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-1" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-2" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-3" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-mips16-0" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-mips16-1" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-micromips-0" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-micromips-1" [list [list ld $abi_ldflags(o32)]] - -run_dump_test_n32 "unaligned-jalx-addend-0" -run_dump_test_n32 "unaligned-jalx-addend-1" -run_dump_test_n32 "unaligned-jalx-addend-2" -run_dump_test_n32 "unaligned-jalx-addend-3" -run_dump_test_n32 "unaligned-jalx-addend-mips16-0" -run_dump_test_n32 "unaligned-jalx-addend-mips16-1" -run_dump_test_n32 "unaligned-jalx-addend-micromips-0" -run_dump_test_n32 "unaligned-jalx-addend-micromips-1" +run_dump_test_o32l "jalx-addend" +run_dump_test_o32l "jalx-local" +run_dump_test_o32l "bal-jalx-addend" +run_dump_test_o32l "bal-jalx-addend-micromips" +run_dump_test_o32l "bal-jalx-local" +run_dump_test_o32l "bal-jalx-local-micromips" +run_dump_test_o32l "bal-jalx-pic" +run_dump_test_o32l "bal-jalx-pic-micromips" +run_dump_test_o32l "bal-jalx-pic-ignore" +run_dump_test_o32l "bal-jalx-pic-ignore-micromips" +run_dump_test_n32l "jalx-addend-n32" +run_dump_test_n32l "jalx-local-n32" +run_dump_test_n32l "bal-jalx-addend-n32" +run_dump_test_n32l "bal-jalx-addend-micromips-n32" +run_dump_test_n32l "bal-jalx-local-n32" +run_dump_test_n32l "bal-jalx-local-micromips-n32" +run_dump_test_n32l "bal-jalx-pic-n32" +run_dump_test_n32l "bal-jalx-pic-micromips-n32" +run_dump_test_n32l "bal-jalx-pic-ignore-n32" +run_dump_test_n32l "bal-jalx-pic-ignore-micromips-n32" +run_dump_test_n64l "jalx-addend-n64" +run_dump_test_n64l "jalx-local-n64" +run_dump_test_n64l "bal-jalx-addend-n64" +run_dump_test_n64l "bal-jalx-addend-micromips-n64" +run_dump_test_n64l "bal-jalx-local-n64" +run_dump_test_n64l "bal-jalx-local-micromips-n64" +run_dump_test_n64l "bal-jalx-pic-n64" +run_dump_test_n64l "bal-jalx-pic-micromips-n64" +run_dump_test_n64l "bal-jalx-pic-ignore-n64" +run_dump_test_n64l "bal-jalx-pic-ignore-micromips-n64" + +run_dump_test_o32l "unaligned-jalx-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test_o32l "unaligned-jalx-1" [list [list ld $abi_ldflags(o32)]] +run_dump_test_o32l "unaligned-jalx-2" [list [list ld $abi_ldflags(o32)]] +run_dump_test_o32l "unaligned-jalx-3" [list [list ld $abi_ldflags(o32)]] +run_dump_test_o32l "unaligned-jalx-mips16-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test_o32l "unaligned-jalx-mips16-1" [list [list ld $abi_ldflags(o32)]] +run_dump_test_o32l "unaligned-jalx-micromips-0" [list [list ld $abi_ldflags(o32)]] +run_dump_test_o32l "unaligned-jalx-micromips-1" [list [list ld $abi_ldflags(o32)]] + +run_dump_test_n32l "unaligned-jalx-addend-0" +run_dump_test_n32l "unaligned-jalx-addend-1" +run_dump_test_n32l "unaligned-jalx-addend-2" +run_dump_test_n32l "unaligned-jalx-addend-3" +run_dump_test_n32l "unaligned-jalx-addend-mips16-0" +run_dump_test_n32l "unaligned-jalx-addend-mips16-1" +run_dump_test_n32l "unaligned-jalx-addend-micromips-0" +run_dump_test_n32l "unaligned-jalx-addend-micromips-1" run_dump_test_o32 "unaligned-branch" noarch -run_dump_test_n32 "unaligned-branch-2" -run_dump_test_n32 "unaligned-branch-ignore-2" +run_dump_test_n32l "unaligned-branch-2" +run_dump_test_n32l "unaligned-branch-ignore-2" run_dump_test_n32 "unaligned-branch-r6-1" run_dump_test_n32 "unaligned-branch-ignore-r6-1" run_dump_test_n32 "unaligned-branch-r6-2" noarch -run_dump_test_n32 "unaligned-branch-mips16" -run_dump_test_n32 "unaligned-branch-ignore-mips16" -run_dump_test_n32 "unaligned-branch-micromips" -run_dump_test_n32 "unaligned-branch-ignore-micromips" -run_dump_test_n32 "unaligned-jump" -run_dump_test_n32 "unaligned-jump-mips16" -run_dump_test_n32 "unaligned-jump-micromips" +run_dump_test_n32l "unaligned-branch-mips16" +run_dump_test_n32l "unaligned-branch-ignore-mips16" +run_dump_test_n32l "unaligned-branch-micromips" +run_dump_test_n32l "unaligned-branch-ignore-micromips" +run_dump_test_n32l "unaligned-jump" +run_dump_test_n32l "unaligned-jump-mips16" +run_dump_test_n32l "unaligned-jump-micromips" run_dump_test_o32 "unaligned-lwpc-0" noarch run_dump_test_o32 "unaligned-lwpc-1" noarch @@ -474,11 +516,11 @@ if { $linux_gnu } { } if { $embedded_elf } { - run_dump_test_n32 "elf-rel-got-n32-embed" {{as -EB} {ld -EB}} - run_dump_test_n32 "elf-rel-xgot-n32-embed" {{as -EB} {ld -EB}} + run_dump_test_n32l "elf-rel-got-n32-embed" {{as -EB} {ld -EB}} + run_dump_test_n32l "elf-rel-xgot-n32-embed" {{as -EB} {ld -EB}} } else { - run_dump_test_n32 "elf-rel-got-n32" {{as -EB} {ld -EB}} - run_dump_test_n32 "elf-rel-xgot-n32" {{as -EB} {ld -EB}} + run_dump_test_n32l "elf-rel-got-n32" {{as -EB} {ld -EB}} + run_dump_test_n32l "elf-rel-xgot-n32" {{as -EB} {ld -EB}} } if { $irix } { run_dump_test_n64 "elf-rel-got-n64-irix" @@ -487,8 +529,8 @@ if { $irix } { run_dump_test_n64 "elf-rel-got-n64-embed" {{as -EB} {ld -EB}} run_dump_test_n64 "elf-rel-xgot-n64-embed" {{as -EB} {ld -EB}} } else { - run_dump_test_n64 "elf-rel-got-n64" {{as -EB} {ld -EB}} - run_dump_test_n64 "elf-rel-xgot-n64" {{as -EB} {ld -EB}} + run_dump_test_n64l "elf-rel-got-n64" {{as -EB} {ld -EB}} + run_dump_test_n64l "elf-rel-xgot-n64" {{as -EB} {ld -EB}} } run_dump_test_n32 "relax-jalr-n32" {{as -EB} {ld -EB}} @@ -795,8 +837,8 @@ run_dump_test_n32 "jalbal" noarch run_dump_test "mode-change-error-1" -run_dump_test_o32 "mips16-hilo" -run_dump_test_n32 "mips16-hilo-n32" +run_dump_test_o32l "mips16-hilo" +run_dump_test_n32l "mips16-hilo-n32" if { $linux_gnu } { run_dump_test_n32 "textrel-1" @@ -865,8 +907,8 @@ if { $linux_gnu && $has_abi(o32) } { set base_syms 1 foreach { isa aflag lflag suffix } \ { MIPS -march=mips1 "" "" \ - microMIPS -mmicromips "" -micromips \ - "microMIPS insn32" "-mmicromips -minsn32" --insn32 \ + microMIPS "-mips32r2 -mmicromips" "" -micromips \ + "microMIPS insn32" "-mips32r2 -mmicromips -minsn32" --insn32 \ -micromips-insn32 } { foreach dynsym { 7fff 8000 fff0 10000 2fe80 } { run_ld_link_tests \ @@ -1206,7 +1248,7 @@ foreach { abi } $abis { [list \ "MIPS JALR reloc unaligned/cross-mode link test ($abi)" \ "$abi_ldflags($abi) -T jalr3.ld" "" \ - "$abi_asflags($abi)" \ + "$abi_asflags($abi) -march=from-abi" \ [list ../../../gas/testsuite/gas/mips/jalr4.s] \ [list "objdump {-d --prefix-addresses --show-raw-insn} jalr4.dd"] \ "jalr4-${abi}"] \ @@ -1244,6 +1286,8 @@ proc run_mips_plt_test { name abi filter micromips suffix {extra {}} } { append as_flags " --defsym micromips=$micromips --defsym $abi=1" if {[string equal $abi o32]} { append as_flags " -march=mips2" + } else { + append as_flags " -march=mips3" } set ld_flags "$abi_ldflags($abi) -T compressed-plt-1.ld" set dynobj "tmpdir/compressed-plt-1-${abi}-dyn.so" @@ -1383,7 +1427,7 @@ if { $has_abi(o32) } { run_ld_link_tests [list \ [list \ "PR ld/21334 MIPS GOT16 relocation in static binary" \ - "$abi_ldflags(o32) -e foo -T pr21334.ld" "" "$abi_asflags(o32)" \ + "$abi_ldflags(o32) -e foo -T pr21334.ld" "" "$abi_asflags(o32) -march=from-abi" \ {pr21334.s} \ {{objdump {-d --prefix-addresses} pr21334.dd} \ {readelf -A pr21334.gd}} \ @@ -1418,7 +1462,7 @@ if { $has_abi(o32) } { [list \ "microMIPS link PIC branch relaxation with offset" \ "$abi_ldflags(o32) -shared -T relax-offset.ld" "" \ - "$abi_asflags(o32) -relax-branch -mmicromips" \ + "$abi_asflags(o32) -relax-branch -mips32r2 -mmicromips" \ {../../../gas/testsuite/gas/mips/relax-offset.s} \ {{objdump \ {-d --prefix-addresses --show-raw-insn} \ @@ -1571,7 +1615,7 @@ proc run_mips_undefweak_test { name abi args } { "$name" \ "$abi_ldflags($abi) -e foo -T pr21375${scrsuf}.ld ${ldxtra}" \ "" \ - "$abi_asflags($abi) ${asxtra}" \ + "$abi_asflags($abi) -march=from-abi ${asxtra}" \ [list pr21375${srcsuf}.s] \ [list \ [list objdump -d pr21375${objsuf}.dd] \ @@ -1650,11 +1694,11 @@ run_dump_test "pic-reloc-2" run_dump_test "pic-reloc-3" run_dump_test "pic-reloc-4" run_dump_test_o32 "pic-reloc-5" -run_dump_test_o32 "pic-reloc-5" [list [list name (microMIPS)] \ +run_dump_test_o32l "pic-reloc-5" [list [list name (microMIPS)] \ [list as "-mmicromips"]] -run_dump_test_o32 "pic-reloc-6" +run_dump_test_o32l "pic-reloc-6" run_dump_test_n64 "pic-reloc-7" -run_dump_test_n64 "pic-reloc-7" [list [list name (microMIPS)] \ +run_dump_test_n64l "pic-reloc-7" [list [list name (microMIPS)] \ [list as "-mmicromips"]] run_dump_test_o32 "reloc-pcrel-r6" diff --git a/ld/testsuite/ld-mips-elf/mips16-1.d b/ld/testsuite/ld-mips-elf/mips16-1.d index 77d1316cb1e..f2d5caafe4b 100644 --- a/ld/testsuite/ld-mips-elf/mips16-1.d +++ b/ld/testsuite/ld-mips-elf/mips16-1.d @@ -1,5 +1,5 @@ -#source: mips16-1a.s -no-mips16 -#source: mips16-1b.s -mips16 +#source: mips16-1a.s -no-mips16 -march=from-abi +#source: mips16-1b.s -mips16 -march=from-abi #ld: -r #objdump: -pd diff --git a/ld/testsuite/ld-mips-elf/mips16-and-micromips.d b/ld/testsuite/ld-mips-elf/mips16-and-micromips.d index 6d740fe7209..4b89ae30388 100644 --- a/ld/testsuite/ld-mips-elf/mips16-and-micromips.d +++ b/ld/testsuite/ld-mips-elf/mips16-and-micromips.d @@ -1,5 +1,5 @@ #name: MIPS16 and microMIPS interlink -#source: ../../../gas/testsuite/gas/mips/nop.s -mips16 -#source: ../../../gas/testsuite/gas/mips/nop.s -mmicromips +#source: ../../../gas/testsuite/gas/mips/nop.s -mips16 -march=from-abi +#source: ../../../gas/testsuite/gas/mips/nop.s -mmicromips -march=from-abi #ld: -e0 #error: \A.*: .*\.o: ASE mismatch: linking microMIPS module with previous MIPS16 modules[\n\r]+.*: failed to merge target specific data of file .*\.o\Z diff --git a/ld/testsuite/ld-mips-elf/mode-change-error-1.d b/ld/testsuite/ld-mips-elf/mode-change-error-1.d index afa54d88f0e..90636c2e42d 100644 --- a/ld/testsuite/ld-mips-elf/mode-change-error-1.d +++ b/ld/testsuite/ld-mips-elf/mode-change-error-1.d @@ -1,6 +1,6 @@ #name: Mode Change Error 1 -#source: mode-change-error-1a.s -#source: mode-change-error-1b.s +#source: mode-change-error-1a.s -march=from-abi +#source: mode-change-error-1b.s -march=from-abi #ld: -e 0x8000000 #error: \A[^\n]*: in function `main':\n #error: \(\.text\+0x0\): unsupported jump between ISA modes; consider recompiling with interlinking enabled\n diff --git a/ld/testsuite/ld-mips-elf/n64-plt-1.dd b/ld/testsuite/ld-mips-elf/n64-plt-1.dd index 4c24a9a16ce..51d654a343b 100644 --- a/ld/testsuite/ld-mips-elf/n64-plt-1.dd +++ b/ld/testsuite/ld-mips-elf/n64-plt-1.dd @@ -15,7 +15,7 @@ Disassembly of section \.plt: 00000000100002a0 : 100002a0: 3c0f7fff lui t3,0x7fff 100002a4: ddf97ff8 ld t9,32760\(t3\) - 100002a8: 03200008 jr t9 + 100002a8: 0320000[89] jr t9 100002ac: 25f87ff8 addiu t8,t3,32760 Disassembly of section \.text: diff --git a/ld/testsuite/ld-mips-elf/n64-plt-4.dd b/ld/testsuite/ld-mips-elf/n64-plt-4.dd index 01c50256153..71fee33c4e1 100644 --- a/ld/testsuite/ld-mips-elf/n64-plt-4.dd +++ b/ld/testsuite/ld-mips-elf/n64-plt-4.dd @@ -15,7 +15,7 @@ ffffffff1000029c: 2718fffe addiu t8,t8,-2 ffffffff100002a0 : ffffffff100002a0: 3c0f8000 lui t3,0x8000 ffffffff100002a4: ddf98010 ld t9,-32752\(t3\) -ffffffff100002a8: 03200008 jr t9 +ffffffff100002a8: 0320000[89] jr t9 ffffffff100002ac: 25f88010 addiu t8,t3,-32752 Disassembly of section \.text: diff --git a/ld/testsuite/ld-mips-elf/nan-legacy.d b/ld/testsuite/ld-mips-elf/nan-legacy.d index 8dacc069671..0d90432e61b 100644 --- a/ld/testsuite/ld-mips-elf/nan-legacy.d +++ b/ld/testsuite/ld-mips-elf/nan-legacy.d @@ -1,5 +1,6 @@ #source: nan-legacy.s #source: nan-legacy.s +#as: -march=from-abi #ld: -r #objdump: -p diff --git a/ld/testsuite/ld-mips-elf/nan-mixed-1.d b/ld/testsuite/ld-mips-elf/nan-mixed-1.d index 9bc524c5552..c7e9570d5ee 100644 --- a/ld/testsuite/ld-mips-elf/nan-mixed-1.d +++ b/ld/testsuite/ld-mips-elf/nan-mixed-1.d @@ -1,5 +1,6 @@ #source: nan-legacy.s #source: nan-2008.s +#as: -march=from-abi #ld: -r #error: \A[^\n]*: [^\n]* linking -mnan=2008 module with previous -mnan=legacy modules\n #error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z diff --git a/ld/testsuite/ld-mips-elf/nan-mixed-2.d b/ld/testsuite/ld-mips-elf/nan-mixed-2.d index 388d7709663..a96cda06081 100644 --- a/ld/testsuite/ld-mips-elf/nan-mixed-2.d +++ b/ld/testsuite/ld-mips-elf/nan-mixed-2.d @@ -1,5 +1,6 @@ #source: nan-2008.s #source: nan-legacy.s +#as: -march=from-abi #ld: -r #error: \A[^\n]*: [^\n]* linking -mnan=legacy module with previous -mnan=2008 modules\n #error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z diff --git a/ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d b/ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d index 3baf22851a0..e3cc14ec793 100644 --- a/ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d +++ b/ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d @@ -17,6 +17,6 @@ Disassembly of section \.text: 4101c: 27391020 addiu t9,t9,4128 00041020 : - 41020: 03e00008 jr ra + 41020: 03e0000[89] jr ra 41024: 00000000 nop \.\.\. diff --git a/ld/testsuite/ld-mips-elf/reloc-3.d b/ld/testsuite/ld-mips-elf/reloc-3.d index 1ec51c5f8f3..02150162d37 100644 --- a/ld/testsuite/ld-mips-elf/reloc-3.d +++ b/ld/testsuite/ld-mips-elf/reloc-3.d @@ -1,5 +1,5 @@ #name: R_MIPS16_GPREL reloc -#source: ../../../gas/testsuite/gas/mips/elf-rel6.s +#source: ../../../gas/testsuite/gas/mips/elf-rel6.s -march=from-abi #objdump: --prefix-addresses -tdr --show-raw-insn #ld: -Ttext 0x20000000 -e 0x20000000 -N -- 2.30.2