aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2010-10-24 10:19:02 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2010-10-24 10:19:02 +0000
commit484cf5580d45bca3d4eb111c48126ab6438a2eeb (patch)
tree36bb454e22ea08692c455658f3a06c2d81af3d93 /gas/testsuite
parent233c7e41a6c0d7642b20f4cdcbf49226f1aaed77 (diff)
downloadgdb-484cf5580d45bca3d4eb111c48126ab6438a2eeb.zip
gdb-484cf5580d45bca3d4eb111c48126ab6438a2eeb.tar.gz
gdb-484cf5580d45bca3d4eb111c48126ab6438a2eeb.tar.bz2
* gas/mips/ld.s: Adjust to let data objects be only
defined/declared (as appropriate) at the end of assembly, based on the presence or not of the "forward" symbol. * gas/mips/ld-forward.d: New test. * gas/mips/mips1@ld-forward.d: Likewise. MIPS I version. * gas/mips/r3000@ld-forward.d: Likewise, R3000 version. * gas/mips/ecoff@ld-forward.d: Likewise, ECOFF version. * gas/mips/r3900@ecoff@ld-forward.d: Likewise, R3900/ECOFF version. * gas/mips/mips2@ecoff@ld-forward.d: Likewise, MIPS II/ECOFF version. * gas/mips/mips32@ecoff@ld-forward.d: Likewise, MIPS32/ECOFF version. * gas/mips/mips32r2@ecoff@ld-forward.d: Likewise, MIPS32r2/ECOFF version. * gas/mips/ld-n32-forward.d: New test. * gas/mips/ld-n64-forward.d: Likewise. * gas/mips/mips.exp: Run the new tests.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog21
-rw-r--r--gas/testsuite/gas/mips/ecoff@ld-forward.d5
-rw-r--r--gas/testsuite/gas/mips/ld-forward-n32.d5
-rw-r--r--gas/testsuite/gas/mips/ld-forward-n64.d5
-rw-r--r--gas/testsuite/gas/mips/ld-forward.d5
-rw-r--r--gas/testsuite/gas/mips/ld.s10
-rw-r--r--gas/testsuite/gas/mips/mips.exp6
-rw-r--r--gas/testsuite/gas/mips/mips1@ld-forward.d583
-rw-r--r--gas/testsuite/gas/mips/mips2@ecoff@ld-forward.d5
-rw-r--r--gas/testsuite/gas/mips/mips32@ecoff@ld-forward.d5
-rw-r--r--gas/testsuite/gas/mips/mips32r2@ecoff@ld-forward.d5
-rw-r--r--gas/testsuite/gas/mips/r3000@ld-forward.d5
-rw-r--r--gas/testsuite/gas/mips/r3900@ecoff@ld-forward.d5
13 files changed, 665 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index ce14ea7..a46bc91 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,26 @@
2010-10-24 Maciej W. Rozycki <macro@linux-mips.org>
+ * gas/mips/ld.s: Adjust to let data objects be only
+ defined/declared (as appropriate) at the end of assembly, based
+ on the presence or not of the "forward" symbol.
+ * gas/mips/ld-forward.d: New test.
+ * gas/mips/mips1@ld-forward.d: Likewise. MIPS I version.
+ * gas/mips/r3000@ld-forward.d: Likewise, R3000 version.
+ * gas/mips/ecoff@ld-forward.d: Likewise, ECOFF version.
+ * gas/mips/r3900@ecoff@ld-forward.d: Likewise, R3900/ECOFF
+ version.
+ * gas/mips/mips2@ecoff@ld-forward.d: Likewise, MIPS II/ECOFF
+ version.
+ * gas/mips/mips32@ecoff@ld-forward.d: Likewise, MIPS32/ECOFF
+ version.
+ * gas/mips/mips32r2@ecoff@ld-forward.d: Likewise, MIPS32r2/ECOFF
+ version.
+ * gas/mips/ld-n32-forward.d: New test.
+ * gas/mips/ld-n64-forward.d: Likewise.
+ * gas/mips/mips.exp: Run the new tests.
+
+2010-10-24 Maciej W. Rozycki <macro@linux-mips.org>
+
* gas/mips/ld-n32.d: New test.
* gas/mips/ld-n64.d: Likewise.
* gas/mips/mips.exp: Run the new tests.
diff --git a/gas/testsuite/gas/mips/ecoff@ld-forward.d b/gas/testsuite/gas/mips/ecoff@ld-forward.d
new file mode 100644
index 0000000..f0bfd9d
--- /dev/null
+++ b/gas/testsuite/gas/mips/ecoff@ld-forward.d
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym forward=1
+#name: MIPS ld forward
+#source: ld.s
+#dump: ecoff@ld.d
diff --git a/gas/testsuite/gas/mips/ld-forward-n32.d b/gas/testsuite/gas/mips/ld-forward-n32.d
new file mode 100644
index 0000000..93ba798
--- /dev/null
+++ b/gas/testsuite/gas/mips/ld-forward-n32.d
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses
+#as: -n32 --defsym forward=1
+#name: MIPS ld forward n32
+#source: ld.s
+#dump: ld-n32.d
diff --git a/gas/testsuite/gas/mips/ld-forward-n64.d b/gas/testsuite/gas/mips/ld-forward-n64.d
new file mode 100644
index 0000000..865f651
--- /dev/null
+++ b/gas/testsuite/gas/mips/ld-forward-n64.d
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses
+#as: -64 --defsym forward=1
+#name: MIPS ld forward n64
+#source: ld.s
+#dump: ld-n64.d
diff --git a/gas/testsuite/gas/mips/ld-forward.d b/gas/testsuite/gas/mips/ld-forward.d
new file mode 100644
index 0000000..74c8886
--- /dev/null
+++ b/gas/testsuite/gas/mips/ld-forward.d
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym forward=1
+#name: MIPS ld forward
+#source: ld.s
+#dump: ld.d
diff --git a/gas/testsuite/gas/mips/ld.s b/gas/testsuite/gas/mips/ld.s
index 0f8ae9b..17135af 100644
--- a/gas/testsuite/gas/mips/ld.s
+++ b/gas/testsuite/gas/mips/ld.s
@@ -1,5 +1,6 @@
# Source file used to test the ld macro.
+ .macro data
.bss
.align 12
.sbss
@@ -13,6 +14,11 @@ data_label:
.comm small_external_common,1
.lcomm big_local_common,1000
.lcomm small_local_common,1
+ .endm
+
+ .ifndef forward
+ data
+ .endif
.text
.align 12
@@ -116,3 +122,7 @@ data_label:
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.align 2
.space 8
+
+ .ifdef forward
+ data
+ .endif
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index cfe8fcd..9e274ad 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -515,11 +515,17 @@ if { [istarget mips*-*-vxworks*] } {
}
if !$aout {
run_dump_test_arches "ld" [mips_arch_list_matching mips1]
+ run_dump_test_arches "ld-forward" \
+ [mips_arch_list_matching mips1]
if $has_newabi {
run_dump_test_arches "ld-n32" \
[mips_arch_list_matching mips3]
+ run_dump_test_arches "ld-forward-n32" \
+ [mips_arch_list_matching mips3]
run_dump_test_arches "ld-n64" \
[mips_arch_list_matching mips3]
+ run_dump_test_arches "ld-forward-n64" \
+ [mips_arch_list_matching mips3]
}
}
if $elf { run_dump_test "ld-svr4pic" }
diff --git a/gas/testsuite/gas/mips/mips1@ld-forward.d b/gas/testsuite/gas/mips/mips1@ld-forward.d
new file mode 100644
index 0000000..80b3afb
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips1@ld-forward.d
@@ -0,0 +1,583 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym forward=1
+#name: MIPS ld forward
+#source: ld.s
+
+# Test the ld macro using forward references (MIPS1).
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> lw a0,0\(zero\)
+[0-9a-f]+ <[^>]*> lw a1,4\(zero\)
+[0-9a-f]+ <[^>]*> lw a0,1\(zero\)
+[0-9a-f]+ <[^>]*> lw a1,5\(zero\)
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[0-9a-f]+ <[^>]*> lw a0,-32768\(zero\)
+[0-9a-f]+ <[^>]*> lw a1,-32764\(zero\)
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[0-9a-f]+ <[^>]*> lui at,0x2
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lw a0,0\(a1\)
+[0-9a-f]+ <[^>]*> lw a1,4\(a1\)
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lw a0,1\(a1\)
+[0-9a-f]+ <[^>]*> lw a1,5\(a1\)
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lw a0,-32768\(a1\)
+[0-9a-f]+ <[^>]*> lw a1,-32764\(a1\)
+[0-9a-f]+ <[^>]*> lui at,0x1
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[0-9a-f]+ <[^>]*> lui at,0x2
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,0\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,4\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a0,0\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,4\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a0,(0|8192)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|8196)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a0,(0|-16384)\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|-16380)\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,(1|4097)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,(5|4101)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,1\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,5\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,1\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,5\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> lw a0,1\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,5\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a0,1\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,5\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a0,(1|8193)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,(5|8197)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a0,(1|-16383)\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
+[0-9a-f]+ <[^>]*> lw a1,(5|-16379)\(gp\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a0,-(32768|24576)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|24572)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a0,-(32768|24576)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|24572)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a0,(0|8192)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|8196)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,-(23131|19035)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(23127|19031)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a0,-(23131|14939)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,-(23127|14935)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a0,-(23131|19035)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(23127|19031)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,(0|8192)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|8196)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lw a0,(0|-16384)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|-16380)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,(1|4097)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,(5|4101)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,1\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,5\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lw a0,1\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,5\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_data_label
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,1\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,5\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lw a0,1\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,5\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) small_external_common
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,(1|8193)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,(5|8197)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> nop
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lw a0,(1|-16383)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
+[0-9a-f]+ <[^>]*> lw a1,(5|-16379)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_GPREL16|GPREL) \.sbss(\+0x4000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-(32768|24576)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|24572)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-32768\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,-32764\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-(32768|24576)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|24572)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lui at,0x0
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-(32768|28672)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(32764|28668)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,0\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,4\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,(0|8192)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|8196)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lui at,0x1
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,(0|4096)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,(4|4100)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-(23131|19035)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(23127|19031)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.data(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_data_label
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_data_label
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) big_external_common
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-23131\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lw a1,-23127\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) small_external_common
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-(23131|14939)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lw a1,-(23127|14935)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.bss(\+0xffffe000)?
+[0-9a-f]+ <[^>]*> lui at,0x2
+[ ]*[0-9a-f]+: (R_MIPS_HI16|REFHI) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lw a0,-(23131|19035)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+[0-9a-f]+ <[^>]*> lw a1,-(23127|19031)\(at\)
+[ ]*[0-9a-f]+: (R_MIPS_LO16|REFLO) \.sbss(\+0xfffff000)?
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mips2@ecoff@ld-forward.d b/gas/testsuite/gas/mips/mips2@ecoff@ld-forward.d
new file mode 100644
index 0000000..74c8886
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips2@ecoff@ld-forward.d
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym forward=1
+#name: MIPS ld forward
+#source: ld.s
+#dump: ld.d
diff --git a/gas/testsuite/gas/mips/mips32@ecoff@ld-forward.d b/gas/testsuite/gas/mips/mips32@ecoff@ld-forward.d
new file mode 100644
index 0000000..74c8886
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips32@ecoff@ld-forward.d
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym forward=1
+#name: MIPS ld forward
+#source: ld.s
+#dump: ld.d
diff --git a/gas/testsuite/gas/mips/mips32r2@ecoff@ld-forward.d b/gas/testsuite/gas/mips/mips32r2@ecoff@ld-forward.d
new file mode 100644
index 0000000..74c8886
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips32r2@ecoff@ld-forward.d
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym forward=1
+#name: MIPS ld forward
+#source: ld.s
+#dump: ld.d
diff --git a/gas/testsuite/gas/mips/r3000@ld-forward.d b/gas/testsuite/gas/mips/r3000@ld-forward.d
new file mode 100644
index 0000000..661ad7e
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3000@ld-forward.d
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym forward=1
+#name: MIPS ld forward
+#source: ld.s
+#dump: mips1@ld-forward.d
diff --git a/gas/testsuite/gas/mips/r3900@ecoff@ld-forward.d b/gas/testsuite/gas/mips/r3900@ecoff@ld-forward.d
new file mode 100644
index 0000000..74c8886
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3900@ecoff@ld-forward.d
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym forward=1
+#name: MIPS ld forward
+#source: ld.s
+#dump: ld.d