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


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

[committed] MIPS/GAS: Respect the `insn32' mode in branch relaxation


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"


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