* "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).