gas/:
authorMaciej W. Rozycki <macro@linux-mips.org>
Wed, 13 Apr 2005 18:17:10 +0000 (18:17 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Wed, 13 Apr 2005 18:17:10 +0000 (18:17 +0000)
* 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/:
* 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.

14 files changed:
gas/ChangeLog
gas/config/tc-mips.c
gas/testsuite/ChangeLog
gas/testsuite/gas/mips/ldstla-32-1.l [new file with mode: 0644]
gas/testsuite/gas/mips/ldstla-32-1.s [new file with mode: 0644]
gas/testsuite/gas/mips/ldstla-32-mips3-1.l [new file with mode: 0644]
gas/testsuite/gas/mips/ldstla-32-mips3-1.s [new file with mode: 0644]
gas/testsuite/gas/mips/ldstla-32-mips3-shared.d [new file with mode: 0644]
gas/testsuite/gas/mips/ldstla-32-mips3.d [new file with mode: 0644]
gas/testsuite/gas/mips/ldstla-32-mips3.s [new file with mode: 0644]
gas/testsuite/gas/mips/ldstla-32-shared.d
gas/testsuite/gas/mips/ldstla-32.d
gas/testsuite/gas/mips/ldstla-32.s
gas/testsuite/gas/mips/mips.exp

index d756de3..944f316 100644 (file)
@@ -1,3 +1,16 @@
+2005-04-13  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.
+
 2005-04-12  Mark Kettenis  <kettenis@gnu.org>
 
        * config/tc-i386.c (output_insn): Handle VIA PadLock instructions
index d622d4b..a13b06e 100644 (file)
@@ -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, const char *name, const char *fmt,
   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 (expressionS *ep, const char *op,
   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, int dbl)
       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, int dbl)
 
   /* 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;
index 0083029..cbeb46d 100644 (file)
@@ -1,3 +1,21 @@
+2005-04-13  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.
+
 2005-04-11  Mark Kettenis  <kettenis@gnu.org>
 
        * gas/all/gas.exp: Don't run fastcall labels test on
diff --git a/gas/testsuite/gas/mips/ldstla-32-1.l b/gas/testsuite/gas/mips/ldstla-32-1.l
new file mode 100644 (file)
index 0000000..0ee83c9
--- /dev/null
@@ -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 --git a/gas/testsuite/gas/mips/ldstla-32-1.s b/gas/testsuite/gas/mips/ldstla-32-1.s
new file mode 100644 (file)
index 0000000..2037e33
--- /dev/null
@@ -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 --git a/gas/testsuite/gas/mips/ldstla-32-mips3-1.l b/gas/testsuite/gas/mips/ldstla-32-mips3-1.l
new file mode 100644 (file)
index 0000000..26a0a4f
--- /dev/null
@@ -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 --git a/gas/testsuite/gas/mips/ldstla-32-mips3-1.s b/gas/testsuite/gas/mips/ldstla-32-mips3-1.s
new file mode 100644 (file)
index 0000000..4b3d653
--- /dev/null
@@ -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 --git a/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d b/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d
new file mode 100644 (file)
index 0000000..11bca35
--- /dev/null
@@ -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 --git a/gas/testsuite/gas/mips/ldstla-32-mips3.d b/gas/testsuite/gas/mips/ldstla-32-mips3.d
new file mode 100644 (file)
index 0000000..a6f0ed1
--- /dev/null
@@ -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 --git a/gas/testsuite/gas/mips/ldstla-32-mips3.s b/gas/testsuite/gas/mips/ldstla-32-mips3.s
new file mode 100644 (file)
index 0000000..e4e5a8f
--- /dev/null
@@ -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
index bcb6bd6..b9e1f13 100644 (file)
@@ -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
 
 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
        \.\.\.
index 989cd7e..6c467c4 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -d
-#as: -32
+#as: -mabi=32
 #name: MIPS ld-st-la constants (ABI o32)
 #source: ldstla-32.s
 
 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
        \.\.\.
index 0f36327..642c3d0 100644 (file)
        .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)
-
-       lw $2, 0xffffffff80000000($3)
-       lw $2, 0x01234567($3)
-
-       sw $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)
 
+       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
index 8750878..09da50b 100644 (file)
@@ -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"