This is the mail archive of the binutils@sources.redhat.com 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]

[patch] gas/MIPS: Optimize certain macro expansions


Hello,

 Now after Richard's changes to relaxation it is quite easy to do certain
optimization of variant code.  Here is my proposal to emit the shortest
sequence possible when loading constants in a few places, mostly global
variants of macro expansions (where no relocations are used in the
affected range).  This is based on bits from one of my unofficial patches
and I've used it successfully for several months now.  The patch updates
several tests as their output differs after the change, either because
superfluous operations are removed (like "addiu at,at,0") or because
load_register() emits a sequence different from what used to be hardcoded.

gas/ChangeLog
2004-01-30  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* config/tc-mips.c (add_got_offset_hilo): New function.
	(macro): Use load_register() and add_got_offset_hilo() to load 
	constants instead of hardcoding code sequences throughout.

gas/testsuite/ChangeLog
2004-01-30  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* gas/mips/div.d: Update to accomodate changes in macro 
	expansions.
	gas/mips/elf-rel-got-n32.d: Likewise.
	gas/mips/elf-rel-got-n64.d: Likewise.
	gas/mips/elf-rel-xgot-n32.d: Likewise.
	gas/mips/elf-rel-xgot-n64.d: Likewise.
	gas/mips/la-svr4pic.d: Likewise.
	gas/mips/la-xgot.d: Likewise.
	gas/mips/lca-svr4pic.d: Likewise.
	gas/mips/lca-xgot.d: Likewise.

 OK to apply?

  Maciej

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +

binutils-2.14.90-20040124-mips-load_register.patch
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/config/tc-mips.c binutils-2.14.90-20040124/gas/config/tc-mips.c
--- binutils-2.14.90-20040124.macro/gas/config/tc-mips.c	2004-01-23 13:39:52.000000000 +0000
+++ binutils-2.14.90-20040124/gas/config/tc-mips.c	2004-01-30 18:32:40.000000000 +0000
@@ -4029,8 +4029,8 @@ move_register (int dest, int source)
 }
 
 /* Emit an SVR4 PIC sequence to load address LOCAL into DEST, where
-   LOCAL is the sum of a symbol and a 16-bit displacement.  The two
-   alternatives are:
+   LOCAL is the sum of a symbol and a 16-bit or 32-bit displacement.
+   The two alternatives are:
 
    Global symbol		Local sybmol
    -------------		------------
@@ -4039,7 +4039,8 @@ move_register (int dest, int source)
    addiu DEST,DEST,OFFSET	addiu DEST,DEST,%lo(SYMBOL + OFFSET)
 
    load_got_offset emits the first instruction and add_got_offset
-   emits the second.  */
+   emits the second for a 16-bit offset or add_got_offset_hilo emits
+   a sequence to add a 32-bit offset using a scratch register.  */
 
 static void
 load_got_offset (int dest, expressionS *local)
@@ -4076,6 +4077,32 @@ add_got_offset (int dest, expressionS *l
   relax_end ();
 }
 
+static void
+add_got_offset_hilo (int dest, expressionS *local, int tmp)
+{
+  expressionS global;
+  int hold_mips_optimize;
+
+  global.X_op = O_constant;
+  global.X_op_symbol = NULL;
+  global.X_add_symbol = NULL;
+  global.X_add_number = local->X_add_number;
+
+  relax_start (local->X_add_symbol);
+  load_register (tmp, &global, HAVE_64BIT_ADDRESSES);
+  relax_switch ();
+  /* Set mips_optimize around the lui instruction to avoid
+     inserting an unnecessary nop after the lw.  */
+  hold_mips_optimize = mips_optimize;
+  mips_optimize = 2;
+  macro_build_lui (&global, tmp);
+  mips_optimize = hold_mips_optimize;
+  macro_build (local, ADDRESS_ADDI_INSN, "t,r,j", tmp, tmp, BFD_RELOC_LO16);
+  relax_end ();
+
+  macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t", dest, dest, tmp);
+}
+
 /*
  *			Build macros
  *   This routine implements the seemingly endless macro or synthesized
@@ -4659,14 +4686,13 @@ macro (struct mips_cl_insn *ip)
 	  macro_build (NULL, "break", "c", 7);
 	}
       expr1.X_add_number = -1;
-      macro_build (&expr1, dbl ? "daddiu" : "addiu", "t,r,j", AT, 0,
-		   BFD_RELOC_LO16);
+      load_register (AT, &expr1, dbl);
       expr1.X_add_number = mips_trap ? (dbl ? 12 : 8) : (dbl ? 20 : 16);
       macro_build (&expr1, "bne", "s,t,p", treg, AT);
       if (dbl)
 	{
 	  expr1.X_add_number = 1;
-	  macro_build (&expr1, "daddiu", "t,r,j", AT, 0, BFD_RELOC_LO16);
+	  load_register (AT, &expr1, dbl);
 	  macro_build (NULL, "dsll32", "d,w,<", AT, AT, 31);
 	}
       else
@@ -5054,6 +5080,7 @@ macro (struct mips_cl_insn *ip)
 	      offset_expr.X_add_number =
 		((offset_expr.X_add_number + 0x8000) & 0xffff) - 0x8000;
 	      load_got_offset (tempreg, &offset_expr);
+	      offset_expr.X_add_number = expr1.X_add_number;
 	      /* If we are going to add in a base register, and the
 		 target register and the base register are the same,
 		 then we are using AT as a temporary register.  Since
@@ -5069,17 +5096,7 @@ macro (struct mips_cl_insn *ip)
 		  breg = 0;
 		  tempreg = treg;
 		}
-
-	      /* Set mips_optimize around the lui instruction to avoid
-		 inserting an unnecessary nop after the lw.  */
-	      hold_mips_optimize = mips_optimize;
-	      mips_optimize = 2;
-	      macro_build_lui (&expr1, AT);
-	      mips_optimize = hold_mips_optimize;
-
-	      add_got_offset (AT, &offset_expr);
-	      macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t",
-			   tempreg, tempreg, AT);
+	      add_got_offset_hilo (tempreg, &offset_expr, AT);
 	      used_at = 1;
 	    }
 	}
@@ -5147,9 +5164,7 @@ macro (struct mips_cl_insn *ip)
 		      add_breg_early = 1;
 		    }
 
-		  macro_build_lui (&expr1, AT);
-		  macro_build (&expr1, ADDRESS_ADDI_INSN, "t,r,j",
-			       AT, AT, BFD_RELOC_LO16);
+		  load_register (AT, &expr1, HAVE_64BIT_ADDRESSES);
 		  macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t",
 			       dreg, dreg, AT);
 
@@ -5290,15 +5305,7 @@ macro (struct mips_cl_insn *ip)
 		  dreg = treg;
 		}
 
-	      /* Set mips_optimize around the lui instruction to avoid
-		 inserting an unnecessary nop after the lw.  */
-	      hold_mips_optimize = mips_optimize;
-	      mips_optimize = 2;
-	      macro_build_lui (&expr1, AT);
-	      mips_optimize = hold_mips_optimize;
-
-	      macro_build (&expr1, ADDRESS_ADDI_INSN, "t,r,j",
-			   AT, AT, BFD_RELOC_LO16);
+	      load_register (AT, &expr1, HAVE_64BIT_ADDRESSES);
 	      macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t", dreg, dreg, AT);
 
 	      used_at = 1;
@@ -5436,11 +5443,7 @@ macro (struct mips_cl_insn *ip)
 		  add_breg_early = 1;
 		}
 
-	      /* Set mips_optimize around the lui instruction to avoid
-		 inserting an unnecessary nop after the lw.  */
-	      macro_build_lui (&expr1, AT);
-	      macro_build (&expr1, ADDRESS_ADDI_INSN, "t,r,j",
-			   AT, AT, BFD_RELOC_LO16);
+	      load_register (AT, &expr1, HAVE_64BIT_ADDRESSES);
 	      macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t", dreg, dreg, AT);
 
 	      used_at = 1;
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/div.d binutils-2.14.90-20040124/gas/testsuite/gas/mips/div.d
--- binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/div.d	2001-06-30 03:25:20.000000000 +0000
+++ binutils-2.14.90-20040124/gas/testsuite/gas/mips/div.d	2003-11-09 17:42:01.000000000 +0000
@@ -102,9 +102,9 @@ Disassembly of section .text:
 0+0174 <[^>]*> bnez	a2,0+0180 <foo\+0x180>
 0+0178 <[^>]*> ddiv	zero,a1,a2
 0+017c <[^>]*> break	(0x0,0x7|0x7)
-0+0180 <[^>]*> daddiu	at,zero,-1
+0+0180 <[^>]*> (daddiu	at,zero,-1|li	at,-1)
 0+0184 <[^>]*> bne	a2,at,0+019c <foo\+0x19c>
-0+0188 <[^>]*> daddiu	at,zero,1
+0+0188 <[^>]*> (daddiu	at,zero,1|li	at,1)
 0+018c <[^>]*> dsll32	at,at,0x1f
 0+0190 <[^>]*> bne	a1,at,0+019c <foo\+0x19c>
 0+0194 <[^>]*> nop
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/elf-rel-got-n32.d binutils-2.14.90-20040124/gas/testsuite/gas/mips/elf-rel-got-n32.d
--- binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/elf-rel-got-n32.d	2003-09-02 03:25:23.000000000 +0000
+++ binutils-2.14.90-20040124/gas/testsuite/gas/mips/elf-rel-got-n32.d	2003-11-09 17:42:01.000000000 +0000
@@ -12,8 +12,8 @@ Disassembly of section \.text:
 00000008 <fn\+0x8> 24a5000c 	addiu	a1,a1,12
 0000000c <fn\+0xc> 8f850000 	lw	a1,0\(gp\)
 			c: R_MIPS_GOT_DISP	dg1
-00000010 <fn\+0x10> 3c010002 	lui	at,0x2
-00000014 <fn\+0x14> 2421e240 	addiu	at,at,-7616
+00000010 <fn\+0x10> 3c010001 	lui	at,0x1
+00000014 <fn\+0x14> 3421e240 	ori	at,at,0xe240
 00000018 <fn\+0x18> 00a12821 	addu	a1,a1,at
 0000001c <fn\+0x1c> 8f850000 	lw	a1,0\(gp\)
 			1c: R_MIPS_GOT_DISP	dg1
@@ -24,8 +24,8 @@ Disassembly of section \.text:
 0000002c <fn\+0x2c> 00b12821 	addu	a1,a1,s1
 00000030 <fn\+0x30> 8f850000 	lw	a1,0\(gp\)
 			30: R_MIPS_GOT_DISP	dg1
-00000034 <fn\+0x34> 3c010002 	lui	at,0x2
-00000038 <fn\+0x38> 2421e240 	addiu	at,at,-7616
+00000034 <fn\+0x34> 3c010001 	lui	at,0x1
+00000038 <fn\+0x38> 3421e240 	ori	at,at,0xe240
 0000003c <fn\+0x3c> 00a12821 	addu	a1,a1,at
 00000040 <fn\+0x40> 00b12821 	addu	a1,a1,s1
 00000044 <fn\+0x44> 8f850000 	lw	a1,0\(gp\)
@@ -184,8 +184,8 @@ Disassembly of section \.text:
 000001d8 <fn\+0x1d8> 24a5000c 	addiu	a1,a1,12
 000001dc <fn\+0x1dc> 8f850000 	lw	a1,0\(gp\)
 			1dc: R_MIPS_GOT_DISP	dg2
-000001e0 <fn\+0x1e0> 3c010002 	lui	at,0x2
-000001e4 <fn\+0x1e4> 2421e240 	addiu	at,at,-7616
+000001e0 <fn\+0x1e0> 3c010001 	lui	at,0x1
+000001e4 <fn\+0x1e4> 3421e240 	ori	at,at,0xe240
 000001e8 <fn\+0x1e8> 00a12821 	addu	a1,a1,at
 000001ec <fn\+0x1ec> 8f850000 	lw	a1,0\(gp\)
 			1ec: R_MIPS_GOT_DISP	dg2
@@ -196,8 +196,8 @@ Disassembly of section \.text:
 000001fc <fn\+0x1fc> 00b12821 	addu	a1,a1,s1
 00000200 <fn\+0x200> 8f850000 	lw	a1,0\(gp\)
 			200: R_MIPS_GOT_DISP	dg2
-00000204 <fn\+0x204> 3c010002 	lui	at,0x2
-00000208 <fn\+0x208> 2421e240 	addiu	at,at,-7616
+00000204 <fn\+0x204> 3c010001 	lui	at,0x1
+00000208 <fn\+0x208> 3421e240 	ori	at,at,0xe240
 0000020c <fn\+0x20c> 00a12821 	addu	a1,a1,at
 00000210 <fn\+0x210> 00b12821 	addu	a1,a1,s1
 00000214 <fn\+0x214> 8f850000 	lw	a1,0\(gp\)
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/elf-rel-got-n64.d binutils-2.14.90-20040124/gas/testsuite/gas/mips/elf-rel-got-n64.d
--- binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/elf-rel-got-n64.d	2003-09-02 03:25:23.000000000 +0000
+++ binutils-2.14.90-20040124/gas/testsuite/gas/mips/elf-rel-got-n64.d	2003-11-09 17:42:01.000000000 +0000
@@ -18,8 +18,8 @@ Disassembly of section \.text:
 			c: R_MIPS_GOT_DISP	dg1
 			c: R_MIPS_NONE	\*ABS\*
 			c: R_MIPS_NONE	\*ABS\*
-0000000000000010 <fn\+0x10> 3c010002 	lui	at,0x2
-0000000000000014 <fn\+0x14> 6421e240 	daddiu	at,at,-7616
+0000000000000010 <fn\+0x10> 3c010001 	lui	at,0x1
+0000000000000014 <fn\+0x14> 3421e240 	ori	at,at,0xe240
 0000000000000018 <fn\+0x18> 00a1282d 	daddu	a1,a1,at
 000000000000001c <fn\+0x1c> df850000 	ld	a1,0\(gp\)
 			1c: R_MIPS_GOT_DISP	dg1
@@ -36,8 +36,8 @@ Disassembly of section \.text:
 			30: R_MIPS_GOT_DISP	dg1
 			30: R_MIPS_NONE	\*ABS\*
 			30: R_MIPS_NONE	\*ABS\*
-0000000000000034 <fn\+0x34> 3c010002 	lui	at,0x2
-0000000000000038 <fn\+0x38> 6421e240 	daddiu	at,at,-7616
+0000000000000034 <fn\+0x34> 3c010001 	lui	at,0x1
+0000000000000038 <fn\+0x38> 3421e240 	ori	at,at,0xe240
 000000000000003c <fn\+0x3c> 00a1282d 	daddu	a1,a1,at
 0000000000000040 <fn\+0x40> 00b1282d 	daddu	a1,a1,s1
 0000000000000044 <fn\+0x44> df850000 	ld	a1,0\(gp\)
@@ -302,8 +302,8 @@ Disassembly of section \.text:
 			1dc: R_MIPS_GOT_DISP	dg2
 			1dc: R_MIPS_NONE	\*ABS\*
 			1dc: R_MIPS_NONE	\*ABS\*
-00000000000001e0 <fn\+0x1e0> 3c010002 	lui	at,0x2
-00000000000001e4 <fn\+0x1e4> 6421e240 	daddiu	at,at,-7616
+00000000000001e0 <fn\+0x1e0> 3c010001 	lui	at,0x1
+00000000000001e4 <fn\+0x1e4> 3421e240 	ori	at,at,0xe240
 00000000000001e8 <fn\+0x1e8> 00a1282d 	daddu	a1,a1,at
 00000000000001ec <fn\+0x1ec> df850000 	ld	a1,0\(gp\)
 			1ec: R_MIPS_GOT_DISP	dg2
@@ -320,8 +320,8 @@ Disassembly of section \.text:
 			200: R_MIPS_GOT_DISP	dg2
 			200: R_MIPS_NONE	\*ABS\*
 			200: R_MIPS_NONE	\*ABS\*
-0000000000000204 <fn\+0x204> 3c010002 	lui	at,0x2
-0000000000000208 <fn\+0x208> 6421e240 	daddiu	at,at,-7616
+0000000000000204 <fn\+0x204> 3c010001 	lui	at,0x1
+0000000000000208 <fn\+0x208> 3421e240 	ori	at,at,0xe240
 000000000000020c <fn\+0x20c> 00a1282d 	daddu	a1,a1,at
 0000000000000210 <fn\+0x210> 00b1282d 	daddu	a1,a1,s1
 0000000000000214 <fn\+0x214> df850000 	ld	a1,0\(gp\)
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/elf-rel-xgot-n32.d binutils-2.14.90-20040124/gas/testsuite/gas/mips/elf-rel-xgot-n32.d
--- binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/elf-rel-xgot-n32.d	2003-12-07 04:25:20.000000000 +0000
+++ binutils-2.14.90-20040124/gas/testsuite/gas/mips/elf-rel-xgot-n32.d	2004-01-29 18:28:50.000000000 +0000
@@ -22,8 +22,8 @@ Disassembly of section \.text:
 00000020 <fn\+0x20> 00bc2821 	addu	a1,a1,gp
 00000024 <fn\+0x24> 8ca50000 	lw	a1,0\(a1\)
 			24: R_MIPS_GOT_LO16	dg1
-00000028 <fn\+0x28> 3c010002 	lui	at,0x2
-0000002c <fn\+0x2c> 2421e240 	addiu	at,at,-7616
+00000028 <fn\+0x28> 3c010001 	lui	at,0x1
+0000002c <fn\+0x2c> 3421e240 	ori	at,at,0xe240
 00000030 <fn\+0x30> 00a12821 	addu	a1,a1,at
 00000034 <fn\+0x34> 3c050000 	lui	a1,0x0
 			34: R_MIPS_GOT_HI16	dg1
@@ -43,8 +43,8 @@ Disassembly of section \.text:
 0000005c <fn\+0x5c> 00bc2821 	addu	a1,a1,gp
 00000060 <fn\+0x60> 8ca50000 	lw	a1,0\(a1\)
 			60: R_MIPS_GOT_LO16	dg1
-00000064 <fn\+0x64> 3c010002 	lui	at,0x2
-00000068 <fn\+0x68> 2421e240 	addiu	at,at,-7616
+00000064 <fn\+0x64> 3c010001 	lui	at,0x1
+00000068 <fn\+0x68> 3421e240 	ori	at,at,0xe240
 0000006c <fn\+0x6c> 00a12821 	addu	a1,a1,at
 00000070 <fn\+0x70> 00b12821 	addu	a1,a1,s1
 00000074 <fn\+0x74> 3c050000 	lui	a1,0x0
@@ -281,8 +281,8 @@ Disassembly of section \.text:
 000002d4 <fn\+0x2d4> 00bc2821 	addu	a1,a1,gp
 000002d8 <fn\+0x2d8> 8ca50000 	lw	a1,0\(a1\)
 			2d8: R_MIPS_GOT_LO16	dg2
-000002dc <fn\+0x2dc> 3c010002 	lui	at,0x2
-000002e0 <fn\+0x2e0> 2421e240 	addiu	at,at,-7616
+000002dc <fn\+0x2dc> 3c010001 	lui	at,0x1
+000002e0 <fn\+0x2e0> 3421e240 	ori	at,at,0xe240
 000002e4 <fn\+0x2e4> 00a12821 	addu	a1,a1,at
 000002e8 <fn\+0x2e8> 3c050000 	lui	a1,0x0
 			2e8: R_MIPS_GOT_HI16	dg2
@@ -302,8 +302,8 @@ Disassembly of section \.text:
 00000310 <fn\+0x310> 00bc2821 	addu	a1,a1,gp
 00000314 <fn\+0x314> 8ca50000 	lw	a1,0\(a1\)
 			314: R_MIPS_GOT_LO16	dg2
-00000318 <fn\+0x318> 3c010002 	lui	at,0x2
-0000031c <fn\+0x31c> 2421e240 	addiu	at,at,-7616
+00000318 <fn\+0x318> 3c010001 	lui	at,0x1
+0000031c <fn\+0x31c> 3421e240 	ori	at,at,0xe240
 00000320 <fn\+0x320> 00a12821 	addu	a1,a1,at
 00000324 <fn\+0x324> 00b12821 	addu	a1,a1,s1
 00000328 <fn\+0x328> 3c050000 	lui	a1,0x0
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/elf-rel-xgot-n64.d binutils-2.14.90-20040124/gas/testsuite/gas/mips/elf-rel-xgot-n64.d
--- binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/elf-rel-xgot-n64.d	2003-12-07 04:25:20.000000000 +0000
+++ binutils-2.14.90-20040124/gas/testsuite/gas/mips/elf-rel-xgot-n64.d	2004-01-29 18:28:50.000000000 +0000
@@ -34,8 +34,8 @@ Disassembly of section \.text:
 			24: R_MIPS_GOT_LO16	dg1
 			24: R_MIPS_NONE	\*ABS\*
 			24: R_MIPS_NONE	\*ABS\*
-0000000000000028 <fn\+0x28> 3c010002 	lui	at,0x2
-000000000000002c <fn\+0x2c> 6421e240 	daddiu	at,at,-7616
+0000000000000028 <fn\+0x28> 3c010001 	lui	at,0x1
+000000000000002c <fn\+0x2c> 3421e240 	ori	at,at,0xe240
 0000000000000030 <fn\+0x30> 00a1282d 	daddu	a1,a1,at
 0000000000000034 <fn\+0x34> 3c050000 	lui	a1,0x0
 			34: R_MIPS_GOT_HI16	dg1
@@ -67,8 +67,8 @@ Disassembly of section \.text:
 			60: R_MIPS_GOT_LO16	dg1
 			60: R_MIPS_NONE	\*ABS\*
 			60: R_MIPS_NONE	\*ABS\*
-0000000000000064 <fn\+0x64> 3c010002 	lui	at,0x2
-0000000000000068 <fn\+0x68> 6421e240 	daddiu	at,at,-7616
+0000000000000064 <fn\+0x64> 3c010001 	lui	at,0x1
+0000000000000068 <fn\+0x68> 3421e240 	ori	at,at,0xe240
 000000000000006c <fn\+0x6c> 00a1282d 	daddu	a1,a1,at
 0000000000000070 <fn\+0x70> 00b1282d 	daddu	a1,a1,s1
 0000000000000074 <fn\+0x74> 3c050000 	lui	a1,0x0
@@ -465,8 +465,8 @@ Disassembly of section \.text:
 			2d8: R_MIPS_GOT_LO16	dg2
 			2d8: R_MIPS_NONE	\*ABS\*
 			2d8: R_MIPS_NONE	\*ABS\*
-00000000000002dc <fn\+0x2dc> 3c010002 	lui	at,0x2
-00000000000002e0 <fn\+0x2e0> 6421e240 	daddiu	at,at,-7616
+00000000000002dc <fn\+0x2dc> 3c010001 	lui	at,0x1
+00000000000002e0 <fn\+0x2e0> 3421e240 	ori	at,at,0xe240
 00000000000002e4 <fn\+0x2e4> 00a1282d 	daddu	a1,a1,at
 00000000000002e8 <fn\+0x2e8> 3c050000 	lui	a1,0x0
 			2e8: R_MIPS_GOT_HI16	dg2
@@ -498,8 +498,8 @@ Disassembly of section \.text:
 			314: R_MIPS_GOT_LO16	dg2
 			314: R_MIPS_NONE	\*ABS\*
 			314: R_MIPS_NONE	\*ABS\*
-0000000000000318 <fn\+0x318> 3c010002 	lui	at,0x2
-000000000000031c <fn\+0x31c> 6421e240 	daddiu	at,at,-7616
+0000000000000318 <fn\+0x318> 3c010001 	lui	at,0x1
+000000000000031c <fn\+0x31c> 3421e240 	ori	at,at,0xe240
 0000000000000320 <fn\+0x320> 00a1282d 	daddu	a1,a1,at
 0000000000000324 <fn\+0x324> 00b1282d 	daddu	a1,a1,s1
 0000000000000328 <fn\+0x328> 3c050000 	lui	a1,0x0
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/la-svr4pic.d binutils-2.14.90-20040124/gas/testsuite/gas/mips/la-svr4pic.d
--- binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/la-svr4pic.d	2003-05-08 03:25:31.000000000 +0000
+++ binutils-2.14.90-20040124/gas/testsuite/gas/mips/la-svr4pic.d	2003-11-09 17:42:01.000000000 +0000
@@ -87,23 +87,19 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -157,22 +153,18 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -194,23 +186,23 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -305,26 +297,22 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
@@ -389,25 +377,21 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
@@ -433,26 +417,26 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/la-xgot.d binutils-2.14.90-20040124/gas/testsuite/gas/mips/la-xgot.d
--- binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/la-xgot.d	2003-05-08 03:25:32.000000000 +0000
+++ binutils-2.14.90-20040124/gas/testsuite/gas/mips/la-xgot.d	2003-11-09 17:42:01.000000000 +0000
@@ -114,32 +114,28 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_data_label
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	big_external_common
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_common
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -208,7 +204,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_data_label
@@ -216,7 +211,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	big_external_common
@@ -224,7 +218,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_common
@@ -232,7 +225,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -257,32 +249,32 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_data_label
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	big_external_common
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_common
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -404,8 +396,7 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -413,8 +404,7 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -422,8 +412,7 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -431,8 +420,7 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
@@ -512,7 +500,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -521,7 +508,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -530,7 +516,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -539,7 +524,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
@@ -568,8 +552,8 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -577,8 +561,8 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -586,8 +570,8 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -595,8 +579,8 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/lca-svr4pic.d binutils-2.14.90-20040124/gas/testsuite/gas/mips/lca-svr4pic.d
--- binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/lca-svr4pic.d	2003-11-18 21:22:55.000000000 +0000
+++ binutils-2.14.90-20040124/gas/testsuite/gas/mips/lca-svr4pic.d	2004-01-29 18:28:50.000000000 +0000
@@ -87,23 +87,19 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -157,22 +153,18 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -194,23 +186,23 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -305,26 +297,22 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
@@ -389,25 +377,21 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
@@ -433,26 +417,26 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
diff -up --recursive --new-file binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/lca-xgot.d binutils-2.14.90-20040124/gas/testsuite/gas/mips/lca-xgot.d
--- binutils-2.14.90-20040124.macro/gas/testsuite/gas/mips/lca-xgot.d	2003-11-18 21:22:55.000000000 +0000
+++ binutils-2.14.90-20040124/gas/testsuite/gas/mips/lca-xgot.d	2004-01-29 18:28:50.000000000 +0000
@@ -114,32 +114,28 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_data_label
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	big_external_common
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_common
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -208,7 +204,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_data_label
@@ -216,7 +211,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	big_external_common
@@ -224,7 +218,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_common
@@ -232,7 +225,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -257,32 +249,32 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_data_label
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	big_external_common
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lui	a0,0x0
 [ 	]*[0-9a-f]+: R_MIPS_GOT_HI16	small_external_common
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT16	.bss
@@ -404,8 +396,7 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -413,8 +404,7 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -422,8 +412,7 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -431,8 +420,7 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,-32768
+[0-9a-f]+ <[^>]*> li	at,0x8000
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
@@ -512,7 +500,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -521,7 +508,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -530,7 +516,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -539,7 +524,6 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
 [0-9a-f]+ <[^>]*> lui	at,0x1
-[0-9a-f]+ <[^>]*> addiu	at,at,0
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)
@@ -568,8 +552,8 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -577,8 +561,8 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_data_label
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -586,8 +570,8 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	big_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lui	a0,0x0
@@ -595,8 +579,8 @@ Disassembly of section .text:
 [0-9a-f]+ <[^>]*> addu	a0,a0,gp
 [0-9a-f]+ <[^>]*> lw	a0,0\(a0\)
 [ 	]*[0-9a-f]+: R_MIPS_GOT_LO16	small_external_common
-[0-9a-f]+ <[^>]*> lui	at,0x2
-[0-9a-f]+ <[^>]*> addiu	at,at,-23131
+[0-9a-f]+ <[^>]*> lui	at,0x1
+[0-9a-f]+ <[^>]*> ori	at,at,0xa5a5
 [0-9a-f]+ <[^>]*> addu	a0,a0,at
 [0-9a-f]+ <[^>]*> addu	a0,a0,a1
 [0-9a-f]+ <[^>]*> lw	a0,0\(gp\)


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