gas/
authorRichard Sandiford <rdsandiford@googlemail.com>
Sat, 9 Feb 2013 10:24:20 +0000 (10:24 +0000)
committerRichard Sandiford <rdsandiford@googlemail.com>
Sat, 9 Feb 2013 10:24:20 +0000 (10:24 +0000)
2013-02-09  Jürgen Urban  <JuergenUrban@gmx.de>

* config/tc-mips.c (CPU_HAS_LDC1_SDC1): New macro.
(macro): Use it.  Assert that trunc.w.s is not used for r5900.

opcodes/
2013-02-09  Jürgen Urban  <JuergenUrban@gmx.de>

* mips-opc.c (mips_builtin_opcodes): Enable l.d and s.d macros for
single-float.  Disable ll, lld, sc and scd for EE.  Disable the
trunc.w.s macro for EE.

gas/testsuite/
2013-02-09  Jürgen Urban  <JuergenUrban@gmx.de>

* gas/mips/24k-triple-stores-2.d, gas/mips/24k-triple-stores-2.s,
gas/mips/micromips@24k-triple-stores-2.d: Move "sc" tests to...
* gas/mips/24k-triple-stores-2-llsc.d,
gas/mips/24k-triple-stores-2-llsc.s,
gas/mips/micromips@24k-triple-stores-2-llsc.d: ...these new tests.
* gas/mips/r5900-full.d, gas/mips/r5900-full.s: Verify that the
MIPS ISA level can be upgraded to support ll, sc, lld and scd.
* gas/mips/l_d-single.d, gas/mips/s_d-single.d,
gas/mips/r5900-nollsc.l, gas/mips/r5900-nollsc.s: New tests.
* gas/mips/mips.exp: Update accordingly.  Add "nollsc" to r5900
properties.

18 files changed:
gas/ChangeLog
gas/config/tc-mips.c
gas/testsuite/ChangeLog
gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d [new file with mode: 0644]
gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s [new file with mode: 0644]
gas/testsuite/gas/mips/24k-triple-stores-2.d
gas/testsuite/gas/mips/24k-triple-stores-2.s
gas/testsuite/gas/mips/l_d-single.d [new file with mode: 0644]
gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d [new file with mode: 0644]
gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d
gas/testsuite/gas/mips/mips.exp
gas/testsuite/gas/mips/r5900-full.d
gas/testsuite/gas/mips/r5900-full.s
gas/testsuite/gas/mips/r5900-nollsc.l [new file with mode: 0644]
gas/testsuite/gas/mips/r5900-nollsc.s [new file with mode: 0644]
gas/testsuite/gas/mips/s_d-single.d [new file with mode: 0644]
opcodes/ChangeLog
opcodes/mips-opc.c

index e622e9b..48b5d6d 100644 (file)
@@ -1,3 +1,8 @@
+2013-02-09  Jürgen Urban  <JuergenUrban@gmx.de>
+
+       * config/tc-mips.c (CPU_HAS_LDC1_SDC1): New macro.
+       (macro): Use it.  Assert that trunc.w.s is not used for r5900.
+
 2013-02-08  Yi-Hsiu, Hsu  <ahsu@marvell.com>
 
        * gas/config/tc-arm.c (arm_cpus): Add support for mcpu=marvell-pj4
index 67f04aa..964efdd 100644 (file)
@@ -504,6 +504,10 @@ 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.
 
@@ -8927,8 +8931,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);
@@ -8951,8 +8954,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);
@@ -8969,8 +8971,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
@@ -8982,7 +8983,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)",
@@ -9008,7 +9009,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;
@@ -9021,7 +9022,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;
@@ -9922,7 +9923,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 */
index a7a1443..e78e4e9 100644 (file)
@@ -1,3 +1,17 @@
+2013-02-09  Jürgen Urban  <JuergenUrban@gmx.de>
+
+       * gas/mips/24k-triple-stores-2.d, gas/mips/24k-triple-stores-2.s,
+       gas/mips/micromips@24k-triple-stores-2.d: Move "sc" tests to...
+       * gas/mips/24k-triple-stores-2-llsc.d,
+       gas/mips/24k-triple-stores-2-llsc.s,
+       gas/mips/micromips@24k-triple-stores-2-llsc.d: ...these new tests.
+       * gas/mips/r5900-full.d, gas/mips/r5900-full.s: Verify that the
+       MIPS ISA level can be upgraded to support ll, sc, lld and scd.
+       * gas/mips/l_d-single.d, gas/mips/s_d-single.d,
+       gas/mips/r5900-nollsc.l, gas/mips/r5900-nollsc.s: New tests.
+       * gas/mips/mips.exp: Update accordingly.  Add "nollsc" to r5900
+       properties.
+
 2013-02-08  Alan Modra  <amodra@gmail.com>
 
        * gas/nios2/nios2.exp: Add copyright.
diff --git a/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d b/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d
new file mode 100644 (file)
index 0000000..f27b513
--- /dev/null
@@ -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 --git a/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s b/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s
new file mode 100644 (file)
index 0000000..af67f3d
--- /dev/null
@@ -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
index bcb2ff1..9c9035d 100644 (file)
@@ -31,11 +31,4 @@ Disassembly of section .text:
   58:  aba50018        swl     a1,24\(sp\)
   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\)
        \.\.\.
index f1402c0..13b9cd4 100644 (file)
@@ -26,13 +26,6 @@ foo:
        swl      $4,16($sp)
        swl      $5,24($sp)
        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
diff --git a/gas/testsuite/gas/mips/l_d-single.d b/gas/testsuite/gas/mips/l_d-single.d
new file mode 100644 (file)
index 0000000..ad045c8
--- /dev/null
@@ -0,0 +1,566 @@
+#objdump: -dr --prefix-addresses
+#as: -32 -EL --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  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  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       small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  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       small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> lwc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  small_external_data_label
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> lwc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lwc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d b/gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d
new file mode 100644 (file)
index 0000000..12ddb1c
--- /dev/null
@@ -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\)
+       \.\.\.
index 0784b40..a7aca16 100644 (file)
@@ -29,11 +29,4 @@ Disassembly of section \.text:
  *[0-9a-f]+:   609d 8010       swl     a0,16\(sp\)
  *[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
        \.\.\.
index 8de1cad..145824a 100644 (file)
@@ -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,15 @@ 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]
+       if $elf {
+           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]
+       if $elf {
+           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,4 +1168,5 @@ if { [istarget mips*-*-vxworks*] } {
 
     run_dump_test "r5900"
     run_dump_test "r5900-full"
+    if $elf { run_list_test "r5900-nollsc" "-mabi=o64 -march=r5900" }
 }
index b3cc442..26d97ca 100644 (file)
@@ -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     .*
        \.\.\.
index c0dc20a..f3c2454 100644 (file)
@@ -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 --git a/gas/testsuite/gas/mips/r5900-nollsc.l b/gas/testsuite/gas/mips/r5900-nollsc.l
new file mode 100644 (file)
index 0000000..23a1c7b
--- /dev/null
@@ -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 --git a/gas/testsuite/gas/mips/r5900-nollsc.s b/gas/testsuite/gas/mips/r5900-nollsc.s
new file mode 100644 (file)
index 0000000..fe218f3
--- /dev/null
@@ -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 --git a/gas/testsuite/gas/mips/s_d-single.d b/gas/testsuite/gas/mips/s_d-single.d
new file mode 100644 (file)
index 0000000..e999769
--- /dev/null
@@ -0,0 +1,566 @@
+#objdump: -dr --prefix-addresses
+#as: -EL -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  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(gp\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  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       small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  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       small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,gp
+[0-9a-f]+ <[^>]*> swc1 \$f4,1\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,5\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_GPREL16       \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x0
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-32768\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-32764\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x1
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,0\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,4\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.data
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.data
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  big_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  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  small_external_data_label
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_data_label
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  big_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  big_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  small_external_common
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  small_external_common
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.bss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.bss
+[0-9a-f]+ <[^>]*> lui  at,0x2
+                       [0-9a-f]+: R_(MICRO)?MIPS_HI16  \.sbss
+[0-9a-f]+ <[^>]*> addu at,a1,at
+[0-9a-f]+ <[^>]*> swc1 \$f4,-23131\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+[0-9a-f]+ <[^>]*> swc1 \$f5,-23127\(at\)
+                       [0-9a-f]+: R_(MICRO)?MIPS_LO16  \.sbss
+       \.\.\.
index 11f1470..d0499c0 100644 (file)
@@ -1,3 +1,9 @@
+2013-02-09  Jürgen Urban  <JuergenUrban@gmx.de>
+
+       * mips-opc.c (mips_builtin_opcodes): Enable l.d and s.d macros for
+       single-float.  Disable ll, lld, sc and scd for EE.  Disable the
+       trunc.w.s macro for EE.
+
 2013-02-06  Sandra Loosemore  <sandra@codesourcery.com>
             Andrew Jenner <andrew@codesourcery.com>
 
index 28c17da..ee189c2 100644 (file)
@@ -878,8 +878,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
 {"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     },
@@ -898,10 +898,10 @@ const struct mips_opcode mips_builtin_opcodes[] =
 {"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     },
 {"lui",     "t,u",     0x3c000000, 0xffe00000, WR_t,                   0,              I1      },
@@ -1423,10 +1423,10 @@ const struct mips_opcode mips_builtin_opcodes[] =
 {"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      },
@@ -1445,8 +1445,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
 {"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      },
@@ -1647,7 +1647,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
 {"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      },