public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* "Error: constant too large" on mips gas
@ 2005-04-01  3:35 Atsushi Nemoto
  2005-04-04  8:58 ` Atsushi Nemoto
  0 siblings, 1 reply; 23+ messages in thread
From: Atsushi Nemoto @ 2005-04-01  3:35 UTC (permalink / raw)
  To: binutils

With recent binutils (2.15.96 and 20050331 snapshot), mips-linux-as
does not accept this instruction.

	lw	$2, 0x80000000

$ mips-linux-as -32 -non_shared foo.s
foo.s: Assembler messages:
foo.s:1: Error: constant too large

I got same result without -32 or -non_shared option.

The error was generated here.

gas/config/tc-mips.c:5788:
      /* A constant expression in PIC code can be handled just as it
	 is in non PIC code.  */
      if (offset_expr.X_op == O_constant)
	{
	  if (HAVE_32BIT_ADDRESSES
	      && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
	    as_bad (_("constant too large"));

It looks like an old 2.14 problem (which was fixed on 2.15).
Subject: [patch] MIPS/gas: load/store address overflow on binutils 2.14
http://sourceware.org/ml/binutils/2003-09/msg00104.html

Is this desired behavior?

---
Atsushi Nemoto
I'm not on this ML.  Please CC to me.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-01  3:35 "Error: constant too large" on mips gas Atsushi Nemoto
@ 2005-04-04  8:58 ` Atsushi Nemoto
  2005-04-04 13:37   ` Maciej W. Rozycki
  0 siblings, 1 reply; 23+ messages in thread
From: Atsushi Nemoto @ 2005-04-04  8:58 UTC (permalink / raw)
  To: binutils

>>>>> On Fri, 01 Apr 2005 12:35:28 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> said:
anemo> With recent binutils (2.15.96 and 20050331 snapshot), mips-linux-as
anemo> does not accept this instruction.

anemo> 	lw	$2, 0x80000000

anemo> $ mips-linux-as -32 -non_shared foo.s
anemo> foo.s: Assembler messages:
anemo> foo.s:1: Error: constant too large

I modified tc-mips.c to omit this error on 32bit gpr target.  Is this
a correct fix?

--- binutils-050331.org/gas/config/tc-mips.c	2005-03-22 06:59:34.000000000 +0900
+++ binutils-050331/gas/config/tc-mips.c	2005-04-04 17:48:06.223712588 +0900
@@ -5790,6 +5790,7 @@ macro (struct mips_cl_insn *ip)
       if (offset_expr.X_op == O_constant)
 	{
 	  if (HAVE_32BIT_ADDRESSES
+	      && HAVE_64BIT_GPRS
 	      && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
 	    as_bad (_("constant too large"));
 
 
---
Atsushi Nemoto

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-04  8:58 ` Atsushi Nemoto
@ 2005-04-04 13:37   ` Maciej W. Rozycki
  2005-04-04 13:40     ` Daniel Jacobowitz
                       ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Maciej W. Rozycki @ 2005-04-04 13:37 UTC (permalink / raw)
  To: Atsushi Nemoto; +Cc: binutils

On Mon, 4 Apr 2005, Atsushi Nemoto wrote:

> anemo> With recent binutils (2.15.96 and 20050331 snapshot), mips-linux-as
> anemo> does not accept this instruction.
> 
> anemo> 	lw	$2, 0x80000000
> 
> anemo> $ mips-linux-as -32 -non_shared foo.s
> anemo> foo.s: Assembler messages:
> anemo> foo.s:1: Error: constant too large

 I think I've failed to prepare the promised test case and this is the
result, sigh...

> I modified tc-mips.c to omit this error on 32bit gpr target.  Is this
> a correct fix?

 Well, I've had a look at the problem and decided we need more consistency 
and more reason in handling these cases.  My opinion is we should accept 
address offsets with bit 31 set, but higher bits unset when building for 
32-bit ABIs.  The fact we treat them as 64-bit numbers is an internal 
implementation detail of BFD which should be hidden from users.

 OTOH, for these ABIs we shouldn't silently crop offsets that are clearly 
64-bit as they are results of programming errors and as such should be 
properly diagnosed.  If such constants may be automatically generated by 
some sort of preprocessor magic or whatever and are to be expected, then 
an explicit "& 0xffffffff" or a similar expression can be used.

 And here is the result of the above assumptions, together with test suite 
updates this time. :-)  Tested with no regressions for mips64el-linux-gnu.

gas/:
2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/tc-mips.c (IS_ZEXT_32BIT_NUM): New macro.
	(normalize_address_expr): New function to sign-extend address 
	offsets that fit into 32 bits in 32-bit mode.
	(macro_build_ldst_constoffset): Use normalize_address_expr() 
	instead of a handcoded sequence.
	(load_register): Likewise.  Report oversized numbers in a useful 
	way.
	(macro) [ld_st, ldd_std]: Reject all oversized offsets, not only 
	for constant addresses.  Report oversized numbers in a useful way.
	(mips_ip): Use normalize_address_expr() for addresses.

gas/testsuite/:
2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>

	* gas/mips/ldstla-32.s: Exclude offsets that are now meant to fail 
	and include more instructions/offsets that are meant to succeed.  
	Use $4 instead $3 to avoid register dependencies.
	* gas/mips/ldstla-32.d: Update accordingly.
	* gas/mips/ldstla-32-shared.d: Likewise.
	* gas/mips/ldstla-32-1.s: New test for offsets that are meant to 
	fail.
	* gas/mips/ldstla-32-1.l: Stderr output for the new test.
	* gas/mips/mips.exp: Run the new test (twice).

 OK to apply?

  Maciej

binutils-2.15.96-20050331-mips-gas-normalize.patch
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/config/tc-mips.c binutils-2.15.96-20050331/gas/config/tc-mips.c
--- binutils-2.15.96-20050331.macro/gas/config/tc-mips.c	2005-03-22 04:25:33.000000000 +0000
+++ binutils-2.15.96-20050331/gas/config/tc-mips.c	2005-04-03 18:00:02.000000000 +0000
@@ -861,6 +861,10 @@ static int mips_relax_branch;
   (((x) &~ (offsetT) 0x7fff) == 0					\
    || (((x) &~ (offsetT) 0x7fff) == ~ (offsetT) 0x7fff))
 
+/* Is the given value a zero-extended 32-bit value?  */
+#define IS_ZEXT_32BIT_NUM(x)						\
+  (((x) &~ (offsetT) 0xffffffff) == 0)
+
 /* Replace bits MASK << SHIFT of STRUCT with the equivalent bits in
    VALUE << SHIFT.  VALUE is evaluated exactly once.  */
 #define INSERT_BITS(STRUCT, VALUE, MASK, SHIFT) \
@@ -3253,6 +3257,33 @@ mips16_macro_build (expressionS *ep, con
   append_insn (&insn, ep, r);
 }
 
+static void
+/*
+ * Sign-extend 32-bit mode constants that have bit 31 set and all
+ * higher bits unset.
+ */
+normalize_constant_expr (expressionS *ex)
+{
+  if ((ex->X_op == O_constant && HAVE_32BIT_GPRS)
+      && IS_ZEXT_32BIT_NUM (ex->X_add_number))
+    ex->X_add_number = (((ex->X_add_number & 0xffffffff) ^ 0x80000000)
+			- 0x80000000);
+}
+
+/*
+ * Sign-extend 32-bit mode address offsets that have bit 31 set and
+ * all higher bits unset.
+ */
+static void
+normalize_address_expr (expressionS *ex)
+{
+  if (((ex->X_op == O_constant && HAVE_32BIT_GPRS)
+	|| (ex->X_op == O_symbol && HAVE_32BIT_SYMBOLS))
+      && IS_ZEXT_32BIT_NUM (ex->X_add_number))
+    ex->X_add_number = (((ex->X_add_number & 0xffffffff) ^ 0x80000000)
+			- 0x80000000);
+}
+
 /*
  * Generate a "jalr" instruction with a relocation hint to the called
  * function.  This occurs in NewABI PIC code.
@@ -3338,15 +3369,8 @@ macro_build_ldst_constoffset (expression
   assert (ep->X_op == O_constant);
 
   /* Sign-extending 32-bit constants makes their handling easier.  */
-  if (! dbl && ! ((ep->X_add_number & ~((bfd_vma) 0x7fffffff))
-		  == ~((bfd_vma) 0x7fffffff)))
-    {
-      if (ep->X_add_number & ~((bfd_vma) 0xffffffff))
-	as_bad (_("constant too large"));
-
-      ep->X_add_number = (((ep->X_add_number & 0xffffffff) ^ 0x80000000)
-			  - 0x80000000);
-    }
+  if (!dbl)
+    normalize_constant_expr (ep);
 
   /* Right now, this routine can only handle signed 32-bit constants.  */
   if (! IS_SEXT_32BIT_NUM(ep->X_add_number + 0x8000))
@@ -3392,14 +3416,6 @@ set_at (int reg, int unsignedp)
     }
 }
 
-static void
-normalize_constant_expr (expressionS *ex)
-{
-  if (ex->X_op == O_constant && HAVE_32BIT_GPRS)
-    ex->X_add_number = (((ex->X_add_number & 0xffffffff) ^ 0x80000000)
-			- 0x80000000);
-}
-
 /* Warn if an expression is not a constant.  */
 
 static void
@@ -3504,15 +3520,8 @@ load_register (int reg, expressionS *ep,
       assert (ep->X_op == O_constant);
 
       /* Sign-extending 32-bit constants makes their handling easier.  */
-      if (! dbl && ! ((ep->X_add_number & ~((bfd_vma) 0x7fffffff))
-		      == ~((bfd_vma) 0x7fffffff)))
-	{
-	  if (ep->X_add_number & ~((bfd_vma) 0xffffffff))
-	    as_bad (_("constant too large"));
-
-	  ep->X_add_number = (((ep->X_add_number & 0xffffffff) ^ 0x80000000)
-			      - 0x80000000);
-	}
+      if (!dbl)
+	normalize_constant_expr (ep);
 
       if (IS_SEXT_16BIT_NUM (ep->X_add_number))
 	{
@@ -3543,8 +3552,9 @@ load_register (int reg, expressionS *ep,
 
   if (HAVE_32BIT_GPRS)
     {
-      as_bad (_("Number (0x%lx) larger than 32 bits"),
-	      (unsigned long) ep->X_add_number);
+      as_bad (_("Number (0x%lx%08lx) larger than 32 bits"),
+	      (unsigned long) (ep->X_add_number >> 32),
+	      (unsigned long) (ep->X_add_number & 0xffffffff));
       macro_build (ep, "addiu", "t,r,j", reg, 0, BFD_RELOC_LO16);
       return;
     }
@@ -5785,14 +5795,16 @@ macro (struct mips_cl_insn *ip)
 	  offset_expr.X_op = O_constant;
 	}
 
+      if (HAVE_32BIT_ADDRESSES
+	  && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
+	as_bad (_("Number (0x%lx%08lx) larger than 32 bits"),
+		(unsigned long) (offset_expr.X_add_number >> 32),
+		(unsigned long) (offset_expr.X_add_number & 0xffffffff));
+
       /* A constant expression in PIC code can be handled just as it
 	 is in non PIC code.  */
       if (offset_expr.X_op == O_constant)
 	{
-	  if (HAVE_32BIT_ADDRESSES
-	      && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
-	    as_bad (_("constant too large"));
-
 	  expr1.X_add_number = ((offset_expr.X_add_number + 0x8000)
 				& ~(bfd_vma) 0xffff);
 	  load_register (tempreg, &expr1, HAVE_64BIT_ADDRESSES);
@@ -6373,6 +6385,12 @@ macro (struct mips_cl_insn *ip)
 	  offset_expr.X_op = O_constant;
 	}
 
+      if (HAVE_32BIT_ADDRESSES
+	  && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
+	as_bad (_("Number (0x%lx%08lx) larger than 32 bits"),
+		(unsigned long) (offset_expr.X_add_number >> 32),
+		(unsigned long) (offset_expr.X_add_number & 0xffffffff));
+
       /* Even on a big endian machine $fn comes before $fn+1.  We have
 	 to adjust when loading from memory.  We set coproc if we must
 	 load $fn+1 first.  */
@@ -8556,6 +8574,7 @@ do_msbd:
 
 	    case 'A':
 	      my_getExpression (&offset_expr, s);
+	      normalize_address_expr (&offset_expr);
 	      *imm_reloc = BFD_RELOC_32;
 	      s = expr_end;
 	      continue;
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-1.l binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-1.l
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-1.l	1970-01-01 00:00:00.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-1.l	2005-04-03 17:55:35.000000000 +0000
@@ -0,0 +1,81 @@
+.*: Assembler messages:
+.*:2: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:3: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:4: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:5: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:6: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:7: Error: Number \(0x100000000\) larger than 32 bits
+.*:9: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:10: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:11: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:12: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:13: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:14: Error: Number \(0x100000000\) larger than 32 bits
+.*:16: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:17: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:18: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:19: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:20: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:21: Error: Number \(0x100000000\) larger than 32 bits
+.*:23: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:24: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:25: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:26: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:27: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:28: Error: Number \(0x100000000\) larger than 32 bits
+.*:30: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:31: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:31: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:32: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:32: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:33: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:33: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:34: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:34: Error: Number \(0x200000000\) larger than 32 bits
+.*:35: Error: Number \(0x100000000\) larger than 32 bits
+.*:35: Error: Number \(0x100000000\) larger than 32 bits
+.*:37: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:38: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:38: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:39: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:39: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:40: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:40: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:41: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:41: Error: Number \(0x200000000\) larger than 32 bits
+.*:42: Error: Number \(0x100000000\) larger than 32 bits
+.*:42: Error: Number \(0x100000000\) larger than 32 bits
+.*:44: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:45: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:45: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:46: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:46: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:47: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:47: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:48: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:48: Error: Number \(0x200000000\) larger than 32 bits
+.*:49: Error: Number \(0x100000000\) larger than 32 bits
+.*:49: Error: Number \(0x100000000\) larger than 32 bits
+.*:51: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:52: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:52: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:53: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:53: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:54: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:54: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:55: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:55: Error: Number \(0x200000000\) larger than 32 bits
+.*:56: Error: Number \(0x100000000\) larger than 32 bits
+.*:56: Error: Number \(0x100000000\) larger than 32 bits
+.*:58: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:59: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:60: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:61: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:62: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:63: Error: Number \(0x100000000\) larger than 32 bits
+.*:65: Error: Number \(0xffffffff7fffffff\) larger than 32 bits
+.*:66: Error: Number \(0xffffffff00000000\) larger than 32 bits
+.*:67: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:68: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:69: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:70: Error: Number \(0x100000000\) larger than 32 bits
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-1.s binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-1.s
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-1.s	1970-01-01 00:00:00.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-1.s	2005-04-03 14:56:56.000000000 +0000
@@ -0,0 +1,72 @@
+	.text
+	ld $2, 0xffffffff7fffffff($4)
+	ld $2, 0xffffffff00000000($4)
+	ld $2, 0xabcdef0123456789($4)
+	ld $2, 0x0123456789abcdef($4)
+	ld $2, 0x00000001ffffffff($4)
+	ld $2, 0x0000000100000000($4)
+
+	ld $2, 0xffffffff7fffffff
+	ld $2, 0xffffffff00000000
+	ld $2, 0xabcdef0123456789
+	ld $2, 0x0123456789abcdef
+	ld $2, 0x00000001ffffffff
+	ld $2, 0x0000000100000000
+
+	sd $2, 0xffffffff7fffffff($4)
+	sd $2, 0xffffffff00000000($4)
+	sd $2, 0xabcdef0123456789($4)
+	sd $2, 0x0123456789abcdef($4)
+	sd $2, 0x00000001ffffffff($4)
+	sd $2, 0x0000000100000000($4)
+
+	sd $2, 0xffffffff7fffffff
+	sd $2, 0xffffffff00000000
+	sd $2, 0xabcdef0123456789
+	sd $2, 0x0123456789abcdef
+	sd $2, 0x00000001ffffffff
+	sd $2, 0x0000000100000000
+
+	lw $2, 0xffffffff7fffffff($4)
+	lw $2, 0xffffffff00000000($4)
+	lw $2, 0xabcdef0123456789($4)
+	lw $2, 0x0123456789abcdef($4)
+	lw $2, 0x00000001ffffffff($4)
+	lw $2, 0x0000000100000000($4)
+
+	lw $2, 0xffffffff7fffffff
+	lw $2, 0xffffffff00000000
+	lw $2, 0xabcdef0123456789
+	lw $2, 0x0123456789abcdef
+	lw $2, 0x00000001ffffffff
+	lw $2, 0x0000000100000000
+
+	sw $2, 0xffffffff7fffffff($4)
+	sw $2, 0xffffffff00000000($4)
+	sw $2, 0xabcdef0123456789($4)
+	sw $2, 0x0123456789abcdef($4)
+	sw $2, 0x00000001ffffffff($4)
+	sw $2, 0x0000000100000000($4)
+
+	sw $2, 0xffffffff7fffffff
+	sw $2, 0xffffffff00000000
+	sw $2, 0xabcdef0123456789
+	sw $2, 0x0123456789abcdef
+	sw $2, 0x00000001ffffffff
+	sw $2, 0x0000000100000000
+
+	la $2, 0xffffffff7fffffff($4)
+	la $2, 0xffffffff00000000($4)
+	la $2, 0xabcdef0123456789($4)
+	la $2, 0x0123456789abcdef($4)
+	la $2, 0x00000001ffffffff($4)
+	la $2, 0x0000000100000000($4)
+
+	la $2, 0xffffffff7fffffff
+	la $2, 0xffffffff00000000
+	la $2, 0xabcdef0123456789
+	la $2, 0x0123456789abcdef
+	la $2, 0x00000001ffffffff
+	la $2, 0x0000000100000000
+
+	.space 8
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-shared.d binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-shared.d
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-shared.d	2003-10-01 02:07:48.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-shared.d	2005-04-03 18:01:35.000000000 +0000
@@ -8,73 +8,229 @@
 Disassembly of section \.text:
 
 00000000 <\.text>:
-   0:	3c0189ac 	lui	at,0x89ac
-   4:	00610821 	addu	at,v1,at
-   8:	8c22cdef 	lw	v0,-12817\(at\)
-   c:	8c23cdf3 	lw	v1,-12813\(at\)
-  10:	3c012345 	lui	at,0x2345
-  14:	00610821 	addu	at,v1,at
-  18:	8c226789 	lw	v0,26505\(at\)
-  1c:	8c23678d 	lw	v1,26509\(at\)
-  20:	3c018000 	lui	at,0x8000
-  24:	00610821 	addu	at,v1,at
-  28:	8c220000 	lw	v0,0\(at\)
-  2c:	8c230004 	lw	v1,4\(at\)
-  30:	3c010000 	lui	at,0x0
-  34:	00610821 	addu	at,v1,at
-  38:	8c220000 	lw	v0,0\(at\)
-  3c:	8c230004 	lw	v1,4\(at\)
-  40:	3c018000 	lui	at,0x8000
-  44:	00610821 	addu	at,v1,at
-  48:	8c22ffff 	lw	v0,-1\(at\)
-  4c:	8c230003 	lw	v1,3\(at\)
-  50:	3c01abce 	lui	at,0xabce
-  54:	00610821 	addu	at,v1,at
-  58:	8c22ef01 	lw	v0,-4351\(at\)
-  5c:	8c23ef05 	lw	v1,-4347\(at\)
-  60:	3c010123 	lui	at,0x123
-  64:	00610821 	addu	at,v1,at
-  68:	8c224567 	lw	v0,17767\(at\)
-  6c:	8c23456b 	lw	v1,17771\(at\)
-  70:	3c0189ac 	lui	at,0x89ac
-  74:	00610821 	addu	at,v1,at
-  78:	ac22cdef 	sw	v0,-12817\(at\)
-  7c:	ac23cdf3 	sw	v1,-12813\(at\)
-  80:	3c012345 	lui	at,0x2345
-  84:	00610821 	addu	at,v1,at
-  88:	ac226789 	sw	v0,26505\(at\)
-  8c:	ac23678d 	sw	v1,26509\(at\)
-  90:	3c018000 	lui	at,0x8000
-  94:	00610821 	addu	at,v1,at
-  98:	ac220000 	sw	v0,0\(at\)
-  9c:	ac230004 	sw	v1,4\(at\)
+   0:	8c82ffff 	lw	v0,-1\(a0\)
+   4:	8c830003 	lw	v1,3\(a0\)
+   8:	3c01abce 	lui	at,0xabce
+   c:	00810821 	addu	at,a0,at
+  10:	8c22ef01 	lw	v0,-4351\(at\)
+  14:	8c23ef05 	lw	v1,-4347\(at\)
+  18:	3c018000 	lui	at,0x8000
+  1c:	00810821 	addu	at,a0,at
+  20:	8c220000 	lw	v0,0\(at\)
+  24:	8c230004 	lw	v1,4\(at\)
+  28:	3c010000 	lui	at,0x0
+  2c:	00810821 	addu	at,a0,at
+  30:	8c22ffff 	lw	v0,-1\(at\)
+  34:	8c230003 	lw	v1,3\(at\)
+  38:	3c01abce 	lui	at,0xabce
+  3c:	00810821 	addu	at,a0,at
+  40:	8c22ef01 	lw	v0,-4351\(at\)
+  44:	8c23ef05 	lw	v1,-4347\(at\)
+  48:	3c018000 	lui	at,0x8000
+  4c:	00810821 	addu	at,a0,at
+  50:	8c220000 	lw	v0,0\(at\)
+  54:	8c230004 	lw	v1,4\(at\)
+  58:	3c018000 	lui	at,0x8000
+  5c:	00810821 	addu	at,a0,at
+  60:	8c22ffff 	lw	v0,-1\(at\)
+  64:	8c230003 	lw	v1,3\(at\)
+  68:	3c010123 	lui	at,0x123
+  6c:	00810821 	addu	at,a0,at
+  70:	8c224567 	lw	v0,17767\(at\)
+  74:	8c23456b 	lw	v1,17771\(at\)
+  78:	8c820000 	lw	v0,0\(a0\)
+  7c:	8c830004 	lw	v1,4\(a0\)
+  80:	8c02ffff 	lw	v0,-1\(zero\)
+  84:	8c030003 	lw	v1,3\(zero\)
+  88:	3c01abce 	lui	at,0xabce
+  8c:	8c22ef01 	lw	v0,-4351\(at\)
+  90:	8c23ef05 	lw	v1,-4347\(at\)
+  94:	3c018000 	lui	at,0x8000
+  98:	8c220000 	lw	v0,0\(at\)
+  9c:	8c230004 	lw	v1,4\(at\)
   a0:	3c010000 	lui	at,0x0
-  a4:	00610821 	addu	at,v1,at
-  a8:	ac220000 	sw	v0,0\(at\)
-  ac:	ac230004 	sw	v1,4\(at\)
-  b0:	3c018000 	lui	at,0x8000
-  b4:	00610821 	addu	at,v1,at
-  b8:	ac22ffff 	sw	v0,-1\(at\)
-  bc:	ac230003 	sw	v1,3\(at\)
-  c0:	3c01abce 	lui	at,0xabce
-  c4:	00610821 	addu	at,v1,at
-  c8:	ac22ef01 	sw	v0,-4351\(at\)
-  cc:	ac23ef05 	sw	v1,-4347\(at\)
+  a4:	8c22ffff 	lw	v0,-1\(at\)
+  a8:	8c230003 	lw	v1,3\(at\)
+  ac:	3c01abce 	lui	at,0xabce
+  b0:	8c22ef01 	lw	v0,-4351\(at\)
+  b4:	8c23ef05 	lw	v1,-4347\(at\)
+  b8:	3c018000 	lui	at,0x8000
+  bc:	8c220000 	lw	v0,0\(at\)
+  c0:	8c230004 	lw	v1,4\(at\)
+  c4:	3c018000 	lui	at,0x8000
+  c8:	8c22ffff 	lw	v0,-1\(at\)
+  cc:	8c230003 	lw	v1,3\(at\)
   d0:	3c010123 	lui	at,0x123
-  d4:	00610821 	addu	at,v1,at
-  d8:	ac224567 	sw	v0,17767\(at\)
-  dc:	ac23456b 	sw	v1,17771\(at\)
-  e0:	3c028000 	lui	v0,0x8000
-  e4:	00431021 	addu	v0,v0,v1
-  e8:	8c420000 	lw	v0,0\(v0\)
-  ec:	3c020123 	lui	v0,0x123
-  f0:	00431021 	addu	v0,v0,v1
-  f4:	8c424567 	lw	v0,17767\(v0\)
-  f8:	3c010123 	lui	at,0x123
-  fc:	00230821 	addu	at,at,v1
- 100:	ac224567 	sw	v0,17767\(at\)
- 104:	3c027fff 	lui	v0,0x7fff
- 108:	3442ffff 	ori	v0,v0,0xffff
- 10c:	3c020123 	lui	v0,0x123
- 110:	34424567 	ori	v0,v0,0x4567
+  d4:	8c224567 	lw	v0,17767\(at\)
+  d8:	8c23456b 	lw	v1,17771\(at\)
+  dc:	8c020000 	lw	v0,0\(zero\)
+  e0:	8c030004 	lw	v1,4\(zero\)
+  e4:	ac82ffff 	sw	v0,-1\(a0\)
+  e8:	ac830003 	sw	v1,3\(a0\)
+  ec:	3c01abce 	lui	at,0xabce
+  f0:	00810821 	addu	at,a0,at
+  f4:	ac22ef01 	sw	v0,-4351\(at\)
+  f8:	ac23ef05 	sw	v1,-4347\(at\)
+  fc:	3c018000 	lui	at,0x8000
+ 100:	00810821 	addu	at,a0,at
+ 104:	ac220000 	sw	v0,0\(at\)
+ 108:	ac230004 	sw	v1,4\(at\)
+ 10c:	3c010000 	lui	at,0x0
+ 110:	00810821 	addu	at,a0,at
+ 114:	ac22ffff 	sw	v0,-1\(at\)
+ 118:	ac230003 	sw	v1,3\(at\)
+ 11c:	3c01abce 	lui	at,0xabce
+ 120:	00810821 	addu	at,a0,at
+ 124:	ac22ef01 	sw	v0,-4351\(at\)
+ 128:	ac23ef05 	sw	v1,-4347\(at\)
+ 12c:	3c018000 	lui	at,0x8000
+ 130:	00810821 	addu	at,a0,at
+ 134:	ac220000 	sw	v0,0\(at\)
+ 138:	ac230004 	sw	v1,4\(at\)
+ 13c:	3c018000 	lui	at,0x8000
+ 140:	00810821 	addu	at,a0,at
+ 144:	ac22ffff 	sw	v0,-1\(at\)
+ 148:	ac230003 	sw	v1,3\(at\)
+ 14c:	3c010123 	lui	at,0x123
+ 150:	00810821 	addu	at,a0,at
+ 154:	ac224567 	sw	v0,17767\(at\)
+ 158:	ac23456b 	sw	v1,17771\(at\)
+ 15c:	ac820000 	sw	v0,0\(a0\)
+ 160:	ac830004 	sw	v1,4\(a0\)
+ 164:	ac02ffff 	sw	v0,-1\(zero\)
+ 168:	ac030003 	sw	v1,3\(zero\)
+ 16c:	3c01abce 	lui	at,0xabce
+ 170:	ac22ef01 	sw	v0,-4351\(at\)
+ 174:	ac23ef05 	sw	v1,-4347\(at\)
+ 178:	3c018000 	lui	at,0x8000
+ 17c:	ac220000 	sw	v0,0\(at\)
+ 180:	ac230004 	sw	v1,4\(at\)
+ 184:	3c010000 	lui	at,0x0
+ 188:	ac22ffff 	sw	v0,-1\(at\)
+ 18c:	ac230003 	sw	v1,3\(at\)
+ 190:	3c01abce 	lui	at,0xabce
+ 194:	ac22ef01 	sw	v0,-4351\(at\)
+ 198:	ac23ef05 	sw	v1,-4347\(at\)
+ 19c:	3c018000 	lui	at,0x8000
+ 1a0:	ac220000 	sw	v0,0\(at\)
+ 1a4:	ac230004 	sw	v1,4\(at\)
+ 1a8:	3c018000 	lui	at,0x8000
+ 1ac:	ac22ffff 	sw	v0,-1\(at\)
+ 1b0:	ac230003 	sw	v1,3\(at\)
+ 1b4:	3c010123 	lui	at,0x123
+ 1b8:	ac224567 	sw	v0,17767\(at\)
+ 1bc:	ac23456b 	sw	v1,17771\(at\)
+ 1c0:	ac020000 	sw	v0,0\(zero\)
+ 1c4:	ac030004 	sw	v1,4\(zero\)
+ 1c8:	8c82ffff 	lw	v0,-1\(a0\)
+ 1cc:	3c02abce 	lui	v0,0xabce
+ 1d0:	00441021 	addu	v0,v0,a0
+ 1d4:	8c42ef01 	lw	v0,-4351\(v0\)
+ 1d8:	3c028000 	lui	v0,0x8000
+ 1dc:	00441021 	addu	v0,v0,a0
+ 1e0:	8c420000 	lw	v0,0\(v0\)
+ 1e4:	24020000 	li	v0,0
+ 1e8:	00441021 	addu	v0,v0,a0
+ 1ec:	8c42ffff 	lw	v0,-1\(v0\)
+ 1f0:	3c02abce 	lui	v0,0xabce
+ 1f4:	00441021 	addu	v0,v0,a0
+ 1f8:	8c42ef01 	lw	v0,-4351\(v0\)
+ 1fc:	3c028000 	lui	v0,0x8000
+ 200:	00441021 	addu	v0,v0,a0
+ 204:	8c420000 	lw	v0,0\(v0\)
+ 208:	3c028000 	lui	v0,0x8000
+ 20c:	00441021 	addu	v0,v0,a0
+ 210:	8c42ffff 	lw	v0,-1\(v0\)
+ 214:	3c020123 	lui	v0,0x123
+ 218:	00441021 	addu	v0,v0,a0
+ 21c:	8c424567 	lw	v0,17767\(v0\)
+ 220:	8c820000 	lw	v0,0\(a0\)
+ 224:	8c02ffff 	lw	v0,-1\(zero\)
+ 228:	3c02abce 	lui	v0,0xabce
+ 22c:	8c42ef01 	lw	v0,-4351\(v0\)
+ 230:	3c028000 	lui	v0,0x8000
+ 234:	8c420000 	lw	v0,0\(v0\)
+ 238:	24020000 	li	v0,0
+ 23c:	8c42ffff 	lw	v0,-1\(v0\)
+ 240:	3c02abce 	lui	v0,0xabce
+ 244:	8c42ef01 	lw	v0,-4351\(v0\)
+ 248:	3c028000 	lui	v0,0x8000
+ 24c:	8c420000 	lw	v0,0\(v0\)
+ 250:	3c028000 	lui	v0,0x8000
+ 254:	8c42ffff 	lw	v0,-1\(v0\)
+ 258:	3c020123 	lui	v0,0x123
+ 25c:	8c424567 	lw	v0,17767\(v0\)
+ 260:	8c020000 	lw	v0,0\(zero\)
+ 264:	00000000 	nop
+ 268:	ac82ffff 	sw	v0,-1\(a0\)
+ 26c:	3c01abce 	lui	at,0xabce
+ 270:	00240821 	addu	at,at,a0
+ 274:	ac22ef01 	sw	v0,-4351\(at\)
+ 278:	3c018000 	lui	at,0x8000
+ 27c:	00240821 	addu	at,at,a0
+ 280:	ac220000 	sw	v0,0\(at\)
+ 284:	24010000 	li	at,0
+ 288:	00240821 	addu	at,at,a0
+ 28c:	ac22ffff 	sw	v0,-1\(at\)
+ 290:	3c01abce 	lui	at,0xabce
+ 294:	00240821 	addu	at,at,a0
+ 298:	ac22ef01 	sw	v0,-4351\(at\)
+ 29c:	3c018000 	lui	at,0x8000
+ 2a0:	00240821 	addu	at,at,a0
+ 2a4:	ac220000 	sw	v0,0\(at\)
+ 2a8:	3c018000 	lui	at,0x8000
+ 2ac:	00240821 	addu	at,at,a0
+ 2b0:	ac22ffff 	sw	v0,-1\(at\)
+ 2b4:	3c010123 	lui	at,0x123
+ 2b8:	00240821 	addu	at,at,a0
+ 2bc:	ac224567 	sw	v0,17767\(at\)
+ 2c0:	ac820000 	sw	v0,0\(a0\)
+ 2c4:	ac02ffff 	sw	v0,-1\(zero\)
+ 2c8:	3c01abce 	lui	at,0xabce
+ 2cc:	ac22ef01 	sw	v0,-4351\(at\)
+ 2d0:	3c018000 	lui	at,0x8000
+ 2d4:	ac220000 	sw	v0,0\(at\)
+ 2d8:	24010000 	li	at,0
+ 2dc:	ac22ffff 	sw	v0,-1\(at\)
+ 2e0:	3c01abce 	lui	at,0xabce
+ 2e4:	ac22ef01 	sw	v0,-4351\(at\)
+ 2e8:	3c018000 	lui	at,0x8000
+ 2ec:	ac220000 	sw	v0,0\(at\)
+ 2f0:	3c018000 	lui	at,0x8000
+ 2f4:	ac22ffff 	sw	v0,-1\(at\)
+ 2f8:	3c010123 	lui	at,0x123
+ 2fc:	ac224567 	sw	v0,17767\(at\)
+ 300:	ac020000 	sw	v0,0\(zero\)
+ 304:	2482ffff 	addiu	v0,a0,-1
+ 308:	3c02abcd 	lui	v0,0xabcd
+ 30c:	3442ef01 	ori	v0,v0,0xef01
+ 310:	00441021 	addu	v0,v0,a0
+ 314:	3c028000 	lui	v0,0x8000
+ 318:	00441021 	addu	v0,v0,a0
+ 31c:	2482ffff 	addiu	v0,a0,-1
+ 320:	3c02abcd 	lui	v0,0xabcd
+ 324:	3442ef01 	ori	v0,v0,0xef01
+ 328:	00441021 	addu	v0,v0,a0
+ 32c:	3c028000 	lui	v0,0x8000
+ 330:	00441021 	addu	v0,v0,a0
+ 334:	3c027fff 	lui	v0,0x7fff
+ 338:	3442ffff 	ori	v0,v0,0xffff
+ 33c:	00441021 	addu	v0,v0,a0
+ 340:	3c020123 	lui	v0,0x123
+ 344:	34424567 	ori	v0,v0,0x4567
+ 348:	00441021 	addu	v0,v0,a0
+ 34c:	24820000 	addiu	v0,a0,0
+ 350:	2402ffff 	li	v0,-1
+ 354:	3c02abcd 	lui	v0,0xabcd
+ 358:	3442ef01 	ori	v0,v0,0xef01
+ 35c:	3c028000 	lui	v0,0x8000
+ 360:	2402ffff 	li	v0,-1
+ 364:	3c02abcd 	lui	v0,0xabcd
+ 368:	3442ef01 	ori	v0,v0,0xef01
+ 36c:	3c028000 	lui	v0,0x8000
+ 370:	3c027fff 	lui	v0,0x7fff
+ 374:	3442ffff 	ori	v0,v0,0xffff
+ 378:	3c020123 	lui	v0,0x123
+ 37c:	34424567 	ori	v0,v0,0x4567
+ 380:	24020000 	li	v0,0
 	\.\.\.
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32.d binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32.d
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32.d	2003-10-01 02:07:48.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32.d	2005-04-03 18:01:43.000000000 +0000
@@ -8,73 +8,229 @@
 Disassembly of section \.text:
 
 00000000 <\.text>:
-   0:	3c0189ac 	lui	at,0x89ac
-   4:	00610821 	addu	at,v1,at
-   8:	8c22cdef 	lw	v0,-12817\(at\)
-   c:	8c23cdf3 	lw	v1,-12813\(at\)
-  10:	3c012345 	lui	at,0x2345
-  14:	00610821 	addu	at,v1,at
-  18:	8c226789 	lw	v0,26505\(at\)
-  1c:	8c23678d 	lw	v1,26509\(at\)
-  20:	3c018000 	lui	at,0x8000
-  24:	00610821 	addu	at,v1,at
-  28:	8c220000 	lw	v0,0\(at\)
-  2c:	8c230004 	lw	v1,4\(at\)
-  30:	3c010000 	lui	at,0x0
-  34:	00610821 	addu	at,v1,at
-  38:	8c220000 	lw	v0,0\(at\)
-  3c:	8c230004 	lw	v1,4\(at\)
-  40:	3c018000 	lui	at,0x8000
-  44:	00610821 	addu	at,v1,at
-  48:	8c22ffff 	lw	v0,-1\(at\)
-  4c:	8c230003 	lw	v1,3\(at\)
-  50:	3c01abce 	lui	at,0xabce
-  54:	00610821 	addu	at,v1,at
-  58:	8c22ef01 	lw	v0,-4351\(at\)
-  5c:	8c23ef05 	lw	v1,-4347\(at\)
-  60:	3c010123 	lui	at,0x123
-  64:	00610821 	addu	at,v1,at
-  68:	8c224567 	lw	v0,17767\(at\)
-  6c:	8c23456b 	lw	v1,17771\(at\)
-  70:	3c0189ac 	lui	at,0x89ac
-  74:	00610821 	addu	at,v1,at
-  78:	ac22cdef 	sw	v0,-12817\(at\)
-  7c:	ac23cdf3 	sw	v1,-12813\(at\)
-  80:	3c012345 	lui	at,0x2345
-  84:	00610821 	addu	at,v1,at
-  88:	ac226789 	sw	v0,26505\(at\)
-  8c:	ac23678d 	sw	v1,26509\(at\)
-  90:	3c018000 	lui	at,0x8000
-  94:	00610821 	addu	at,v1,at
-  98:	ac220000 	sw	v0,0\(at\)
-  9c:	ac230004 	sw	v1,4\(at\)
+   0:	8c82ffff 	lw	v0,-1\(a0\)
+   4:	8c830003 	lw	v1,3\(a0\)
+   8:	3c01abce 	lui	at,0xabce
+   c:	00810821 	addu	at,a0,at
+  10:	8c22ef01 	lw	v0,-4351\(at\)
+  14:	8c23ef05 	lw	v1,-4347\(at\)
+  18:	3c018000 	lui	at,0x8000
+  1c:	00810821 	addu	at,a0,at
+  20:	8c220000 	lw	v0,0\(at\)
+  24:	8c230004 	lw	v1,4\(at\)
+  28:	3c010000 	lui	at,0x0
+  2c:	00810821 	addu	at,a0,at
+  30:	8c22ffff 	lw	v0,-1\(at\)
+  34:	8c230003 	lw	v1,3\(at\)
+  38:	3c01abce 	lui	at,0xabce
+  3c:	00810821 	addu	at,a0,at
+  40:	8c22ef01 	lw	v0,-4351\(at\)
+  44:	8c23ef05 	lw	v1,-4347\(at\)
+  48:	3c018000 	lui	at,0x8000
+  4c:	00810821 	addu	at,a0,at
+  50:	8c220000 	lw	v0,0\(at\)
+  54:	8c230004 	lw	v1,4\(at\)
+  58:	3c018000 	lui	at,0x8000
+  5c:	00810821 	addu	at,a0,at
+  60:	8c22ffff 	lw	v0,-1\(at\)
+  64:	8c230003 	lw	v1,3\(at\)
+  68:	3c010123 	lui	at,0x123
+  6c:	00810821 	addu	at,a0,at
+  70:	8c224567 	lw	v0,17767\(at\)
+  74:	8c23456b 	lw	v1,17771\(at\)
+  78:	8c820000 	lw	v0,0\(a0\)
+  7c:	8c830004 	lw	v1,4\(a0\)
+  80:	8c02ffff 	lw	v0,-1\(zero\)
+  84:	8c030003 	lw	v1,3\(zero\)
+  88:	3c01abce 	lui	at,0xabce
+  8c:	8c22ef01 	lw	v0,-4351\(at\)
+  90:	8c23ef05 	lw	v1,-4347\(at\)
+  94:	3c018000 	lui	at,0x8000
+  98:	8c220000 	lw	v0,0\(at\)
+  9c:	8c230004 	lw	v1,4\(at\)
   a0:	3c010000 	lui	at,0x0
-  a4:	00610821 	addu	at,v1,at
-  a8:	ac220000 	sw	v0,0\(at\)
-  ac:	ac230004 	sw	v1,4\(at\)
-  b0:	3c018000 	lui	at,0x8000
-  b4:	00610821 	addu	at,v1,at
-  b8:	ac22ffff 	sw	v0,-1\(at\)
-  bc:	ac230003 	sw	v1,3\(at\)
-  c0:	3c01abce 	lui	at,0xabce
-  c4:	00610821 	addu	at,v1,at
-  c8:	ac22ef01 	sw	v0,-4351\(at\)
-  cc:	ac23ef05 	sw	v1,-4347\(at\)
+  a4:	8c22ffff 	lw	v0,-1\(at\)
+  a8:	8c230003 	lw	v1,3\(at\)
+  ac:	3c01abce 	lui	at,0xabce
+  b0:	8c22ef01 	lw	v0,-4351\(at\)
+  b4:	8c23ef05 	lw	v1,-4347\(at\)
+  b8:	3c018000 	lui	at,0x8000
+  bc:	8c220000 	lw	v0,0\(at\)
+  c0:	8c230004 	lw	v1,4\(at\)
+  c4:	3c018000 	lui	at,0x8000
+  c8:	8c22ffff 	lw	v0,-1\(at\)
+  cc:	8c230003 	lw	v1,3\(at\)
   d0:	3c010123 	lui	at,0x123
-  d4:	00610821 	addu	at,v1,at
-  d8:	ac224567 	sw	v0,17767\(at\)
-  dc:	ac23456b 	sw	v1,17771\(at\)
-  e0:	3c028000 	lui	v0,0x8000
-  e4:	00431021 	addu	v0,v0,v1
-  e8:	8c420000 	lw	v0,0\(v0\)
-  ec:	3c020123 	lui	v0,0x123
-  f0:	00431021 	addu	v0,v0,v1
-  f4:	8c424567 	lw	v0,17767\(v0\)
-  f8:	3c010123 	lui	at,0x123
-  fc:	00230821 	addu	at,at,v1
- 100:	ac224567 	sw	v0,17767\(at\)
- 104:	3c027fff 	lui	v0,0x7fff
- 108:	3442ffff 	ori	v0,v0,0xffff
- 10c:	3c020123 	lui	v0,0x123
- 110:	34424567 	ori	v0,v0,0x4567
+  d4:	8c224567 	lw	v0,17767\(at\)
+  d8:	8c23456b 	lw	v1,17771\(at\)
+  dc:	8c020000 	lw	v0,0\(zero\)
+  e0:	8c030004 	lw	v1,4\(zero\)
+  e4:	ac82ffff 	sw	v0,-1\(a0\)
+  e8:	ac830003 	sw	v1,3\(a0\)
+  ec:	3c01abce 	lui	at,0xabce
+  f0:	00810821 	addu	at,a0,at
+  f4:	ac22ef01 	sw	v0,-4351\(at\)
+  f8:	ac23ef05 	sw	v1,-4347\(at\)
+  fc:	3c018000 	lui	at,0x8000
+ 100:	00810821 	addu	at,a0,at
+ 104:	ac220000 	sw	v0,0\(at\)
+ 108:	ac230004 	sw	v1,4\(at\)
+ 10c:	3c010000 	lui	at,0x0
+ 110:	00810821 	addu	at,a0,at
+ 114:	ac22ffff 	sw	v0,-1\(at\)
+ 118:	ac230003 	sw	v1,3\(at\)
+ 11c:	3c01abce 	lui	at,0xabce
+ 120:	00810821 	addu	at,a0,at
+ 124:	ac22ef01 	sw	v0,-4351\(at\)
+ 128:	ac23ef05 	sw	v1,-4347\(at\)
+ 12c:	3c018000 	lui	at,0x8000
+ 130:	00810821 	addu	at,a0,at
+ 134:	ac220000 	sw	v0,0\(at\)
+ 138:	ac230004 	sw	v1,4\(at\)
+ 13c:	3c018000 	lui	at,0x8000
+ 140:	00810821 	addu	at,a0,at
+ 144:	ac22ffff 	sw	v0,-1\(at\)
+ 148:	ac230003 	sw	v1,3\(at\)
+ 14c:	3c010123 	lui	at,0x123
+ 150:	00810821 	addu	at,a0,at
+ 154:	ac224567 	sw	v0,17767\(at\)
+ 158:	ac23456b 	sw	v1,17771\(at\)
+ 15c:	ac820000 	sw	v0,0\(a0\)
+ 160:	ac830004 	sw	v1,4\(a0\)
+ 164:	ac02ffff 	sw	v0,-1\(zero\)
+ 168:	ac030003 	sw	v1,3\(zero\)
+ 16c:	3c01abce 	lui	at,0xabce
+ 170:	ac22ef01 	sw	v0,-4351\(at\)
+ 174:	ac23ef05 	sw	v1,-4347\(at\)
+ 178:	3c018000 	lui	at,0x8000
+ 17c:	ac220000 	sw	v0,0\(at\)
+ 180:	ac230004 	sw	v1,4\(at\)
+ 184:	3c010000 	lui	at,0x0
+ 188:	ac22ffff 	sw	v0,-1\(at\)
+ 18c:	ac230003 	sw	v1,3\(at\)
+ 190:	3c01abce 	lui	at,0xabce
+ 194:	ac22ef01 	sw	v0,-4351\(at\)
+ 198:	ac23ef05 	sw	v1,-4347\(at\)
+ 19c:	3c018000 	lui	at,0x8000
+ 1a0:	ac220000 	sw	v0,0\(at\)
+ 1a4:	ac230004 	sw	v1,4\(at\)
+ 1a8:	3c018000 	lui	at,0x8000
+ 1ac:	ac22ffff 	sw	v0,-1\(at\)
+ 1b0:	ac230003 	sw	v1,3\(at\)
+ 1b4:	3c010123 	lui	at,0x123
+ 1b8:	ac224567 	sw	v0,17767\(at\)
+ 1bc:	ac23456b 	sw	v1,17771\(at\)
+ 1c0:	ac020000 	sw	v0,0\(zero\)
+ 1c4:	ac030004 	sw	v1,4\(zero\)
+ 1c8:	8c82ffff 	lw	v0,-1\(a0\)
+ 1cc:	3c02abce 	lui	v0,0xabce
+ 1d0:	00441021 	addu	v0,v0,a0
+ 1d4:	8c42ef01 	lw	v0,-4351\(v0\)
+ 1d8:	3c028000 	lui	v0,0x8000
+ 1dc:	00441021 	addu	v0,v0,a0
+ 1e0:	8c420000 	lw	v0,0\(v0\)
+ 1e4:	24020000 	li	v0,0
+ 1e8:	00441021 	addu	v0,v0,a0
+ 1ec:	8c42ffff 	lw	v0,-1\(v0\)
+ 1f0:	3c02abce 	lui	v0,0xabce
+ 1f4:	00441021 	addu	v0,v0,a0
+ 1f8:	8c42ef01 	lw	v0,-4351\(v0\)
+ 1fc:	3c028000 	lui	v0,0x8000
+ 200:	00441021 	addu	v0,v0,a0
+ 204:	8c420000 	lw	v0,0\(v0\)
+ 208:	3c028000 	lui	v0,0x8000
+ 20c:	00441021 	addu	v0,v0,a0
+ 210:	8c42ffff 	lw	v0,-1\(v0\)
+ 214:	3c020123 	lui	v0,0x123
+ 218:	00441021 	addu	v0,v0,a0
+ 21c:	8c424567 	lw	v0,17767\(v0\)
+ 220:	8c820000 	lw	v0,0\(a0\)
+ 224:	8c02ffff 	lw	v0,-1\(zero\)
+ 228:	3c02abce 	lui	v0,0xabce
+ 22c:	8c42ef01 	lw	v0,-4351\(v0\)
+ 230:	3c028000 	lui	v0,0x8000
+ 234:	8c420000 	lw	v0,0\(v0\)
+ 238:	24020000 	li	v0,0
+ 23c:	8c42ffff 	lw	v0,-1\(v0\)
+ 240:	3c02abce 	lui	v0,0xabce
+ 244:	8c42ef01 	lw	v0,-4351\(v0\)
+ 248:	3c028000 	lui	v0,0x8000
+ 24c:	8c420000 	lw	v0,0\(v0\)
+ 250:	3c028000 	lui	v0,0x8000
+ 254:	8c42ffff 	lw	v0,-1\(v0\)
+ 258:	3c020123 	lui	v0,0x123
+ 25c:	8c424567 	lw	v0,17767\(v0\)
+ 260:	8c020000 	lw	v0,0\(zero\)
+ 264:	00000000 	nop
+ 268:	ac82ffff 	sw	v0,-1\(a0\)
+ 26c:	3c01abce 	lui	at,0xabce
+ 270:	00240821 	addu	at,at,a0
+ 274:	ac22ef01 	sw	v0,-4351\(at\)
+ 278:	3c018000 	lui	at,0x8000
+ 27c:	00240821 	addu	at,at,a0
+ 280:	ac220000 	sw	v0,0\(at\)
+ 284:	24010000 	li	at,0
+ 288:	00240821 	addu	at,at,a0
+ 28c:	ac22ffff 	sw	v0,-1\(at\)
+ 290:	3c01abce 	lui	at,0xabce
+ 294:	00240821 	addu	at,at,a0
+ 298:	ac22ef01 	sw	v0,-4351\(at\)
+ 29c:	3c018000 	lui	at,0x8000
+ 2a0:	00240821 	addu	at,at,a0
+ 2a4:	ac220000 	sw	v0,0\(at\)
+ 2a8:	3c018000 	lui	at,0x8000
+ 2ac:	00240821 	addu	at,at,a0
+ 2b0:	ac22ffff 	sw	v0,-1\(at\)
+ 2b4:	3c010123 	lui	at,0x123
+ 2b8:	00240821 	addu	at,at,a0
+ 2bc:	ac224567 	sw	v0,17767\(at\)
+ 2c0:	ac820000 	sw	v0,0\(a0\)
+ 2c4:	ac02ffff 	sw	v0,-1\(zero\)
+ 2c8:	3c01abce 	lui	at,0xabce
+ 2cc:	ac22ef01 	sw	v0,-4351\(at\)
+ 2d0:	3c018000 	lui	at,0x8000
+ 2d4:	ac220000 	sw	v0,0\(at\)
+ 2d8:	24010000 	li	at,0
+ 2dc:	ac22ffff 	sw	v0,-1\(at\)
+ 2e0:	3c01abce 	lui	at,0xabce
+ 2e4:	ac22ef01 	sw	v0,-4351\(at\)
+ 2e8:	3c018000 	lui	at,0x8000
+ 2ec:	ac220000 	sw	v0,0\(at\)
+ 2f0:	3c018000 	lui	at,0x8000
+ 2f4:	ac22ffff 	sw	v0,-1\(at\)
+ 2f8:	3c010123 	lui	at,0x123
+ 2fc:	ac224567 	sw	v0,17767\(at\)
+ 300:	ac020000 	sw	v0,0\(zero\)
+ 304:	2482ffff 	addiu	v0,a0,-1
+ 308:	3c02abcd 	lui	v0,0xabcd
+ 30c:	3442ef01 	ori	v0,v0,0xef01
+ 310:	00441021 	addu	v0,v0,a0
+ 314:	3c028000 	lui	v0,0x8000
+ 318:	00441021 	addu	v0,v0,a0
+ 31c:	2482ffff 	addiu	v0,a0,-1
+ 320:	3c02abcd 	lui	v0,0xabcd
+ 324:	3442ef01 	ori	v0,v0,0xef01
+ 328:	00441021 	addu	v0,v0,a0
+ 32c:	3c028000 	lui	v0,0x8000
+ 330:	00441021 	addu	v0,v0,a0
+ 334:	3c027fff 	lui	v0,0x7fff
+ 338:	3442ffff 	ori	v0,v0,0xffff
+ 33c:	00441021 	addu	v0,v0,a0
+ 340:	3c020123 	lui	v0,0x123
+ 344:	34424567 	ori	v0,v0,0x4567
+ 348:	00441021 	addu	v0,v0,a0
+ 34c:	24820000 	addiu	v0,a0,0
+ 350:	2402ffff 	li	v0,-1
+ 354:	3c02abcd 	lui	v0,0xabcd
+ 358:	3442ef01 	ori	v0,v0,0xef01
+ 35c:	3c028000 	lui	v0,0x8000
+ 360:	2402ffff 	li	v0,-1
+ 364:	3c02abcd 	lui	v0,0xabcd
+ 368:	3442ef01 	ori	v0,v0,0xef01
+ 36c:	3c028000 	lui	v0,0x8000
+ 370:	3c027fff 	lui	v0,0x7fff
+ 374:	3442ffff 	ori	v0,v0,0xffff
+ 378:	3c020123 	lui	v0,0x123
+ 37c:	34424567 	ori	v0,v0,0x4567
+ 380:	24020000 	li	v0,0
 	\.\.\.
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32.s binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32.s
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32.s	2003-10-01 02:07:48.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32.s	2005-04-03 14:48:15.000000000 +0000
@@ -1,26 +1,102 @@
 	.text
-	ld $2, 0x0123456789abcdef($3)
-	ld $2, 0xabcdef0123456789($3)
-	ld $2, 0xffffffff80000000($3)
-	ld $2, 0xffffffff00000000($3)
-	ld $2, 0xffffffff7fffffff($3)
-	ld $2, 0xabcdef01($3)
-	ld $2, 0x01234567($3)
-
-	sd $2, 0x0123456789abcdef($3)
-	sd $2, 0xabcdef0123456789($3)
-	sd $2, 0xffffffff80000000($3)
-	sd $2, 0xffffffff00000000($3)
-	sd $2, 0xffffffff7fffffff($3)
-	sd $2, 0xabcdef01($3)
-	sd $2, 0x01234567($3)
+	ld $2, 0xffffffffffffffff($4)
+	ld $2, 0xffffffffabcdef01($4)
+	ld $2, 0xffffffff80000000($4)
+	ld $2, 0xffffffff($4)
+	ld $2, 0xabcdef01($4)
+	ld $2, 0x80000000($4)
+	ld $2, 0x7fffffff($4)
+	ld $2, 0x01234567($4)
+	ld $2, 0x00000000($4)
 
-	lw $2, 0xffffffff80000000($3)
-	lw $2, 0x01234567($3)
+	ld $2, 0xffffffffffffffff
+	ld $2, 0xffffffffabcdef01
+	ld $2, 0xffffffff80000000
+	ld $2, 0xffffffff
+	ld $2, 0xabcdef01
+	ld $2, 0x80000000
+	ld $2, 0x7fffffff
+	ld $2, 0x01234567
+	ld $2, 0x00000000
 
-	sw $2, 0x01234567($3)
+	sd $2, 0xffffffffffffffff($4)
+	sd $2, 0xffffffffabcdef01($4)
+	sd $2, 0xffffffff80000000($4)
+	sd $2, 0xffffffff($4)
+	sd $2, 0xabcdef01($4)
+	sd $2, 0x80000000($4)
+	sd $2, 0x7fffffff($4)
+	sd $2, 0x01234567($4)
+	sd $2, 0x00000000($4)
 
+	sd $2, 0xffffffffffffffff
+	sd $2, 0xffffffffabcdef01
+	sd $2, 0xffffffff80000000
+	sd $2, 0xffffffff
+	sd $2, 0xabcdef01
+	sd $2, 0x80000000
+	sd $2, 0x7fffffff
+	sd $2, 0x01234567
+	sd $2, 0x00000000
+
+	lw $2, 0xffffffffffffffff($4)
+	lw $2, 0xffffffffabcdef01($4)
+	lw $2, 0xffffffff80000000($4)
+	lw $2, 0xffffffff($4)
+	lw $2, 0xabcdef01($4)
+	lw $2, 0x80000000($4)
+	lw $2, 0x7fffffff($4)
+	lw $2, 0x01234567($4)
+	lw $2, 0x00000000($4)
+
+	lw $2, 0xffffffffffffffff
+	lw $2, 0xffffffffabcdef01
+	lw $2, 0xffffffff80000000
+	lw $2, 0xffffffff
+	lw $2, 0xabcdef01
+	lw $2, 0x80000000
+	lw $2, 0x7fffffff
+	lw $2, 0x01234567
+	lw $2, 0x00000000
+
+	sw $2, 0xffffffffffffffff($4)
+	sw $2, 0xffffffffabcdef01($4)
+	sw $2, 0xffffffff80000000($4)
+	sw $2, 0xffffffff($4)
+	sw $2, 0xabcdef01($4)
+	sw $2, 0x80000000($4)
+	sw $2, 0x7fffffff($4)
+	sw $2, 0x01234567($4)
+	sw $2, 0x00000000($4)
+
+	sw $2, 0xffffffffffffffff
+	sw $2, 0xffffffffabcdef01
+	sw $2, 0xffffffff80000000
+	sw $2, 0xffffffff
+	sw $2, 0xabcdef01
+	sw $2, 0x80000000
+	sw $2, 0x7fffffff
+	sw $2, 0x01234567
+	sw $2, 0x00000000
+
+	la $2, 0xffffffffffffffff($4)
+	la $2, 0xffffffffabcdef01($4)
+	la $2, 0xffffffff80000000($4)
+	la $2, 0xffffffff($4)
+	la $2, 0xabcdef01($4)
+	la $2, 0x80000000($4)
+	la $2, 0x7fffffff($4)
+	la $2, 0x01234567($4)
+	la $2, 0x00000000($4)
+
+	la $2, 0xffffffffffffffff
+	la $2, 0xffffffffabcdef01
+	la $2, 0xffffffff80000000
+	la $2, 0xffffffff
+	la $2, 0xabcdef01
+	la $2, 0x80000000
 	la $2, 0x7fffffff
 	la $2, 0x01234567
+	la $2, 0x00000000
 
 	.space 8
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/mips.exp binutils-2.15.96-20050331/gas/testsuite/gas/mips/mips.exp
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/mips.exp	2005-03-09 09:53:20.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/mips.exp	2005-04-03 18:02:08.000000000 +0000
@@ -728,6 +728,10 @@ if { [istarget mips*-*-*] } then {
 
     run_dump_test "ldstla-32"
     run_dump_test "ldstla-32-shared"
+    run_list_test "ldstla-32-1" "-32" \
+	"MIPS ld-st-la bad constants (ABI o32)"
+    run_list_test "ldstla-32-1" "-KPIC -32" \
+	"MIPS ld-st-la bad constants (ABI o32, shared)"
     run_dump_test "ldstla-eabi64"
     if $has_newabi {
 	run_dump_test "ldstla-n64"

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-04 13:37   ` Maciej W. Rozycki
@ 2005-04-04 13:40     ` Daniel Jacobowitz
  2005-04-04 14:00       ` Maciej W. Rozycki
  2005-04-04 18:10     ` Eric Christopher
  2005-04-05  2:38     ` Atsushi Nemoto
  2 siblings, 1 reply; 23+ messages in thread
From: Daniel Jacobowitz @ 2005-04-04 13:40 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Atsushi Nemoto, binutils

On Mon, Apr 04, 2005 at 02:36:36PM +0100, Maciej W. Rozycki wrote:
>  OK to apply?

Do you know whether this problem affects the 2.16 branch?


-- 
Daniel Jacobowitz
CodeSourcery, LLC

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-04 13:40     ` Daniel Jacobowitz
@ 2005-04-04 14:00       ` Maciej W. Rozycki
  0 siblings, 0 replies; 23+ messages in thread
From: Maciej W. Rozycki @ 2005-04-04 14:00 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: Atsushi Nemoto, binutils

On Mon, 4 Apr 2005, Daniel Jacobowitz wrote:

> >  OK to apply?
> 
> Do you know whether this problem affects the 2.16 branch?

 It does.  It's a result of a late check in just before the branch was 
created, ;-) specifically the sym32 stuff.  In fact I've actually used the 
branch for working on this fix.

  Maciej

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-04 13:37   ` Maciej W. Rozycki
  2005-04-04 13:40     ` Daniel Jacobowitz
@ 2005-04-04 18:10     ` Eric Christopher
  2005-04-05 18:41       ` Maciej W. Rozycki
  2005-04-05  2:38     ` Atsushi Nemoto
  2 siblings, 1 reply; 23+ messages in thread
From: Eric Christopher @ 2005-04-04 18:10 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Atsushi Nemoto, binutils


>  And here is the result of the above assumptions, together with test suite 
> updates this time. :-)  Tested with no regressions for mips64el-linux-gnu.
> 
> gas/:
> 2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>
> 
> 	* config/tc-mips.c (IS_ZEXT_32BIT_NUM): New macro.
> 	(normalize_address_expr): New function to sign-extend address 
> 	offsets that fit into 32 bits in 32-bit mode.
> 	(macro_build_ldst_constoffset): Use normalize_address_expr() 
> 	instead of a handcoded sequence.
> 	(load_register): Likewise.  Report oversized numbers in a useful 
> 	way.
> 	(macro) [ld_st, ldd_std]: Reject all oversized offsets, not only 
> 	for constant addresses.  Report oversized numbers in a useful way.
> 	(mips_ip): Use normalize_address_expr() for addresses.
> 
> gas/testsuite/:
> 2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>
> 
> 	* gas/mips/ldstla-32.s: Exclude offsets that are now meant to fail 
> 	and include more instructions/offsets that are meant to succeed.  
> 	Use $4 instead $3 to avoid register dependencies.
> 	* gas/mips/ldstla-32.d: Update accordingly.
> 	* gas/mips/ldstla-32-shared.d: Likewise.
> 	* gas/mips/ldstla-32-1.s: New test for offsets that are meant to 
> 	fail.
> 	* gas/mips/ldstla-32-1.l: Stderr output for the new test.
> 	* gas/mips/mips.exp: Run the new test (twice).
> 
>  OK to apply?

OK. Some documentation on this probably wouldn't be amiss either :)

-eric

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-04 13:37   ` Maciej W. Rozycki
  2005-04-04 13:40     ` Daniel Jacobowitz
  2005-04-04 18:10     ` Eric Christopher
@ 2005-04-05  2:38     ` Atsushi Nemoto
  2005-04-05  4:28       ` Atsushi Nemoto
  2 siblings, 1 reply; 23+ messages in thread
From: Atsushi Nemoto @ 2005-04-05  2:38 UTC (permalink / raw)
  To: macro; +Cc: binutils

>>>>> On Mon, 4 Apr 2005 14:36:36 +0100 (BST), "Maciej W. Rozycki" <macro@linux-mips.org> said:
macro>  And here is the result of the above assumptions, together with
macro> test suite updates this time. :-) Tested with no regressions
macro> for mips64el-linux-gnu.

Thank you.  It works for the case I reported.  And here is an another
case:

$ cat foo.s
        and     $2, ~0x80000000
$ mips-linux-as foo.s
foo.s: Assembler messages:
foo.s:1: Error: Number (0xffffffff7fffffff) larger than 32 bits

How about this case?  This error is generated on tc-mips.c:3555:

  /* The value is larger than 32 bits.  */

  if (HAVE_32BIT_GPRS)
    {
      as_bad (_("Number (0x%lx%08lx) larger than 32 bits"),
	      (unsigned long) (ep->X_add_number >> 32),
	      (unsigned long) (ep->X_add_number & 0xffffffff));
      macro_build (ep, "addiu", "t,r,j", reg, 0, BFD_RELOC_LO16);
      return;
    }

---
Atsushi Nemoto

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-05  2:38     ` Atsushi Nemoto
@ 2005-04-05  4:28       ` Atsushi Nemoto
  2005-04-05  4:34         ` Thiemo Seufer
  0 siblings, 1 reply; 23+ messages in thread
From: Atsushi Nemoto @ 2005-04-05  4:28 UTC (permalink / raw)
  To: macro; +Cc: binutils

>>>>> On Tue, 05 Apr 2005 11:38:00 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> said:
anemo> Thank you.  It works for the case I reported.  And here is an
anemo> another case:

And yet another corner case:

$ cat foo2.s
.set mips3
        ld $2, 0x80000000
        dsrl32 $2, 0
        sw $2, 0x80000008
.set mips0
$ mips-linux-as -32 foo2.s
foo2.s: Assembler messages:
foo2.s:2: Error: Number (0x080000000) larger than 32 bits
foo2.s:4: Error: Number (0x080000008) larger than 32 bits

I'm using '.set mips3' for "true" LD instruction (not two LW) in 32bit
kernel mode.  Is this legal or should I rewrite it?

Thank you.
---
Atsushi Nemoto

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-05  4:28       ` Atsushi Nemoto
@ 2005-04-05  4:34         ` Thiemo Seufer
  0 siblings, 0 replies; 23+ messages in thread
From: Thiemo Seufer @ 2005-04-05  4:34 UTC (permalink / raw)
  To: binutils

Atsushi Nemoto wrote:
> >>>>> On Tue, 05 Apr 2005 11:38:00 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> said:
> anemo> Thank you.  It works for the case I reported.  And here is an
> anemo> another case:
> 
> And yet another corner case:
> 
> $ cat foo2.s
> .set mips3
>         ld $2, 0x80000000
>         dsrl32 $2, 0
>         sw $2, 0x80000008
> .set mips0
> $ mips-linux-as -32 foo2.s
> foo2.s: Assembler messages:
> foo2.s:2: Error: Number (0x080000000) larger than 32 bits
> foo2.s:4: Error: Number (0x080000008) larger than 32 bits
> 
> I'm using '.set mips3' for "true" LD instruction (not two LW) in 32bit
> kernel mode.  Is this legal or should I rewrite it?

It is legal, and the intended use case for .set mips3.


Thiemo

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-05 18:41       ` Maciej W. Rozycki
@ 2005-04-05 18:41         ` Eric Christopher
  2005-04-05 18:56         ` Daniel Jacobowitz
  2005-04-09 15:31         ` Daniel Jacobowitz
  2 siblings, 0 replies; 23+ messages in thread
From: Eric Christopher @ 2005-04-05 18:41 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Atsushi Nemoto, binutils


> > OK. Some documentation on this probably wouldn't be amiss either :)
> 
>  Well, given new error cases, I'll yet have a look at resolving them.  
> But specifically, what do you mean by "some documentation?"  I mean these 
> error messages are self-documenting -- what else you'd consider useful?

Perhaps some additional docs on the constants expected to be allowed in
each case (at least the edge cases) in MIPS Dependent Features in the
manual? (or start another section of the manual...)

-eric

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-04 18:10     ` Eric Christopher
@ 2005-04-05 18:41       ` Maciej W. Rozycki
  2005-04-05 18:41         ` Eric Christopher
                           ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Maciej W. Rozycki @ 2005-04-05 18:41 UTC (permalink / raw)
  To: Eric Christopher; +Cc: Atsushi Nemoto, binutils

On Mon, 4 Apr 2005, Eric Christopher wrote:

> > gas/:
> > 2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>
> > 
> > 	* config/tc-mips.c (IS_ZEXT_32BIT_NUM): New macro.
> > 	(normalize_address_expr): New function to sign-extend address 
> > 	offsets that fit into 32 bits in 32-bit mode.
> > 	(macro_build_ldst_constoffset): Use normalize_address_expr() 
> > 	instead of a handcoded sequence.
> > 	(load_register): Likewise.  Report oversized numbers in a useful 
> > 	way.
> > 	(macro) [ld_st, ldd_std]: Reject all oversized offsets, not only 
> > 	for constant addresses.  Report oversized numbers in a useful way.
> > 	(mips_ip): Use normalize_address_expr() for addresses.
> > 
> > gas/testsuite/:
> > 2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>
> > 
> > 	* gas/mips/ldstla-32.s: Exclude offsets that are now meant to fail 
> > 	and include more instructions/offsets that are meant to succeed.  
> > 	Use $4 instead $3 to avoid register dependencies.
> > 	* gas/mips/ldstla-32.d: Update accordingly.
> > 	* gas/mips/ldstla-32-shared.d: Likewise.
> > 	* gas/mips/ldstla-32-1.s: New test for offsets that are meant to 
> > 	fail.
> > 	* gas/mips/ldstla-32-1.l: Stderr output for the new test.
> > 	* gas/mips/mips.exp: Run the new test (twice).
> > 
> >  OK to apply?
> 
> OK. Some documentation on this probably wouldn't be amiss either :)

 Well, given new error cases, I'll yet have a look at resolving them.  
But specifically, what do you mean by "some documentation?"  I mean these 
error messages are self-documenting -- what else you'd consider useful?

  Maciej

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-05 18:41       ` Maciej W. Rozycki
  2005-04-05 18:41         ` Eric Christopher
@ 2005-04-05 18:56         ` Daniel Jacobowitz
  2005-04-09 15:31         ` Daniel Jacobowitz
  2 siblings, 0 replies; 23+ messages in thread
From: Daniel Jacobowitz @ 2005-04-05 18:56 UTC (permalink / raw)
  To: binutils

On Tue, Apr 05, 2005 at 07:35:10PM +0100, Maciej W. Rozycki wrote:
>  Well, given new error cases, I'll yet have a look at resolving them.  

Thanks.  I think this is a blocking issue for 2.16.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-05 18:41       ` Maciej W. Rozycki
  2005-04-05 18:41         ` Eric Christopher
  2005-04-05 18:56         ` Daniel Jacobowitz
@ 2005-04-09 15:31         ` Daniel Jacobowitz
  2005-04-09 17:47           ` Eric Christopher
  2 siblings, 1 reply; 23+ messages in thread
From: Daniel Jacobowitz @ 2005-04-09 15:31 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Eric Christopher, Atsushi Nemoto, binutils

On Tue, Apr 05, 2005 at 07:35:10PM +0100, Maciej W. Rozycki wrote:
>  Well, given new error cases, I'll yet have a look at resolving them.  

Hi Maciej,

Have you had a chance to look at these?  Do you think you'll get to it
next week?

-- 
Daniel Jacobowitz
CodeSourcery, LLC

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-09 15:31         ` Daniel Jacobowitz
@ 2005-04-09 17:47           ` Eric Christopher
  2005-04-11 18:23             ` Maciej W. Rozycki
  0 siblings, 1 reply; 23+ messages in thread
From: Eric Christopher @ 2005-04-09 17:47 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: Maciej W. Rozycki, Atsushi Nemoto, binutils

On Sat, 2005-04-09 at 11:31 -0400, Daniel Jacobowitz wrote:
> On Tue, Apr 05, 2005 at 07:35:10PM +0100, Maciej W. Rozycki wrote:
> >  Well, given new error cases, I'll yet have a look at resolving them.  
> 
> Hi Maciej,
> 
> Have you had a chance to look at these?  Do you think you'll get to it
> next week?
> 

If he doesn't I'll throw it on my list along with the unpredictable
errors for the sb1.

-eric

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-09 17:47           ` Eric Christopher
@ 2005-04-11 18:23             ` Maciej W. Rozycki
  2005-04-11 21:40               ` Eric Christopher
  2005-04-15  1:12               ` Atsushi Nemoto
  0 siblings, 2 replies; 23+ messages in thread
From: Maciej W. Rozycki @ 2005-04-11 18:23 UTC (permalink / raw)
  To: Eric Christopher; +Cc: Daniel Jacobowitz, Atsushi Nemoto, binutils

On Sat, 9 Apr 2005, Eric Christopher wrote:

> If he doesn't I'll throw it on my list along with the unpredictable
> errors for the sb1.

 Well, I think I've got this finally resolved -- for 2.16, that is.  It 
turned out we should probably accept values with bits 63:32 all set -- 
otherwise negation may not work for certain ranges of constants.  Here's 
the implementation:

gas/:
2005-04-11  Maciej W. Rozycki  <macro@linux-mips.org>

        * config/tc-mips.c (IS_ZEXT_32BIT_NUM): New macro.
        (normalize_address_expr): New function to sign-extend address
        offsets that fit into 32 bits in 32-bit mode.
        (macro_build_ldst_constoffset): Use normalize_address_expr()
        instead of a handcoded sequence.
        (load_register): Likewise.  Report oversized numbers in a useful
        way.
        (macro) [ld_st, ldd_std]: Reject all oversized offsets, not only
        for constant addresses.  Report oversized numbers in a useful way.
        (mips_ip): Use normalize_address_expr() for addresses.

gas/testsuite/:
2005-04-11  Maciej W. Rozycki  <macro@linux-mips.org>

        * gas/mips/ldstla-32.s: Exclude offsets that are now meant to fail
        and include more instructions/offsets that are meant to succeed.
        Use $4 instead $3 to avoid register dependencies.
        * gas/mips/ldstla-32.d: Update accordingly.
        * gas/mips/ldstla-32-shared.d: Likewise.
	* gas/mips/ldstla-32-mips3.d: New test based on the above, except 
	for mips3.
	* gas/mips/ldstla-32-mips3-shared.d: Similarly, for PIC.
	* gas/mips/ldstla-32-mips3.s: Source for the new tests.
        * gas/mips/ldstla-32-1.s: New test for offsets that are meant to
        fail.
	* gas/mips/ldstla-32-mips3-1.s: Likewise, for mips3.
        * gas/mips/ldstla-32-1.l: Stderr output for the new test.
	* gas/mips/ldstla-32-mips3-1.l: Likewise.
        * gas/mips/mips.exp: Run the new tests.

 I've tested it with mips64el-linux-gnu with no regressions.  OK to apply?

 I haven't updated documentation though, as I consider it a short-term 
hack for 2.16 only.  For 2.17, I think expr() should be modified to be 
able to do signed arithmetic/logic and perform operations modulo (1 << n), 
at least for reasonable values of n.  Therefore only that implementation 
would be able to specify the desired number ranges accepted rather than 
accept what happens to be implemented.

 Does it sound reasonable?  I hope so.

  Maciej

binutils-2.15.96-20050331-mips-gas-normalize.patch
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/config/tc-mips.c binutils-2.15.96-20050331/gas/config/tc-mips.c
--- binutils-2.15.96-20050331.macro/gas/config/tc-mips.c	2005-03-22 04:25:33.000000000 +0000
+++ binutils-2.15.96-20050331/gas/config/tc-mips.c	2005-04-11 18:03:55.000000000 +0000
@@ -861,6 +861,11 @@ static int mips_relax_branch;
   (((x) &~ (offsetT) 0x7fff) == 0					\
    || (((x) &~ (offsetT) 0x7fff) == ~ (offsetT) 0x7fff))
 
+/* Is the given value a zero-extended 32-bit value?  Or a negated one?  */
+#define IS_ZEXT_32BIT_NUM(x)						\
+  (((x) &~ (offsetT) 0xffffffff) == 0					\
+   || (((x) &~ (offsetT) 0xffffffff) == ~ (offsetT) 0xffffffff))
+
 /* Replace bits MASK << SHIFT of STRUCT with the equivalent bits in
    VALUE << SHIFT.  VALUE is evaluated exactly once.  */
 #define INSERT_BITS(STRUCT, VALUE, MASK, SHIFT) \
@@ -3253,6 +3258,33 @@ mips16_macro_build (expressionS *ep, con
   append_insn (&insn, ep, r);
 }
 
+static void
+/*
+ * Sign-extend 32-bit mode constants that have bit 31 set and all
+ * higher bits unset.
+ */
+normalize_constant_expr (expressionS *ex)
+{
+  if ((ex->X_op == O_constant && HAVE_32BIT_GPRS)
+      && IS_ZEXT_32BIT_NUM (ex->X_add_number))
+    ex->X_add_number = (((ex->X_add_number & 0xffffffff) ^ 0x80000000)
+			- 0x80000000);
+}
+
+/*
+ * Sign-extend 32-bit mode address offsets that have bit 31 set and
+ * all higher bits unset.
+ */
+static void
+normalize_address_expr (expressionS *ex)
+{
+  if (((ex->X_op == O_constant && HAVE_32BIT_ADDRESSES)
+	|| (ex->X_op == O_symbol && HAVE_32BIT_SYMBOLS))
+      && IS_ZEXT_32BIT_NUM (ex->X_add_number))
+    ex->X_add_number = (((ex->X_add_number & 0xffffffff) ^ 0x80000000)
+			- 0x80000000);
+}
+
 /*
  * Generate a "jalr" instruction with a relocation hint to the called
  * function.  This occurs in NewABI PIC code.
@@ -3338,15 +3370,8 @@ macro_build_ldst_constoffset (expression
   assert (ep->X_op == O_constant);
 
   /* Sign-extending 32-bit constants makes their handling easier.  */
-  if (! dbl && ! ((ep->X_add_number & ~((bfd_vma) 0x7fffffff))
-		  == ~((bfd_vma) 0x7fffffff)))
-    {
-      if (ep->X_add_number & ~((bfd_vma) 0xffffffff))
-	as_bad (_("constant too large"));
-
-      ep->X_add_number = (((ep->X_add_number & 0xffffffff) ^ 0x80000000)
-			  - 0x80000000);
-    }
+  if (!dbl)
+    normalize_constant_expr (ep);
 
   /* Right now, this routine can only handle signed 32-bit constants.  */
   if (! IS_SEXT_32BIT_NUM(ep->X_add_number + 0x8000))
@@ -3392,14 +3417,6 @@ set_at (int reg, int unsignedp)
     }
 }
 
-static void
-normalize_constant_expr (expressionS *ex)
-{
-  if (ex->X_op == O_constant && HAVE_32BIT_GPRS)
-    ex->X_add_number = (((ex->X_add_number & 0xffffffff) ^ 0x80000000)
-			- 0x80000000);
-}
-
 /* Warn if an expression is not a constant.  */
 
 static void
@@ -3504,15 +3521,8 @@ load_register (int reg, expressionS *ep,
       assert (ep->X_op == O_constant);
 
       /* Sign-extending 32-bit constants makes their handling easier.  */
-      if (! dbl && ! ((ep->X_add_number & ~((bfd_vma) 0x7fffffff))
-		      == ~((bfd_vma) 0x7fffffff)))
-	{
-	  if (ep->X_add_number & ~((bfd_vma) 0xffffffff))
-	    as_bad (_("constant too large"));
-
-	  ep->X_add_number = (((ep->X_add_number & 0xffffffff) ^ 0x80000000)
-			      - 0x80000000);
-	}
+      if (!dbl)
+	normalize_constant_expr (ep);
 
       if (IS_SEXT_16BIT_NUM (ep->X_add_number))
 	{
@@ -3541,10 +3551,11 @@ load_register (int reg, expressionS *ep,
 
   /* The value is larger than 32 bits.  */
 
-  if (HAVE_32BIT_GPRS)
+  if (!dbl || HAVE_32BIT_GPRS)
     {
-      as_bad (_("Number (0x%lx) larger than 32 bits"),
-	      (unsigned long) ep->X_add_number);
+      as_bad (_("Number (0x%lx%08lx) larger than 32 bits"),
+	      (unsigned long) (ep->X_add_number >> 32),
+	      (unsigned long) (ep->X_add_number & 0xffffffff));
       macro_build (ep, "addiu", "t,r,j", reg, 0, BFD_RELOC_LO16);
       return;
     }
@@ -5785,16 +5796,19 @@ macro (struct mips_cl_insn *ip)
 	  offset_expr.X_op = O_constant;
 	}
 
+      if (HAVE_32BIT_ADDRESSES
+	  && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
+	as_bad (_("Number (0x%lx%08lx) larger than 32 bits"),
+		(unsigned long) (offset_expr.X_add_number >> 32),
+		(unsigned long) (offset_expr.X_add_number & 0xffffffff));
+
       /* A constant expression in PIC code can be handled just as it
 	 is in non PIC code.  */
       if (offset_expr.X_op == O_constant)
 	{
-	  if (HAVE_32BIT_ADDRESSES
-	      && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
-	    as_bad (_("constant too large"));
-
 	  expr1.X_add_number = ((offset_expr.X_add_number + 0x8000)
 				& ~(bfd_vma) 0xffff);
+	  normalize_address_expr (&expr1);
 	  load_register (tempreg, &expr1, HAVE_64BIT_ADDRESSES);
 	  if (breg != 0)
 	    macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t",
@@ -6373,6 +6387,12 @@ macro (struct mips_cl_insn *ip)
 	  offset_expr.X_op = O_constant;
 	}
 
+      if (HAVE_32BIT_ADDRESSES
+	  && !IS_SEXT_32BIT_NUM (offset_expr.X_add_number))
+	as_bad (_("Number (0x%lx%08lx) larger than 32 bits"),
+		(unsigned long) (offset_expr.X_add_number >> 32),
+		(unsigned long) (offset_expr.X_add_number & 0xffffffff));
+
       /* Even on a big endian machine $fn comes before $fn+1.  We have
 	 to adjust when loading from memory.  We set coproc if we must
 	 load $fn+1 first.  */
@@ -8556,6 +8576,7 @@ do_msbd:
 
 	    case 'A':
 	      my_getExpression (&offset_expr, s);
+	      normalize_address_expr (&offset_expr);
 	      *imm_reloc = BFD_RELOC_32;
 	      s = expr_end;
 	      continue;
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-1.l binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-1.l
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-1.l	1970-01-01 00:00:00.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-1.l	2005-04-11 17:29:47.000000000 +0000
@@ -0,0 +1,81 @@
+.*: Assembler messages:
+.*:3: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:4: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:5: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:6: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:7: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:8: Error: Number \(0x100000000\) larger than 32 bits
+.*:10: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:11: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:12: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:13: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:14: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:15: Error: Number \(0x100000000\) larger than 32 bits
+.*:17: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:18: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:19: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:20: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:21: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:22: Error: Number \(0x100000000\) larger than 32 bits
+.*:24: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:25: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:26: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:27: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:28: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:29: Error: Number \(0x100000000\) larger than 32 bits
+.*:31: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:32: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:32: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:33: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:33: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:34: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:34: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:35: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:35: Error: Number \(0x200000000\) larger than 32 bits
+.*:36: Error: Number \(0x100000000\) larger than 32 bits
+.*:36: Error: Number \(0x100000000\) larger than 32 bits
+.*:38: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:39: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:39: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:40: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:40: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:41: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:41: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:42: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:42: Error: Number \(0x200000000\) larger than 32 bits
+.*:43: Error: Number \(0x100000000\) larger than 32 bits
+.*:43: Error: Number \(0x100000000\) larger than 32 bits
+.*:45: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:46: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:46: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:47: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:47: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:48: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:48: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:49: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:49: Error: Number \(0x200000000\) larger than 32 bits
+.*:50: Error: Number \(0x100000000\) larger than 32 bits
+.*:50: Error: Number \(0x100000000\) larger than 32 bits
+.*:52: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:53: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:53: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:54: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:54: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:55: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:55: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:56: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:56: Error: Number \(0x200000000\) larger than 32 bits
+.*:57: Error: Number \(0x100000000\) larger than 32 bits
+.*:57: Error: Number \(0x100000000\) larger than 32 bits
+.*:59: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:60: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:61: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:62: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:63: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:64: Error: Number \(0x100000000\) larger than 32 bits
+.*:66: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:67: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:68: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:69: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:70: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:71: Error: Number \(0x100000000\) larger than 32 bits
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-1.s binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-1.s
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-1.s	1970-01-01 00:00:00.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-1.s	2005-04-11 16:45:58.000000000 +0000
@@ -0,0 +1,73 @@
+
+	.text
+	ld $2, 0xfffffffeffffffff($4)
+	ld $2, 0xfffffffe00000000($4)
+	ld $2, 0xabcdef0123456789($4)
+	ld $2, 0x0123456789abcdef($4)
+	ld $2, 0x00000001ffffffff($4)
+	ld $2, 0x0000000100000000($4)
+
+	ld $2, 0xfffffffeffffffff
+	ld $2, 0xfffffffe00000000
+	ld $2, 0xabcdef0123456789
+	ld $2, 0x0123456789abcdef
+	ld $2, 0x00000001ffffffff
+	ld $2, 0x0000000100000000
+
+	sd $2, 0xfffffffeffffffff($4)
+	sd $2, 0xfffffffe00000000($4)
+	sd $2, 0xabcdef0123456789($4)
+	sd $2, 0x0123456789abcdef($4)
+	sd $2, 0x00000001ffffffff($4)
+	sd $2, 0x0000000100000000($4)
+
+	sd $2, 0xfffffffeffffffff
+	sd $2, 0xfffffffe00000000
+	sd $2, 0xabcdef0123456789
+	sd $2, 0x0123456789abcdef
+	sd $2, 0x00000001ffffffff
+	sd $2, 0x0000000100000000
+
+	lw $2, 0xfffffffeffffffff($4)
+	lw $2, 0xfffffffe00000000($4)
+	lw $2, 0xabcdef0123456789($4)
+	lw $2, 0x0123456789abcdef($4)
+	lw $2, 0x00000001ffffffff($4)
+	lw $2, 0x0000000100000000($4)
+
+	lw $2, 0xfffffffeffffffff
+	lw $2, 0xfffffffe00000000
+	lw $2, 0xabcdef0123456789
+	lw $2, 0x0123456789abcdef
+	lw $2, 0x00000001ffffffff
+	lw $2, 0x0000000100000000
+
+	sw $2, 0xfffffffeffffffff($4)
+	sw $2, 0xfffffffe00000000($4)
+	sw $2, 0xabcdef0123456789($4)
+	sw $2, 0x0123456789abcdef($4)
+	sw $2, 0x00000001ffffffff($4)
+	sw $2, 0x0000000100000000($4)
+
+	sw $2, 0xfffffffeffffffff
+	sw $2, 0xfffffffe00000000
+	sw $2, 0xabcdef0123456789
+	sw $2, 0x0123456789abcdef
+	sw $2, 0x00000001ffffffff
+	sw $2, 0x0000000100000000
+
+	la $2, 0xfffffffeffffffff($4)
+	la $2, 0xfffffffe00000000($4)
+	la $2, 0xabcdef0123456789($4)
+	la $2, 0x0123456789abcdef($4)
+	la $2, 0x00000001ffffffff($4)
+	la $2, 0x0000000100000000($4)
+
+	la $2, 0xfffffffeffffffff
+	la $2, 0xfffffffe00000000
+	la $2, 0xabcdef0123456789
+	la $2, 0x0123456789abcdef
+	la $2, 0x00000001ffffffff
+	la $2, 0x0000000100000000
+
+	.space 8
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3-1.l binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3-1.l
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3-1.l	1970-01-01 00:00:00.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3-1.l	2005-04-11 18:16:45.000000000 +0000
@@ -0,0 +1,101 @@
+.*: Assembler messages:
+.*:3: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:4: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:4: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:5: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:5: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:6: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:6: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:7: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:7: Error: Number \(0x200000000\) larger than 32 bits
+.*:8: Error: Number \(0x100000000\) larger than 32 bits
+.*:8: Error: Number \(0x100000000\) larger than 32 bits
+.*:10: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:11: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:11: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:12: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:12: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:13: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:13: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:14: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:14: Error: Number \(0x200000000\) larger than 32 bits
+.*:15: Error: Number \(0x100000000\) larger than 32 bits
+.*:15: Error: Number \(0x100000000\) larger than 32 bits
+.*:17: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:18: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:18: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:19: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:19: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:20: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:20: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:21: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:21: Error: Number \(0x200000000\) larger than 32 bits
+.*:22: Error: Number \(0x100000000\) larger than 32 bits
+.*:22: Error: Number \(0x100000000\) larger than 32 bits
+.*:24: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:25: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:25: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:26: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:26: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:27: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:27: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:28: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:28: Error: Number \(0x200000000\) larger than 32 bits
+.*:29: Error: Number \(0x100000000\) larger than 32 bits
+.*:29: Error: Number \(0x100000000\) larger than 32 bits
+.*:31: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:32: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:32: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:33: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:33: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:34: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:34: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:35: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:35: Error: Number \(0x200000000\) larger than 32 bits
+.*:36: Error: Number \(0x100000000\) larger than 32 bits
+.*:36: Error: Number \(0x100000000\) larger than 32 bits
+.*:38: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:39: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:39: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:40: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:40: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:41: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:41: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:42: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:42: Error: Number \(0x200000000\) larger than 32 bits
+.*:43: Error: Number \(0x100000000\) larger than 32 bits
+.*:43: Error: Number \(0x100000000\) larger than 32 bits
+.*:45: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:46: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:46: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:47: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:47: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:48: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:48: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:49: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:49: Error: Number \(0x200000000\) larger than 32 bits
+.*:50: Error: Number \(0x100000000\) larger than 32 bits
+.*:50: Error: Number \(0x100000000\) larger than 32 bits
+.*:52: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:53: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:53: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:54: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:54: Error: Number \(0xabcdef0123450000\) larger than 32 bits
+.*:55: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:55: Error: Number \(0x123456789ac0000\) larger than 32 bits
+.*:56: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:56: Error: Number \(0x200000000\) larger than 32 bits
+.*:57: Error: Number \(0x100000000\) larger than 32 bits
+.*:57: Error: Number \(0x100000000\) larger than 32 bits
+.*:59: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:60: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:61: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:62: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:63: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:64: Error: Number \(0x100000000\) larger than 32 bits
+.*:66: Error: Number \(0xfffffffeffffffff\) larger than 32 bits
+.*:67: Error: Number \(0xfffffffe00000000\) larger than 32 bits
+.*:68: Error: Number \(0xabcdef0123456789\) larger than 32 bits
+.*:69: Error: Number \(0x123456789abcdef\) larger than 32 bits
+.*:70: Error: Number \(0x1ffffffff\) larger than 32 bits
+.*:71: Error: Number \(0x100000000\) larger than 32 bits
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3-1.s binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3-1.s
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3-1.s	1970-01-01 00:00:00.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3-1.s	2005-04-11 16:46:05.000000000 +0000
@@ -0,0 +1,73 @@
+	.set	mips3
+	.text
+	ld $2, 0xfffffffeffffffff($4)
+	ld $2, 0xfffffffe00000000($4)
+	ld $2, 0xabcdef0123456789($4)
+	ld $2, 0x0123456789abcdef($4)
+	ld $2, 0x00000001ffffffff($4)
+	ld $2, 0x0000000100000000($4)
+
+	ld $2, 0xfffffffeffffffff
+	ld $2, 0xfffffffe00000000
+	ld $2, 0xabcdef0123456789
+	ld $2, 0x0123456789abcdef
+	ld $2, 0x00000001ffffffff
+	ld $2, 0x0000000100000000
+
+	sd $2, 0xfffffffeffffffff($4)
+	sd $2, 0xfffffffe00000000($4)
+	sd $2, 0xabcdef0123456789($4)
+	sd $2, 0x0123456789abcdef($4)
+	sd $2, 0x00000001ffffffff($4)
+	sd $2, 0x0000000100000000($4)
+
+	sd $2, 0xfffffffeffffffff
+	sd $2, 0xfffffffe00000000
+	sd $2, 0xabcdef0123456789
+	sd $2, 0x0123456789abcdef
+	sd $2, 0x00000001ffffffff
+	sd $2, 0x0000000100000000
+
+	lw $2, 0xfffffffeffffffff($4)
+	lw $2, 0xfffffffe00000000($4)
+	lw $2, 0xabcdef0123456789($4)
+	lw $2, 0x0123456789abcdef($4)
+	lw $2, 0x00000001ffffffff($4)
+	lw $2, 0x0000000100000000($4)
+
+	lw $2, 0xfffffffeffffffff
+	lw $2, 0xfffffffe00000000
+	lw $2, 0xabcdef0123456789
+	lw $2, 0x0123456789abcdef
+	lw $2, 0x00000001ffffffff
+	lw $2, 0x0000000100000000
+
+	sw $2, 0xfffffffeffffffff($4)
+	sw $2, 0xfffffffe00000000($4)
+	sw $2, 0xabcdef0123456789($4)
+	sw $2, 0x0123456789abcdef($4)
+	sw $2, 0x00000001ffffffff($4)
+	sw $2, 0x0000000100000000($4)
+
+	sw $2, 0xfffffffeffffffff
+	sw $2, 0xfffffffe00000000
+	sw $2, 0xabcdef0123456789
+	sw $2, 0x0123456789abcdef
+	sw $2, 0x00000001ffffffff
+	sw $2, 0x0000000100000000
+
+	la $2, 0xfffffffeffffffff($4)
+	la $2, 0xfffffffe00000000($4)
+	la $2, 0xabcdef0123456789($4)
+	la $2, 0x0123456789abcdef($4)
+	la $2, 0x00000001ffffffff($4)
+	la $2, 0x0000000100000000($4)
+
+	la $2, 0xfffffffeffffffff
+	la $2, 0xfffffffe00000000
+	la $2, 0xabcdef0123456789
+	la $2, 0x0123456789abcdef
+	la $2, 0x00000001ffffffff
+	la $2, 0x0000000100000000
+
+	.space 8
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d	1970-01-01 00:00:00.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d	2005-04-11 18:11:30.000000000 +0000
@@ -0,0 +1,271 @@
+#objdump: -d -mmips:4000
+#as: -KPIC -mabi=32
+#name: MIPS ld-st-la constants (ABI o32, mips3, shared)
+#source: ldstla-32-mips3.s
+
+.*: +file format elf32-.*mips
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+   0:	dc82ffff 	ld	v0,-1\(a0\)
+   4:	3c02abce 	lui	v0,0xabce
+   8:	00441021 	addu	v0,v0,a0
+   c:	dc42ef01 	ld	v0,-4351\(v0\)
+  10:	3c028000 	lui	v0,0x8000
+  14:	00441021 	addu	v0,v0,a0
+  18:	dc420000 	ld	v0,0\(v0\)
+  1c:	3c028000 	lui	v0,0x8000
+  20:	00441021 	addu	v0,v0,a0
+  24:	dc42ffff 	ld	v0,-1\(v0\)
+  28:	3c020123 	lui	v0,0x123
+  2c:	00441021 	addu	v0,v0,a0
+  30:	dc424567 	ld	v0,17767\(v0\)
+  34:	24020000 	li	v0,0
+  38:	00441021 	addu	v0,v0,a0
+  3c:	dc420000 	ld	v0,0\(v0\)
+  40:	24020000 	li	v0,0
+  44:	00441021 	addu	v0,v0,a0
+  48:	dc42ffff 	ld	v0,-1\(v0\)
+  4c:	3c02abce 	lui	v0,0xabce
+  50:	00441021 	addu	v0,v0,a0
+  54:	dc42ef01 	ld	v0,-4351\(v0\)
+  58:	3c028000 	lui	v0,0x8000
+  5c:	00441021 	addu	v0,v0,a0
+  60:	dc420000 	ld	v0,0\(v0\)
+  64:	3c028000 	lui	v0,0x8000
+  68:	00441021 	addu	v0,v0,a0
+  6c:	dc42ffff 	ld	v0,-1\(v0\)
+  70:	3c020123 	lui	v0,0x123
+  74:	00441021 	addu	v0,v0,a0
+  78:	dc424567 	ld	v0,17767\(v0\)
+  7c:	dc820000 	ld	v0,0\(a0\)
+  80:	dc02ffff 	ld	v0,-1\(zero\)
+  84:	3c02abce 	lui	v0,0xabce
+  88:	dc42ef01 	ld	v0,-4351\(v0\)
+  8c:	3c028000 	lui	v0,0x8000
+  90:	dc420000 	ld	v0,0\(v0\)
+  94:	3c028000 	lui	v0,0x8000
+  98:	dc42ffff 	ld	v0,-1\(v0\)
+  9c:	3c020123 	lui	v0,0x123
+  a0:	dc424567 	ld	v0,17767\(v0\)
+  a4:	24020000 	li	v0,0
+  a8:	dc420000 	ld	v0,0\(v0\)
+  ac:	24020000 	li	v0,0
+  b0:	dc42ffff 	ld	v0,-1\(v0\)
+  b4:	3c02abce 	lui	v0,0xabce
+  b8:	dc42ef01 	ld	v0,-4351\(v0\)
+  bc:	3c028000 	lui	v0,0x8000
+  c0:	dc420000 	ld	v0,0\(v0\)
+  c4:	3c028000 	lui	v0,0x8000
+  c8:	dc42ffff 	ld	v0,-1\(v0\)
+  cc:	3c020123 	lui	v0,0x123
+  d0:	dc424567 	ld	v0,17767\(v0\)
+  d4:	dc020000 	ld	v0,0\(zero\)
+  d8:	fc82ffff 	sd	v0,-1\(a0\)
+  dc:	3c01abce 	lui	at,0xabce
+  e0:	00240821 	addu	at,at,a0
+  e4:	fc22ef01 	sd	v0,-4351\(at\)
+  e8:	3c018000 	lui	at,0x8000
+  ec:	00240821 	addu	at,at,a0
+  f0:	fc220000 	sd	v0,0\(at\)
+  f4:	3c018000 	lui	at,0x8000
+  f8:	00240821 	addu	at,at,a0
+  fc:	fc22ffff 	sd	v0,-1\(at\)
+ 100:	3c010123 	lui	at,0x123
+ 104:	00240821 	addu	at,at,a0
+ 108:	fc224567 	sd	v0,17767\(at\)
+ 10c:	24010000 	li	at,0
+ 110:	00240821 	addu	at,at,a0
+ 114:	fc220000 	sd	v0,0\(at\)
+ 118:	24010000 	li	at,0
+ 11c:	00240821 	addu	at,at,a0
+ 120:	fc22ffff 	sd	v0,-1\(at\)
+ 124:	3c01abce 	lui	at,0xabce
+ 128:	00240821 	addu	at,at,a0
+ 12c:	fc22ef01 	sd	v0,-4351\(at\)
+ 130:	3c018000 	lui	at,0x8000
+ 134:	00240821 	addu	at,at,a0
+ 138:	fc220000 	sd	v0,0\(at\)
+ 13c:	3c018000 	lui	at,0x8000
+ 140:	00240821 	addu	at,at,a0
+ 144:	fc22ffff 	sd	v0,-1\(at\)
+ 148:	3c010123 	lui	at,0x123
+ 14c:	00240821 	addu	at,at,a0
+ 150:	fc224567 	sd	v0,17767\(at\)
+ 154:	fc820000 	sd	v0,0\(a0\)
+ 158:	fc02ffff 	sd	v0,-1\(zero\)
+ 15c:	3c01abce 	lui	at,0xabce
+ 160:	fc22ef01 	sd	v0,-4351\(at\)
+ 164:	3c018000 	lui	at,0x8000
+ 168:	fc220000 	sd	v0,0\(at\)
+ 16c:	3c018000 	lui	at,0x8000
+ 170:	fc22ffff 	sd	v0,-1\(at\)
+ 174:	3c010123 	lui	at,0x123
+ 178:	fc224567 	sd	v0,17767\(at\)
+ 17c:	24010000 	li	at,0
+ 180:	fc220000 	sd	v0,0\(at\)
+ 184:	24010000 	li	at,0
+ 188:	fc22ffff 	sd	v0,-1\(at\)
+ 18c:	3c01abce 	lui	at,0xabce
+ 190:	fc22ef01 	sd	v0,-4351\(at\)
+ 194:	3c018000 	lui	at,0x8000
+ 198:	fc220000 	sd	v0,0\(at\)
+ 19c:	3c018000 	lui	at,0x8000
+ 1a0:	fc22ffff 	sd	v0,-1\(at\)
+ 1a4:	3c010123 	lui	at,0x123
+ 1a8:	fc224567 	sd	v0,17767\(at\)
+ 1ac:	fc020000 	sd	v0,0\(zero\)
+ 1b0:	8c82ffff 	lw	v0,-1\(a0\)
+ 1b4:	3c02abce 	lui	v0,0xabce
+ 1b8:	00441021 	addu	v0,v0,a0
+ 1bc:	8c42ef01 	lw	v0,-4351\(v0\)
+ 1c0:	3c028000 	lui	v0,0x8000
+ 1c4:	00441021 	addu	v0,v0,a0
+ 1c8:	8c420000 	lw	v0,0\(v0\)
+ 1cc:	3c028000 	lui	v0,0x8000
+ 1d0:	00441021 	addu	v0,v0,a0
+ 1d4:	8c42ffff 	lw	v0,-1\(v0\)
+ 1d8:	3c020123 	lui	v0,0x123
+ 1dc:	00441021 	addu	v0,v0,a0
+ 1e0:	8c424567 	lw	v0,17767\(v0\)
+ 1e4:	24020000 	li	v0,0
+ 1e8:	00441021 	addu	v0,v0,a0
+ 1ec:	8c420000 	lw	v0,0\(v0\)
+ 1f0:	24020000 	li	v0,0
+ 1f4:	00441021 	addu	v0,v0,a0
+ 1f8:	8c42ffff 	lw	v0,-1\(v0\)
+ 1fc:	3c02abce 	lui	v0,0xabce
+ 200:	00441021 	addu	v0,v0,a0
+ 204:	8c42ef01 	lw	v0,-4351\(v0\)
+ 208:	3c028000 	lui	v0,0x8000
+ 20c:	00441021 	addu	v0,v0,a0
+ 210:	8c420000 	lw	v0,0\(v0\)
+ 214:	3c028000 	lui	v0,0x8000
+ 218:	00441021 	addu	v0,v0,a0
+ 21c:	8c42ffff 	lw	v0,-1\(v0\)
+ 220:	3c020123 	lui	v0,0x123
+ 224:	00441021 	addu	v0,v0,a0
+ 228:	8c424567 	lw	v0,17767\(v0\)
+ 22c:	8c820000 	lw	v0,0\(a0\)
+ 230:	8c02ffff 	lw	v0,-1\(zero\)
+ 234:	3c02abce 	lui	v0,0xabce
+ 238:	8c42ef01 	lw	v0,-4351\(v0\)
+ 23c:	3c028000 	lui	v0,0x8000
+ 240:	8c420000 	lw	v0,0\(v0\)
+ 244:	3c028000 	lui	v0,0x8000
+ 248:	8c42ffff 	lw	v0,-1\(v0\)
+ 24c:	3c020123 	lui	v0,0x123
+ 250:	8c424567 	lw	v0,17767\(v0\)
+ 254:	24020000 	li	v0,0
+ 258:	8c420000 	lw	v0,0\(v0\)
+ 25c:	24020000 	li	v0,0
+ 260:	8c42ffff 	lw	v0,-1\(v0\)
+ 264:	3c02abce 	lui	v0,0xabce
+ 268:	8c42ef01 	lw	v0,-4351\(v0\)
+ 26c:	3c028000 	lui	v0,0x8000
+ 270:	8c420000 	lw	v0,0\(v0\)
+ 274:	3c028000 	lui	v0,0x8000
+ 278:	8c42ffff 	lw	v0,-1\(v0\)
+ 27c:	3c020123 	lui	v0,0x123
+ 280:	8c424567 	lw	v0,17767\(v0\)
+ 284:	8c020000 	lw	v0,0\(zero\)
+ 288:	ac82ffff 	sw	v0,-1\(a0\)
+ 28c:	3c01abce 	lui	at,0xabce
+ 290:	00240821 	addu	at,at,a0
+ 294:	ac22ef01 	sw	v0,-4351\(at\)
+ 298:	3c018000 	lui	at,0x8000
+ 29c:	00240821 	addu	at,at,a0
+ 2a0:	ac220000 	sw	v0,0\(at\)
+ 2a4:	3c018000 	lui	at,0x8000
+ 2a8:	00240821 	addu	at,at,a0
+ 2ac:	ac22ffff 	sw	v0,-1\(at\)
+ 2b0:	3c010123 	lui	at,0x123
+ 2b4:	00240821 	addu	at,at,a0
+ 2b8:	ac224567 	sw	v0,17767\(at\)
+ 2bc:	24010000 	li	at,0
+ 2c0:	00240821 	addu	at,at,a0
+ 2c4:	ac220000 	sw	v0,0\(at\)
+ 2c8:	24010000 	li	at,0
+ 2cc:	00240821 	addu	at,at,a0
+ 2d0:	ac22ffff 	sw	v0,-1\(at\)
+ 2d4:	3c01abce 	lui	at,0xabce
+ 2d8:	00240821 	addu	at,at,a0
+ 2dc:	ac22ef01 	sw	v0,-4351\(at\)
+ 2e0:	3c018000 	lui	at,0x8000
+ 2e4:	00240821 	addu	at,at,a0
+ 2e8:	ac220000 	sw	v0,0\(at\)
+ 2ec:	3c018000 	lui	at,0x8000
+ 2f0:	00240821 	addu	at,at,a0
+ 2f4:	ac22ffff 	sw	v0,-1\(at\)
+ 2f8:	3c010123 	lui	at,0x123
+ 2fc:	00240821 	addu	at,at,a0
+ 300:	ac224567 	sw	v0,17767\(at\)
+ 304:	ac820000 	sw	v0,0\(a0\)
+ 308:	ac02ffff 	sw	v0,-1\(zero\)
+ 30c:	3c01abce 	lui	at,0xabce
+ 310:	ac22ef01 	sw	v0,-4351\(at\)
+ 314:	3c018000 	lui	at,0x8000
+ 318:	ac220000 	sw	v0,0\(at\)
+ 31c:	3c018000 	lui	at,0x8000
+ 320:	ac22ffff 	sw	v0,-1\(at\)
+ 324:	3c010123 	lui	at,0x123
+ 328:	ac224567 	sw	v0,17767\(at\)
+ 32c:	24010000 	li	at,0
+ 330:	ac220000 	sw	v0,0\(at\)
+ 334:	24010000 	li	at,0
+ 338:	ac22ffff 	sw	v0,-1\(at\)
+ 33c:	3c01abce 	lui	at,0xabce
+ 340:	ac22ef01 	sw	v0,-4351\(at\)
+ 344:	3c018000 	lui	at,0x8000
+ 348:	ac220000 	sw	v0,0\(at\)
+ 34c:	3c018000 	lui	at,0x8000
+ 350:	ac22ffff 	sw	v0,-1\(at\)
+ 354:	3c010123 	lui	at,0x123
+ 358:	ac224567 	sw	v0,17767\(at\)
+ 35c:	ac020000 	sw	v0,0\(zero\)
+ 360:	2482ffff 	addiu	v0,a0,-1
+ 364:	3c02abcd 	lui	v0,0xabcd
+ 368:	3442ef01 	ori	v0,v0,0xef01
+ 36c:	00441021 	addu	v0,v0,a0
+ 370:	3c028000 	lui	v0,0x8000
+ 374:	00441021 	addu	v0,v0,a0
+ 378:	3c027fff 	lui	v0,0x7fff
+ 37c:	3442ffff 	ori	v0,v0,0xffff
+ 380:	00441021 	addu	v0,v0,a0
+ 384:	3c020123 	lui	v0,0x123
+ 388:	34424567 	ori	v0,v0,0x4567
+ 38c:	00441021 	addu	v0,v0,a0
+ 390:	24820000 	addiu	v0,a0,0
+ 394:	2482ffff 	addiu	v0,a0,-1
+ 398:	3c02abcd 	lui	v0,0xabcd
+ 39c:	3442ef01 	ori	v0,v0,0xef01
+ 3a0:	00441021 	addu	v0,v0,a0
+ 3a4:	3c028000 	lui	v0,0x8000
+ 3a8:	00441021 	addu	v0,v0,a0
+ 3ac:	3c027fff 	lui	v0,0x7fff
+ 3b0:	3442ffff 	ori	v0,v0,0xffff
+ 3b4:	00441021 	addu	v0,v0,a0
+ 3b8:	3c020123 	lui	v0,0x123
+ 3bc:	34424567 	ori	v0,v0,0x4567
+ 3c0:	00441021 	addu	v0,v0,a0
+ 3c4:	24820000 	addiu	v0,a0,0
+ 3c8:	2402ffff 	li	v0,-1
+ 3cc:	3c02abcd 	lui	v0,0xabcd
+ 3d0:	3442ef01 	ori	v0,v0,0xef01
+ 3d4:	3c028000 	lui	v0,0x8000
+ 3d8:	3c027fff 	lui	v0,0x7fff
+ 3dc:	3442ffff 	ori	v0,v0,0xffff
+ 3e0:	3c020123 	lui	v0,0x123
+ 3e4:	34424567 	ori	v0,v0,0x4567
+ 3e8:	24020000 	li	v0,0
+ 3ec:	2402ffff 	li	v0,-1
+ 3f0:	3c02abcd 	lui	v0,0xabcd
+ 3f4:	3442ef01 	ori	v0,v0,0xef01
+ 3f8:	3c028000 	lui	v0,0x8000
+ 3fc:	3c027fff 	lui	v0,0x7fff
+ 400:	3442ffff 	ori	v0,v0,0xffff
+ 404:	3c020123 	lui	v0,0x123
+ 408:	34424567 	ori	v0,v0,0x4567
+ 40c:	24020000 	li	v0,0
+	\.\.\.
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3.d binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3.d
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3.d	1970-01-01 00:00:00.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3.d	2005-04-11 18:10:28.000000000 +0000
@@ -0,0 +1,271 @@
+#objdump: -d -mmips:4000
+#as: -mabi=32
+#name: MIPS ld-st-la constants (ABI o32, mips3)
+#source: ldstla-32-mips3.s
+
+.*: +file format elf32-.*mips
+
+Disassembly of section \.text:
+
+00000000 <\.text>:
+   0:	dc82ffff 	ld	v0,-1\(a0\)
+   4:	3c02abce 	lui	v0,0xabce
+   8:	00441021 	addu	v0,v0,a0
+   c:	dc42ef01 	ld	v0,-4351\(v0\)
+  10:	3c028000 	lui	v0,0x8000
+  14:	00441021 	addu	v0,v0,a0
+  18:	dc420000 	ld	v0,0\(v0\)
+  1c:	3c028000 	lui	v0,0x8000
+  20:	00441021 	addu	v0,v0,a0
+  24:	dc42ffff 	ld	v0,-1\(v0\)
+  28:	3c020123 	lui	v0,0x123
+  2c:	00441021 	addu	v0,v0,a0
+  30:	dc424567 	ld	v0,17767\(v0\)
+  34:	24020000 	li	v0,0
+  38:	00441021 	addu	v0,v0,a0
+  3c:	dc420000 	ld	v0,0\(v0\)
+  40:	24020000 	li	v0,0
+  44:	00441021 	addu	v0,v0,a0
+  48:	dc42ffff 	ld	v0,-1\(v0\)
+  4c:	3c02abce 	lui	v0,0xabce
+  50:	00441021 	addu	v0,v0,a0
+  54:	dc42ef01 	ld	v0,-4351\(v0\)
+  58:	3c028000 	lui	v0,0x8000
+  5c:	00441021 	addu	v0,v0,a0
+  60:	dc420000 	ld	v0,0\(v0\)
+  64:	3c028000 	lui	v0,0x8000
+  68:	00441021 	addu	v0,v0,a0
+  6c:	dc42ffff 	ld	v0,-1\(v0\)
+  70:	3c020123 	lui	v0,0x123
+  74:	00441021 	addu	v0,v0,a0
+  78:	dc424567 	ld	v0,17767\(v0\)
+  7c:	dc820000 	ld	v0,0\(a0\)
+  80:	dc02ffff 	ld	v0,-1\(zero\)
+  84:	3c02abce 	lui	v0,0xabce
+  88:	dc42ef01 	ld	v0,-4351\(v0\)
+  8c:	3c028000 	lui	v0,0x8000
+  90:	dc420000 	ld	v0,0\(v0\)
+  94:	3c028000 	lui	v0,0x8000
+  98:	dc42ffff 	ld	v0,-1\(v0\)
+  9c:	3c020123 	lui	v0,0x123
+  a0:	dc424567 	ld	v0,17767\(v0\)
+  a4:	24020000 	li	v0,0
+  a8:	dc420000 	ld	v0,0\(v0\)
+  ac:	24020000 	li	v0,0
+  b0:	dc42ffff 	ld	v0,-1\(v0\)
+  b4:	3c02abce 	lui	v0,0xabce
+  b8:	dc42ef01 	ld	v0,-4351\(v0\)
+  bc:	3c028000 	lui	v0,0x8000
+  c0:	dc420000 	ld	v0,0\(v0\)
+  c4:	3c028000 	lui	v0,0x8000
+  c8:	dc42ffff 	ld	v0,-1\(v0\)
+  cc:	3c020123 	lui	v0,0x123
+  d0:	dc424567 	ld	v0,17767\(v0\)
+  d4:	dc020000 	ld	v0,0\(zero\)
+  d8:	fc82ffff 	sd	v0,-1\(a0\)
+  dc:	3c01abce 	lui	at,0xabce
+  e0:	00240821 	addu	at,at,a0
+  e4:	fc22ef01 	sd	v0,-4351\(at\)
+  e8:	3c018000 	lui	at,0x8000
+  ec:	00240821 	addu	at,at,a0
+  f0:	fc220000 	sd	v0,0\(at\)
+  f4:	3c018000 	lui	at,0x8000
+  f8:	00240821 	addu	at,at,a0
+  fc:	fc22ffff 	sd	v0,-1\(at\)
+ 100:	3c010123 	lui	at,0x123
+ 104:	00240821 	addu	at,at,a0
+ 108:	fc224567 	sd	v0,17767\(at\)
+ 10c:	24010000 	li	at,0
+ 110:	00240821 	addu	at,at,a0
+ 114:	fc220000 	sd	v0,0\(at\)
+ 118:	24010000 	li	at,0
+ 11c:	00240821 	addu	at,at,a0
+ 120:	fc22ffff 	sd	v0,-1\(at\)
+ 124:	3c01abce 	lui	at,0xabce
+ 128:	00240821 	addu	at,at,a0
+ 12c:	fc22ef01 	sd	v0,-4351\(at\)
+ 130:	3c018000 	lui	at,0x8000
+ 134:	00240821 	addu	at,at,a0
+ 138:	fc220000 	sd	v0,0\(at\)
+ 13c:	3c018000 	lui	at,0x8000
+ 140:	00240821 	addu	at,at,a0
+ 144:	fc22ffff 	sd	v0,-1\(at\)
+ 148:	3c010123 	lui	at,0x123
+ 14c:	00240821 	addu	at,at,a0
+ 150:	fc224567 	sd	v0,17767\(at\)
+ 154:	fc820000 	sd	v0,0\(a0\)
+ 158:	fc02ffff 	sd	v0,-1\(zero\)
+ 15c:	3c01abce 	lui	at,0xabce
+ 160:	fc22ef01 	sd	v0,-4351\(at\)
+ 164:	3c018000 	lui	at,0x8000
+ 168:	fc220000 	sd	v0,0\(at\)
+ 16c:	3c018000 	lui	at,0x8000
+ 170:	fc22ffff 	sd	v0,-1\(at\)
+ 174:	3c010123 	lui	at,0x123
+ 178:	fc224567 	sd	v0,17767\(at\)
+ 17c:	24010000 	li	at,0
+ 180:	fc220000 	sd	v0,0\(at\)
+ 184:	24010000 	li	at,0
+ 188:	fc22ffff 	sd	v0,-1\(at\)
+ 18c:	3c01abce 	lui	at,0xabce
+ 190:	fc22ef01 	sd	v0,-4351\(at\)
+ 194:	3c018000 	lui	at,0x8000
+ 198:	fc220000 	sd	v0,0\(at\)
+ 19c:	3c018000 	lui	at,0x8000
+ 1a0:	fc22ffff 	sd	v0,-1\(at\)
+ 1a4:	3c010123 	lui	at,0x123
+ 1a8:	fc224567 	sd	v0,17767\(at\)
+ 1ac:	fc020000 	sd	v0,0\(zero\)
+ 1b0:	8c82ffff 	lw	v0,-1\(a0\)
+ 1b4:	3c02abce 	lui	v0,0xabce
+ 1b8:	00441021 	addu	v0,v0,a0
+ 1bc:	8c42ef01 	lw	v0,-4351\(v0\)
+ 1c0:	3c028000 	lui	v0,0x8000
+ 1c4:	00441021 	addu	v0,v0,a0
+ 1c8:	8c420000 	lw	v0,0\(v0\)
+ 1cc:	3c028000 	lui	v0,0x8000
+ 1d0:	00441021 	addu	v0,v0,a0
+ 1d4:	8c42ffff 	lw	v0,-1\(v0\)
+ 1d8:	3c020123 	lui	v0,0x123
+ 1dc:	00441021 	addu	v0,v0,a0
+ 1e0:	8c424567 	lw	v0,17767\(v0\)
+ 1e4:	24020000 	li	v0,0
+ 1e8:	00441021 	addu	v0,v0,a0
+ 1ec:	8c420000 	lw	v0,0\(v0\)
+ 1f0:	24020000 	li	v0,0
+ 1f4:	00441021 	addu	v0,v0,a0
+ 1f8:	8c42ffff 	lw	v0,-1\(v0\)
+ 1fc:	3c02abce 	lui	v0,0xabce
+ 200:	00441021 	addu	v0,v0,a0
+ 204:	8c42ef01 	lw	v0,-4351\(v0\)
+ 208:	3c028000 	lui	v0,0x8000
+ 20c:	00441021 	addu	v0,v0,a0
+ 210:	8c420000 	lw	v0,0\(v0\)
+ 214:	3c028000 	lui	v0,0x8000
+ 218:	00441021 	addu	v0,v0,a0
+ 21c:	8c42ffff 	lw	v0,-1\(v0\)
+ 220:	3c020123 	lui	v0,0x123
+ 224:	00441021 	addu	v0,v0,a0
+ 228:	8c424567 	lw	v0,17767\(v0\)
+ 22c:	8c820000 	lw	v0,0\(a0\)
+ 230:	8c02ffff 	lw	v0,-1\(zero\)
+ 234:	3c02abce 	lui	v0,0xabce
+ 238:	8c42ef01 	lw	v0,-4351\(v0\)
+ 23c:	3c028000 	lui	v0,0x8000
+ 240:	8c420000 	lw	v0,0\(v0\)
+ 244:	3c028000 	lui	v0,0x8000
+ 248:	8c42ffff 	lw	v0,-1\(v0\)
+ 24c:	3c020123 	lui	v0,0x123
+ 250:	8c424567 	lw	v0,17767\(v0\)
+ 254:	24020000 	li	v0,0
+ 258:	8c420000 	lw	v0,0\(v0\)
+ 25c:	24020000 	li	v0,0
+ 260:	8c42ffff 	lw	v0,-1\(v0\)
+ 264:	3c02abce 	lui	v0,0xabce
+ 268:	8c42ef01 	lw	v0,-4351\(v0\)
+ 26c:	3c028000 	lui	v0,0x8000
+ 270:	8c420000 	lw	v0,0\(v0\)
+ 274:	3c028000 	lui	v0,0x8000
+ 278:	8c42ffff 	lw	v0,-1\(v0\)
+ 27c:	3c020123 	lui	v0,0x123
+ 280:	8c424567 	lw	v0,17767\(v0\)
+ 284:	8c020000 	lw	v0,0\(zero\)
+ 288:	ac82ffff 	sw	v0,-1\(a0\)
+ 28c:	3c01abce 	lui	at,0xabce
+ 290:	00240821 	addu	at,at,a0
+ 294:	ac22ef01 	sw	v0,-4351\(at\)
+ 298:	3c018000 	lui	at,0x8000
+ 29c:	00240821 	addu	at,at,a0
+ 2a0:	ac220000 	sw	v0,0\(at\)
+ 2a4:	3c018000 	lui	at,0x8000
+ 2a8:	00240821 	addu	at,at,a0
+ 2ac:	ac22ffff 	sw	v0,-1\(at\)
+ 2b0:	3c010123 	lui	at,0x123
+ 2b4:	00240821 	addu	at,at,a0
+ 2b8:	ac224567 	sw	v0,17767\(at\)
+ 2bc:	24010000 	li	at,0
+ 2c0:	00240821 	addu	at,at,a0
+ 2c4:	ac220000 	sw	v0,0\(at\)
+ 2c8:	24010000 	li	at,0
+ 2cc:	00240821 	addu	at,at,a0
+ 2d0:	ac22ffff 	sw	v0,-1\(at\)
+ 2d4:	3c01abce 	lui	at,0xabce
+ 2d8:	00240821 	addu	at,at,a0
+ 2dc:	ac22ef01 	sw	v0,-4351\(at\)
+ 2e0:	3c018000 	lui	at,0x8000
+ 2e4:	00240821 	addu	at,at,a0
+ 2e8:	ac220000 	sw	v0,0\(at\)
+ 2ec:	3c018000 	lui	at,0x8000
+ 2f0:	00240821 	addu	at,at,a0
+ 2f4:	ac22ffff 	sw	v0,-1\(at\)
+ 2f8:	3c010123 	lui	at,0x123
+ 2fc:	00240821 	addu	at,at,a0
+ 300:	ac224567 	sw	v0,17767\(at\)
+ 304:	ac820000 	sw	v0,0\(a0\)
+ 308:	ac02ffff 	sw	v0,-1\(zero\)
+ 30c:	3c01abce 	lui	at,0xabce
+ 310:	ac22ef01 	sw	v0,-4351\(at\)
+ 314:	3c018000 	lui	at,0x8000
+ 318:	ac220000 	sw	v0,0\(at\)
+ 31c:	3c018000 	lui	at,0x8000
+ 320:	ac22ffff 	sw	v0,-1\(at\)
+ 324:	3c010123 	lui	at,0x123
+ 328:	ac224567 	sw	v0,17767\(at\)
+ 32c:	24010000 	li	at,0
+ 330:	ac220000 	sw	v0,0\(at\)
+ 334:	24010000 	li	at,0
+ 338:	ac22ffff 	sw	v0,-1\(at\)
+ 33c:	3c01abce 	lui	at,0xabce
+ 340:	ac22ef01 	sw	v0,-4351\(at\)
+ 344:	3c018000 	lui	at,0x8000
+ 348:	ac220000 	sw	v0,0\(at\)
+ 34c:	3c018000 	lui	at,0x8000
+ 350:	ac22ffff 	sw	v0,-1\(at\)
+ 354:	3c010123 	lui	at,0x123
+ 358:	ac224567 	sw	v0,17767\(at\)
+ 35c:	ac020000 	sw	v0,0\(zero\)
+ 360:	2482ffff 	addiu	v0,a0,-1
+ 364:	3c02abcd 	lui	v0,0xabcd
+ 368:	3442ef01 	ori	v0,v0,0xef01
+ 36c:	00441021 	addu	v0,v0,a0
+ 370:	3c028000 	lui	v0,0x8000
+ 374:	00441021 	addu	v0,v0,a0
+ 378:	3c027fff 	lui	v0,0x7fff
+ 37c:	3442ffff 	ori	v0,v0,0xffff
+ 380:	00441021 	addu	v0,v0,a0
+ 384:	3c020123 	lui	v0,0x123
+ 388:	34424567 	ori	v0,v0,0x4567
+ 38c:	00441021 	addu	v0,v0,a0
+ 390:	24820000 	addiu	v0,a0,0
+ 394:	2482ffff 	addiu	v0,a0,-1
+ 398:	3c02abcd 	lui	v0,0xabcd
+ 39c:	3442ef01 	ori	v0,v0,0xef01
+ 3a0:	00441021 	addu	v0,v0,a0
+ 3a4:	3c028000 	lui	v0,0x8000
+ 3a8:	00441021 	addu	v0,v0,a0
+ 3ac:	3c027fff 	lui	v0,0x7fff
+ 3b0:	3442ffff 	ori	v0,v0,0xffff
+ 3b4:	00441021 	addu	v0,v0,a0
+ 3b8:	3c020123 	lui	v0,0x123
+ 3bc:	34424567 	ori	v0,v0,0x4567
+ 3c0:	00441021 	addu	v0,v0,a0
+ 3c4:	24820000 	addiu	v0,a0,0
+ 3c8:	2402ffff 	li	v0,-1
+ 3cc:	3c02abcd 	lui	v0,0xabcd
+ 3d0:	3442ef01 	ori	v0,v0,0xef01
+ 3d4:	3c028000 	lui	v0,0x8000
+ 3d8:	3c027fff 	lui	v0,0x7fff
+ 3dc:	3442ffff 	ori	v0,v0,0xffff
+ 3e0:	3c020123 	lui	v0,0x123
+ 3e4:	34424567 	ori	v0,v0,0x4567
+ 3e8:	24020000 	li	v0,0
+ 3ec:	2402ffff 	li	v0,-1
+ 3f0:	3c02abcd 	lui	v0,0xabcd
+ 3f4:	3442ef01 	ori	v0,v0,0xef01
+ 3f8:	3c028000 	lui	v0,0x8000
+ 3fc:	3c027fff 	lui	v0,0x7fff
+ 400:	3442ffff 	ori	v0,v0,0xffff
+ 404:	3c020123 	lui	v0,0x123
+ 408:	34424567 	ori	v0,v0,0x4567
+ 40c:	24020000 	li	v0,0
+	\.\.\.
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3.s binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3.s
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-mips3.s	1970-01-01 00:00:00.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-mips3.s	2005-04-11 16:45:44.000000000 +0000
@@ -0,0 +1,133 @@
+	.set	mips3
+	.text
+	ld $2, 0xffffffffffffffff($4)
+	ld $2, 0xffffffffabcdef01($4)
+	ld $2, 0xffffffff80000000($4)
+	ld $2, 0xffffffff7fffffff($4)
+	ld $2, 0xffffffff01234567($4)
+	ld $2, 0xffffffff00000000($4)
+	ld $2, 0xffffffff($4)
+	ld $2, 0xabcdef01($4)
+	ld $2, 0x80000000($4)
+	ld $2, 0x7fffffff($4)
+	ld $2, 0x01234567($4)
+	ld $2, 0x00000000($4)
+
+	ld $2, 0xffffffffffffffff
+	ld $2, 0xffffffffabcdef01
+	ld $2, 0xffffffff80000000
+	ld $2, 0xffffffff7fffffff
+	ld $2, 0xffffffff01234567
+	ld $2, 0xffffffff00000000
+	ld $2, 0xffffffff
+	ld $2, 0xabcdef01
+	ld $2, 0x80000000
+	ld $2, 0x7fffffff
+	ld $2, 0x01234567
+	ld $2, 0x00000000
+
+	sd $2, 0xffffffffffffffff($4)
+	sd $2, 0xffffffffabcdef01($4)
+	sd $2, 0xffffffff80000000($4)
+	sd $2, 0xffffffff7fffffff($4)
+	sd $2, 0xffffffff01234567($4)
+	sd $2, 0xffffffff00000000($4)
+	sd $2, 0xffffffff($4)
+	sd $2, 0xabcdef01($4)
+	sd $2, 0x80000000($4)
+	sd $2, 0x7fffffff($4)
+	sd $2, 0x01234567($4)
+	sd $2, 0x00000000($4)
+
+	sd $2, 0xffffffffffffffff
+	sd $2, 0xffffffffabcdef01
+	sd $2, 0xffffffff80000000
+	sd $2, 0xffffffff7fffffff
+	sd $2, 0xffffffff01234567
+	sd $2, 0xffffffff00000000
+	sd $2, 0xffffffff
+	sd $2, 0xabcdef01
+	sd $2, 0x80000000
+	sd $2, 0x7fffffff
+	sd $2, 0x01234567
+	sd $2, 0x00000000
+
+	lw $2, 0xffffffffffffffff($4)
+	lw $2, 0xffffffffabcdef01($4)
+	lw $2, 0xffffffff80000000($4)
+	lw $2, 0xffffffff7fffffff($4)
+	lw $2, 0xffffffff01234567($4)
+	lw $2, 0xffffffff00000000($4)
+	lw $2, 0xffffffff($4)
+	lw $2, 0xabcdef01($4)
+	lw $2, 0x80000000($4)
+	lw $2, 0x7fffffff($4)
+	lw $2, 0x01234567($4)
+	lw $2, 0x00000000($4)
+
+	lw $2, 0xffffffffffffffff
+	lw $2, 0xffffffffabcdef01
+	lw $2, 0xffffffff80000000
+	lw $2, 0xffffffff7fffffff
+	lw $2, 0xffffffff01234567
+	lw $2, 0xffffffff00000000
+	lw $2, 0xffffffff
+	lw $2, 0xabcdef01
+	lw $2, 0x80000000
+	lw $2, 0x7fffffff
+	lw $2, 0x01234567
+	lw $2, 0x00000000
+
+	sw $2, 0xffffffffffffffff($4)
+	sw $2, 0xffffffffabcdef01($4)
+	sw $2, 0xffffffff80000000($4)
+	sw $2, 0xffffffff7fffffff($4)
+	sw $2, 0xffffffff01234567($4)
+	sw $2, 0xffffffff00000000($4)
+	sw $2, 0xffffffff($4)
+	sw $2, 0xabcdef01($4)
+	sw $2, 0x80000000($4)
+	sw $2, 0x7fffffff($4)
+	sw $2, 0x01234567($4)
+	sw $2, 0x00000000($4)
+
+	sw $2, 0xffffffffffffffff
+	sw $2, 0xffffffffabcdef01
+	sw $2, 0xffffffff80000000
+	sw $2, 0xffffffff7fffffff
+	sw $2, 0xffffffff01234567
+	sw $2, 0xffffffff00000000
+	sw $2, 0xffffffff
+	sw $2, 0xabcdef01
+	sw $2, 0x80000000
+	sw $2, 0x7fffffff
+	sw $2, 0x01234567
+	sw $2, 0x00000000
+
+	la $2, 0xffffffffffffffff($4)
+	la $2, 0xffffffffabcdef01($4)
+	la $2, 0xffffffff80000000($4)
+	la $2, 0xffffffff7fffffff($4)
+	la $2, 0xffffffff01234567($4)
+	la $2, 0xffffffff00000000($4)
+	la $2, 0xffffffff($4)
+	la $2, 0xabcdef01($4)
+	la $2, 0x80000000($4)
+	la $2, 0x7fffffff($4)
+	la $2, 0x01234567($4)
+	la $2, 0x00000000($4)
+
+	la $2, 0xffffffffffffffff
+	la $2, 0xffffffffabcdef01
+	la $2, 0xffffffff80000000
+	la $2, 0xffffffff7fffffff
+	la $2, 0xffffffff01234567
+	la $2, 0xffffffff00000000
+	la $2, 0xffffffff
+	la $2, 0xabcdef01
+	la $2, 0x80000000
+	la $2, 0x7fffffff
+	la $2, 0x01234567
+	la $2, 0x00000000
+
+	.space 8
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-shared.d binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-shared.d
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32-shared.d	2003-10-01 02:07:48.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32-shared.d	2005-04-11 18:04:12.000000000 +0000
@@ -1,5 +1,5 @@
 #objdump: -d
-#as: -KPIC -32
+#as: -KPIC -mabi=32
 #name: MIPS ld-st-la constants (ABI o32, shared)
 #source: ldstla-32.s
 
@@ -8,73 +8,313 @@
 Disassembly of section \.text:
 
 00000000 <\.text>:
-   0:	3c0189ac 	lui	at,0x89ac
-   4:	00610821 	addu	at,v1,at
-   8:	8c22cdef 	lw	v0,-12817\(at\)
-   c:	8c23cdf3 	lw	v1,-12813\(at\)
-  10:	3c012345 	lui	at,0x2345
-  14:	00610821 	addu	at,v1,at
-  18:	8c226789 	lw	v0,26505\(at\)
-  1c:	8c23678d 	lw	v1,26509\(at\)
-  20:	3c018000 	lui	at,0x8000
-  24:	00610821 	addu	at,v1,at
-  28:	8c220000 	lw	v0,0\(at\)
-  2c:	8c230004 	lw	v1,4\(at\)
-  30:	3c010000 	lui	at,0x0
-  34:	00610821 	addu	at,v1,at
-  38:	8c220000 	lw	v0,0\(at\)
-  3c:	8c230004 	lw	v1,4\(at\)
-  40:	3c018000 	lui	at,0x8000
-  44:	00610821 	addu	at,v1,at
-  48:	8c22ffff 	lw	v0,-1\(at\)
-  4c:	8c230003 	lw	v1,3\(at\)
-  50:	3c01abce 	lui	at,0xabce
-  54:	00610821 	addu	at,v1,at
-  58:	8c22ef01 	lw	v0,-4351\(at\)
-  5c:	8c23ef05 	lw	v1,-4347\(at\)
-  60:	3c010123 	lui	at,0x123
-  64:	00610821 	addu	at,v1,at
-  68:	8c224567 	lw	v0,17767\(at\)
-  6c:	8c23456b 	lw	v1,17771\(at\)
-  70:	3c0189ac 	lui	at,0x89ac
-  74:	00610821 	addu	at,v1,at
-  78:	ac22cdef 	sw	v0,-12817\(at\)
-  7c:	ac23cdf3 	sw	v1,-12813\(at\)
-  80:	3c012345 	lui	at,0x2345
-  84:	00610821 	addu	at,v1,at
-  88:	ac226789 	sw	v0,26505\(at\)
-  8c:	ac23678d 	sw	v1,26509\(at\)
-  90:	3c018000 	lui	at,0x8000
-  94:	00610821 	addu	at,v1,at
-  98:	ac220000 	sw	v0,0\(at\)
-  9c:	ac230004 	sw	v1,4\(at\)
-  a0:	3c010000 	lui	at,0x0
-  a4:	00610821 	addu	at,v1,at
-  a8:	ac220000 	sw	v0,0\(at\)
-  ac:	ac230004 	sw	v1,4\(at\)
-  b0:	3c018000 	lui	at,0x8000
-  b4:	00610821 	addu	at,v1,at
-  b8:	ac22ffff 	sw	v0,-1\(at\)
-  bc:	ac230003 	sw	v1,3\(at\)
-  c0:	3c01abce 	lui	at,0xabce
-  c4:	00610821 	addu	at,v1,at
-  c8:	ac22ef01 	sw	v0,-4351\(at\)
-  cc:	ac23ef05 	sw	v1,-4347\(at\)
-  d0:	3c010123 	lui	at,0x123
-  d4:	00610821 	addu	at,v1,at
-  d8:	ac224567 	sw	v0,17767\(at\)
-  dc:	ac23456b 	sw	v1,17771\(at\)
-  e0:	3c028000 	lui	v0,0x8000
-  e4:	00431021 	addu	v0,v0,v1
-  e8:	8c420000 	lw	v0,0\(v0\)
-  ec:	3c020123 	lui	v0,0x123
-  f0:	00431021 	addu	v0,v0,v1
-  f4:	8c424567 	lw	v0,17767\(v0\)
-  f8:	3c010123 	lui	at,0x123
-  fc:	00230821 	addu	at,at,v1
- 100:	ac224567 	sw	v0,17767\(at\)
- 104:	3c027fff 	lui	v0,0x7fff
- 108:	3442ffff 	ori	v0,v0,0xffff
- 10c:	3c020123 	lui	v0,0x123
- 110:	34424567 	ori	v0,v0,0x4567
+   0:	8c82ffff 	lw	v0,-1\(a0\)
+   4:	8c830003 	lw	v1,3\(a0\)
+   8:	3c01abce 	lui	at,0xabce
+   c:	00810821 	addu	at,a0,at
+  10:	8c22ef01 	lw	v0,-4351\(at\)
+  14:	8c23ef05 	lw	v1,-4347\(at\)
+  18:	3c018000 	lui	at,0x8000
+  1c:	00810821 	addu	at,a0,at
+  20:	8c220000 	lw	v0,0\(at\)
+  24:	8c230004 	lw	v1,4\(at\)
+  28:	3c018000 	lui	at,0x8000
+  2c:	00810821 	addu	at,a0,at
+  30:	8c22ffff 	lw	v0,-1\(at\)
+  34:	8c230003 	lw	v1,3\(at\)
+  38:	3c010123 	lui	at,0x123
+  3c:	00810821 	addu	at,a0,at
+  40:	8c224567 	lw	v0,17767\(at\)
+  44:	8c23456b 	lw	v1,17771\(at\)
+  48:	3c010000 	lui	at,0x0
+  4c:	00810821 	addu	at,a0,at
+  50:	8c220000 	lw	v0,0\(at\)
+  54:	8c230004 	lw	v1,4\(at\)
+  58:	3c010000 	lui	at,0x0
+  5c:	00810821 	addu	at,a0,at
+  60:	8c22ffff 	lw	v0,-1\(at\)
+  64:	8c230003 	lw	v1,3\(at\)
+  68:	3c01abce 	lui	at,0xabce
+  6c:	00810821 	addu	at,a0,at
+  70:	8c22ef01 	lw	v0,-4351\(at\)
+  74:	8c23ef05 	lw	v1,-4347\(at\)
+  78:	3c018000 	lui	at,0x8000
+  7c:	00810821 	addu	at,a0,at
+  80:	8c220000 	lw	v0,0\(at\)
+  84:	8c230004 	lw	v1,4\(at\)
+  88:	3c018000 	lui	at,0x8000
+  8c:	00810821 	addu	at,a0,at
+  90:	8c22ffff 	lw	v0,-1\(at\)
+  94:	8c230003 	lw	v1,3\(at\)
+  98:	3c010123 	lui	at,0x123
+  9c:	00810821 	addu	at,a0,at
+  a0:	8c224567 	lw	v0,17767\(at\)
+  a4:	8c23456b 	lw	v1,17771\(at\)
+  a8:	8c820000 	lw	v0,0\(a0\)
+  ac:	8c830004 	lw	v1,4\(a0\)
+  b0:	8c02ffff 	lw	v0,-1\(zero\)
+  b4:	8c030003 	lw	v1,3\(zero\)
+  b8:	3c01abce 	lui	at,0xabce
+  bc:	8c22ef01 	lw	v0,-4351\(at\)
+  c0:	8c23ef05 	lw	v1,-4347\(at\)
+  c4:	3c018000 	lui	at,0x8000
+  c8:	8c220000 	lw	v0,0\(at\)
+  cc:	8c230004 	lw	v1,4\(at\)
+  d0:	3c018000 	lui	at,0x8000
+  d4:	8c22ffff 	lw	v0,-1\(at\)
+  d8:	8c230003 	lw	v1,3\(at\)
+  dc:	3c010123 	lui	at,0x123
+  e0:	8c224567 	lw	v0,17767\(at\)
+  e4:	8c23456b 	lw	v1,17771\(at\)
+  e8:	3c010000 	lui	at,0x0
+  ec:	8c220000 	lw	v0,0\(at\)
+  f0:	8c230004 	lw	v1,4\(at\)
+  f4:	3c010000 	lui	at,0x0
+  f8:	8c22ffff 	lw	v0,-1\(at\)
+  fc:	8c230003 	lw	v1,3\(at\)
+ 100:	3c01abce 	lui	at,0xabce
+ 104:	8c22ef01 	lw	v0,-4351\(at\)
+ 108:	8c23ef05 	lw	v1,-4347\(at\)
+ 10c:	3c018000 	lui	at,0x8000
+ 110:	8c220000 	lw	v0,0\(at\)
+ 114:	8c230004 	lw	v1,4\(at\)
+ 118:	3c018000 	lui	at,0x8000
+ 11c:	8c22ffff 	lw	v0,-1\(at\)
+ 120:	8c230003 	lw	v1,3\(at\)
+ 124:	3c010123 	lui	at,0x123
+ 128:	8c224567 	lw	v0,17767\(at\)
+ 12c:	8c23456b 	lw	v1,17771\(at\)
+ 130:	8c020000 	lw	v0,0\(zero\)
+ 134:	8c030004 	lw	v1,4\(zero\)
+ 138:	ac82ffff 	sw	v0,-1\(a0\)
+ 13c:	ac830003 	sw	v1,3\(a0\)
+ 140:	3c01abce 	lui	at,0xabce
+ 144:	00810821 	addu	at,a0,at
+ 148:	ac22ef01 	sw	v0,-4351\(at\)
+ 14c:	ac23ef05 	sw	v1,-4347\(at\)
+ 150:	3c018000 	lui	at,0x8000
+ 154:	00810821 	addu	at,a0,at
+ 158:	ac220000 	sw	v0,0\(at\)
+ 15c:	ac230004 	sw	v1,4\(at\)
+ 160:	3c018000 	lui	at,0x8000
+ 164:	00810821 	addu	at,a0,at
+ 168:	ac22ffff 	sw	v0,-1\(at\)
+ 16c:	ac230003 	sw	v1,3\(at\)
+ 170:	3c010123 	lui	at,0x123
+ 174:	00810821 	addu	at,a0,at
+ 178:	ac224567 	sw	v0,17767\(at\)
+ 17c:	ac23456b 	sw	v1,17771\(at\)
+ 180:	3c010000 	lui	at,0x0
+ 184:	00810821 	addu	at,a0,at
+ 188:	ac220000 	sw	v0,0\(at\)
+ 18c:	ac230004 	sw	v1,4\(at\)
+ 190:	3c010000 	lui	at,0x0
+ 194:	00810821 	addu	at,a0,at
+ 198:	ac22ffff 	sw	v0,-1\(at\)
+ 19c:	ac230003 	sw	v1,3\(at\)
+ 1a0:	3c01abce 	lui	at,0xabce
+ 1a4:	00810821 	addu	at,a0,at
+ 1a8:	ac22ef01 	sw	v0,-4351\(at\)
+ 1ac:	ac23ef05 	sw	v1,-4347\(at\)
+ 1b0:	3c018000 	lui	at,0x8000
+ 1b4:	00810821 	addu	at,a0,at
+ 1b8:	ac220000 	sw	v0,0\(at\)
+ 1bc:	ac230004 	sw	v1,4\(at\)
+ 1c0:	3c018000 	lui	at,0x8000
+ 1c4:	00810821 	addu	at,a0,at
+ 1c8:	ac22ffff 	sw	v0,-1\(at\)
+ 1cc:	ac230003 	sw	v1,3\(at\)
+ 1d0:	3c010123 	lui	at,0x123
+ 1d4:	00810821 	addu	at,a0,at
+ 1d8:	ac224567 	sw	v0,17767\(at\)
+ 1dc:	ac23456b 	sw	v1,17771\(at\)
+ 1e0:	ac820000 	sw	v0,0\(a0\)
+ 1e4:	ac830004 	sw	v1,4\(a0\)
+ 1e8:	ac02ffff 	sw	v0,-1\(zero\)
+ 1ec:	ac030003 	sw	v1,3\(zero\)
+ 1f0:	3c01abce 	lui	at,0xabce
+ 1f4:	ac22ef01 	sw	v0,-4351\(at\)
+ 1f8:	ac23ef05 	sw	v1,-4347\(at\)
+ 1fc:	3c018000 	lui	at,0x8000
+ 200:	ac220000 	sw	v0,0\(at\)
+ 204:	ac230004 	sw	v1,4\(at\)
+ 208:	3c018000 	lui	at,0x8000
+ 20c:	ac22ffff 	sw	v0,-1\(at\)
+ 210:	ac230003 	sw	v1,3\(at\)
+ 214:	3c010123 	lui	at,0x123
+ 218:	ac224567 	sw	v0,17767\(at\)
+ 21c:	ac23456b 	sw	v1,17771\(at\)
+ 220:	3c010000 	lui	at,0x0
+ 224:	ac220000 	sw	v0,0\(at\)
+ 228:	ac230004 	sw	v1,4\(at\)
+ 22c:	3c010000 	lui	at,0x0
+ 230:	ac22ffff 	sw	v0,-1\(at\)
+ 234:	ac230003 	sw	v1,3\(at\)
+ 238:	3c01abce 	lui	at,0xabce
+ 23c:	ac22ef01 	sw	v0,-4351\(at\)
+ 240:	ac23ef05 	sw	v1,-4347\(at\)
+ 244:	3c018000 	lui	at,0x8000
+ 248:	ac220000 	sw	v0,0\(at\)
+ 24c:	ac230004 	sw	v1,4\(at\)
+ 250:	3c018000 	lui	at,0x8000
+ 254:	ac22ffff 	sw	v0,-1\(at\)
+ 258:	ac230003 	sw	v1,3\(at\)
+ 25c:	3c010123 	lui	at,0x123
+ 260:	ac224567 	sw	v0,17767\(at\)
+ 264:	ac23456b 	sw	v1,17771\(at\)
+ 268:	ac020000 	sw	v0,0\(zero\)
+ 26c:	ac030004 	sw	v1,4\(zero\)
+ 270:	8c82ffff 	lw	v0,-1\(a0\)
+ 274:	3c02abce 	lui	v0,0xabce
+ 278:	00441021 	addu	v0,v0,a0
+ 27c:	8c42ef01 	lw	v0,-4351\(v0\)
+ 280:	3c028000 	lui	v0,0x8000
+ 284:	00441021 	addu	v0,v0,a0
+ 288:	8c420000 	lw	v0,0\(v0\)
+ 28c:	3c028000 	lui	v0,0x8000
+ 290:	00441021 	addu	v0,v0,a0
+ 294:	8c42ffff 	lw	v0,-1\(v0\)
+ 298:	3c020123 	lui	v0,0x123
+ 29c:	00441021 	addu	v0,v0,a0
+ 2a0:	8c424567 	lw	v0,17767\(v0\)
+ 2a4:	24020000 	li	v0,0
+ 2a8:	00441021 	addu	v0,v0,a0
+ 2ac:	8c420000 	lw	v0,0\(v0\)
+ 2b0:	24020000 	li	v0,0
+ 2b4:	00441021 	addu	v0,v0,a0
+ 2b8:	8c42ffff 	lw	v0,-1\(v0\)
+ 2bc:	3c02abce 	lui	v0,0xabce
+ 2c0:	00441021 	addu	v0,v0,a0
+ 2c4:	8c42ef01 	lw	v0,-4351\(v0\)
+ 2c8:	3c028000 	lui	v0,0x8000
+ 2cc:	00441021 	addu	v0,v0,a0
+ 2d0:	8c420000 	lw	v0,0\(v0\)
+ 2d4:	3c028000 	lui	v0,0x8000
+ 2d8:	00441021 	addu	v0,v0,a0
+ 2dc:	8c42ffff 	lw	v0,-1\(v0\)
+ 2e0:	3c020123 	lui	v0,0x123
+ 2e4:	00441021 	addu	v0,v0,a0
+ 2e8:	8c424567 	lw	v0,17767\(v0\)
+ 2ec:	8c820000 	lw	v0,0\(a0\)
+ 2f0:	8c02ffff 	lw	v0,-1\(zero\)
+ 2f4:	3c02abce 	lui	v0,0xabce
+ 2f8:	8c42ef01 	lw	v0,-4351\(v0\)
+ 2fc:	3c028000 	lui	v0,0x8000
+ 300:	8c420000 	lw	v0,0\(v0\)
+ 304:	3c028000 	lui	v0,0x8000
+ 308:	8c42ffff 	lw	v0,-1\(v0\)
+ 30c:	3c020123 	lui	v0,0x123
+ 310:	8c424567 	lw	v0,17767\(v0\)
+ 314:	24020000 	li	v0,0
+ 318:	8c420000 	lw	v0,0\(v0\)
+ 31c:	24020000 	li	v0,0
+ 320:	8c42ffff 	lw	v0,-1\(v0\)
+ 324:	3c02abce 	lui	v0,0xabce
+ 328:	8c42ef01 	lw	v0,-4351\(v0\)
+ 32c:	3c028000 	lui	v0,0x8000
+ 330:	8c420000 	lw	v0,0\(v0\)
+ 334:	3c028000 	lui	v0,0x8000
+ 338:	8c42ffff 	lw	v0,-1\(v0\)
+ 33c:	3c020123 	lui	v0,0x123
+ 340:	8c424567 	lw	v0,17767\(v0\)
+ 344:	8c020000 	lw	v0,0\(zero\)
+ 348:	00000000 	nop
+ 34c:	ac82ffff 	sw	v0,-1\(a0\)
+ 350:	3c01abce 	lui	at,0xabce
+ 354:	00240821 	addu	at,at,a0
+ 358:	ac22ef01 	sw	v0,-4351\(at\)
+ 35c:	3c018000 	lui	at,0x8000
+ 360:	00240821 	addu	at,at,a0
+ 364:	ac220000 	sw	v0,0\(at\)
+ 368:	3c018000 	lui	at,0x8000
+ 36c:	00240821 	addu	at,at,a0
+ 370:	ac22ffff 	sw	v0,-1\(at\)
+ 374:	3c010123 	lui	at,0x123
+ 378:	00240821 	addu	at,at,a0
+ 37c:	ac224567 	sw	v0,17767\(at\)
+ 380:	24010000 	li	at,0
+ 384:	00240821 	addu	at,at,a0
+ 388:	ac220000 	sw	v0,0\(at\)
+ 38c:	24010000 	li	at,0
+ 390:	00240821 	addu	at,at,a0
+ 394:	ac22ffff 	sw	v0,-1\(at\)
+ 398:	3c01abce 	lui	at,0xabce
+ 39c:	00240821 	addu	at,at,a0
+ 3a0:	ac22ef01 	sw	v0,-4351\(at\)
+ 3a4:	3c018000 	lui	at,0x8000
+ 3a8:	00240821 	addu	at,at,a0
+ 3ac:	ac220000 	sw	v0,0\(at\)
+ 3b0:	3c018000 	lui	at,0x8000
+ 3b4:	00240821 	addu	at,at,a0
+ 3b8:	ac22ffff 	sw	v0,-1\(at\)
+ 3bc:	3c010123 	lui	at,0x123
+ 3c0:	00240821 	addu	at,at,a0
+ 3c4:	ac224567 	sw	v0,17767\(at\)
+ 3c8:	ac820000 	sw	v0,0\(a0\)
+ 3cc:	ac02ffff 	sw	v0,-1\(zero\)
+ 3d0:	3c01abce 	lui	at,0xabce
+ 3d4:	ac22ef01 	sw	v0,-4351\(at\)
+ 3d8:	3c018000 	lui	at,0x8000
+ 3dc:	ac220000 	sw	v0,0\(at\)
+ 3e0:	3c018000 	lui	at,0x8000
+ 3e4:	ac22ffff 	sw	v0,-1\(at\)
+ 3e8:	3c010123 	lui	at,0x123
+ 3ec:	ac224567 	sw	v0,17767\(at\)
+ 3f0:	24010000 	li	at,0
+ 3f4:	ac220000 	sw	v0,0\(at\)
+ 3f8:	24010000 	li	at,0
+ 3fc:	ac22ffff 	sw	v0,-1\(at\)
+ 400:	3c01abce 	lui	at,0xabce
+ 404:	ac22ef01 	sw	v0,-4351\(at\)
+ 408:	3c018000 	lui	at,0x8000
+ 40c:	ac220000 	sw	v0,0\(at\)
+ 410:	3c018000 	lui	at,0x8000
+ 414:	ac22ffff 	sw	v0,-1\(at\)
+ 418:	3c010123 	lui	at,0x123
+ 41c:	ac224567 	sw	v0,17767\(at\)
+ 420:	ac020000 	sw	v0,0\(zero\)
+ 424:	2482ffff 	addiu	v0,a0,-1
+ 428:	3c02abcd 	lui	v0,0xabcd
+ 42c:	3442ef01 	ori	v0,v0,0xef01
+ 430:	00441021 	addu	v0,v0,a0
+ 434:	3c028000 	lui	v0,0x8000
+ 438:	00441021 	addu	v0,v0,a0
+ 43c:	3c027fff 	lui	v0,0x7fff
+ 440:	3442ffff 	ori	v0,v0,0xffff
+ 444:	00441021 	addu	v0,v0,a0
+ 448:	3c020123 	lui	v0,0x123
+ 44c:	34424567 	ori	v0,v0,0x4567
+ 450:	00441021 	addu	v0,v0,a0
+ 454:	24820000 	addiu	v0,a0,0
+ 458:	2482ffff 	addiu	v0,a0,-1
+ 45c:	3c02abcd 	lui	v0,0xabcd
+ 460:	3442ef01 	ori	v0,v0,0xef01
+ 464:	00441021 	addu	v0,v0,a0
+ 468:	3c028000 	lui	v0,0x8000
+ 46c:	00441021 	addu	v0,v0,a0
+ 470:	3c027fff 	lui	v0,0x7fff
+ 474:	3442ffff 	ori	v0,v0,0xffff
+ 478:	00441021 	addu	v0,v0,a0
+ 47c:	3c020123 	lui	v0,0x123
+ 480:	34424567 	ori	v0,v0,0x4567
+ 484:	00441021 	addu	v0,v0,a0
+ 488:	24820000 	addiu	v0,a0,0
+ 48c:	2402ffff 	li	v0,-1
+ 490:	3c02abcd 	lui	v0,0xabcd
+ 494:	3442ef01 	ori	v0,v0,0xef01
+ 498:	3c028000 	lui	v0,0x8000
+ 49c:	3c027fff 	lui	v0,0x7fff
+ 4a0:	3442ffff 	ori	v0,v0,0xffff
+ 4a4:	3c020123 	lui	v0,0x123
+ 4a8:	34424567 	ori	v0,v0,0x4567
+ 4ac:	24020000 	li	v0,0
+ 4b0:	2402ffff 	li	v0,-1
+ 4b4:	3c02abcd 	lui	v0,0xabcd
+ 4b8:	3442ef01 	ori	v0,v0,0xef01
+ 4bc:	3c028000 	lui	v0,0x8000
+ 4c0:	3c027fff 	lui	v0,0x7fff
+ 4c4:	3442ffff 	ori	v0,v0,0xffff
+ 4c8:	3c020123 	lui	v0,0x123
+ 4cc:	34424567 	ori	v0,v0,0x4567
+ 4d0:	24020000 	li	v0,0
 	\.\.\.
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32.d binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32.d
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32.d	2003-10-01 02:07:48.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32.d	2005-04-11 18:04:12.000000000 +0000
@@ -1,5 +1,5 @@
 #objdump: -d
-#as: -32
+#as: -mabi=32
 #name: MIPS ld-st-la constants (ABI o32)
 #source: ldstla-32.s
 
@@ -8,73 +8,313 @@
 Disassembly of section \.text:
 
 00000000 <\.text>:
-   0:	3c0189ac 	lui	at,0x89ac
-   4:	00610821 	addu	at,v1,at
-   8:	8c22cdef 	lw	v0,-12817\(at\)
-   c:	8c23cdf3 	lw	v1,-12813\(at\)
-  10:	3c012345 	lui	at,0x2345
-  14:	00610821 	addu	at,v1,at
-  18:	8c226789 	lw	v0,26505\(at\)
-  1c:	8c23678d 	lw	v1,26509\(at\)
-  20:	3c018000 	lui	at,0x8000
-  24:	00610821 	addu	at,v1,at
-  28:	8c220000 	lw	v0,0\(at\)
-  2c:	8c230004 	lw	v1,4\(at\)
-  30:	3c010000 	lui	at,0x0
-  34:	00610821 	addu	at,v1,at
-  38:	8c220000 	lw	v0,0\(at\)
-  3c:	8c230004 	lw	v1,4\(at\)
-  40:	3c018000 	lui	at,0x8000
-  44:	00610821 	addu	at,v1,at
-  48:	8c22ffff 	lw	v0,-1\(at\)
-  4c:	8c230003 	lw	v1,3\(at\)
-  50:	3c01abce 	lui	at,0xabce
-  54:	00610821 	addu	at,v1,at
-  58:	8c22ef01 	lw	v0,-4351\(at\)
-  5c:	8c23ef05 	lw	v1,-4347\(at\)
-  60:	3c010123 	lui	at,0x123
-  64:	00610821 	addu	at,v1,at
-  68:	8c224567 	lw	v0,17767\(at\)
-  6c:	8c23456b 	lw	v1,17771\(at\)
-  70:	3c0189ac 	lui	at,0x89ac
-  74:	00610821 	addu	at,v1,at
-  78:	ac22cdef 	sw	v0,-12817\(at\)
-  7c:	ac23cdf3 	sw	v1,-12813\(at\)
-  80:	3c012345 	lui	at,0x2345
-  84:	00610821 	addu	at,v1,at
-  88:	ac226789 	sw	v0,26505\(at\)
-  8c:	ac23678d 	sw	v1,26509\(at\)
-  90:	3c018000 	lui	at,0x8000
-  94:	00610821 	addu	at,v1,at
-  98:	ac220000 	sw	v0,0\(at\)
-  9c:	ac230004 	sw	v1,4\(at\)
-  a0:	3c010000 	lui	at,0x0
-  a4:	00610821 	addu	at,v1,at
-  a8:	ac220000 	sw	v0,0\(at\)
-  ac:	ac230004 	sw	v1,4\(at\)
-  b0:	3c018000 	lui	at,0x8000
-  b4:	00610821 	addu	at,v1,at
-  b8:	ac22ffff 	sw	v0,-1\(at\)
-  bc:	ac230003 	sw	v1,3\(at\)
-  c0:	3c01abce 	lui	at,0xabce
-  c4:	00610821 	addu	at,v1,at
-  c8:	ac22ef01 	sw	v0,-4351\(at\)
-  cc:	ac23ef05 	sw	v1,-4347\(at\)
-  d0:	3c010123 	lui	at,0x123
-  d4:	00610821 	addu	at,v1,at
-  d8:	ac224567 	sw	v0,17767\(at\)
-  dc:	ac23456b 	sw	v1,17771\(at\)
-  e0:	3c028000 	lui	v0,0x8000
-  e4:	00431021 	addu	v0,v0,v1
-  e8:	8c420000 	lw	v0,0\(v0\)
-  ec:	3c020123 	lui	v0,0x123
-  f0:	00431021 	addu	v0,v0,v1
-  f4:	8c424567 	lw	v0,17767\(v0\)
-  f8:	3c010123 	lui	at,0x123
-  fc:	00230821 	addu	at,at,v1
- 100:	ac224567 	sw	v0,17767\(at\)
- 104:	3c027fff 	lui	v0,0x7fff
- 108:	3442ffff 	ori	v0,v0,0xffff
- 10c:	3c020123 	lui	v0,0x123
- 110:	34424567 	ori	v0,v0,0x4567
+   0:	8c82ffff 	lw	v0,-1\(a0\)
+   4:	8c830003 	lw	v1,3\(a0\)
+   8:	3c01abce 	lui	at,0xabce
+   c:	00810821 	addu	at,a0,at
+  10:	8c22ef01 	lw	v0,-4351\(at\)
+  14:	8c23ef05 	lw	v1,-4347\(at\)
+  18:	3c018000 	lui	at,0x8000
+  1c:	00810821 	addu	at,a0,at
+  20:	8c220000 	lw	v0,0\(at\)
+  24:	8c230004 	lw	v1,4\(at\)
+  28:	3c018000 	lui	at,0x8000
+  2c:	00810821 	addu	at,a0,at
+  30:	8c22ffff 	lw	v0,-1\(at\)
+  34:	8c230003 	lw	v1,3\(at\)
+  38:	3c010123 	lui	at,0x123
+  3c:	00810821 	addu	at,a0,at
+  40:	8c224567 	lw	v0,17767\(at\)
+  44:	8c23456b 	lw	v1,17771\(at\)
+  48:	3c010000 	lui	at,0x0
+  4c:	00810821 	addu	at,a0,at
+  50:	8c220000 	lw	v0,0\(at\)
+  54:	8c230004 	lw	v1,4\(at\)
+  58:	3c010000 	lui	at,0x0
+  5c:	00810821 	addu	at,a0,at
+  60:	8c22ffff 	lw	v0,-1\(at\)
+  64:	8c230003 	lw	v1,3\(at\)
+  68:	3c01abce 	lui	at,0xabce
+  6c:	00810821 	addu	at,a0,at
+  70:	8c22ef01 	lw	v0,-4351\(at\)
+  74:	8c23ef05 	lw	v1,-4347\(at\)
+  78:	3c018000 	lui	at,0x8000
+  7c:	00810821 	addu	at,a0,at
+  80:	8c220000 	lw	v0,0\(at\)
+  84:	8c230004 	lw	v1,4\(at\)
+  88:	3c018000 	lui	at,0x8000
+  8c:	00810821 	addu	at,a0,at
+  90:	8c22ffff 	lw	v0,-1\(at\)
+  94:	8c230003 	lw	v1,3\(at\)
+  98:	3c010123 	lui	at,0x123
+  9c:	00810821 	addu	at,a0,at
+  a0:	8c224567 	lw	v0,17767\(at\)
+  a4:	8c23456b 	lw	v1,17771\(at\)
+  a8:	8c820000 	lw	v0,0\(a0\)
+  ac:	8c830004 	lw	v1,4\(a0\)
+  b0:	8c02ffff 	lw	v0,-1\(zero\)
+  b4:	8c030003 	lw	v1,3\(zero\)
+  b8:	3c01abce 	lui	at,0xabce
+  bc:	8c22ef01 	lw	v0,-4351\(at\)
+  c0:	8c23ef05 	lw	v1,-4347\(at\)
+  c4:	3c018000 	lui	at,0x8000
+  c8:	8c220000 	lw	v0,0\(at\)
+  cc:	8c230004 	lw	v1,4\(at\)
+  d0:	3c018000 	lui	at,0x8000
+  d4:	8c22ffff 	lw	v0,-1\(at\)
+  d8:	8c230003 	lw	v1,3\(at\)
+  dc:	3c010123 	lui	at,0x123
+  e0:	8c224567 	lw	v0,17767\(at\)
+  e4:	8c23456b 	lw	v1,17771\(at\)
+  e8:	3c010000 	lui	at,0x0
+  ec:	8c220000 	lw	v0,0\(at\)
+  f0:	8c230004 	lw	v1,4\(at\)
+  f4:	3c010000 	lui	at,0x0
+  f8:	8c22ffff 	lw	v0,-1\(at\)
+  fc:	8c230003 	lw	v1,3\(at\)
+ 100:	3c01abce 	lui	at,0xabce
+ 104:	8c22ef01 	lw	v0,-4351\(at\)
+ 108:	8c23ef05 	lw	v1,-4347\(at\)
+ 10c:	3c018000 	lui	at,0x8000
+ 110:	8c220000 	lw	v0,0\(at\)
+ 114:	8c230004 	lw	v1,4\(at\)
+ 118:	3c018000 	lui	at,0x8000
+ 11c:	8c22ffff 	lw	v0,-1\(at\)
+ 120:	8c230003 	lw	v1,3\(at\)
+ 124:	3c010123 	lui	at,0x123
+ 128:	8c224567 	lw	v0,17767\(at\)
+ 12c:	8c23456b 	lw	v1,17771\(at\)
+ 130:	8c020000 	lw	v0,0\(zero\)
+ 134:	8c030004 	lw	v1,4\(zero\)
+ 138:	ac82ffff 	sw	v0,-1\(a0\)
+ 13c:	ac830003 	sw	v1,3\(a0\)
+ 140:	3c01abce 	lui	at,0xabce
+ 144:	00810821 	addu	at,a0,at
+ 148:	ac22ef01 	sw	v0,-4351\(at\)
+ 14c:	ac23ef05 	sw	v1,-4347\(at\)
+ 150:	3c018000 	lui	at,0x8000
+ 154:	00810821 	addu	at,a0,at
+ 158:	ac220000 	sw	v0,0\(at\)
+ 15c:	ac230004 	sw	v1,4\(at\)
+ 160:	3c018000 	lui	at,0x8000
+ 164:	00810821 	addu	at,a0,at
+ 168:	ac22ffff 	sw	v0,-1\(at\)
+ 16c:	ac230003 	sw	v1,3\(at\)
+ 170:	3c010123 	lui	at,0x123
+ 174:	00810821 	addu	at,a0,at
+ 178:	ac224567 	sw	v0,17767\(at\)
+ 17c:	ac23456b 	sw	v1,17771\(at\)
+ 180:	3c010000 	lui	at,0x0
+ 184:	00810821 	addu	at,a0,at
+ 188:	ac220000 	sw	v0,0\(at\)
+ 18c:	ac230004 	sw	v1,4\(at\)
+ 190:	3c010000 	lui	at,0x0
+ 194:	00810821 	addu	at,a0,at
+ 198:	ac22ffff 	sw	v0,-1\(at\)
+ 19c:	ac230003 	sw	v1,3\(at\)
+ 1a0:	3c01abce 	lui	at,0xabce
+ 1a4:	00810821 	addu	at,a0,at
+ 1a8:	ac22ef01 	sw	v0,-4351\(at\)
+ 1ac:	ac23ef05 	sw	v1,-4347\(at\)
+ 1b0:	3c018000 	lui	at,0x8000
+ 1b4:	00810821 	addu	at,a0,at
+ 1b8:	ac220000 	sw	v0,0\(at\)
+ 1bc:	ac230004 	sw	v1,4\(at\)
+ 1c0:	3c018000 	lui	at,0x8000
+ 1c4:	00810821 	addu	at,a0,at
+ 1c8:	ac22ffff 	sw	v0,-1\(at\)
+ 1cc:	ac230003 	sw	v1,3\(at\)
+ 1d0:	3c010123 	lui	at,0x123
+ 1d4:	00810821 	addu	at,a0,at
+ 1d8:	ac224567 	sw	v0,17767\(at\)
+ 1dc:	ac23456b 	sw	v1,17771\(at\)
+ 1e0:	ac820000 	sw	v0,0\(a0\)
+ 1e4:	ac830004 	sw	v1,4\(a0\)
+ 1e8:	ac02ffff 	sw	v0,-1\(zero\)
+ 1ec:	ac030003 	sw	v1,3\(zero\)
+ 1f0:	3c01abce 	lui	at,0xabce
+ 1f4:	ac22ef01 	sw	v0,-4351\(at\)
+ 1f8:	ac23ef05 	sw	v1,-4347\(at\)
+ 1fc:	3c018000 	lui	at,0x8000
+ 200:	ac220000 	sw	v0,0\(at\)
+ 204:	ac230004 	sw	v1,4\(at\)
+ 208:	3c018000 	lui	at,0x8000
+ 20c:	ac22ffff 	sw	v0,-1\(at\)
+ 210:	ac230003 	sw	v1,3\(at\)
+ 214:	3c010123 	lui	at,0x123
+ 218:	ac224567 	sw	v0,17767\(at\)
+ 21c:	ac23456b 	sw	v1,17771\(at\)
+ 220:	3c010000 	lui	at,0x0
+ 224:	ac220000 	sw	v0,0\(at\)
+ 228:	ac230004 	sw	v1,4\(at\)
+ 22c:	3c010000 	lui	at,0x0
+ 230:	ac22ffff 	sw	v0,-1\(at\)
+ 234:	ac230003 	sw	v1,3\(at\)
+ 238:	3c01abce 	lui	at,0xabce
+ 23c:	ac22ef01 	sw	v0,-4351\(at\)
+ 240:	ac23ef05 	sw	v1,-4347\(at\)
+ 244:	3c018000 	lui	at,0x8000
+ 248:	ac220000 	sw	v0,0\(at\)
+ 24c:	ac230004 	sw	v1,4\(at\)
+ 250:	3c018000 	lui	at,0x8000
+ 254:	ac22ffff 	sw	v0,-1\(at\)
+ 258:	ac230003 	sw	v1,3\(at\)
+ 25c:	3c010123 	lui	at,0x123
+ 260:	ac224567 	sw	v0,17767\(at\)
+ 264:	ac23456b 	sw	v1,17771\(at\)
+ 268:	ac020000 	sw	v0,0\(zero\)
+ 26c:	ac030004 	sw	v1,4\(zero\)
+ 270:	8c82ffff 	lw	v0,-1\(a0\)
+ 274:	3c02abce 	lui	v0,0xabce
+ 278:	00441021 	addu	v0,v0,a0
+ 27c:	8c42ef01 	lw	v0,-4351\(v0\)
+ 280:	3c028000 	lui	v0,0x8000
+ 284:	00441021 	addu	v0,v0,a0
+ 288:	8c420000 	lw	v0,0\(v0\)
+ 28c:	3c028000 	lui	v0,0x8000
+ 290:	00441021 	addu	v0,v0,a0
+ 294:	8c42ffff 	lw	v0,-1\(v0\)
+ 298:	3c020123 	lui	v0,0x123
+ 29c:	00441021 	addu	v0,v0,a0
+ 2a0:	8c424567 	lw	v0,17767\(v0\)
+ 2a4:	24020000 	li	v0,0
+ 2a8:	00441021 	addu	v0,v0,a0
+ 2ac:	8c420000 	lw	v0,0\(v0\)
+ 2b0:	24020000 	li	v0,0
+ 2b4:	00441021 	addu	v0,v0,a0
+ 2b8:	8c42ffff 	lw	v0,-1\(v0\)
+ 2bc:	3c02abce 	lui	v0,0xabce
+ 2c0:	00441021 	addu	v0,v0,a0
+ 2c4:	8c42ef01 	lw	v0,-4351\(v0\)
+ 2c8:	3c028000 	lui	v0,0x8000
+ 2cc:	00441021 	addu	v0,v0,a0
+ 2d0:	8c420000 	lw	v0,0\(v0\)
+ 2d4:	3c028000 	lui	v0,0x8000
+ 2d8:	00441021 	addu	v0,v0,a0
+ 2dc:	8c42ffff 	lw	v0,-1\(v0\)
+ 2e0:	3c020123 	lui	v0,0x123
+ 2e4:	00441021 	addu	v0,v0,a0
+ 2e8:	8c424567 	lw	v0,17767\(v0\)
+ 2ec:	8c820000 	lw	v0,0\(a0\)
+ 2f0:	8c02ffff 	lw	v0,-1\(zero\)
+ 2f4:	3c02abce 	lui	v0,0xabce
+ 2f8:	8c42ef01 	lw	v0,-4351\(v0\)
+ 2fc:	3c028000 	lui	v0,0x8000
+ 300:	8c420000 	lw	v0,0\(v0\)
+ 304:	3c028000 	lui	v0,0x8000
+ 308:	8c42ffff 	lw	v0,-1\(v0\)
+ 30c:	3c020123 	lui	v0,0x123
+ 310:	8c424567 	lw	v0,17767\(v0\)
+ 314:	24020000 	li	v0,0
+ 318:	8c420000 	lw	v0,0\(v0\)
+ 31c:	24020000 	li	v0,0
+ 320:	8c42ffff 	lw	v0,-1\(v0\)
+ 324:	3c02abce 	lui	v0,0xabce
+ 328:	8c42ef01 	lw	v0,-4351\(v0\)
+ 32c:	3c028000 	lui	v0,0x8000
+ 330:	8c420000 	lw	v0,0\(v0\)
+ 334:	3c028000 	lui	v0,0x8000
+ 338:	8c42ffff 	lw	v0,-1\(v0\)
+ 33c:	3c020123 	lui	v0,0x123
+ 340:	8c424567 	lw	v0,17767\(v0\)
+ 344:	8c020000 	lw	v0,0\(zero\)
+ 348:	00000000 	nop
+ 34c:	ac82ffff 	sw	v0,-1\(a0\)
+ 350:	3c01abce 	lui	at,0xabce
+ 354:	00240821 	addu	at,at,a0
+ 358:	ac22ef01 	sw	v0,-4351\(at\)
+ 35c:	3c018000 	lui	at,0x8000
+ 360:	00240821 	addu	at,at,a0
+ 364:	ac220000 	sw	v0,0\(at\)
+ 368:	3c018000 	lui	at,0x8000
+ 36c:	00240821 	addu	at,at,a0
+ 370:	ac22ffff 	sw	v0,-1\(at\)
+ 374:	3c010123 	lui	at,0x123
+ 378:	00240821 	addu	at,at,a0
+ 37c:	ac224567 	sw	v0,17767\(at\)
+ 380:	24010000 	li	at,0
+ 384:	00240821 	addu	at,at,a0
+ 388:	ac220000 	sw	v0,0\(at\)
+ 38c:	24010000 	li	at,0
+ 390:	00240821 	addu	at,at,a0
+ 394:	ac22ffff 	sw	v0,-1\(at\)
+ 398:	3c01abce 	lui	at,0xabce
+ 39c:	00240821 	addu	at,at,a0
+ 3a0:	ac22ef01 	sw	v0,-4351\(at\)
+ 3a4:	3c018000 	lui	at,0x8000
+ 3a8:	00240821 	addu	at,at,a0
+ 3ac:	ac220000 	sw	v0,0\(at\)
+ 3b0:	3c018000 	lui	at,0x8000
+ 3b4:	00240821 	addu	at,at,a0
+ 3b8:	ac22ffff 	sw	v0,-1\(at\)
+ 3bc:	3c010123 	lui	at,0x123
+ 3c0:	00240821 	addu	at,at,a0
+ 3c4:	ac224567 	sw	v0,17767\(at\)
+ 3c8:	ac820000 	sw	v0,0\(a0\)
+ 3cc:	ac02ffff 	sw	v0,-1\(zero\)
+ 3d0:	3c01abce 	lui	at,0xabce
+ 3d4:	ac22ef01 	sw	v0,-4351\(at\)
+ 3d8:	3c018000 	lui	at,0x8000
+ 3dc:	ac220000 	sw	v0,0\(at\)
+ 3e0:	3c018000 	lui	at,0x8000
+ 3e4:	ac22ffff 	sw	v0,-1\(at\)
+ 3e8:	3c010123 	lui	at,0x123
+ 3ec:	ac224567 	sw	v0,17767\(at\)
+ 3f0:	24010000 	li	at,0
+ 3f4:	ac220000 	sw	v0,0\(at\)
+ 3f8:	24010000 	li	at,0
+ 3fc:	ac22ffff 	sw	v0,-1\(at\)
+ 400:	3c01abce 	lui	at,0xabce
+ 404:	ac22ef01 	sw	v0,-4351\(at\)
+ 408:	3c018000 	lui	at,0x8000
+ 40c:	ac220000 	sw	v0,0\(at\)
+ 410:	3c018000 	lui	at,0x8000
+ 414:	ac22ffff 	sw	v0,-1\(at\)
+ 418:	3c010123 	lui	at,0x123
+ 41c:	ac224567 	sw	v0,17767\(at\)
+ 420:	ac020000 	sw	v0,0\(zero\)
+ 424:	2482ffff 	addiu	v0,a0,-1
+ 428:	3c02abcd 	lui	v0,0xabcd
+ 42c:	3442ef01 	ori	v0,v0,0xef01
+ 430:	00441021 	addu	v0,v0,a0
+ 434:	3c028000 	lui	v0,0x8000
+ 438:	00441021 	addu	v0,v0,a0
+ 43c:	3c027fff 	lui	v0,0x7fff
+ 440:	3442ffff 	ori	v0,v0,0xffff
+ 444:	00441021 	addu	v0,v0,a0
+ 448:	3c020123 	lui	v0,0x123
+ 44c:	34424567 	ori	v0,v0,0x4567
+ 450:	00441021 	addu	v0,v0,a0
+ 454:	24820000 	addiu	v0,a0,0
+ 458:	2482ffff 	addiu	v0,a0,-1
+ 45c:	3c02abcd 	lui	v0,0xabcd
+ 460:	3442ef01 	ori	v0,v0,0xef01
+ 464:	00441021 	addu	v0,v0,a0
+ 468:	3c028000 	lui	v0,0x8000
+ 46c:	00441021 	addu	v0,v0,a0
+ 470:	3c027fff 	lui	v0,0x7fff
+ 474:	3442ffff 	ori	v0,v0,0xffff
+ 478:	00441021 	addu	v0,v0,a0
+ 47c:	3c020123 	lui	v0,0x123
+ 480:	34424567 	ori	v0,v0,0x4567
+ 484:	00441021 	addu	v0,v0,a0
+ 488:	24820000 	addiu	v0,a0,0
+ 48c:	2402ffff 	li	v0,-1
+ 490:	3c02abcd 	lui	v0,0xabcd
+ 494:	3442ef01 	ori	v0,v0,0xef01
+ 498:	3c028000 	lui	v0,0x8000
+ 49c:	3c027fff 	lui	v0,0x7fff
+ 4a0:	3442ffff 	ori	v0,v0,0xffff
+ 4a4:	3c020123 	lui	v0,0x123
+ 4a8:	34424567 	ori	v0,v0,0x4567
+ 4ac:	24020000 	li	v0,0
+ 4b0:	2402ffff 	li	v0,-1
+ 4b4:	3c02abcd 	lui	v0,0xabcd
+ 4b8:	3442ef01 	ori	v0,v0,0xef01
+ 4bc:	3c028000 	lui	v0,0x8000
+ 4c0:	3c027fff 	lui	v0,0x7fff
+ 4c4:	3442ffff 	ori	v0,v0,0xffff
+ 4c8:	3c020123 	lui	v0,0x123
+ 4cc:	34424567 	ori	v0,v0,0x4567
+ 4d0:	24020000 	li	v0,0
 	\.\.\.
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32.s binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32.s
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/ldstla-32.s	2003-10-01 02:07:48.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/ldstla-32.s	2005-04-11 18:04:12.000000000 +0000
@@ -1,26 +1,132 @@
 	.text
-	ld $2, 0x0123456789abcdef($3)
-	ld $2, 0xabcdef0123456789($3)
-	ld $2, 0xffffffff80000000($3)
-	ld $2, 0xffffffff00000000($3)
-	ld $2, 0xffffffff7fffffff($3)
-	ld $2, 0xabcdef01($3)
-	ld $2, 0x01234567($3)
-
-	sd $2, 0x0123456789abcdef($3)
-	sd $2, 0xabcdef0123456789($3)
-	sd $2, 0xffffffff80000000($3)
-	sd $2, 0xffffffff00000000($3)
-	sd $2, 0xffffffff7fffffff($3)
-	sd $2, 0xabcdef01($3)
-	sd $2, 0x01234567($3)
+	ld $2, 0xffffffffffffffff($4)
+	ld $2, 0xffffffffabcdef01($4)
+	ld $2, 0xffffffff80000000($4)
+	ld $2, 0xffffffff7fffffff($4)
+	ld $2, 0xffffffff01234567($4)
+	ld $2, 0xffffffff00000000($4)
+	ld $2, 0xffffffff($4)
+	ld $2, 0xabcdef01($4)
+	ld $2, 0x80000000($4)
+	ld $2, 0x7fffffff($4)
+	ld $2, 0x01234567($4)
+	ld $2, 0x00000000($4)
 
-	lw $2, 0xffffffff80000000($3)
-	lw $2, 0x01234567($3)
+	ld $2, 0xffffffffffffffff
+	ld $2, 0xffffffffabcdef01
+	ld $2, 0xffffffff80000000
+	ld $2, 0xffffffff7fffffff
+	ld $2, 0xffffffff01234567
+	ld $2, 0xffffffff00000000
+	ld $2, 0xffffffff
+	ld $2, 0xabcdef01
+	ld $2, 0x80000000
+	ld $2, 0x7fffffff
+	ld $2, 0x01234567
+	ld $2, 0x00000000
 
-	sw $2, 0x01234567($3)
+	sd $2, 0xffffffffffffffff($4)
+	sd $2, 0xffffffffabcdef01($4)
+	sd $2, 0xffffffff80000000($4)
+	sd $2, 0xffffffff7fffffff($4)
+	sd $2, 0xffffffff01234567($4)
+	sd $2, 0xffffffff00000000($4)
+	sd $2, 0xffffffff($4)
+	sd $2, 0xabcdef01($4)
+	sd $2, 0x80000000($4)
+	sd $2, 0x7fffffff($4)
+	sd $2, 0x01234567($4)
+	sd $2, 0x00000000($4)
 
+	sd $2, 0xffffffffffffffff
+	sd $2, 0xffffffffabcdef01
+	sd $2, 0xffffffff80000000
+	sd $2, 0xffffffff7fffffff
+	sd $2, 0xffffffff01234567
+	sd $2, 0xffffffff00000000
+	sd $2, 0xffffffff
+	sd $2, 0xabcdef01
+	sd $2, 0x80000000
+	sd $2, 0x7fffffff
+	sd $2, 0x01234567
+	sd $2, 0x00000000
+
+	lw $2, 0xffffffffffffffff($4)
+	lw $2, 0xffffffffabcdef01($4)
+	lw $2, 0xffffffff80000000($4)
+	lw $2, 0xffffffff7fffffff($4)
+	lw $2, 0xffffffff01234567($4)
+	lw $2, 0xffffffff00000000($4)
+	lw $2, 0xffffffff($4)
+	lw $2, 0xabcdef01($4)
+	lw $2, 0x80000000($4)
+	lw $2, 0x7fffffff($4)
+	lw $2, 0x01234567($4)
+	lw $2, 0x00000000($4)
+
+	lw $2, 0xffffffffffffffff
+	lw $2, 0xffffffffabcdef01
+	lw $2, 0xffffffff80000000
+	lw $2, 0xffffffff7fffffff
+	lw $2, 0xffffffff01234567
+	lw $2, 0xffffffff00000000
+	lw $2, 0xffffffff
+	lw $2, 0xabcdef01
+	lw $2, 0x80000000
+	lw $2, 0x7fffffff
+	lw $2, 0x01234567
+	lw $2, 0x00000000
+
+	sw $2, 0xffffffffffffffff($4)
+	sw $2, 0xffffffffabcdef01($4)
+	sw $2, 0xffffffff80000000($4)
+	sw $2, 0xffffffff7fffffff($4)
+	sw $2, 0xffffffff01234567($4)
+	sw $2, 0xffffffff00000000($4)
+	sw $2, 0xffffffff($4)
+	sw $2, 0xabcdef01($4)
+	sw $2, 0x80000000($4)
+	sw $2, 0x7fffffff($4)
+	sw $2, 0x01234567($4)
+	sw $2, 0x00000000($4)
+
+	sw $2, 0xffffffffffffffff
+	sw $2, 0xffffffffabcdef01
+	sw $2, 0xffffffff80000000
+	sw $2, 0xffffffff7fffffff
+	sw $2, 0xffffffff01234567
+	sw $2, 0xffffffff00000000
+	sw $2, 0xffffffff
+	sw $2, 0xabcdef01
+	sw $2, 0x80000000
+	sw $2, 0x7fffffff
+	sw $2, 0x01234567
+	sw $2, 0x00000000
+
+	la $2, 0xffffffffffffffff($4)
+	la $2, 0xffffffffabcdef01($4)
+	la $2, 0xffffffff80000000($4)
+	la $2, 0xffffffff7fffffff($4)
+	la $2, 0xffffffff01234567($4)
+	la $2, 0xffffffff00000000($4)
+	la $2, 0xffffffff($4)
+	la $2, 0xabcdef01($4)
+	la $2, 0x80000000($4)
+	la $2, 0x7fffffff($4)
+	la $2, 0x01234567($4)
+	la $2, 0x00000000($4)
+
+	la $2, 0xffffffffffffffff
+	la $2, 0xffffffffabcdef01
+	la $2, 0xffffffff80000000
+	la $2, 0xffffffff7fffffff
+	la $2, 0xffffffff01234567
+	la $2, 0xffffffff00000000
+	la $2, 0xffffffff
+	la $2, 0xabcdef01
+	la $2, 0x80000000
 	la $2, 0x7fffffff
 	la $2, 0x01234567
+	la $2, 0x00000000
 
 	.space 8
diff -up --recursive --new-file binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/mips.exp binutils-2.15.96-20050331/gas/testsuite/gas/mips/mips.exp
--- binutils-2.15.96-20050331.macro/gas/testsuite/gas/mips/mips.exp	2005-03-09 09:53:20.000000000 +0000
+++ binutils-2.15.96-20050331/gas/testsuite/gas/mips/mips.exp	2005-04-11 16:49:03.000000000 +0000
@@ -727,7 +727,17 @@ if { [istarget mips*-*-*] } then {
     run_dump_test "hwr-names-mips64r2"
 
     run_dump_test "ldstla-32"
+    run_dump_test "ldstla-32-mips3"
     run_dump_test "ldstla-32-shared"
+    run_dump_test "ldstla-32-mips3-shared"
+    run_list_test "ldstla-32-1" "-mabi=32" \
+	"MIPS ld-st-la bad constants (ABI o32)"
+    run_list_test "ldstla-32-mips3-1" "-mabi=32" \
+	"MIPS ld-st-la bad constants (ABI o32, mips3)"
+    run_list_test "ldstla-32-1" "-KPIC -mabi=32" \
+	"MIPS ld-st-la bad constants (ABI o32, shared)"
+    run_list_test "ldstla-32-mips3-1" "-KPIC -mabi=32" \
+	"MIPS ld-st-la bad constants (ABI o32, mips3, shared)"
     run_dump_test "ldstla-eabi64"
     if $has_newabi {
 	run_dump_test "ldstla-n64"

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-11 18:23             ` Maciej W. Rozycki
@ 2005-04-11 21:40               ` Eric Christopher
  2005-04-12 18:07                 ` Maciej W. Rozycki
  2005-04-15  1:12               ` Atsushi Nemoto
  1 sibling, 1 reply; 23+ messages in thread
From: Eric Christopher @ 2005-04-11 21:40 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Daniel Jacobowitz, Atsushi Nemoto, binutils


> 
> gas/:
> 2005-04-11  Maciej W. Rozycki  <macro@linux-mips.org>
> 
>         * config/tc-mips.c (IS_ZEXT_32BIT_NUM): New macro.
>         (normalize_address_expr): New function to sign-extend address
>         offsets that fit into 32 bits in 32-bit mode.
>         (macro_build_ldst_constoffset): Use normalize_address_expr()
>         instead of a handcoded sequence.
>         (load_register): Likewise.  Report oversized numbers in a useful
>         way.
>         (macro) [ld_st, ldd_std]: Reject all oversized offsets, not only
>         for constant addresses.  Report oversized numbers in a useful way.
>         (mips_ip): Use normalize_address_expr() for addresses.
> 
> gas/testsuite/:
> 2005-04-11  Maciej W. Rozycki  <macro@linux-mips.org>
> 
>         * gas/mips/ldstla-32.s: Exclude offsets that are now meant to fail
>         and include more instructions/offsets that are meant to succeed.
>         Use $4 instead $3 to avoid register dependencies.
>         * gas/mips/ldstla-32.d: Update accordingly.
>         * gas/mips/ldstla-32-shared.d: Likewise.
> 	* gas/mips/ldstla-32-mips3.d: New test based on the above, except 
> 	for mips3.
> 	* gas/mips/ldstla-32-mips3-shared.d: Similarly, for PIC.
> 	* gas/mips/ldstla-32-mips3.s: Source for the new tests.
>         * gas/mips/ldstla-32-1.s: New test for offsets that are meant to
>         fail.
> 	* gas/mips/ldstla-32-mips3-1.s: Likewise, for mips3.
>         * gas/mips/ldstla-32-1.l: Stderr output for the new test.
> 	* gas/mips/ldstla-32-mips3-1.l: Likewise.
>         * gas/mips/mips.exp: Run the new tests.
> 
>  I've tested it with mips64el-linux-gnu with no regressions.  OK to apply?
> 

This is all OK for 2.16, committing it to mainline for the current
timeframe is ok since you plan on working on a different implementation.
I'd like them to be mostly the same while working on things.

Interestingly enough there's still the problem of this:

la $2,0x80000000

on 64-bit abis. I believe the general consensus is to sign-extend the
constant when loading it. Currently we expand to:

ori $2,$0,0x8000
dsll $2,$2,0x10

which ends up getting us a zero-extended value which ends up being
unpredictable for calculations based on that.

>  I haven't updated documentation though, as I consider it a short-term 
> hack for 2.16 only.  For 2.17, I think expr() should be modified to be 
> able to do signed arithmetic/logic and perform operations modulo (1 << n), 
> at least for reasonable values of n.  Therefore only that implementation 
> would be able to specify the desired number ranges accepted rather than 
> accept what happens to be implemented.
> 
>  Does it sound reasonable?  I hope so.

Elaborate a bit please? It sounds ok so far, but I like examples :)

I'm working on some documentation for all of the macro instructions we
support since this is getting to be mind numbing as to what we should
expect and how we handle it. Any start that you have would be nice as
well.

-eric

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-11 21:40               ` Eric Christopher
@ 2005-04-12 18:07                 ` Maciej W. Rozycki
  2005-04-12 18:25                   ` Eric Christopher
  0 siblings, 1 reply; 23+ messages in thread
From: Maciej W. Rozycki @ 2005-04-12 18:07 UTC (permalink / raw)
  To: Eric Christopher; +Cc: Daniel Jacobowitz, Atsushi Nemoto, binutils

On Mon, 11 Apr 2005, Eric Christopher wrote:

> This is all OK for 2.16, committing it to mainline for the current
> timeframe is ok since you plan on working on a different implementation.
> I'd like them to be mostly the same while working on things.
> 
> Interestingly enough there's still the problem of this:
> 
> la $2,0x80000000
> 
> on 64-bit abis. I believe the general consensus is to sign-extend the
> constant when loading it. Currently we expand to:
> 
> ori $2,$0,0x8000
> dsll $2,$2,0x10
> 
> which ends up getting us a zero-extended value which ends up being
> unpredictable for calculations based on that.

 Well, with "-mabi=32" or "-mabi=n32" I get:

lui	$2,0x8000

and with "-mabi=64" I get:

ori	$2,$0,0x8000
dsll	$2,$2,0x10

(and a warning about "la" being used with a 64-bit address).  I do believe 
this is exactly what is desired.  I'm afraid for "-mabi=64" you are 
expected to specify "0xffffffff80000000" explicitly -- there are no 
excuses.

> >  I haven't updated documentation though, as I consider it a short-term 
> > hack for 2.16 only.  For 2.17, I think expr() should be modified to be 
> > able to do signed arithmetic/logic and perform operations modulo (1 << n), 
> > at least for reasonable values of n.  Therefore only that implementation 
> > would be able to specify the desired number ranges accepted rather than 
> > accept what happens to be implemented.
> > 
> >  Does it sound reasonable?  I hope so.
> 
> Elaborate a bit please? It sounds ok so far, but I like examples :)

 Well, no code example as I haven't touched it yet, but semantically-wise 
I think calls to expr() should should be able to specify the width of the 
ALU word to operate on and whether to treat literals as signed or not.  
Then any literal will get internally either zero- or sign-extended from 
the specified width to the width of the internal representation (i.e that 
of offsetT) as will any results produced.  Encountering a literal wider 
than the specified width should probably result in treating it as O_big.

 This way we'll be able to specify precisely when we want to know about 
falling outside the 32-bit space (and possibly the 16-bit one, too) as 
well as get information about it having actually happened.  And we'll 
avoid the ambiguity of whether bits 63:32 are all set as a result of a 
logical negation of a legitimate 32-bit number or were actually 
incorrectly coded in a source.

> I'm working on some documentation for all of the macro instructions we
> support since this is getting to be mind numbing as to what we should
> expect and how we handle it. Any start that you have would be nice as
> well.

 I have no written document available of any kind, but I can surely 
provide feedback.

  Maciej

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-12 18:07                 ` Maciej W. Rozycki
@ 2005-04-12 18:25                   ` Eric Christopher
  2005-04-13 17:55                     ` Maciej W. Rozycki
  0 siblings, 1 reply; 23+ messages in thread
From: Eric Christopher @ 2005-04-12 18:25 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Daniel Jacobowitz, Atsushi Nemoto, binutils


> 
>  Well, with "-mabi=32" or "-mabi=n32" I get:
> 
> lui	$2,0x8000
> 
> and with "-mabi=64" I get:
> 
> ori	$2,$0,0x8000
> dsll	$2,$2,0x10
> 
> (and a warning about "la" being used with a 64-bit address).  I do believe 
> this is exactly what is desired.  I'm afraid for "-mabi=64" you are 
> expected to specify "0xffffffff80000000" explicitly -- there are no 
> excuses.

Fair enough. It does appear to work in 32-bit mode as well. There's been
some discussion on this that we should automatically sign extend
constants that are loaded as an address.

>  Well, no code example as I haven't touched it yet, but semantically-wise 
> I think calls to expr() should should be able to specify the width of the 
> ALU word to operate on and whether to treat literals as signed or not.  
> Then any literal will get internally either zero- or sign-extended from 
> the specified width to the width of the internal representation (i.e that 
> of offsetT) as will any results produced.  Encountering a literal wider 
> than the specified width should probably result in treating it as O_big.
> 

This is close to what I was thinking of yesterday. One thought was that
any literal that comes in as a "load address" should be considered to be
sign extended to the size of the register, and a "load register" should
be zero extended.

>  I have no written document available of any kind, but I can surely 
> provide feedback.

OK.

-eric

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-12 18:25                   ` Eric Christopher
@ 2005-04-13 17:55                     ` Maciej W. Rozycki
  0 siblings, 0 replies; 23+ messages in thread
From: Maciej W. Rozycki @ 2005-04-13 17:55 UTC (permalink / raw)
  To: Eric Christopher; +Cc: Daniel Jacobowitz, Atsushi Nemoto, binutils

On Tue, 12 Apr 2005, Eric Christopher wrote:

> >  Well, no code example as I haven't touched it yet, but semantically-wise 
> > I think calls to expr() should should be able to specify the width of the 
> > ALU word to operate on and whether to treat literals as signed or not.  
> > Then any literal will get internally either zero- or sign-extended from 
> > the specified width to the width of the internal representation (i.e that 
> > of offsetT) as will any results produced.  Encountering a literal wider 
> > than the specified width should probably result in treating it as O_big.
> > 
> 
> This is close to what I was thinking of yesterday. One thought was that
> any literal that comes in as a "load address" should be considered to be
> sign extended to the size of the register, and a "load register" should
> be zero extended.

 Certainly, but that's something that callers have to take into account as 
expr() itself cannot make such a decision.

  Maciej

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-11 18:23             ` Maciej W. Rozycki
  2005-04-11 21:40               ` Eric Christopher
@ 2005-04-15  1:12               ` Atsushi Nemoto
  2005-04-17 12:22                 ` Atsushi Nemoto
  2005-04-18  6:25                 ` Atsushi Nemoto
  1 sibling, 2 replies; 23+ messages in thread
From: Atsushi Nemoto @ 2005-04-15  1:12 UTC (permalink / raw)
  To: macro; +Cc: echristo, drow, binutils

>>>>> On Mon, 11 Apr 2005 19:22:48 +0100 (BST), "Maciej W. Rozycki" <macro@linux-mips.org> said:
macro>  Well, I think I've got this finally resolved -- for 2.16, that
macro> is.  It turned out we should probably accept values with bits
macro> 63:32 all set -- otherwise negation may not work for certain
macro> ranges of constants.  Here's the implementation:

Thanks, I have no problem with this.

BTW, it seems the patch is for mainline, not 2.16 branch.  I hope
upcomming 2.16 will contain this patch.

---
Atsushi Nemoto

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-15  1:12               ` Atsushi Nemoto
@ 2005-04-17 12:22                 ` Atsushi Nemoto
  2005-04-18  6:25                 ` Atsushi Nemoto
  1 sibling, 0 replies; 23+ messages in thread
From: Atsushi Nemoto @ 2005-04-17 12:22 UTC (permalink / raw)
  To: binutils; +Cc: drow

>>>>> On Fri, 15 Apr 2005 10:12:13 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> said:

anemo> BTW, it seems the patch is for mainline, not 2.16 branch.

Sorry, this is my wrong guess.  I checked out 2.16 branch and found
the patch has been applied already.

But CVSWEB interface still shows no commits to 2.16 branch on
gas/config/tc-mips.c file.  It looks CVSWEB on binutils source tree is
strangely broken.

---
Atsushi Nemoto

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-15  1:12               ` Atsushi Nemoto
  2005-04-17 12:22                 ` Atsushi Nemoto
@ 2005-04-18  6:25                 ` Atsushi Nemoto
  2005-04-18  8:53                   ` Atsushi Nemoto
  1 sibling, 1 reply; 23+ messages in thread
From: Atsushi Nemoto @ 2005-04-18  6:25 UTC (permalink / raw)
  To: macro; +Cc: echristo, drow, binutils

>>>>> On Fri, 15 Apr 2005 10:12:13 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> said:
anemo> Thanks, I have no problem with this.

No, I still have a problem ...

$ cat foo.s
	li	$8, 0x80000010
$ mips64-linux-as -64 foo.s
foo.s: Assembler messages:
foo.s:1: Error: Number (0x080000010) larger than 32 bits

Isn't this acceptable?  This code comes from linux-mips kernel.

In arch/mips/kernel/entry.S:
	li	t0, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT
Where:
#define TIF_SYSCALL_TRACE	31	/* syscall trace active */
#define _TIF_POLLING_NRFLAG	(1<<TIF_POLLING_NRFLAG)

Should we modify the kernel code?

Thank you.
---
Atsushi Nemoto

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: "Error: constant too large" on mips gas
  2005-04-18  6:25                 ` Atsushi Nemoto
@ 2005-04-18  8:53                   ` Atsushi Nemoto
  0 siblings, 0 replies; 23+ messages in thread
From: Atsushi Nemoto @ 2005-04-18  8:53 UTC (permalink / raw)
  To: macro; +Cc: echristo, drow, binutils

>>>>> On Mon, 18 Apr 2005 15:25:04 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> said:
anemo> foo.s:1: Error: Number (0x080000010) larger than 32 bits

anemo> Isn't this acceptable?  This code comes from linux-mips kernel.

I found a patch by Maceij already available on this ML.  The patch
works fine for me.  Thank you.  Sorry for duplicated report.

---
Atsushi Nemoto

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2005-04-18  8:53 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-01  3:35 "Error: constant too large" on mips gas Atsushi Nemoto
2005-04-04  8:58 ` Atsushi Nemoto
2005-04-04 13:37   ` Maciej W. Rozycki
2005-04-04 13:40     ` Daniel Jacobowitz
2005-04-04 14:00       ` Maciej W. Rozycki
2005-04-04 18:10     ` Eric Christopher
2005-04-05 18:41       ` Maciej W. Rozycki
2005-04-05 18:41         ` Eric Christopher
2005-04-05 18:56         ` Daniel Jacobowitz
2005-04-09 15:31         ` Daniel Jacobowitz
2005-04-09 17:47           ` Eric Christopher
2005-04-11 18:23             ` Maciej W. Rozycki
2005-04-11 21:40               ` Eric Christopher
2005-04-12 18:07                 ` Maciej W. Rozycki
2005-04-12 18:25                   ` Eric Christopher
2005-04-13 17:55                     ` Maciej W. Rozycki
2005-04-15  1:12               ` Atsushi Nemoto
2005-04-17 12:22                 ` Atsushi Nemoto
2005-04-18  6:25                 ` Atsushi Nemoto
2005-04-18  8:53                   ` Atsushi Nemoto
2005-04-05  2:38     ` Atsushi Nemoto
2005-04-05  4:28       ` Atsushi Nemoto
2005-04-05  4:34         ` Thiemo Seufer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).