This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: "Error: constant too large" on mips gas
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"