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.
This commit is contained in:
Maciej W. Rozycki
2016-07-26 17:50:55 +01:00
parent 54806ffa85
commit 8484fb7587
10 changed files with 1247 additions and 65 deletions

View File

@ -1,3 +1,32 @@
2016-07-26 Maciej W. Rozycki <macro@imgtec.com>
* 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.
2016-07-21 H.J. Lu <hongjiu.lu@intel.com>
* configure: Regenerated.

View File

@ -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, expressionS *address_expr,
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 (fragS *fragp, asection *sec, int update)
{
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 (fragS *fragp, asection *sec, int update)
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 (fragS *fragp, asection *sec, int update)
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_UNUSED, segT asec, fragS *fragp)
{
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_UNUSED, segT asec, fragS *fragp)
/* 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_UNUSED, segT asec, fragS *fragp)
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_UNUSED, segT asec, fragS *fragp)
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);

View File

@ -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
\.\.\.

View File

@ -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

View File

@ -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
\.\.\.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -14,44 +14,54 @@ test:
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 @@ test:
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 @@ test:
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

View File

@ -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"