From 0aa27725e5ee24a1d2e11e661f1ad85d57cd5da8 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sat, 9 Feb 2013 10:24:20 +0000 Subject: [PATCH] =?utf8?q?gas/=202013-02-09=20=20J=C3=BCrgen=20Urban=20=20?= =?utf8?q??= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * 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 * 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 * 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. --- gas/ChangeLog | 5 + gas/config/tc-mips.c | 21 +- gas/testsuite/ChangeLog | 14 + .../gas/mips/24k-triple-stores-2-llsc.d | 15 + .../gas/mips/24k-triple-stores-2-llsc.s | 12 + gas/testsuite/gas/mips/24k-triple-stores-2.d | 7 - gas/testsuite/gas/mips/24k-triple-stores-2.s | 7 - gas/testsuite/gas/mips/l_d-single.d | 566 ++++++++++++++++++ .../mips/micromips@24k-triple-stores-2-llsc.d | 16 + .../gas/mips/micromips@24k-triple-stores-2.d | 7 - gas/testsuite/gas/mips/mips.exp | 14 +- gas/testsuite/gas/mips/r5900-full.d | 4 + gas/testsuite/gas/mips/r5900-full.s | 14 + gas/testsuite/gas/mips/r5900-nollsc.l | 5 + gas/testsuite/gas/mips/r5900-nollsc.s | 18 + gas/testsuite/gas/mips/s_d-single.d | 566 ++++++++++++++++++ opcodes/ChangeLog | 6 + opcodes/mips-opc.c | 26 +- 18 files changed, 1278 insertions(+), 45 deletions(-) create mode 100644 gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d create mode 100644 gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s create mode 100644 gas/testsuite/gas/mips/l_d-single.d create mode 100644 gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d create mode 100644 gas/testsuite/gas/mips/r5900-nollsc.l create mode 100644 gas/testsuite/gas/mips/r5900-nollsc.s create mode 100644 gas/testsuite/gas/mips/s_d-single.d diff --git a/gas/ChangeLog b/gas/ChangeLog index e622e9b1a8..48b5d6de5b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2013-02-09 Jürgen Urban + + * 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 * gas/config/tc-arm.c (arm_cpus): Add support for mcpu=marvell-pj4 diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 67f04aa595..964efddf05 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -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 */ diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index a7a1443c17..e78e4e96e3 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,17 @@ +2013-02-09 Jürgen Urban + + * 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 * 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 index 0000000000..f27b513be1 --- /dev/null +++ b/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.d @@ -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 index 0000000000..af67f3d866 --- /dev/null +++ b/gas/testsuite/gas/mips/24k-triple-stores-2-llsc.s @@ -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 --git a/gas/testsuite/gas/mips/24k-triple-stores-2.d b/gas/testsuite/gas/mips/24k-triple-stores-2.d index bcb2ff10e1..9c9035df11 100644 --- a/gas/testsuite/gas/mips/24k-triple-stores-2.d +++ b/gas/testsuite/gas/mips/24k-triple-stores-2.d @@ -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\) \.\.\. diff --git a/gas/testsuite/gas/mips/24k-triple-stores-2.s b/gas/testsuite/gas/mips/24k-triple-stores-2.s index f1402c0a39..13b9cd464d 100644 --- a/gas/testsuite/gas/mips/24k-triple-stores-2.s +++ b/gas/testsuite/gas/mips/24k-triple-stores-2.s @@ -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 index 0000000000..ad045c861a --- /dev/null +++ b/gas/testsuite/gas/mips/l_d-single.d @@ -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 index 0000000000..12ddb1ca08 --- /dev/null +++ b/gas/testsuite/gas/mips/micromips@24k-triple-stores-2-llsc.d @@ -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 --git a/gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d b/gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d index 0784b40466..a7aca167da 100644 --- a/gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d +++ b/gas/testsuite/gas/mips/micromips@24k-triple-stores-2.d @@ -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 \.\.\. diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 8de1cad2c0..145824ab57 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -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" } } diff --git a/gas/testsuite/gas/mips/r5900-full.d b/gas/testsuite/gas/mips/r5900-full.d index b3cc442eee..26d97ca575 100644 --- a/gas/testsuite/gas/mips/r5900-full.d +++ b/gas/testsuite/gas/mips/r5900-full.d @@ -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 --git a/gas/testsuite/gas/mips/r5900-full.s b/gas/testsuite/gas/mips/r5900-full.s index c0dc20abdf..f3c24541a9 100644 --- a/gas/testsuite/gas/mips/r5900-full.s +++ b/gas/testsuite/gas/mips/r5900-full.s @@ -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 index 0000000000..23a1c7b2c1 --- /dev/null +++ b/gas/testsuite/gas/mips/r5900-nollsc.l @@ -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 index 0000000000..fe218f327d --- /dev/null +++ b/gas/testsuite/gas/mips/r5900-nollsc.s @@ -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 index 0000000000..e9997696d6 --- /dev/null +++ b/gas/testsuite/gas/mips/s_d-single.d @@ -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 + \.\.\. diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 11f14701b3..d0499c0729 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2013-02-09 Jürgen Urban + + * 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 Andrew Jenner diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c index 28c17da17a..ee189c273e 100644 --- a/opcodes/mips-opc.c +++ b/opcodes/mips-opc.c @@ -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 }, -- 2.34.1