This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

patch r5900/micromips handling


Hello,

the attached patch was requested by Maciej W. Rozycki. As requested this fixes the micromips handling and disables ll, sc, lld and scd on the r5900.
This also enables l.d and s.d macros on r5900. This will use lwc1/swc1 to emulate ldc1/sdc1. The largest part of the patch is the test for this and fixing the tests.
The patch need to be applied after the previous one for VU support on r5900.

gas/ChangeLog:
* config/tc-mips.c: Fix micromips and ldc1/sdc1 handling. micromips is globally enabled disabled. Macro for trunc.w.s should not be used on r5900.

gas/testsuite/Changelog:
* gas/mips/24k-triple-stores-2.d gas/mips/24k-triple-stores-2.s gas/mips/micromips@24k-triple-stores-2.d gas/mips/24k-triple-stores-2-llsc.d gas/mips/24k-triple-stores-2-llsc.s: Move "sc" tests to separate file.
* gas/mips/l_d-single.d gas/mips/s_d-single.d: Verify l.d and s.d macros on singlefloat (r5900).
* gas/testsuite/gas/mips/mips.exp: Run "sc" tests on machines supporting it. Run "nollsc" tests on r5900.
* gas/mips/r5900-full.d gas/mips/r5900-full.s: Verify that mips ISA level can be upgraded to support ll, sc, lld and scd.
* gas/mips/r5900-nollsc.l gas/mips/r5900-nollsc.s: Verify that ll, sc, lld and scd are disabled on r5900.

opcodes/Changelog:
* mips-opc.c: Disable ll, sc, lld and scd on r5900. Enable l.d and s.d macros on r5900. Disable bad macro for trunc.w.s on r5900, because it is using undefined instructions on r5900.

Best regards
JÃrgen Urban
diff -Nurp binutils-cvs-20130104/gas/config/tc-mips.c binutils-cvs-20130104-mips64el-linux-patched/gas/config/tc-mips.c
--- binutils-cvs-20130104/gas/config/tc-mips.c	2013-01-26 18:28:08.455235967 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/config/tc-mips.c	2013-01-27 19:54:59.325886227 +0100
@@ -507,6 +507,9 @@ static int mips_32bitmode = 0;
 /* True if CPU has seq/sne and seqi/snei instructions.  */
 #define CPU_HAS_SEQ(CPU)	(CPU_IS_OCTEON (CPU))
 
+/* True, if CPU has support for ldc1 and sdc1. */
+#define CPU_HAS_LDC1_SDC1(CPU)	((mips_opts.isa != ISA_MIPS1) && ((CPU) != CPU_R5900))
+
 /* True if mflo and mfhi can be immediately followed by instructions
    which write to the HI and LO registers.
 
@@ -9027,8 +9030,7 @@ macro (struct mips_cl_insn *ip)
       s = segment_name (S_GET_SEGMENT (offset_expr.X_add_symbol));
       if (strcmp (s, ".lit8") == 0)
 	{
-	  if ((mips_opts.isa != ISA_MIPS1 || mips_opts.micromips)
-	    && (mips_opts.arch != CPU_R5900))
+	  if (CPU_HAS_LDC1_SDC1(mips_opts.arch) || mips_opts.micromips)
 	    {
 	      macro_build (&offset_expr, "ldc1", "T,o(b)", treg,
 			   BFD_RELOC_MIPS_LITERAL, mips_gp_register);
@@ -9051,8 +9053,7 @@ macro (struct mips_cl_insn *ip)
 	      macro_build_lui (&offset_expr, AT);
 	    }
 
-	  if ((mips_opts.isa != ISA_MIPS1 || mips_opts.micromips)
-	    && (mips_opts.arch != CPU_R5900))
+	  if (CPU_HAS_LDC1_SDC1(mips_opts.arch) || mips_opts.micromips)
 	    {
 	      macro_build (&offset_expr, "ldc1", "T,o(b)",
 			   treg, BFD_RELOC_LO16, AT);
@@ -9069,8 +9070,7 @@ macro (struct mips_cl_insn *ip)
       r = BFD_RELOC_LO16;
     dob:
       gas_assert (!mips_opts.micromips);
-      gas_assert ((mips_opts.isa == ISA_MIPS1)
-        || (mips_opts.arch == CPU_R5900));
+      gas_assert (!CPU_HAS_LDC1_SDC1(mips_opts.arch));
       macro_build (&offset_expr, "lwc1", "T,o(b)",
 		   target_big_endian ? treg + 1 : treg, r, breg);
       /* FIXME: A possible overflow which I don't know how to deal
@@ -9082,7 +9082,7 @@ macro (struct mips_cl_insn *ip)
 
     case M_S_DOB:
       gas_assert (!mips_opts.micromips);
-      gas_assert (mips_opts.isa == ISA_MIPS1);
+      gas_assert (!CPU_HAS_LDC1_SDC1(mips_opts.arch));
       /* Even on a big endian machine $fn comes before $fn+1.  We have
 	 to adjust when storing to memory.  */
       macro_build (&offset_expr, "swc1", "T,o(b)",
@@ -9108,7 +9108,7 @@ macro (struct mips_cl_insn *ip)
       /* Itbl support may require additional care here.  */
       coproc = 1;
       fmt = "T,o(b)";
-      if ((mips_opts.isa != ISA_MIPS1) && (mips_opts.arch != CPU_R5900))
+      if (CPU_HAS_LDC1_SDC1(mips_opts.arch))
 	{
 	  s = "ldc1";
 	  goto ld_st;
@@ -9121,7 +9121,7 @@ macro (struct mips_cl_insn *ip)
       /* Itbl support may require additional care here.  */
       coproc = 1;
       fmt = "T,o(b)";
-      if ((mips_opts.isa != ISA_MIPS1) && (mips_opts.arch != CPU_R5900))
+      if (CPU_HAS_LDC1_SDC1(mips_opts.arch))
 	{
 	  s = "sdc1";
 	  goto ld_st;
@@ -10022,7 +10022,7 @@ macro (struct mips_cl_insn *ip)
     case M_TRUNCWS:
     case M_TRUNCWD:
       gas_assert (!mips_opts.micromips);
-      gas_assert ((mips_opts.isa == ISA_MIPS1) || (mips_opts.arch == CPU_R5900));
+      gas_assert (mips_opts.isa == ISA_MIPS1);
       used_at = 1;
       sreg = (ip->insn_opcode >> 11) & 0x1f;	/* floating reg */
       dreg = (ip->insn_opcode >> 06) & 0x1f;	/* floating reg */
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/24k-triple-stores-2.d binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/24k-triple-stores-2.d
--- binutils-cvs-20130104/gas/testsuite/gas/mips/24k-triple-stores-2.d	2013-01-26 18:28:08.515235966 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/24k-triple-stores-2.d	2013-01-26 21:09:39.287223455 +0100
@@ -32,10 +32,4 @@ Disassembly of section .text:
   5c:	00000000 	nop
   60:	aba60000 	swl	a2,0\(sp\)
   64:	0000000d 	break
-  68:	e3a20020 	sc	v0,32\(sp\)
-  6c:	e3a30008 	sc	v1,8\(sp\)
-  70:	e3a4fff8 	sc	a0,-8\(sp\)
-  74:	00000000 	nop
-  78:	e3a50000 	sc	a1,0\(sp\)
-  7c:	e3a60020 	sc	a2,32\(sp\)
 	\.\.\.
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/24k-triple-stores-2.s binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/24k-triple-stores-2.s
--- binutils-cvs-20130104/gas/testsuite/gas/mips/24k-triple-stores-2.s	2013-01-26 18:28:08.503235967 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/24k-triple-stores-2.s	2013-01-26 21:08:44.343223485 +0100
@@ -28,12 +28,6 @@ foo:
 	swl      $6,0($sp)
 	break
 
-	sc      $2,32($sp)
-	sc      $3,8($sp)
-	sc      $4,-8($sp)
-	sc      $5,0($sp)
-	sc      $6,32($sp)
-
 # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
 	.align	2
 	.space	8
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d
--- binutils-cvs-20130104/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d	1970-01-01 01:00:00.000000000 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d	2013-01-26 21:10:13.495223335 +0100
@@ -0,0 +1,15 @@
+#objdump: -dr
+#as: -mfix-24k -32
+#name: 24K: Triple Store (Range Check, sc)
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+ <.*>:
+   0:	e3a20020 	sc	v0,32\(sp\)
+   4:	e3a30008 	sc	v1,8\(sp\)
+   8:	e3a4fff8 	sc	a0,-8\(sp\)
+   c:	00000000 	nop
+  10:	e3a50000 	sc	a1,0\(sp\)
+  14:	e3a60020 	sc	a2,32\(sp\)
+	\.\.\.
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s
--- binutils-cvs-20130104/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s	1970-01-01 01:00:00.000000000 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s	2013-01-26 21:09:08.567223421 +0100
@@ -0,0 +1,12 @@
+# Check for range (sc)
+
+foo:
+	sc      $2,32($sp)
+	sc      $3,8($sp)
+	sc      $4,-8($sp)
+	sc      $5,0($sp)
+	sc      $6,32($sp)
+
+# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
+	.align	2
+	.space	8
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/l_d-single.d binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/l_d-single.d
--- binutils-cvs-20130104/gas/testsuite/gas/mips/l_d-single.d	1970-01-01 01:00:00.000000000 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/l_d-single.d	2013-01-27 20:58:58.997881268 +0100
@@ -0,0 +1,566 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym tl_d=1
+#name: MIPS l.d singlefloat
+#source: ld.s
+
+# Test the l.d macro on system without ldc1 and sdc1:
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(zero\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(zero\)
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(zero\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(zero\)
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(zero\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(zero\)
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+[0-9a-f]+ <[^>]*> lui	at,0x2
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(a1\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(a1\)
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(a1\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(a1\)
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(a1\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(a1\)
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+[0-9a-f]+ <[^>]*> lui	at,0x2
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> lwc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lwc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+	\.\.\.
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d
--- binutils-cvs-20130104/gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d	2013-01-26 18:28:08.511235968 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d	2013-01-26 21:38:33.463221236 +0100
@@ -30,10 +30,5 @@ Disassembly of section \.text:
  *[0-9a-f]+:	60bd 8018 	swl	a1,24\(sp\)
  *[0-9a-f]+:	60dd 8000 	swl	a2,0\(sp\)
  *[0-9a-f]+:	4680      	break
- *[0-9a-f]+:	605d b020 	sc	v0,32\(sp\)
- *[0-9a-f]+:	607d b008 	sc	v1,8\(sp\)
- *[0-9a-f]+:	609d bff8 	sc	a0,-8\(sp\)
- *[0-9a-f]+:	60bd b000 	sc	a1,0\(sp\)
- *[0-9a-f]+:	60dd b020 	sc	a2,32\(sp\)
  *[0-9a-f]+:	0c00      	nop
 	\.\.\.
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d
--- binutils-cvs-20130104/gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d	1970-01-01 01:00:00.000000000 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d	2013-01-26 21:42:04.823220959 +0100
@@ -0,0 +1,16 @@
+#objdump: -dr
+#as: -mfix-24k -32
+#name: 24K: Triple Store (Range Check, sc)
+#source: 24k-triple-stores-2-llsc.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+
+[0-9a-f]+ <.*>:
+ *[0-9a-f]+:	605d b020 	sc	v0,32\(sp\)
+ *[0-9a-f]+:	607d b008 	sc	v1,8\(sp\)
+ *[0-9a-f]+:	609d bff8 	sc	a0,-8\(sp\)
+ *[0-9a-f]+:	60bd b000 	sc	a1,0\(sp\)
+ *[0-9a-f]+:	60dd b020 	sc	a2,32\(sp\)
+	\.\.\.
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/mips.exp binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/mips.exp
--- binutils-cvs-20130104/gas/testsuite/gas/mips/mips.exp	2013-01-26 18:28:08.507235968 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/mips.exp	2013-01-26 22:43:11.287216230 +0100
@@ -91,6 +91,9 @@
 #	singlefloat
 #		The CPU is 64 bit, but only supports 32 bit FPU.
 #
+#	nollsc
+#		The CPU doesn't support ll, sc, lld and scd instructions.
+#
 # as_flags: The assembler flags used when assembling tests for this
 # architecture.
 #
@@ -463,7 +466,7 @@ mips_arch_create octeon2 64	octeonp {} \
 			{ }
 mips_arch_create xlr 	64	mips64	{} \
 			{ -march=xlr -mtune=xlr } { -mmips:xlr }
-mips_arch_create r5900 	64	mips3	{ gpr_ilocks singlefloat } \
+mips_arch_create r5900 	64	mips3	{ gpr_ilocks singlefloat nollsc } \
 			{ -march=r5900 -mtune=r5900 } { -mmips:5900 } \
 			{ mipsr5900el-*-* mips64r5900el-*-* }
 
@@ -566,6 +569,8 @@ if { [istarget mips*-*-vxworks*] } {
 				[mips_arch_list_matching fpisa5 !octeon]
     run_dump_test_arches "24k-triple-stores-2" \
 					[mips_arch_list_matching mips2]
+    run_dump_test_arches "24k-triple-stores-2-llsc" \
+					[mips_arch_list_matching mips2 !nollsc]
     run_dump_test_arches "24k-triple-stores-3" \
 					[mips_arch_list_matching mips2]
     run_dump_test_arches "24k-triple-stores-4" \
@@ -625,9 +630,11 @@ if { [istarget mips*-*-vxworks*] } {
 	run_dump_test_arches "sd-forward" \
 					[mips_arch_list_matching mips1]
 	run_dump_test_arches "l_d"	[mips_arch_list_matching mips1 !singlefloat]
+	run_dump_test_arches "l_d-single"	[mips_arch_list_matching mips1 singlefloat]
 	run_dump_test_arches "l_d-forward" \
 					[mips_arch_list_matching mips1 !singlefloat]
 	run_dump_test_arches "s_d"	[mips_arch_list_matching mips1 !singlefloat]
+	run_dump_test_arches "s_d-single"	[mips_arch_list_matching mips1 singlefloat]
 	run_dump_test_arches "s_d-forward" \
 					[mips_arch_list_matching mips1 !singlefloat]
 	run_dump_test_arches "ldc1"	[mips_arch_list_matching mips2 !singlefloat]
@@ -1157,6 +1164,7 @@ if { [istarget mips*-*-vxworks*] } {
 
     run_dump_test "r5900"
     run_dump_test "r5900-full"
+    run_list_test "r5900-nollsc" "-mabi=n32 -march=r5900 -mtune=r5900"
     run_dump_test "r5900-vu0"
     run_dump_test "r5900-legacy-vu0"
 }
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/r5900-full.d binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-full.d
--- binutils-cvs-20130104/gas/testsuite/gas/mips/r5900-full.d	2013-01-26 18:28:08.511235968 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-full.d	2013-01-26 22:06:44.679219049 +0100
@@ -346,4 +346,8 @@ Disassembly of section \.text:
 [0-9a-f]+ <[^>]*> 701f0001 	maddu	\$0,\$31
 [0-9a-f]+ <[^>]*> 73e00001 	maddu	\$31,\$0
 [0-9a-f]+ <[^>]*> 0000000f 	sync
+[0-9a-f]+ <[^>]*> c0c50000 	.*
+[0-9a-f]+ <[^>]*> e0c50000 	.*
+[0-9a-f]+ <[^>]*> d0c50000 	.*
+[0-9a-f]+ <[^>]*> f0c50000 	.*
 	\.\.\.
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/r5900-full.s binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-full.s
--- binutils-cvs-20130104/gas/testsuite/gas/mips/r5900-full.s	2013-01-26 18:28:08.507235968 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-full.s	2013-01-26 21:49:35.655220376 +0100
@@ -417,5 +417,19 @@ stuff:
 	maddu $31, $0
 	sync
 
+	# Enable sc/ll instructions by changing ISA level:
+	.set push
+	.set mips2
+	ll $5, 0($6)
+	sc $5, 0($6)
+	.set pop
+
+	# Enable scd/lld instructions by changing ISA level:
+	.set push
+	.set mips3
+	lld $5, 0($6)
+	scd $5, 0($6)
+	.set pop
+
 	.space	8
 	.end stuff
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/r5900-nollsc.l binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-nollsc.l
--- binutils-cvs-20130104/gas/testsuite/gas/mips/r5900-nollsc.l	1970-01-01 01:00:00.000000000 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-nollsc.l	2013-01-27 20:49:09.829882026 +0100
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: Opcode not supported on this processor: r5900 \(mips3\) `ll \$5,0\(\$6\)'
+.*: Error: Opcode not supported on this processor: r5900 \(mips3\) `sc \$5,0\(\$6\)'
+.*: Error: Opcode not supported on this processor: r5900 \(mips3\) `lld \$5,0\(\$6\)'
+.*: Error: Opcode not supported on this processor: r5900 \(mips3\) `scd \$5,0\(\$6\)'
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/r5900-nollsc.s binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-nollsc.s
--- binutils-cvs-20130104/gas/testsuite/gas/mips/r5900-nollsc.s	1970-01-01 01:00:00.000000000 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-nollsc.s	2013-01-26 21:52:40.491220139 +0100
@@ -0,0 +1,18 @@
+	.text
+
+stuff:
+	.ent stuff
+	.set push
+	.set noreorder
+	.set noat
+
+	# sc/ll instructions are not supported on r5900:
+	ll $5, 0($6)
+	sc $5, 0($6)
+
+	# scd/lld instructions are not supported on r5900:
+	lld $5, 0($6)
+	scd $5, 0($6)
+
+	.space	8
+	.end stuff
diff -Nurp binutils-cvs-20130104/gas/testsuite/gas/mips/s_d-single.d binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/s_d-single.d
--- binutils-cvs-20130104/gas/testsuite/gas/mips/s_d-single.d	1970-01-01 01:00:00.000000000 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/gas/testsuite/gas/mips/s_d-single.d	2013-01-27 20:59:25.717881232 +0100
@@ -0,0 +1,566 @@
+#objdump: -dr --prefix-addresses
+#as: -32 --defsym ts_d=1
+#name: MIPS s.d singlefloat
+#source: ld.s
+
+# Test the s.d macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(zero\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(zero\)
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(zero\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(zero\)
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(zero\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(zero\)
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+[0-9a-f]+ <[^>]*> lui	at,0x2
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(a1\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(a1\)
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(a1\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(a1\)
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(a1\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(a1\)
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+[0-9a-f]+ <[^>]*> lui	at,0x2
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(gp\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,gp
+[0-9a-f]+ <[^>]*> swc1	\$f4,1\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,5\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_GPREL16|GPREL)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x0
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-32768\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-32764\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x1
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,0\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,4\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.data
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.data
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_data_label
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_data_label
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	big_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	big_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	small_external_common
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	small_external_common
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.bss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.bss
+[0-9a-f]+ <[^>]*> lui	at,0x2
+			[0-9a-f]+: (R_(MICRO)?MIPS_HI16|REFHI)	\.sbss
+[0-9a-f]+ <[^>]*> addu	at,a1,at
+[0-9a-f]+ <[^>]*> swc1	\$f4,-23131\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+[0-9a-f]+ <[^>]*> swc1	\$f5,-23127\(at\)
+			[0-9a-f]+: (R_(MICRO)?MIPS_LO16|REFLO)	\.sbss
+	\.\.\.
diff -Nurp binutils-cvs-20130104/opcodes/mips-opc.c binutils-cvs-20130104-mips64el-linux-patched/opcodes/mips-opc.c
--- binutils-cvs-20130104/opcodes/mips-opc.c	2013-01-26 18:28:08.315236097 +0100
+++ binutils-cvs-20130104-mips64el-linux-patched/opcodes/mips-opc.c	2013-01-27 19:53:51.097886321 +0100
@@ -1009,8 +1009,8 @@ const struct mips_opcode mips_builtin_op
 {"ldc1",    "T,A(b)",	0,    (int) M_LDC1_AB,	INSN_MACRO,		INSN2_M_FP_D,	I2,	SF	},
 {"ldc1",    "E,A(b)",	0,    (int) M_LDC1_AB,	INSN_MACRO,		INSN2_M_FP_D,	I2,	SF	},
 {"l.d",     "T,o(b)",	0xd4000000, 0xfc000000, CLD|RD_b|WR_T|FP_D,	0,		I2,	SF	}, /* ldc1 */
-{"l.d",     "T,o(b)",	0,    (int) M_L_DOB,	INSN_MACRO,		INSN2_M_FP_D,	I1,	SF	},
-{"l.d",     "T,A(b)",	0,    (int) M_L_DAB,	INSN_MACRO,		INSN2_M_FP_D,	I1,	SF	},
+{"l.d",     "T,o(b)",	0,    (int) M_L_DOB,	INSN_MACRO,		INSN2_M_FP_D,	I1	},
+{"l.d",     "T,A(b)",	0,    (int) M_L_DAB,	INSN_MACRO,		INSN2_M_FP_D,	I1	},
 {"ldc2",    "E,o(b)",	0xd8000000, 0xfc000000,	CLD|RD_b|WR_CC,		0,		I2,		IOCT|IOCTP|IOCT2|EE	},
 {"ldc2",    "E,A(b)",	0,    (int) M_LDC2_AB,	INSN_MACRO,		0,		I2,		IOCT|IOCTP|IOCT2|EE	},
 {"ldc3",    "E,o(b)",	0xdc000000, 0xfc000000,	CLD|RD_b|WR_CC,		0,		I2,		IOCT|IOCTP|IOCT2|EE	},
@@ -1029,10 +1029,10 @@ const struct mips_opcode mips_builtin_op
 {"li.d",    "T,L",	0,    (int) M_LI_DD,	INSN_MACRO,		INSN2_M_FP_D,	I1,	SF	},
 {"li.s",    "t,f",	0,    (int) M_LI_S,	INSN_MACRO,		INSN2_M_FP_S,	I1	},
 {"li.s",    "T,l",	0,    (int) M_LI_SS,	INSN_MACRO,		INSN2_M_FP_S,	I1	},
-{"ll",	    "t,o(b)",	0xc0000000, 0xfc000000, LDD|RD_b|WR_t,		0,		I2	},
-{"ll",	    "t,A(b)",	0,    (int) M_LL_AB,	INSN_MACRO,		0,		I2	},
-{"lld",	    "t,o(b)",	0xd0000000, 0xfc000000, LDD|RD_b|WR_t,		0,		I3	},
-{"lld",     "t,A(b)",	0,    (int) M_LLD_AB,	INSN_MACRO,		0,		I3	},
+{"ll",	    "t,o(b)",	0xc0000000, 0xfc000000, LDD|RD_b|WR_t,		0,		I2,	EE	},
+{"ll",	    "t,A(b)",	0,    (int) M_LL_AB,	INSN_MACRO,		0,		I2,	EE	},
+{"lld",	    "t,o(b)",	0xd0000000, 0xfc000000, LDD|RD_b|WR_t,		0,		I3,	EE	},
+{"lld",     "t,A(b)",	0,    (int) M_LLD_AB,	INSN_MACRO,		0,		I3,	EE	},
 {"lq",      "t,o(b)",	0x78000000, 0xfc000000, WR_t|RD_b,		0,		MMI	},
 {"lq",      "t,A(b)",	0,    (int) M_LQ_AB,	INSN_MACRO,		0,		MMI	},
 {"lqc2",    "E,o(b)",	0xd8000000, 0xfc000000,	RD_b|WR_C2,		0,		EE	},
@@ -1556,10 +1556,10 @@ const struct mips_opcode mips_builtin_op
 {"saad",    "t,(b)",	0x70000019, 0xfc00ffff,	SM|RD_t|RD_b,		0,		IOCTP	},
 {"sb",      "t,o(b)",	0xa0000000, 0xfc000000,	SM|RD_t|RD_b,		0,		I1	},
 {"sb",      "t,A(b)",	0,    (int) M_SB_AB,	INSN_MACRO,		0,		I1	},
-{"sc",	    "t,o(b)",	0xe0000000, 0xfc000000, SM|RD_t|WR_t|RD_b,	0,		I2	},
-{"sc",	    "t,A(b)",	0,    (int) M_SC_AB,	INSN_MACRO,		0,		I2	},
-{"scd",	    "t,o(b)",	0xf0000000, 0xfc000000, SM|RD_t|WR_t|RD_b,	0,		I3	},
-{"scd",	    "t,A(b)",	0,    (int) M_SCD_AB,	INSN_MACRO,		0,		I3	},
+{"sc",	    "t,o(b)",	0xe0000000, 0xfc000000, SM|RD_t|WR_t|RD_b,	0,		I2,	EE	},
+{"sc",	    "t,A(b)",	0,    (int) M_SC_AB,	INSN_MACRO,		0,		I2,	EE	},
+{"scd",	    "t,o(b)",	0xf0000000, 0xfc000000, SM|RD_t|WR_t|RD_b,	0,		I3,	EE	},
+{"scd",	    "t,A(b)",	0,    (int) M_SCD_AB,	INSN_MACRO,		0,		I3,	EE	},
 /* The macro has to be first to handle o32 correctly.  */
 {"sd",      "t,o(b)",	0,    (int) M_SD_OB,	INSN_MACRO,		0,		I1	},
 {"sd",      "t,o(b)",	0xfc000000, 0xfc000000,	SM|RD_t|RD_b,		0,		I3	},
@@ -1578,8 +1578,8 @@ const struct mips_opcode mips_builtin_op
 {"sdc3",    "E,o(b)",	0xfc000000, 0xfc000000,	SM|RD_C3|RD_b,		0,		I2,		IOCT|IOCTP|IOCT2|EE	},
 {"sdc3",    "E,A(b)",	0,    (int) M_SDC3_AB,	INSN_MACRO,		0,		I2,		IOCT|IOCTP|IOCT2|EE	},
 {"s.d",     "T,o(b)",	0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D,	0,		I2,	SF	},
-{"s.d",     "T,o(b)",	0,    (int) M_S_DOB,	INSN_MACRO,		INSN2_M_FP_D,	I1,	SF	},
-{"s.d",     "T,A(b)",	0,    (int) M_S_DAB,	INSN_MACRO,		INSN2_M_FP_D,	I1,	SF	},
+{"s.d",     "T,o(b)",	0,    (int) M_S_DOB,	INSN_MACRO,		INSN2_M_FP_D,	I1	},
+{"s.d",     "T,A(b)",	0,    (int) M_S_DAB,	INSN_MACRO,		INSN2_M_FP_D,	I1	},
 {"sdl",     "t,o(b)",	0xb0000000, 0xfc000000,	SM|RD_t|RD_b,		0,		I3	},
 {"sdl",     "t,A(b)",	0,    (int) M_SDL_AB,	INSN_MACRO,		0,		I3	},
 {"sdr",     "t,o(b)",	0xb4000000, 0xfc000000,	SM|RD_t|RD_b,		0,		I3	},
@@ -1782,7 +1782,7 @@ const struct mips_opcode mips_builtin_op
 {"trunc.w.s", "D,S",	0x46000024, 0xffff003f,	WR_D|RD_S|FP_S,		0,		EE	},
 {"trunc.w.s", "D,S",	0x4600000d, 0xffff003f,	WR_D|RD_S|FP_S,		0,		I2,	EE	},
 {"trunc.w.s", "D,S,x",	0x4600000d, 0xffff003f,	WR_D|RD_S|FP_S,		0,		I2,	EE	},
-{"trunc.w.s", "D,S,t",	0,    (int) M_TRUNCWS,	INSN_MACRO,		INSN2_M_FP_S,	I1	},
+{"trunc.w.s", "D,S,t",	0,    (int) M_TRUNCWS,	INSN_MACRO,		INSN2_M_FP_S,	I1,	EE	},
 {"uld",     "t,o(b)",	0,    (int) M_ULD,	INSN_MACRO,		0,		I3	},
 {"uld",     "t,A(b)",	0,    (int) M_ULD_A,	INSN_MACRO,		0,		I3	},
 {"ulh",     "t,o(b)",	0,    (int) M_ULH,	INSN_MACRO,		0,		I1	},

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]