MIPS: fix r6 testsuites
authorYunQiang Su <yunqiang.su@cipunited.com>
Wed, 10 May 2023 07:50:19 +0000 (15:50 +0800)
committerYunQiang Su <yunqiang.su@cipunited.com>
Mon, 5 Jun 2023 03:00:14 +0000 (11:00 +0800)
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

182 files changed:
binutils/testsuite/binutils-all/mips/mips.exp
gas/testsuite/gas/mips/align2-el.d
gas/testsuite/gas/mips/align2.d
gas/testsuite/gas/mips/attr-gnu-abi-fp-1.d
gas/testsuite/gas/mips/attr-gnu-abi-fp-5.d [new file with mode: 0644]
gas/testsuite/gas/mips/attr-gnu-abi-fp-5.s [new file with mode: 0644]
gas/testsuite/gas/mips/attr-gnu-abi-fp-6.d [new file with mode: 0644]
gas/testsuite/gas/mips/attr-gnu-abi-fp-6.s [new file with mode: 0644]
gas/testsuite/gas/mips/attr-gnu-abi-msa-1.d
gas/testsuite/gas/mips/branch-absolute-addend.d
gas/testsuite/gas/mips/branch-absolute.d
gas/testsuite/gas/mips/branch-addend-micromips.d
gas/testsuite/gas/mips/branch-addend.d
gas/testsuite/gas/mips/branch-extern-2.d
gas/testsuite/gas/mips/branch-extern-4.d
gas/testsuite/gas/mips/branch-local-1.d
gas/testsuite/gas/mips/branch-local-2.d
gas/testsuite/gas/mips/branch-local-3.d
gas/testsuite/gas/mips/branch-local-4.d
gas/testsuite/gas/mips/branch-local-5.d
gas/testsuite/gas/mips/branch-local-6.d
gas/testsuite/gas/mips/branch-local-7.d
gas/testsuite/gas/mips/branch-local-ignore-2.d
gas/testsuite/gas/mips/branch-local-ignore-3.d
gas/testsuite/gas/mips/branch-local-ignore-5.d
gas/testsuite/gas/mips/branch-local-ignore-6.d
gas/testsuite/gas/mips/branch-section-1.d
gas/testsuite/gas/mips/branch-section-2.d
gas/testsuite/gas/mips/branch-section-3.d
gas/testsuite/gas/mips/branch-section-4.d
gas/testsuite/gas/mips/branch-weak-1.d
gas/testsuite/gas/mips/branch-weak-2.d
gas/testsuite/gas/mips/branch-weak-3.d
gas/testsuite/gas/mips/branch-weak-4.d
gas/testsuite/gas/mips/branch-weak-5.d
gas/testsuite/gas/mips/branch-weak-6.d
gas/testsuite/gas/mips/branch-weak-7.d
gas/testsuite/gas/mips/comdat-reloc-r6.d [new file with mode: 0644]
gas/testsuite/gas/mips/comdat-reloc.d
gas/testsuite/gas/mips/compact-eh-eb-1.d
gas/testsuite/gas/mips/compact-eh-eb-2.d
gas/testsuite/gas/mips/compact-eh-eb-3.d
gas/testsuite/gas/mips/compact-eh-eb-4.d
gas/testsuite/gas/mips/compact-eh-eb-5.d
gas/testsuite/gas/mips/compact-eh-eb-6.d
gas/testsuite/gas/mips/compact-eh-eb-7.d
gas/testsuite/gas/mips/compact-eh-el-1.d
gas/testsuite/gas/mips/compact-eh-el-2.d
gas/testsuite/gas/mips/compact-eh-el-3.d
gas/testsuite/gas/mips/compact-eh-el-4.d
gas/testsuite/gas/mips/compact-eh-el-5.d
gas/testsuite/gas/mips/compact-eh-el-6.d
gas/testsuite/gas/mips/compact-eh-el-7.d
gas/testsuite/gas/mips/elf-rel.d
gas/testsuite/gas/mips/elf-rel.s
gas/testsuite/gas/mips/elf-rel6.d
gas/testsuite/gas/mips/elf_ase_micromips-2.d
gas/testsuite/gas/mips/elf_ase_micromips.d
gas/testsuite/gas/mips/elf_ase_mips16-2.d
gas/testsuite/gas/mips/elf_ase_mips16.d
gas/testsuite/gas/mips/elfel-rel.d
gas/testsuite/gas/mips/insn-isa-mode.d
gas/testsuite/gas/mips/insn-opts.d
gas/testsuite/gas/mips/jalx-addend.d
gas/testsuite/gas/mips/jalx-imm.d
gas/testsuite/gas/mips/jalx-local.d
gas/testsuite/gas/mips/loongson-2f-3.d
gas/testsuite/gas/mips/micromips-b16.d
gas/testsuite/gas/mips/micromips-branch-absolute-addend.d
gas/testsuite/gas/mips/micromips-branch-absolute.d
gas/testsuite/gas/mips/micromips-warn-branch-delay-1.d
gas/testsuite/gas/mips/micromips-warn-branch-delay.d
gas/testsuite/gas/mips/mips-jalx-2.d
gas/testsuite/gas/mips/mips.exp
gas/testsuite/gas/mips/mips16-absolute-reloc-0.d
gas/testsuite/gas/mips/mips16-absolute-reloc-2.d
gas/testsuite/gas/mips/mips16-branch-absolute-1.d
gas/testsuite/gas/mips/mips16-branch-absolute-2.d
gas/testsuite/gas/mips/mips16-branch-absolute-addend-1.d
gas/testsuite/gas/mips/mips16-branch-absolute-addend.d
gas/testsuite/gas/mips/mips16-branch-absolute.d
gas/testsuite/gas/mips/mips16-branch-addend-0.d
gas/testsuite/gas/mips/mips16-branch-addend-1.d
gas/testsuite/gas/mips/mips16-branch-addend-2.d
gas/testsuite/gas/mips/mips16-branch-addend-3.d
gas/testsuite/gas/mips/mips16-branch-addend-4.d
gas/testsuite/gas/mips/mips16-branch-addend-5.d
gas/testsuite/gas/mips/mips16-branch-reloc-0.d
gas/testsuite/gas/mips/mips16-branch-reloc-1.d
gas/testsuite/gas/mips/mips16-branch-reloc-2.d
gas/testsuite/gas/mips/mips16-branch-reloc-3.d
gas/testsuite/gas/mips/mips16-branch-reloc-4.d
gas/testsuite/gas/mips/mips16-branch-reloc-5.d
gas/testsuite/gas/mips/mips16-branch-unextended-1.d
gas/testsuite/gas/mips/mips16-branch-unextended-2.d
gas/testsuite/gas/mips/mips16-dwarf2.d
gas/testsuite/gas/mips/mips16-e.d
gas/testsuite/gas/mips/mips16-extend.d
gas/testsuite/gas/mips/mips16-f.d
gas/testsuite/gas/mips/mips16-hilo.d
gas/testsuite/gas/mips/mips16-insn-length-noargs.d
gas/testsuite/gas/mips/mips16-jal-e.d
gas/testsuite/gas/mips/mips16-jal-t.d
gas/testsuite/gas/mips/mips16-pcrel-relax-0.d
gas/testsuite/gas/mips/mips16-pcrel-relax-1.d
gas/testsuite/gas/mips/mips16-pcrel-relax-2.d
gas/testsuite/gas/mips/mips16-pcrel-relax-3.d
gas/testsuite/gas/mips/mips16-vis-1.d
gas/testsuite/gas/mips/mipsel16-e.d
gas/testsuite/gas/mips/mipsel16-f.d
gas/testsuite/gas/mips/module-mfp32.d
gas/testsuite/gas/mips/module-mfp64r6-noodd.d [new file with mode: 0644]
gas/testsuite/gas/mips/module-mfp64r6.d [new file with mode: 0644]
gas/testsuite/gas/mips/module-msoft-float-r6.d [new file with mode: 0644]
gas/testsuite/gas/mips/module-msoft-float-r6.s [new file with mode: 0644]
gas/testsuite/gas/mips/module-msoft-float.d
gas/testsuite/gas/mips/nan-2008-3.d
gas/testsuite/gas/mips/nan-legacy-1.d
gas/testsuite/gas/mips/nan-legacy-2.d
gas/testsuite/gas/mips/nan-legacy-3.d
gas/testsuite/gas/mips/nan-legacy-4.d
gas/testsuite/gas/mips/nan-legacy-5.d
gas/testsuite/gas/mips/option-pic-1.d
gas/testsuite/gas/mips/option-pic-relax-0.d
gas/testsuite/gas/mips/option-pic-relax-1.d
gas/testsuite/gas/mips/option-pic-relax-3.d
gas/testsuite/gas/mips/option-pic-relax-3a.d
gas/testsuite/gas/mips/option-pic-relax-4.d
gas/testsuite/gas/mips/option-pic-relax-5.d
gas/testsuite/gas/mips/org-1.d
gas/testsuite/gas/mips/org-10.d
gas/testsuite/gas/mips/org-11.d
gas/testsuite/gas/mips/org-12.d
gas/testsuite/gas/mips/org-2.d
gas/testsuite/gas/mips/org-3.d
gas/testsuite/gas/mips/org-4.d
gas/testsuite/gas/mips/org-5.d
gas/testsuite/gas/mips/org-6.d
gas/testsuite/gas/mips/org-7.d
gas/testsuite/gas/mips/org-8.d
gas/testsuite/gas/mips/org-9.d
gas/testsuite/gas/mips/pcrel-reloc-1.d
gas/testsuite/gas/mips/pcrel-reloc-2.d
gas/testsuite/gas/mips/pcrel-reloc-3.d
gas/testsuite/gas/mips/pcrel-reloc-4.d
gas/testsuite/gas/mips/pcrel-reloc-5.d
gas/testsuite/gas/mips/pcrel-reloc-6.d
gas/testsuite/gas/mips/set-arch.d
gas/testsuite/gas/mips/tmips16-e.d
gas/testsuite/gas/mips/tmips16-f.d
gas/testsuite/gas/mips/tmipsel16-e.d
gas/testsuite/gas/mips/tmipsel16-f.d
gas/testsuite/gas/mips/unaligned-branch-r6-1.s
gas/testsuite/gas/mips/unaligned-branch-r6-3.s
gas/testsuite/gas/mips/unaligned-branch-r6-5.d
gas/testsuite/gas/mips/unaligned-jump-mips16-3.d
ld/testsuite/ld-mips-elf/attr-gnu-4-01.d
ld/testsuite/ld-mips-elf/attr-gnu-4-11.d
ld/testsuite/ld-mips-elf/attr-gnu-4-40.d
ld/testsuite/ld-mips-elf/attr-gnu-4-41.d
ld/testsuite/ld-mips-elf/attr-gnu-8-00.d
ld/testsuite/ld-mips-elf/attr-gnu-8-01.d
ld/testsuite/ld-mips-elf/attr-gnu-8-02.d
ld/testsuite/ld-mips-elf/attr-gnu-8-10.d
ld/testsuite/ld-mips-elf/attr-gnu-8-11.d
ld/testsuite/ld-mips-elf/attr-gnu-8-20.d
ld/testsuite/ld-mips-elf/attr-gnu-8-22.d
ld/testsuite/ld-mips-elf/emit-relocs-1.d
ld/testsuite/ld-mips-elf/gp-disp-sym.s
ld/testsuite/ld-mips-elf/jalr3.dd
ld/testsuite/ld-mips-elf/jalx-1.d
ld/testsuite/ld-mips-elf/mips-elf.exp
ld/testsuite/ld-mips-elf/mips16-1.d
ld/testsuite/ld-mips-elf/mips16-and-micromips.d
ld/testsuite/ld-mips-elf/mode-change-error-1.d
ld/testsuite/ld-mips-elf/n64-plt-1.dd
ld/testsuite/ld-mips-elf/n64-plt-4.dd
ld/testsuite/ld-mips-elf/nan-legacy.d
ld/testsuite/ld-mips-elf/nan-mixed-1.d
ld/testsuite/ld-mips-elf/nan-mixed-2.d
ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d
ld/testsuite/ld-mips-elf/reloc-3.d

index 91bf32745925e9a449217c2e79ba69850c05e06e..3b7bc29056a79a71a96f200b1e12f14224e1ea00 100644 (file)
@@ -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
index 1f50774f4d08e787a94ba319a94214c2361ff089..8072c528282338deb0c5b3a01293226de57d5db9 100644 (file)
@@ -1,5 +1,5 @@
 # source: align2.s
-# as: -EL
+# as: -EL -march=from-abi
 # objdump: -dr
 
 .* file format .*
index 7090ceeb5c60fe139e19e563490304f2fa3d4620..d14fa2ce7c44bdeff5b2f52661d3f324c2527db7 100644 (file)
@@ -1,4 +1,4 @@
-# as: -EB
+# as: -EB -march=from-abi
 # objdump: -dr
 
 .* file format .*
index 17218d31a11a2acfd272695d8c1cc593fcfe5f77..9009c704bb60bdf415e1c93b1d38c2dc1a3d86d8 100644 (file)
@@ -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 (file)
index 0000000..2550241
--- /dev/null
@@ -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 (file)
index 0000000..8d86130
--- /dev/null
@@ -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 (file)
index 0000000..ecb6fcd
--- /dev/null
@@ -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 (file)
index 0000000..d0eefe4
--- /dev/null
@@ -0,0 +1 @@
+.gnu_attribute Tag_GNU_MIPS_ABI_FP,6
index 97fc8bf3f46b46f4b030d4e37b36bab7e90fe01e..a4868af9c864d2f62396fb20a38aa1066f89839e 100644 (file)
@@ -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
 
 #...
index df868468ff16fbaaf94cd62b02bba4312b45bce4..8760db07fe678b3bdccc8f4de055f5bf873e445d 100644 (file)
@@ -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.*
 
index 816c139e778e98b91088df837568a9919ce913ea..6199f17af5ce48b625a7c20fa8ea7ea224c37d7e 100644 (file)
@@ -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.*
 
index 345d9df9bfd240468b5eb3e59cc6e8fd7ec3c741..9b3313fe45638d56d6db69a2e4dd51b236199ee8 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: microMIPS BAL addend encoding
-#as: -32
+#as: -32 -mips32r2
 
 .*: +file format .*mips.*
 
index ecee734abd427420d84aa1dc0079b83282c3a869..4f12717ddfb80ca4afa8d56deb962750b3c71359 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS BAL addend encoding
-#as: -32
+#as: -32 -mips32r2
 
 .*: +file format .*mips.*
 
index 4c0078fb04b40600f8de057218effec2e6aaf3c9..e12d3cabb504e141072807ea000fd49aeea513cf 100644 (file)
@@ -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.*
index 7aa73566e0711e0eb9f529a9142f0c955da3cf9a..f76278dae4418c4ffb4a23ee97e76f270ca7a3e8 100644 (file)
@@ -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
 
index f85bb8da5ffd849a9b5ac367bc449ecbf7f85165..f4d2f955654aa312fb54a0e4874f253d7392d7a9 100644 (file)
@@ -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.*
index e11569610a63b2f7d712d9a49d4fe6aba8fbb4c4..b8d34f72f66ef4ed56bbfa6bc71554697bb07c24 100644 (file)
@@ -1,3 +1,3 @@
 #name: MIPS branch local symbol relocation 2
-#as: -32
+#as: -32 -mips32r2
 #error_output: branch-local-2.l
index 4dc3a59059b673987fd7c7abb6a02be607421225..06f9a769f01b046d19ac0fdea20f1a8d7b57c5e7 100644 (file)
@@ -1,3 +1,3 @@
 #name: MIPS branch local symbol relocation 3
-#as: -32
+#as: -32 -mips32r2
 #error_output: branch-local-3.l
index cf5f8b3cc3f29ebbc7d1d0ccfc7344b09c8b1d3d..7675dacb737693c6b1382a9d44c8384832c5f791 100644 (file)
@@ -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.*
index 252defb89171defaea716970667a057385f6593b..1c43885f83ed8e7f6b010e90e170375624a36bbc 100644 (file)
@@ -1,3 +1,3 @@
 #name: MIPS branch local symbol relocation 5
-#as: -32
+#as: -32 -mips1
 #error_output: branch-local-5.l
index dd7c98098716dbb4a0aceafe8d63adb3558ffff9..276ed3eddc692ed81697c6bdb12960a69147f558 100644 (file)
@@ -1,3 +1,3 @@
 #name: MIPS branch local symbol relocation 6
-#as: -32
+#as: -32 -mips32r2
 #error_output: branch-local-6.l
index 0cc2a1140bbd3ea89d67d0ff439b9b47b8900d93..d490a7bfebea011cc28912ed5b0ffd7ec8563668 100644 (file)
@@ -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.*
index ddac741f65d4c863116558d920f4354ca98532cf..6674a2d4043952a3acd82a302b2a4117bda97204 100644 (file)
@@ -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.*
index 918a2cedfdadf05cb2a83ee981fc7ff00d50579f..433fc414a1407c742bb09dc8f0923eaa2bb88254 100644 (file)
@@ -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.*
index 94ffe196900845a9e4dc101fb53dbc8237b9c807..3102ee5c6aa5bb370b7e7b1fa851ed2f1c4fd9b4 100644 (file)
@@ -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.*
index 156568822e3004a02994b46c813f62817cefcb9f..71d110d185632e79cc7aabe99836c6d9726ad656 100644 (file)
@@ -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.*
index 7782d0c0754fdf664beabe465cd1675afb045241..08c678d27ed86b3a59b6fd06e7dd75e58ea5fd11 100644 (file)
@@ -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
        \.\.\.
index 6009fe5b120714c1d6a740e97dd24ac53ecdbcc2..caf092c932ab774b739f2acb57c490ddf1ea32ca 100644 (file)
@@ -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.*
index b10fcde731db8db0bc050fedb6df78f4df7c4d58..d9072cbe5ace7eb4005d2c145ff656a7341cc701 100644 (file)
@@ -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
 
index b6ad0bba6b28d6206283a90039a78ab8e9ff716d..a831b6d06f05ee76cafd0a4c3fc9671ad9d7ae43 100644 (file)
@@ -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
 
index 859a2ca69fb300a71a33885c2400bd9778ea9382..349b5d96c8d34ce5529d8ab2926c8a23513c1c92 100644 (file)
@@ -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
        \.\.\.
index 61a10e00e6e092a70690ba97502d6c394c1379d0..a7fbcabb2dbf42682cfc01258d65ce8d0a3f6890 100644 (file)
@@ -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.*
index 8e6e8cfe4fee28d2e7b19184df17c4cee18a0c1f..11ceade64e0315ae1906c408e4e614c1ad946817 100644 (file)
@@ -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
 
index d21e1477b06404c2d822599adcf81b2d594323a4..8cc1f51ad32fd389067d70d2b7970b186320ea09 100644 (file)
@@ -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
 
index 13d8bdf13fc95016f5c602d346e45b1e8e96ee1f..67cd02ba8f5d67ca023ad58110d5cb85cad1a3a2 100644 (file)
@@ -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.*
index e16b1b89c16f667066a8d46d9a0d4ef3c8ac9dbf..f7076a79cc5b08598c689f1ae0bf4d6974e7d513 100644 (file)
@@ -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.*
index b291289fbfbddca01224dfb920687cfa8304a6da..90743d43216d2747ec10b13f3052777f2fb4d2cb 100644 (file)
@@ -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 (file)
index 0000000..513589e
--- /dev/null
@@ -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
index 12d092a5bb1a9eb4b0476e72e8758cc7ec17c3e4..f9bc12fdac9c705991e07ff083ffa86771a15000 100644 (file)
@@ -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:
index c4121629f46e5c9516213b1d96ee41653059b79b..de88882296ddc323a0f2f8fc6e0b0b3cf58d1336 100644 (file)
@@ -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.*
 
index e0885864bc53bfa91f8de1a9caa1a5d4494349e1..e8d9f489d92a4bd2d9a9716042db30dda23a3ac6 100644 (file)
@@ -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.*
 
index 2f0e8447fc27a4e82d6e5b3a2a7d25784efc6c9a..3a5345c79c611e54e5ea8b883c8e4817aa11ad87 100644 (file)
@@ -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.*
 
index 4ca4a24bc197a2a14b836566c972813069ce3ca4..a39ab45455cccaba7c2e47592d8d72ef0d84dad5 100644 (file)
@@ -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.*
 
index 298d2831a9d047c33fdd8dd23ed9940d66b8a35a..bc568353605755a861b87483e84b067b6e610446 100644 (file)
@@ -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.*
 
index 3766ecb74322106ff05e8db3bb8b21c325fcd166..a3d13c50035707f72b26cf96fafd206245837559 100644 (file)
@@ -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.*
 
index 8c891237feed4aeb800137138689d072f822e7a1..82da65ca2864c5350677c275ab298a1f77f153bf 100644 (file)
@@ -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.*
 
index 7046dd4cfde6f08191818eee0017dc43748c8d2f..d88871242aa5c25650c6f7670867f5bcc131a10c 100644 (file)
@@ -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.*
 
index 3573670880c911a691861d36d291b035e66d6ccb..b589122af597e9252bf58f9ce2cd15d367317e45 100644 (file)
@@ -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.*
 
index b426ec965665524bcb178f816d0ea0909ab68b8b..bffe5772343e8e41d2a61267258696a7d0a505f6 100644 (file)
@@ -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.*
 
index 67d85926331ac32fb9e522b008c5f8247c7a91bd..85bc6d10e1db5efd24c51c025ed089c15988241a 100644 (file)
@@ -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.*
 
index 623cc067dbd81f2e163421f24b80e37c8bcf1581..ffa93b6e7e83783414de4ec764321b7b959e125e 100644 (file)
@@ -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.*
 
index 7d5e2dd15c338dcc52caa86094af6c94a5d1eeb3..3dc8fb9ac574eba23d68990c5364cc66c9a6b8c1 100644 (file)
@@ -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.*
 
index 7296c606e0184f572f903dccc4f9af5fca8e5cae..626f84c02020b11907abaa16ff582145776f5240 100644 (file)
@@ -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.*
 
index bb7077eb771fc4c7cad66fc2efd02d1ea4ccad75..27d3d8848d4641b80d579383745edac77a149a88 100644 (file)
@@ -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
index 873bc5fd86a81dcc2ce37ae0f2e4a1c42380b76a..06c67a659bfd66436fa4da346c9104348d1248f7 100644 (file)
@@ -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)))))))
index cea8d7fd81b978531e0c31d3fd22f6793fb9666e..4918344b54e936059c2f960905f366f7ecb244af 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses
 #name: MIPS ELF reloc 6
-#as: -32
+#as: -32 -mips1
 
 .*: +file format elf.*mips.*
 
index 0eab856bd53509301fc1c7b8882c53836f2bc9c6..b7c383748532e7bfbb25fc8e609c88bce7f95cc3 100644 (file)
@@ -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[],].*
index 507e2708cc0f5d6b397613952df328b215a44c53..9afc1f3e6c56547450c31db632bca58766209f50 100644 (file)
@@ -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.*
index d19a07d491209a901231915c9e397a027a58edb5..bedf56c2127f7a37cfb19527210d71f5ccfd88aa 100644 (file)
@@ -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[],].*
index 20e0d8a5ba4b2d82efca3f9447d62b8b1b6bac1b..1b9c24ae95959ab685250bf521b0235211ccdd30 100644 (file)
@@ -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.*
index 7a9a3b92bfb6de2f7a90612b6d244cd1d3fee298..11fc7ad21574418229364d91be8ab81481a6a393 100644 (file)
@@ -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
index 9d2c61b96c1bc86eea44199e57078e37bdb3f2e0..6307ae5726691c9356089cf3d39d292e468d9041 100644 (file)
@@ -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.*
 
index a61c95e12b6fc3851b30dde5ccdeb8ddfb969002..2466397fd07819f63f8380888d4022b2e2787a2f 100644 (file)
@@ -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.
index 442bc69741b09c99aa1450f645eaa3c70341388f..a022eafe8617f924044e3a2c2d21f3045d7754e1 100644 (file)
@@ -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.*
 
index aa487ffc1762ee8895def75f3da8152476f91c5b..4d265b594251b3b8e372769fca41cd18c723b947 100644 (file)
@@ -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.*
 
index e380160ff380713bd019cb0a799ea2c16adb336a..65bb9f8a2e5067d9c8f40e16390a4e02c44f36a2 100644 (file)
@@ -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.*
 
index 9063df1a856aa5aab8297a2bb6a791e23a6ff965..5269bcc33bca97908c9472e7d25af9f434c8749d 100644 (file)
@@ -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
 
index 16e8a7a9e67ef4a267c3fa240b374f31e741bf7c..e0661892e8cd711165d8fb834d8c657b7ee7f178 100644 (file)
@@ -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.*
index fd224b56caae443795df73800f2f442c74878b99..3f6e336985617d922162b9f151feacba298001b1 100644 (file)
@@ -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.*
 
index 7fc6b9a78328351520de2ecbfdcfd4e6d42c8851..73328726013ce07718f576654b44a923cb86d2cb 100644 (file)
@@ -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.*
 
index b2d820ec106272645d0c1b35494d71a6a1840414..43a5cca20f26a7b29c0a4dde792b8dab153451bf 100644 (file)
@@ -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.*
index c30edc62d776d6b4c8e3bc51bbb6cbfd30cb465d..44fffdaaa7182aec7c63c122256b711c58a299a4 100644 (file)
@@ -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
 
index fa8bfaceb537389f61e22bffc370338b34a57411..2cc1323adc576b3175a1e1d44f51fc18e92a1dec 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -d
-#as:
+#as: -march=from-abi
 #name: mips jalx-2
 
 .*:     file format .*
index 17eb95f4aa4cc61c9bba841cc2c25a2660dd0610..7f964ed775f5fd0a7d4f2859c451a097d9a9e3af 100644 (file)
@@ -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}" \
index d352a79376a42e5640a97a8866e4c987b6c83c16..9859f1264498af6d6c9b57a9bf52b454d87062cf 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 absolute relocation 0
-#as: -32
+#as: -32 -mips1
 
 .*: +file format .*mips.*
 
index 4f00861a8d19be7dfecb6b7015bd2f6186b3ae07..45d3a1b0363c3d11aaac9b41d944f7fc8e69a3a0 100644 (file)
@@ -1,3 +1,3 @@
 #name: MIPS16 absolute relocation 2
-#as: -32
+#as: -32 -mips1
 #error_output: mips16-absolute-reloc-2.l
index ed0b9f9118e0469e511bb78be3bbacac0dd724a4..023c4fe51f191d412aeba00dea486982361c15fc 100644 (file)
@@ -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.*
 
index 49a331fd694bf17e1ba77b09d6eb1f9711c6e665..be0d7c085ce4a4bf077e7a4e813bbbecb8a0b096 100644 (file)
@@ -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
index 66841c392b67425d403b6f42f300111873a35108..74e978256567087ca4a1d348cb6d41a967e86261 100644 (file)
@@ -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
index de64afb97e4febccfc5d1cdb5b872c139694cb99..3aa1e26f204f414a96a7d71e5d2e5632ff65843b 100644 (file)
@@ -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.*
 
index 68b3fb4e8d08047fc524e1f40ecc69b052f3d5ad..bad4676a654e89b01e5ba4f8a6035c9c8babbe70 100644 (file)
@@ -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.*
 
index 9fe83e46a5137fb36a24774b684d1bdf14d7b157..aef3b306a614272e706b4a44c1dec2f0e706c8e7 100644 (file)
@@ -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.*
 
index b7b305429fe208fe8ae8d5aab8a97ba0fe27b089..884593c01f22d05ccd0b84b5f5b8aa94961236a9 100644 (file)
@@ -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.*
 
index 3e61c24e5ea6b57702267d627d490d362c432dbb..0b9f5c758c54324e1380973ebe8742834e7d3b73 100644 (file)
@@ -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.*
 
index f3ecb7516d6f1a3e53ee64a534281c457b014fbc..aacaf413dde33bb666b67fb9ba79fd7c423e68fa 100644 (file)
@@ -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.*
 
index 273a6e1f543396460af4467405a2ce021a43d6cb..cee2aa035a306865d7209c70ae88aa8538adcd71 100644 (file)
@@ -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.*
 
index 6b922350f9fadbfa23f94d82e07948596358b591..e3c79a49f69ba18c97909e15e2e866d646d6adbe 100644 (file)
@@ -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
index 80ad83bf7b10d30561f09fbec4aaadd68b387676..79685d0a2f6e1721c4f361eee34174fae5bb6ea0 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 branch relocation 0
-#as: -32
+#as: -32 -mips1
 
 .*: +file format .*mips.*
 
index d2ae8a7c980b56232157bc15dc45026ccf73987b..e4eb5d62e4d63d3840a03ff190c81670d5db6b1e 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 branch relocation 1
-#as: -32
+#as: -32 -mips1
 
 .*: +file format .*mips.*
 
index 4f920d203c4cecea3787b0ddba918562d9fa97ef..ada2644b8eb9a84124d2c96cc8cabf0bc3e0002f 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 branch relocation 2
-#as: -32
+#as: -32 -mips1
 
 .*: +file format .*mips.*
 
index c8e75fba2233ab3d451304cb896565f6541b7149..9b54bb77038d903e8256c3363065b0cb0d13a6d7 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 branch relocation 3
-#as: -32
+#as: -32 -mips1
 
 .*: +file format .*mips.*
 
index a2705f09a3bc34c4d1ecd9be83713ec80e453dba..5d17b2656d9e33a8f2fd7535a9d3c1c9336e7c16 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 branch relocation 4
-#as: -32
+#as: -32 -mips1
 
 .*: +file format .*mips.*
 
index 6cd7ebb42e1f4495236fc59022d01ccd536eaf6b..bd02ac2597cf23a9f8fe02b01a07a2dae1e27c8c 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 branch relocation 5
-#as: -32
+#as: -32 -mips1
 
 .*: +file format .*mips.*
 
index a39815601649428f35b46e571eb09f5bba8048d6..a77ed159a24700ec22ee805eb097cc8b0f0985eb 100644 (file)
@@ -1,3 +1,3 @@
 #name: MIPS16 unextended branch instructions with relocation 1
-#as: -32
+#as: -32 -mips32
 #error_output: mips16-branch-unextended.l
index 008bfb137d68aa22f4a3aee20fa3d1cadfe97a55..8d760bca8cb355bb14d09256f5697fbcfa943ed0 100644 (file)
@@ -1,3 +1,3 @@
 #name: MIPS16 unextended branch instructions with relocation 2
-#as: -32
+#as: -32 -mips32
 #error_output: mips16-branch-unextended.l
index 6b79dac577d7b61cb1369a6090969542354fea1c..eb609fa775f578bf47d5367b5a128feee4825f38 100644 (file)
@@ -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:
index d64b882c81cfc8a3f92eed9a189c9b73e4c74f5b..d4522d6e7c87b7602b5965ddf299b32ce39b4fcd 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -rst --special-syms -mips16
 #name: MIPS16 reloc
-#as: -32 -mips16
+#as: -32 -mips16 -mips32
 
 # Check MIPS16 reloc processing
 
index eec0b1906fbc5f85a6fffce902dc090d80e786a3..def16c92e448ac47b5cf7ad8c6cc306898f02a11 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -d --prefix-addresses --show-raw-insn
 #name: MIPS16 explicit EXTEND encoding
-#as: -32
+#as: -32 -mips32
 
 .*: +file format .*mips.*
 
index 9605b6f183ea95dc2ed903a569f502a05af977f2..62e30a31840c804262bf501d2701ebd1a703a6b3 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -rst -mips16
 #name: MIPS16 reloc 2
-#as: -32 -mips16
+#as: -32 -mips16 -mips32
 
 # Check MIPS16 reloc processing
 
index 081993a94e5a0165865ced498dee27170184aa97..2eabee73ba4926facb8fc2a0e3e35f475780c815 100644 (file)
@@ -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.*
index 1804795747206be85a3da9f90e7db33fef693850..6f550f45f45862c412c97c6a969e86d9a0c68385 100644 (file)
@@ -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.*
 
index bbccb7c1d881cb040b07281c6eab732bbcdfe822..0819742c2a1f20519320d2b994d0e90041b0087d 100644 (file)
@@ -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.*
 
index adb9856c620feea822027afc273f710bcbcb7091..d5b71def4c670156f9d54aec1fe6428b6a177092 100644 (file)
@@ -1,3 +1,3 @@
 #name: MIPS16 explicit unextended JAL instructions
-#as: -32
+#as: -32 -mips32
 #error_output: mips16-jal-t.l
index 55d15e1e62485d78980396ee61421d21a5f95f59..a4cd8ca350c78a37868ca5f8d2b3a7a6a75b5f75 100644 (file)
@@ -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;
index 1b19d45422c048473fb80a12c2a752a97732551c..9b263da261bc49d588e327165e1c17ace0ff17b5 100644 (file)
@@ -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
index 6c3b4fe7ffa999a3f169be0e6a3f689af1889b32..0b3b5c18efc9e3c1d5d4e51f223474987ccbdb71 100644 (file)
@@ -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;
index 2d0c6ca614b22fe6a75b9105f4ec23e5f12b9f5d..337a886b113cceaed5534be718d0a8cbee374235 100644 (file)
@@ -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
index 90a190afc0ef8fd780b95ba893137b8e1982bac2..594305cd6a7755e11207fcaa6a7dbf4e9c68e503 100644 (file)
@@ -1,3 +1,4 @@
 # readelf: --symbols
+# as: -march=from-abi
 #...
 .*: 0+0 +2 +FUNC +GLOBAL +HIDDEN +\[MIPS16\] +[0-9]+ foo
index 2e4e8417dfb5c681cd7cccfaf2ae7c55281d272a..266b2218c8d4db8b82fe22b3095f3179ebf586c1 100644 (file)
@@ -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
index 57db1a7955b8dccb9e35a4180320d503db112dc7..dbce3b03e743ee20a5a433fd43e88ac55596e5a2 100644 (file)
@@ -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
index 28b47f63517ffca99a41d68cc955d8633d433ba8..7cc38c5ca1c519412513d8d55c29478d6ee41155 100644 (file)
@@ -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 (file)
index 0000000..a97e94d
--- /dev/null
@@ -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 (file)
index 0000000..38bc1bd
--- /dev/null
@@ -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 (file)
index 0000000..18ba3b2
--- /dev/null
@@ -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 (file)
index 0000000..12aea59
--- /dev/null
@@ -0,0 +1,3 @@
+.module fp=64
+.module doublefloat
+.module softfloat
index e081e519dc371ba20c7420d4ed4a1d94e4bea23f..bf2e2ebbb5e07dd8e381f972ebfa30b1b499bd1d 100644 (file)
@@ -1,4 +1,4 @@
-#as: -32
+#as: -32 -mips1
 #readelf: -A
 #name: MIPS module softfloat
 
index 8f179fb4aede25d19ed9da5c308b8e379574c068..50075678292d4865f30cf73d8ec62787dde4e677 100644 (file)
@@ -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[],].*
index c13d634b486cc9b490c44f86e13c5d0cdb4cbae1..5534f04c83711addaa8b2a69bac4521551da0edc 100644 (file)
@@ -1,6 +1,7 @@
 #name: MIPS legacy NaN setting 1
 #source: nan-legacy.s
 #objdump: -p
+#as: -march=from-abi
 
 .*:.*file format.*mips.*
 #failif
index 4a4af6155cc7a858ff1f90c341997048b9a7b536..d541fffa406515267f0e3ac4c6f94bbfd49d1baf 100644 (file)
@@ -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
index c463f2b2d38454913779dd208c86fb1b82a7004a..167945ae23f90e6788bb28409fe798dac01164d3 100644 (file)
@@ -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
index 99c5de750c66afe9968e7c4df82d65dc67310142..b0d6b06d8102924fe5dafb24392e676ac8d62520 100644 (file)
@@ -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
index b0ccb31ff5864dd45ad9f8335b61c7230d7d9c25..12481543327e7951fc523dfad7ab73f49daf899e 100644 (file)
@@ -1,6 +1,7 @@
 #name: MIPS legacy NaN setting 5
 #source: empty.s
 #objdump: -p
+#as: -march=from-abi
 
 .*:.*file format.*mips.*
 #failif
index da32af6a6ceb713aeb5c1cc969859d49e4761a21..612414ae752c11eb5fd1fe39d4c70ddba35a5bb0 100644 (file)
@@ -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
        \.\.\.
index 141cc5dc8ee8ec1e9185c84208b4b577d3599344..5e14b289c2d67d883b7a071184966f7de73e14db 100644 (file)
@@ -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
        \.\.\.
index dd68fc8c96bf3135b976f9ab012c0359e45e8cd0..717a0990e2a525375f7c37ae79757a40aa84e6b5 100644 (file)
@@ -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
        \.\.\.
index 30f9c5fae4a5daac2e3137840e35bda841a3114a..f917ab0d6c5d67a3d553fe90f8b1abda401cae24 100644 (file)
@@ -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
        \.\.\.
index d6d4088d7918eec5b685eed9650261a2e909670c..3c557d37a9d5e28cd0d12b14ea5ebdcc55c41bf2 100644 (file)
@@ -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
 
index 15adf1155c2fc916faef77744d94b88db13ddc62..a891b2b45ac262da8257b9f8f53c61c85fd49434 100644 (file)
@@ -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
index 948f3299abcc9a71cbd00822e71d8504d99d30ff..827c303a02cde5ae390557f5558e95331dee8500 100644 (file)
@@ -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
index b21951f8c1c3138db13466084fea39b66e42cac6..da1fad094ef1c4512ba182b17381d6dd07702c88 100644 (file)
@@ -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
 
index 0670988eadb65f1151fe41c5123b7801c918597a..1ec11e37242d4ca653d79f766c82ff322fd4a7db 100644 (file)
@@ -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
 
index b464230cd770637400825d66ef60bc5ef34c737e..47c6e96c02b7bd6f54fe2aa79687706ee6bc1c25 100644 (file)
@@ -1,5 +1,5 @@
 #nm: -g --defined-only
-#as: -32
+#as: -32 -mips1
 #name: MIPS .org test 11
 
 0+001000 . bar
index 323c301045622be69ab9a522a67e461a9a9772ac..d634baa7afec9397c3459a18019a35629e102fa3 100644 (file)
@@ -1,5 +1,6 @@
 #nm: -g --defined-only
 #name: MIPS .org test 12
+#as: -march=from-abi
 
 0+001000 . bar
 0+000000 . foo
index abdd5638a0db3cce222fad1019f814fccd21015b..b5c7c9b499db03e65108e7583d8bc152e9053dc9 100644 (file)
@@ -1,5 +1,5 @@
 #nm: -g --defined-only
-#as: -32
+#as: -32 -mips1
 #name: MIPS .org test 2
 
 0+001000 . bar
index 04d520874db477cfe0e776c45d3ed5011e9e60ab..31fa39d7a241bcbc7b66d449cd607b0c149d66e0 100644 (file)
@@ -1,5 +1,6 @@
 #nm: -g --defined-only
 #name: MIPS .org test 3
+#as: -march=from-abi
 
 0+001000 . bar
 0+000000 . foo
index a1603ebb81c2b6607916ee21951696483753eb7d..cd038cc5307064e4695c77da294641506cfbfa5e 100644 (file)
@@ -1,3 +1,3 @@
-#as: --relax-branch
+#as: --relax-branch -march=from-abi
 #name: MIPS .org test 4
 #error_output: org-4.l
index b63fcca0979f5d5b153514f2c1d9086b3e2ed280..5638496db34f583b4528805210e4357bf39cc2a1 100644 (file)
@@ -1,3 +1,3 @@
-#as: -32
+#as: -32 -mips1
 #name: MIPS .org test 5
 #error_output: org-5.l
index 887cb326665dc3bb8b78708fb515c0c00942c207..bbf0f5006be7356ce1c4f25aa0d2d900ec62fd3e 100644 (file)
@@ -1,2 +1,3 @@
 #name: MIPS .org test 6
 #error_output: org-6.l
+#as: -march=from-abi
index 71f545db14e6d7bfe0204e3739ca0536e348d97e..228f2c9fab97303c7191a563bcc5ceae4afd92d3 100644 (file)
@@ -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
index 0d1acf934e0c02336033130bb46c1174a4f40252..d44f5475a50979bc23dc05e646b7271ae88dc8cb 100644 (file)
@@ -1,5 +1,5 @@
 #nm: -g --defined-only
-#as: -32
+#as: -32 -mips1
 #name: MIPS .org test 8
 
 0+000100 . bar
index fe9e3f313c39483ba2e553d40573053e5e20b09a..e2bcb98ecd93a86cff66807320cc07a398772c5e 100644 (file)
@@ -1,5 +1,6 @@
 #nm: -g --defined-only
 #name: MIPS .org test 9
+#as: -march=from-abi
 
 0+000080 . bar
 0+000000 . foo
index 4d4d21f4d4f11d59b04314c128bb562b7846ff34..1851e7478f79f8edbb67716a089af5a68e89270b 100644 (file)
@@ -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.*
index 25f7f7bc0d80206789937b8b03a51712fac516e9..d4d55d1ea3d1457c8354e4fe80e352007f24663f 100644 (file)
@@ -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
index cb587b9b201d9d1cc87a4ab793445814b97dff97..399ce104078d7c61ed4dbb3409ddb0b89309943b 100644 (file)
@@ -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
index faeb6a5f3de2cda366de3d7301e0fbd57cbae83d..2322524fd77422c179aba3660cc87e8534f97363 100644 (file)
@@ -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.*
index 227b3fc45ba821e9c876cca67c8c30947444ee57..6b52c573c385a90c2f1360741bd132650a65dcad 100644 (file)
@@ -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.*
index 03e65f62fb97f59785c02ec5e155580d9b57567e..01e5bd734f7809d12c4a11ec70e0681760332488 100644 (file)
@@ -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.*
index d1799dc793d80f7ae56302690942cabcbcfca3f0..49f6c19aad55c7b2cc0537ca7c00dd42f4957a45 100644 (file)
@@ -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 .*
 
index bcf3de0cab2aa790255bb7e2735df65a63d57d52..75ed1b15f7b278168b9d0861739520b8c8a18ed0 100644 (file)
@@ -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
index 95bb5647a092fca47181eb67019f6ec7e8e03ee8..7cec0b96ac7a4e07839bcf3bb662671bbc65a94b 100644 (file)
@@ -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
index 95d473c054ca531885172040c3a5aaf9d9fd322b..161ee2fa586a9e8b6644abf3790f97d266b6251f 100644 (file)
@@ -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
index 5639bb0b16d80e6d25eff92d1d189768893542b8..ced710bc08c579f31944772f5143400cbe87ca44 100644 (file)
@@ -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
index 1e5960cbe0974227a81338a7befcfdb139b0f51d..b5995e877ed81d19442f3705cb926600518d3228 100644 (file)
@@ -134,6 +134,7 @@ bar\@ :
        .endm
 
        .align  4
+       .set    mips32r2
        .set    micromips
        obj     16
        fun     8
index beb59128d03f221b01b402bbfe4b65c234125c1c..354e5bce7ade6908e965c8d4a09d5821cb97a7db 100644 (file)
@@ -136,6 +136,7 @@ bar\@ :
        .endm
 
        .align  4
+       .set    mips32r2
        .set    micromips
        obj     16
        fun     8
index eed864a46a208c91a437d50f0704afed2cb3f146..b5b7e2bb4f83f4eff596ed1e089aeec05de8709d 100644 (file)
@@ -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.*
index a3427a8ba289465dd4c335412754ef29eb1daedf..f9ca353b11b91c45643c8dbe04abc0a081dc6e23 100644 (file)
@@ -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.*
index 24d051d5c421d4c29c91532354bc3823585b02e0..71bce95ea53963f758446437eb3b741a8e8c1501 100644 (file)
@@ -1,5 +1,6 @@
 #source: attr-gnu-4-0.s
 #source: attr-gnu-4-1.s
+#as: -march=from-abi
 #ld: -r
 #readelf: -A
 
index ce94a818eb60f64078771ed30eca45dff7713b23..12268fb6f5cc6e6857a1a9c9f5f09011622f9ff9 100644 (file)
@@ -1,5 +1,6 @@
 #source: attr-gnu-4-1.s
 #source: attr-gnu-4-1.s
+#as: -march=from-abi
 #ld: -r
 #readelf: -A
 
index 6aa22b9901cf93efba05460ce5abfb8e6b199cbc..67f2bdf0db9cccf279d495d2a62bed7c998df08d 100644 (file)
@@ -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
index 49f2137e0e2c5f23ac9ddd187d4c172352b85101..029d0ed3784c37c26073a1d138a8cb6209ee694a 100644 (file)
@@ -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
index 2f8e5f092539f72f15e0b5f9ecf4517ceb585d58..a8a2aaa242038671f02e9c3f3bd7aa6c6da26a13 100644 (file)
@@ -1,5 +1,6 @@
 #source: attr-gnu-8-0.s
 #source: attr-gnu-8-0.s
+#as: -march=from-abi
 #ld: -r
 #readelf: -A
 
index e2cda3341e7468959d5e0c077ffb8fac3e67cb77..82006ff4b76a5c8c9e39cb8791532a06bb7750e4 100644 (file)
@@ -1,5 +1,6 @@
 #source: attr-gnu-8-0.s
 #source: attr-gnu-8-1.s
+#as: -march=from-abi
 #ld: -r
 #readelf: -A
 
index 54b196fa38bc63ad747125e0a4905f8c70576ae7..9f08a438bb2ce66af668d8f6516b2c2528ed2014 100644 (file)
@@ -1,5 +1,6 @@
 #source: attr-gnu-8-0.s
 #source: attr-gnu-8-2.s
+#as: -march=from-abi
 #ld: -r
 #readelf: -A
 
index f7c512beeb454b5c73ce23cd4844bc4d456e2e2a..97962829120ed6018d979e0a53604707e9ac3afe 100644 (file)
@@ -1,5 +1,6 @@
 #source: attr-gnu-8-1.s
 #source: attr-gnu-8-0.s
+#as: -march=from-abi
 #ld: -r
 #readelf: -A
 
index be87af4bd183b1c7f74662863eaf0e973a7f92f0..8d3cf40c8347f1ef21b0af42d122207335a01078 100644 (file)
@@ -1,5 +1,6 @@
 #source: attr-gnu-8-1.s
 #source: attr-gnu-8-1.s
+#as: -march=from-abi
 #ld: -r
 #readelf: -A
 
index 05f4da064a9137198114c3bdd2159d98f2ab4c8f..02abcc7583aa7013869950d7e8493f61bb0a0e14 100644 (file)
@@ -1,5 +1,6 @@
 #source: attr-gnu-8-2.s
 #source: attr-gnu-8-0.s
+#as: -march=from-abi
 #ld: -r
 #readelf: -A
 
index 908ce4f00a2f1d63228d8c49d3caab9fa9a2d3e8..164bc25b326922ca8f53e4cd7f040ae1ba97a569 100644 (file)
@@ -1,5 +1,6 @@
 #source: attr-gnu-8-2.s
 #source: attr-gnu-8-2.s
+#as: -march=from-abi
 #ld: -r
 #readelf: -A
 
index 0de07297323906fae6ffc11d29b201963b269173..32e15a2541e85bc1fea2a5ea32200cd93b5d3b92 100644 (file)
@@ -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:
index c6380ba1fb0e9b983debfa991bd25e1e2e9173a6..3b06e717f5f46795ad26cb1b1cd5ce99df3996d7 100644 (file)
@@ -2,4 +2,4 @@
   .text
 foo:
   lui    $t0, %hi(_gp_disp)
-  addi   $t0, $t0, %lo(_gp_disp)
+  addiu   $t0, $t0, %lo(_gp_disp)
index 6b6d48412088091f0153742e884c5c9d93cef5a4..5c9d83fdfd4842028cc5401a2b2aa2419a5e9a17 100644 (file)
@@ -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
        \.\.\.
index f0826288ecb3a24290e3491d767853d2026dbced..80c3be229a43fa95e0850a76ba36db2bab3f997e 100644 (file)
@@ -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
 
index 920bb121a6791d34b8d0a3a2d99794d9e898eeed..ff9635ec9d1e6aa5ac189a7e45794c3bc2121556 100644 (file)
@@ -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"
index 77d1316cb1e97c02baeb377f4e95bce9d0305122..f2d5caafe4b4155d3ee08246537b9f397aa9a0cb 100644 (file)
@@ -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
 
index 6d740fe7209439e63c944777f8d54f700e84bfc8..4b89ae30388fa37ca6441e7738faf8dd2e133b1f 100644 (file)
@@ -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
index afa54d88f0eaf85bf4421a21f05353ed1ebec337..90636c2e42d0955fea6f26d20d897dd3824e9996 100644 (file)
@@ -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
index 4c24a9a16ceed21fe9912c7e4d0a25c88c3c00d8..51d654a343b4a91a4b0aee8d3bbadfaaecc57f8e 100644 (file)
@@ -15,7 +15,7 @@ Disassembly of section \.plt:
 00000000100002a0 <bar@plt>:
     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:
index 01c502561538f5a662445237ba6b86a295342912..71fee33c4e193865cc847ecf8b489dd4cc95ece3 100644 (file)
@@ -15,7 +15,7 @@ ffffffff1000029c:     2718fffe        addiu   t8,t8,-2
 ffffffff100002a0 <bar@plt>:
 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:
index 8dacc0696719f789524a461861ca102a9c12f1b1..0d90432e61b83c448d2fa07b391a896df4639058 100644 (file)
@@ -1,5 +1,6 @@
 #source: nan-legacy.s
 #source: nan-legacy.s
+#as: -march=from-abi
 #ld: -r
 #objdump: -p
 
index 9bc524c55525594af2da497bc4ae188ecdefcaf6..c7e9570d5ee44bb4c4bb5965ab55d5ea5d2ad2dd 100644 (file)
@@ -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
index 388d7709663a3cb41f5076c3139e66eae8321a0d..a96cda06081eb3714a7e4afbe441ad493400a1f4 100644 (file)
@@ -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
index 3baf22851a0b0e85826086210221a329c5de4221..e3cc14ec7939218ff24a0c06519125d30217efc3 100644 (file)
@@ -17,6 +17,6 @@ Disassembly of section \.text:
    4101c:      27391020        addiu   t9,t9,4128
 
 00041020 <foo2>:
-   41020:      03e00008        jr      ra
+   41020:      03e0000[89]     jr      ra
    41024:      00000000        nop
        \.\.\.
index 1ec51c5f8f3217ec32d27fb3b0674f2f90d8d6a2..02150162d370b68131435a71bc333d7302f28ed4 100644 (file)
@@ -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