This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[committed] MIPS/GAS: Respect the `insn32' mode in branch relaxation
- From: "Maciej W. Rozycki" <macro at imgtec dot com>
- To: <binutils at sourceware dot org>
- Date: Tue, 26 Jul 2016 20:29:09 +0100
- Subject: [committed] MIPS/GAS: Respect the `insn32' mode in branch relaxation
- Authentication-results: sourceware.org; auth=none
Complement:
commit 833794fc12d98139fc33f6b0b85feb03471007b7
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date: Tue Jun 25 18:02:34 2013 +0000
<https://sourceware.org/ml/binutils/2013-06/msg00104.html>, ("microMIPS
insn32 mode support"), and fix an issue with microMIPS branch relaxation
producing 16-bit instructions in the `insn32' mode. Use equivalent
32-bit instruction sequences.
gas/
* config/tc-mips.c (RELAX_MICROMIPS_ENCODE): Add `insn32' flag.
(RELAX_MICROMIPS_INSN32): New macro.
(RELAX_MICROMIPS_UNCOND, RELAX_MICROMIPS_COMPACT)
(RELAX_MICROMIPS_LINK, RELAX_MICROMIPS_RELAX32)
(RELAX_MICROMIPS_TOOFAR16, RELAX_MICROMIPS_MARK_TOOFAR16)
(RELAX_MICROMIPS_CLEAR_TOOFAR16, RELAX_MICROMIPS_TOOFAR32)
(RELAX_MICROMIPS_MARK_TOOFAR32, RELAX_MICROMIPS_CLEAR_TOOFAR32):
Shift bits.
(append_insn): Record `mips_opts.insn32' with relaxed microMIPS
branches.
(relaxed_micromips_32bit_branch_length): Handle the `insn32'
mode.
(md_convert_frag): Likewise.
* testsuite/gas/mips/micromips-branch-relax.s: Add `insn32'
conditionals.
* testsuite/gas/mips/micromips-branch-relax.l: Update line
numbers accordingly.
* testsuite/gas/mips/micromips-branch-relax-pic.l: Likewise.
* testsuite/gas/mips/micromips-branch-relax-insn32.d: New test.
* testsuite/gas/mips/micromips-branch-relax-insn32-pic.d: New
test.
* testsuite/gas/mips/micromips-branch-relax-insn32.l: New
stderr output.
* testsuite/gas/mips/micromips-branch-relax-insn32-pic.l: New
stderr output.
* testsuite/gas/mips/mips.exp: Run the new tests.
---
Hi,
This has been committed. One of the new tests causes:
mips-sgi-irix5 +FAIL: Relax microMIPS branches (insn32 mode, pic)
mips-sgi-irix6 +FAIL: Relax microMIPS branches (insn32 mode, pic)
due to IRIX targets not producing JALR relocations. The same reason
triggers the existing:
mips-sgi-irix5 FAIL: Relax microMIPS branches (pic)
mips-sgi-irix6 FAIL: Relax microMIPS branches (pic)
failures, so I decided to let the new ones in and then sort them all
separately. We could add separate dumps for IRIX targets or maybe we
should simply exclude these tests as irrelevant to IRIX, like the whole
microMIPS ISA.
Maciej
binutils-umips-gas-branch-relax-insn32.diff
Index: binutils/gas/config/tc-mips.c
===================================================================
--- binutils.orig/gas/config/tc-mips.c 2016-07-22 17:14:06.000000000 +0100
+++ binutils/gas/config/tc-mips.c 2016-07-26 03:50:52.978362670 +0100
@@ -1151,37 +1151,41 @@ static int mips_relax_branch;
The information we store for this type of relaxation is the argument
code found in the opcode file for this relocation, the register
- selected as the assembler temporary, whether the branch is
- unconditional, whether it is compact, whether it stores the link
- address implicitly in $ra, whether relaxation of out-of-range 32-bit
- branches to a sequence of instructions is enabled, and whether the
- displacement of a branch is too large to fit as an immediate argument
- of a 16-bit and a 32-bit branch, respectively. */
-#define RELAX_MICROMIPS_ENCODE(type, at, uncond, compact, link, \
+ selected as the assembler temporary, whether in the 32-bit
+ instruction mode, whether the branch is unconditional, whether it is
+ compact, whether it stores the link address implicitly in $ra,
+ whether relaxation of out-of-range 32-bit branches to a sequence of
+ instructions is enabled, and whether the displacement of a branch is
+ too large to fit as an immediate argument of a 16-bit and a 32-bit
+ branch, respectively. */
+#define RELAX_MICROMIPS_ENCODE(type, at, insn32, \
+ uncond, compact, link, \
relax32, toofar16, toofar32) \
(0x40000000 \
| ((type) & 0xff) \
| (((at) & 0x1f) << 8) \
- | ((uncond) ? 0x2000 : 0) \
- | ((compact) ? 0x4000 : 0) \
- | ((link) ? 0x8000 : 0) \
- | ((relax32) ? 0x10000 : 0) \
- | ((toofar16) ? 0x20000 : 0) \
- | ((toofar32) ? 0x40000 : 0))
+ | ((insn32) ? 0x2000 : 0) \
+ | ((uncond) ? 0x4000 : 0) \
+ | ((compact) ? 0x8000 : 0) \
+ | ((link) ? 0x10000 : 0) \
+ | ((relax32) ? 0x20000 : 0) \
+ | ((toofar16) ? 0x40000 : 0) \
+ | ((toofar32) ? 0x80000 : 0))
#define RELAX_MICROMIPS_P(i) (((i) & 0xc0000000) == 0x40000000)
#define RELAX_MICROMIPS_TYPE(i) ((i) & 0xff)
#define RELAX_MICROMIPS_AT(i) (((i) >> 8) & 0x1f)
-#define RELAX_MICROMIPS_UNCOND(i) (((i) & 0x2000) != 0)
-#define RELAX_MICROMIPS_COMPACT(i) (((i) & 0x4000) != 0)
-#define RELAX_MICROMIPS_LINK(i) (((i) & 0x8000) != 0)
-#define RELAX_MICROMIPS_RELAX32(i) (((i) & 0x10000) != 0)
+#define RELAX_MICROMIPS_INSN32(i) (((i) & 0x2000) != 0)
+#define RELAX_MICROMIPS_UNCOND(i) (((i) & 0x4000) != 0)
+#define RELAX_MICROMIPS_COMPACT(i) (((i) & 0x8000) != 0)
+#define RELAX_MICROMIPS_LINK(i) (((i) & 0x10000) != 0)
+#define RELAX_MICROMIPS_RELAX32(i) (((i) & 0x20000) != 0)
-#define RELAX_MICROMIPS_TOOFAR16(i) (((i) & 0x20000) != 0)
-#define RELAX_MICROMIPS_MARK_TOOFAR16(i) ((i) | 0x20000)
-#define RELAX_MICROMIPS_CLEAR_TOOFAR16(i) ((i) & ~0x20000)
-#define RELAX_MICROMIPS_TOOFAR32(i) (((i) & 0x40000) != 0)
-#define RELAX_MICROMIPS_MARK_TOOFAR32(i) ((i) | 0x40000)
-#define RELAX_MICROMIPS_CLEAR_TOOFAR32(i) ((i) & ~0x40000)
+#define RELAX_MICROMIPS_TOOFAR16(i) (((i) & 0x40000) != 0)
+#define RELAX_MICROMIPS_MARK_TOOFAR16(i) ((i) | 0x40000)
+#define RELAX_MICROMIPS_CLEAR_TOOFAR16(i) ((i) & ~0x40000)
+#define RELAX_MICROMIPS_TOOFAR32(i) (((i) & 0x80000) != 0)
+#define RELAX_MICROMIPS_MARK_TOOFAR32(i) ((i) | 0x80000)
+#define RELAX_MICROMIPS_CLEAR_TOOFAR32(i) ((i) & ~0x80000)
/* Sign-extend 16-bit value X. */
#define SEXT_16BIT(X) ((((X) + 0x8000) & 0xffff) - 0x8000)
@@ -7302,7 +7306,8 @@ append_insn (struct mips_cl_insn *ip, ex
relaxed_branch = TRUE;
length32 = relaxed_micromips_32bit_branch_length (NULL, NULL, uncond);
add_relaxed_insn (ip, relax32 ? length32 : 4, relax16 ? 2 : 4,
- RELAX_MICROMIPS_ENCODE (type, AT, uncond, compact, al,
+ RELAX_MICROMIPS_ENCODE (type, AT, mips_opts.insn32,
+ uncond, compact, al,
relax32, 0, 0),
address_expr->X_add_symbol,
address_expr->X_add_number);
@@ -17228,14 +17233,19 @@ relaxed_micromips_32bit_branch_length (f
{
bfd_boolean compact_known = fragp != NULL;
bfd_boolean compact = FALSE;
+ bfd_boolean insn32 = TRUE;
bfd_boolean uncond;
+ int short_insn_size;
- if (compact_known)
- compact = RELAX_MICROMIPS_COMPACT (fragp->fr_subtype);
if (fragp)
- uncond = RELAX_MICROMIPS_UNCOND (fragp->fr_subtype);
+ {
+ compact = RELAX_MICROMIPS_COMPACT (fragp->fr_subtype);
+ uncond = RELAX_MICROMIPS_UNCOND (fragp->fr_subtype);
+ insn32 = RELAX_MICROMIPS_INSN32 (fragp->fr_subtype);
+ }
else
uncond = update < 0;
+ short_insn_size = insn32 ? 4 : 2;
/* If label is out of range, we turn branch <br>:
@@ -17245,11 +17255,12 @@ relaxed_micromips_32bit_branch_length (f
into:
j label # 4 bytes
- nop # 2 bytes if compact && !PIC
+ nop # 2/4 bytes if
+ # compact && (!PIC || insn32)
0:
*/
- if (mips_pic == NO_PIC && (!compact_known || compact))
- length += 2;
+ if ((mips_pic == NO_PIC || insn32) && (!compact_known || compact))
+ length += short_insn_size;
/* If assembling PIC code, we further turn:
@@ -17259,18 +17270,18 @@ relaxed_micromips_32bit_branch_length (f
lw/ld at, %got(label)(gp) # 4 bytes
d/addiu at, %lo(label) # 4 bytes
- jr/c at # 2 bytes
+ jr/c at # 2/4 bytes
*/
if (mips_pic != NO_PIC)
- length += 6;
+ length += 4 + short_insn_size;
/* If branch <br> is conditional, we prepend negated branch <brneg>:
<brneg> 0f # 4 bytes
- nop # 2 bytes if !compact
+ nop # 2/4 bytes if !compact
*/
if (!uncond)
- length += (compact_known && compact) ? 4 : 6;
+ length += (compact_known && compact) ? 4 : 4 + short_insn_size;
}
return length;
@@ -17835,6 +17846,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNU
{
char *buf = fragp->fr_literal + fragp->fr_fix;
bfd_boolean compact = RELAX_MICROMIPS_COMPACT (fragp->fr_subtype);
+ bfd_boolean insn32 = RELAX_MICROMIPS_INSN32 (fragp->fr_subtype);
bfd_boolean al = RELAX_MICROMIPS_LINK (fragp->fr_subtype);
int type = RELAX_MICROMIPS_TYPE (fragp->fr_subtype);
bfd_boolean short_ds;
@@ -17982,9 +17994,15 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNU
/* Branch over the jump. */
buf = write_compressed_insn (buf, insn, 4);
+
if (!compact)
- /* nop */
- buf = write_compressed_insn (buf, 0x0c00, 2);
+ {
+ /* nop */
+ if (insn32)
+ buf = write_compressed_insn (buf, 0x00000000, 4);
+ else
+ buf = write_compressed_insn (buf, 0x0c00, 2);
+ }
}
if (mips_pic == NO_PIC)
@@ -18000,15 +18018,19 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNU
fixp->fx_line = fragp->fr_line;
buf = write_compressed_insn (buf, insn, 4);
+
if (compact)
- /* nop */
- buf = write_compressed_insn (buf, 0x0c00, 2);
+ {
+ /* nop */
+ if (insn32)
+ buf = write_compressed_insn (buf, 0x00000000, 4);
+ else
+ buf = write_compressed_insn (buf, 0x0c00, 2);
+ }
}
else
{
unsigned long at = RELAX_MICROMIPS_AT (fragp->fr_subtype);
- unsigned long jalr = short_ds ? 0x45e0 : 0x45c0; /* jalr/s */
- unsigned long jr = compact ? 0x45a0 : 0x4580; /* jr/c */
/* lw/ld $at, <sym>($gp) R_MICROMIPS_GOT16 */
insn = HAVE_64BIT_ADDRESSES ? 0xdc1c0000 : 0xfc1c0000;
@@ -18038,11 +18060,29 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNU
buf = write_compressed_insn (buf, insn, 4);
- /* jr/jrc/jalr/jalrs $at */
- insn = al ? jalr : jr;
- insn |= at << MICROMIPSOP_SH_MJ;
+ if (insn32)
+ {
+ /* jr/jalr $at */
+ insn = 0x00000f3c | (al ? RA : ZERO) << MICROMIPSOP_SH_RT;
+ insn |= at << MICROMIPSOP_SH_RS;
- buf = write_compressed_insn (buf, insn, 2);
+ buf = write_compressed_insn (buf, insn, 4);
+
+ if (compact)
+ /* nop */
+ buf = write_compressed_insn (buf, 0x00000000, 4);
+ }
+ else
+ {
+ /* jr/jrc/jalr/jalrs $at */
+ unsigned long jalr = short_ds ? 0x45e0 : 0x45c0; /* jalr/s */
+ unsigned long jr = compact ? 0x45a0 : 0x4580; /* jr/c */
+
+ insn = al ? jalr : jr;
+ insn |= at << MICROMIPSOP_SH_MJ;
+
+ buf = write_compressed_insn (buf, insn, 2);
+ }
}
gas_assert (buf == fragp->fr_literal + fragp->fr_fix);
Index: binutils/gas/testsuite/gas/mips/micromips-branch-relax-insn32-pic.d
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/micromips-branch-relax-insn32-pic.d 2016-07-26 15:30:32.019976723 +0100
@@ -0,0 +1,572 @@
+#objdump: -dr --show-raw-insn
+#name: Relax microMIPS branches (insn32 mode, pic)
+#as: -mips32r2 -32 -relax-branch -KPIC -minsn32 --defsym insn32=1
+#stderr: micromips-branch-relax-insn32-pic.l
+#source: micromips-branch-relax.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+
+[0-9a-f]+ <test>:
+[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: ff3c 0001 lw t9,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3339 04fb addiu t9,t9,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 03f9 0f3c jalr t9
+[ ]*[0-9a-f]+: R_MICROMIPS_JALR test3
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 03e1 0f3c jalr at
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b483 fffe bne v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9483 fffe beq v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40d4 fffe bgtz s4,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4094 fffe blez s4,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40a3 fffe bnezc v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 0000 0000 nop
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40e3 fffe beqzc v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 0000 0000 nop
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 401e fffe bltz s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 03e1 0f3c jalr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 405e fffe bgez s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 03e1 0f3c jalr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 43a0 fffe bc1t [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4380 fffe bc1f [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 42a0 fffe bc2t [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4280 fffe bc2f [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b483 fffe bne v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 03e1 0f3c jalr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4083 fffe blez v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 40c3 fffe bgtz v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 03e1 0f3c jalr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 9483 fffe beq v1,a0,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: fc3c 0001 lw at,1\(gp\)
+[ ]*[0-9a-f]+: R_MICROMIPS_GOT16 \.text
+[ 0-9a-f]+: 3021 04fb addiu at,at,1275
+[ ]*[0-9a-f]+: R_MICROMIPS_LO16 \.text
+[ 0-9a-f]+: 0001 0f3c jr at
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+ \.\.\.
+
+[0-9a-f]+ <test2>:
+ \.\.\.
+
+[0-9a-f]+ <test3>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+ \.\.\.
Index: binutils/gas/testsuite/gas/mips/micromips-branch-relax-insn32-pic.l
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/micromips-branch-relax-insn32-pic.l 2016-07-26 15:30:32.027051551 +0100
@@ -0,0 +1,47 @@
+.*: Assembler messages:
+.*:71: Warning: no .cprestore pseudo-op used in PIC code
+.*:69: Warning: relaxed out-of-range branch into a jump
+.*:73: Warning: relaxed out-of-range branch into a jump
+.*:75: Warning: relaxed out-of-range branch into a jump
+.*:77: Warning: relaxed out-of-range branch into a jump
+.*:83: Warning: relaxed out-of-range branch into a jump
+.*:85: Warning: relaxed out-of-range branch into a jump
+.*:87: Warning: relaxed out-of-range branch into a jump
+.*:89: Warning: relaxed out-of-range branch into a jump
+.*:91: Warning: relaxed out-of-range branch into a jump
+.*:93: Warning: relaxed out-of-range branch into a jump
+.*:95: Warning: relaxed out-of-range branch into a jump
+.*:97: Warning: relaxed out-of-range branch into a jump
+.*:99: Warning: relaxed out-of-range branch into a jump
+.*:101: Warning: relaxed out-of-range branch into a jump
+.*:109: Warning: relaxed out-of-range branch into a jump
+.*:111: Warning: relaxed out-of-range branch into a jump
+.*:113: Warning: relaxed out-of-range branch into a jump
+.*:115: Warning: relaxed out-of-range branch into a jump
+.*:117: Warning: relaxed out-of-range branch into a jump
+.*:119: Warning: relaxed out-of-range branch into a jump
+.*:121: Warning: relaxed out-of-range branch into a jump
+.*:123: Warning: relaxed out-of-range branch into a jump
+.*:125: Warning: relaxed out-of-range branch into a jump
+.*:127: Warning: relaxed out-of-range branch into a jump
+.*:129: Warning: relaxed out-of-range branch into a jump
+.*:131: Warning: relaxed out-of-range branch into a jump
+.*:133: Warning: relaxed out-of-range branch into a jump
+.*:135: Warning: relaxed out-of-range branch into a jump
+.*:137: Warning: relaxed out-of-range branch into a jump
+.*:139: Warning: relaxed out-of-range branch into a jump
+.*:141: Warning: relaxed out-of-range branch into a jump
+.*:143: Warning: relaxed out-of-range branch into a jump
+.*:145: Warning: relaxed out-of-range branch into a jump
+.*:147: Warning: relaxed out-of-range branch into a jump
+.*:149: Warning: relaxed out-of-range branch into a jump
+.*:151: Warning: relaxed out-of-range branch into a jump
+.*:153: Warning: relaxed out-of-range branch into a jump
+.*:155: Warning: relaxed out-of-range branch into a jump
+.*:157: Warning: relaxed out-of-range branch into a jump
+.*:159: Warning: relaxed out-of-range branch into a jump
+.*:161: Warning: relaxed out-of-range branch into a jump
+.*:163: Warning: relaxed out-of-range branch into a jump
+.*:165: Warning: relaxed out-of-range branch into a jump
+.*:167: Warning: relaxed out-of-range branch into a jump
+.*:169: Warning: relaxed out-of-range branch into a jump
Index: binutils/gas/testsuite/gas/mips/micromips-branch-relax-insn32.d
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/micromips-branch-relax-insn32.d 2016-07-26 15:30:32.056349288 +0100
@@ -0,0 +1,433 @@
+#objdump: -dr --show-raw-insn
+#name: Relax microMIPS branches (insn32 mode)
+#as: -mips32r2 -32 -relax-branch -minsn32 --defsym insn32=1
+#stderr: micromips-branch-relax-insn32.l
+#source: micromips-branch-relax.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+
+[0-9a-f]+ <test>:
+[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9400 fffe b [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40e0 fffe bc [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4060 fffe bal [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: f400 0000 jal 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: f400 0000 jal 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b483 fffe bne v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 9483 fffe beq v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40d4 fffe bgtz s4,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4094 fffe blez s4,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40a3 fffe bnezc v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 0000 0000 nop
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 40e3 fffe beqzc v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 0000 0000 nop
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 401e fffe bltz s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: f400 0000 jal 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 405e fffe bgez s8,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: f400 0000 jal 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 43a0 fffe bc1t [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4380 fffe bc1f [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 42a0 fffe bc2t [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: 4280 fffe bc2f [0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+[ 0-9a-f]+: b483 fffe bne v1,a0,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: b403 fffe bnez v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: f400 0000 jal 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4003 fffe bltz v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4083 fffe blez v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0064 0b50 slt at,a0,v1
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0064 0b90 sltu at,a0,v1
+[ 0-9a-f]+: b401 fffe bnez at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 40c3 fffe bgtz v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b50 slt at,v1,a0
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 0083 0b90 sltu at,v1,a0
+[ 0-9a-f]+: 9401 fffe beqz at,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: f400 0000 jal 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 4043 fffe bgez v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 9483 fffe beq v1,a0,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+
+[0-9a-f]+ <.*>:
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+[ 0-9a-f]+: 9403 fffe beqz v1,[0-9a-f]+ <.*\+0x[0-9a-f]+>
+[ ]*[0-9a-f]+: R_MICROMIPS_PC16_S1 .*
+[ 0-9a-f]+: 0000 0000 nop
+[ 0-9a-f]+: d400 0000 j 0 <test>
+[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 test3
+[ 0-9a-f]+: 00a4 1b10 xor v1,a0,a1
+
+[0-9a-f]+ <.*>:
+ \.\.\.
+
+[0-9a-f]+ <test2>:
+ \.\.\.
+
+[0-9a-f]+ <test3>:
+[ 0-9a-f]+: 00a4 1950 addu v1,a0,a1
+ \.\.\.
Index: binutils/gas/testsuite/gas/mips/micromips-branch-relax-insn32.l
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ binutils/gas/testsuite/gas/mips/micromips-branch-relax-insn32.l 2016-07-26 15:30:32.070461359 +0100
@@ -0,0 +1,45 @@
+.*: Assembler messages:
+.*:73: Warning: relaxed out-of-range branch into a jump
+.*:75: Warning: relaxed out-of-range branch into a jump
+.*:77: Warning: relaxed out-of-range branch into a jump
+.*:83: Warning: relaxed out-of-range branch into a jump
+.*:85: Warning: relaxed out-of-range branch into a jump
+.*:87: Warning: relaxed out-of-range branch into a jump
+.*:89: Warning: relaxed out-of-range branch into a jump
+.*:91: Warning: relaxed out-of-range branch into a jump
+.*:93: Warning: relaxed out-of-range branch into a jump
+.*:95: Warning: relaxed out-of-range branch into a jump
+.*:97: Warning: relaxed out-of-range branch into a jump
+.*:99: Warning: relaxed out-of-range branch into a jump
+.*:101: Warning: relaxed out-of-range branch into a jump
+.*:109: Warning: relaxed out-of-range branch into a jump
+.*:111: Warning: relaxed out-of-range branch into a jump
+.*:113: Warning: relaxed out-of-range branch into a jump
+.*:115: Warning: relaxed out-of-range branch into a jump
+.*:117: Warning: relaxed out-of-range branch into a jump
+.*:119: Warning: relaxed out-of-range branch into a jump
+.*:121: Warning: relaxed out-of-range branch into a jump
+.*:123: Warning: relaxed out-of-range branch into a jump
+.*:125: Warning: relaxed out-of-range branch into a jump
+.*:127: Warning: relaxed out-of-range branch into a jump
+.*:129: Warning: relaxed out-of-range branch into a jump
+.*:131: Warning: relaxed out-of-range branch into a jump
+.*:133: Warning: relaxed out-of-range branch into a jump
+.*:135: Warning: relaxed out-of-range branch into a jump
+.*:137: Warning: relaxed out-of-range branch into a jump
+.*:139: Warning: relaxed out-of-range branch into a jump
+.*:141: Warning: relaxed out-of-range branch into a jump
+.*:143: Warning: relaxed out-of-range branch into a jump
+.*:145: Warning: relaxed out-of-range branch into a jump
+.*:147: Warning: relaxed out-of-range branch into a jump
+.*:149: Warning: relaxed out-of-range branch into a jump
+.*:151: Warning: relaxed out-of-range branch into a jump
+.*:153: Warning: relaxed out-of-range branch into a jump
+.*:155: Warning: relaxed out-of-range branch into a jump
+.*:157: Warning: relaxed out-of-range branch into a jump
+.*:159: Warning: relaxed out-of-range branch into a jump
+.*:161: Warning: relaxed out-of-range branch into a jump
+.*:163: Warning: relaxed out-of-range branch into a jump
+.*:165: Warning: relaxed out-of-range branch into a jump
+.*:167: Warning: relaxed out-of-range branch into a jump
+.*:169: Warning: relaxed out-of-range branch into a jump
Index: binutils/gas/testsuite/gas/mips/micromips-branch-relax-pic.l
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/micromips-branch-relax-pic.l 2016-07-26 15:24:50.798758592 +0100
+++ binutils/gas/testsuite/gas/mips/micromips-branch-relax-pic.l 2016-07-26 15:30:32.081623096 +0100
@@ -1,16 +1,10 @@
.*: Assembler messages:
-.*:61: Warning: no .cprestore pseudo-op used in PIC code
-.*:59: Warning: relaxed out-of-range branch into a jump
-.*:63: Warning: relaxed out-of-range branch into a jump
-.*:65: Warning: relaxed out-of-range branch into a jump
-.*:67: Warning: relaxed out-of-range branch into a jump
+.*:71: Warning: no .cprestore pseudo-op used in PIC code
.*:69: Warning: relaxed out-of-range branch into a jump
-.*:71: Warning: relaxed out-of-range branch into a jump
.*:73: Warning: relaxed out-of-range branch into a jump
.*:75: Warning: relaxed out-of-range branch into a jump
.*:77: Warning: relaxed out-of-range branch into a jump
-.*:79: Warning: relaxed out-of-range branch into a jump
-.*:81: Warning: relaxed out-of-range branch into a jump
+.*:80: Warning: relaxed out-of-range branch into a jump
.*:83: Warning: relaxed out-of-range branch into a jump
.*:85: Warning: relaxed out-of-range branch into a jump
.*:87: Warning: relaxed out-of-range branch into a jump
@@ -21,9 +15,8 @@
.*:97: Warning: relaxed out-of-range branch into a jump
.*:99: Warning: relaxed out-of-range branch into a jump
.*:101: Warning: relaxed out-of-range branch into a jump
-.*:103: Warning: relaxed out-of-range branch into a jump
-.*:105: Warning: relaxed out-of-range branch into a jump
-.*:107: Warning: relaxed out-of-range branch into a jump
+.*:104: Warning: relaxed out-of-range branch into a jump
+.*:106: Warning: relaxed out-of-range branch into a jump
.*:109: Warning: relaxed out-of-range branch into a jump
.*:111: Warning: relaxed out-of-range branch into a jump
.*:113: Warning: relaxed out-of-range branch into a jump
@@ -48,3 +41,10 @@
.*:151: Warning: relaxed out-of-range branch into a jump
.*:153: Warning: relaxed out-of-range branch into a jump
.*:155: Warning: relaxed out-of-range branch into a jump
+.*:157: Warning: relaxed out-of-range branch into a jump
+.*:159: Warning: relaxed out-of-range branch into a jump
+.*:161: Warning: relaxed out-of-range branch into a jump
+.*:163: Warning: relaxed out-of-range branch into a jump
+.*:165: Warning: relaxed out-of-range branch into a jump
+.*:167: Warning: relaxed out-of-range branch into a jump
+.*:169: Warning: relaxed out-of-range branch into a jump
Index: binutils/gas/testsuite/gas/mips/micromips-branch-relax.l
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/micromips-branch-relax.l 2016-07-26 15:24:50.817248376 +0100
+++ binutils/gas/testsuite/gas/mips/micromips-branch-relax.l 2016-07-26 15:30:32.090793464 +0100
@@ -1,14 +1,8 @@
.*: Assembler messages:
-.*:63: Warning: relaxed out-of-range branch into a jump
-.*:65: Warning: relaxed out-of-range branch into a jump
-.*:67: Warning: relaxed out-of-range branch into a jump
-.*:69: Warning: relaxed out-of-range branch into a jump
-.*:71: Warning: relaxed out-of-range branch into a jump
.*:73: Warning: relaxed out-of-range branch into a jump
.*:75: Warning: relaxed out-of-range branch into a jump
.*:77: Warning: relaxed out-of-range branch into a jump
-.*:79: Warning: relaxed out-of-range branch into a jump
-.*:81: Warning: relaxed out-of-range branch into a jump
+.*:80: Warning: relaxed out-of-range branch into a jump
.*:83: Warning: relaxed out-of-range branch into a jump
.*:85: Warning: relaxed out-of-range branch into a jump
.*:87: Warning: relaxed out-of-range branch into a jump
@@ -19,9 +13,8 @@
.*:97: Warning: relaxed out-of-range branch into a jump
.*:99: Warning: relaxed out-of-range branch into a jump
.*:101: Warning: relaxed out-of-range branch into a jump
-.*:103: Warning: relaxed out-of-range branch into a jump
-.*:105: Warning: relaxed out-of-range branch into a jump
-.*:107: Warning: relaxed out-of-range branch into a jump
+.*:104: Warning: relaxed out-of-range branch into a jump
+.*:106: Warning: relaxed out-of-range branch into a jump
.*:109: Warning: relaxed out-of-range branch into a jump
.*:111: Warning: relaxed out-of-range branch into a jump
.*:113: Warning: relaxed out-of-range branch into a jump
@@ -46,3 +39,10 @@
.*:151: Warning: relaxed out-of-range branch into a jump
.*:153: Warning: relaxed out-of-range branch into a jump
.*:155: Warning: relaxed out-of-range branch into a jump
+.*:157: Warning: relaxed out-of-range branch into a jump
+.*:159: Warning: relaxed out-of-range branch into a jump
+.*:161: Warning: relaxed out-of-range branch into a jump
+.*:163: Warning: relaxed out-of-range branch into a jump
+.*:165: Warning: relaxed out-of-range branch into a jump
+.*:167: Warning: relaxed out-of-range branch into a jump
+.*:169: Warning: relaxed out-of-range branch into a jump
Index: binutils/gas/testsuite/gas/mips/micromips-branch-relax.s
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/micromips-branch-relax.s 2016-07-26 15:24:50.831598966 +0100
+++ binutils/gas/testsuite/gas/mips/micromips-branch-relax.s 2016-07-26 15:30:32.098908776 +0100
@@ -14,44 +14,54 @@
addu $3, $4, $5
bal test
addu $3, $4, $5
+ .ifndef insn32
bals test
addu $3, $4, $5
+ .endif
beqz $3, test
addu $3, $4, $5
bnez $3, test
addu $3, $4, $5
+ .ifndef insn32
b16 test2
addu $3, $4, $5
beqz16 $3, test2
addu $3, $4, $5
bnez16 $3, test2
addu $3, $4, $5
+ .endif
b test2
addu $3, $4, $5
bc test2
addu $3, $4, $5
bal test2
addu $3, $4, $5
+ .ifndef insn32
bals test2
addu $3, $4, $5
+ .endif
beqz $3, test2
addu $3, $4, $5
bnez $3, test2
addu $3, $4, $5
+ .ifndef insn32
b16 test3
addu $3, $4, $5
beqz16 $3, test3
addu $3, $4, $5
bnez16 $3, test3
addu $3, $4, $5
+ .endif
b32 test2
addu $3, $4, $5
bc32 test2
addu $3, $4, $5
bal32 test2
addu $3, $4, $5
+ .ifndef insn32
bals32 test2
addu $3, $4, $5
+ .endif
beqz32 $3, test2
addu $3, $4, $5
bnez32 $3, test2
@@ -66,8 +76,10 @@
addu $3, $4, $5
bal test3
addu $3, $4, $5
+ .ifndef insn32
bals test3
addu $3, $4, $5
+ .endif
beq $3, $4, test3
addu $3, $4, $5
bne $3, $4, test3
@@ -88,10 +100,12 @@
addu $3, $4, $5
bltzal $30, test3
addu $3, $4, $5
+ .ifndef insn32
bgezals $30, test3
addu $3, $4, $5
bltzals $30, test3
addu $3, $4, $5
+ .endif
bc1f test3
addu $3, $4, $5
bc1t test3
Index: binutils/gas/testsuite/gas/mips/mips.exp
===================================================================
--- binutils.orig/gas/testsuite/gas/mips/mips.exp 2016-07-26 15:24:50.847066683 +0100
+++ binutils/gas/testsuite/gas/mips/mips.exp 2016-07-26 15:30:32.111085245 +0100
@@ -1354,6 +1354,8 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "micromips-size-1"
run_dump_test "micromips-branch-relax"
run_dump_test "micromips-branch-relax-pic"
+ run_dump_test "micromips-branch-relax-insn32"
+ run_dump_test "micromips-branch-relax-insn32-pic"
run_dump_test "micromips-branch-delay"
run_dump_test "micromips-warn-branch-delay"
run_dump_test "micromips-warn-branch-delay-1"