From 2051e8c45faf97a1f6edb065c23a6a5e8fb8c484 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Wed, 13 Apr 2005 18:17:10 +0000 Subject: [PATCH] gas/: * 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. --- gas/ChangeLog | 13 + gas/config/tc-mips.c | 87 ++-- gas/testsuite/ChangeLog | 18 + gas/testsuite/gas/mips/ldstla-32-1.l | 81 ++++ gas/testsuite/gas/mips/ldstla-32-1.s | 73 ++++ gas/testsuite/gas/mips/ldstla-32-mips3-1.l | 101 +++++ gas/testsuite/gas/mips/ldstla-32-mips3-1.s | 73 ++++ .../gas/mips/ldstla-32-mips3-shared.d | 271 +++++++++++++ gas/testsuite/gas/mips/ldstla-32-mips3.d | 271 +++++++++++++ gas/testsuite/gas/mips/ldstla-32-mips3.s | 133 ++++++ gas/testsuite/gas/mips/ldstla-32-shared.d | 380 ++++++++++++++---- gas/testsuite/gas/mips/ldstla-32.d | 380 ++++++++++++++---- gas/testsuite/gas/mips/ldstla-32.s | 146 ++++++- gas/testsuite/gas/mips/mips.exp | 10 + 14 files changed, 1844 insertions(+), 193 deletions(-) create mode 100644 gas/testsuite/gas/mips/ldstla-32-1.l create mode 100644 gas/testsuite/gas/mips/ldstla-32-1.s create mode 100644 gas/testsuite/gas/mips/ldstla-32-mips3-1.l create mode 100644 gas/testsuite/gas/mips/ldstla-32-mips3-1.s create mode 100644 gas/testsuite/gas/mips/ldstla-32-mips3-shared.d create mode 100644 gas/testsuite/gas/mips/ldstla-32-mips3.d create mode 100644 gas/testsuite/gas/mips/ldstla-32-mips3.s diff --git a/gas/ChangeLog b/gas/ChangeLog index d756de33f5..944f31688e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,16 @@ +2005-04-13 Maciej W. Rozycki + + * 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 * config/tc-i386.c (output_insn): Handle VIA PadLock instructions diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index d622d4bc29..a13b06ece5 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -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; diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 00830294e5..cbeb46d567 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,21 @@ +2005-04-13 Maciej W. Rozycki + + * 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 * 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 index 0000000000..0ee83c94fb --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32-1.l @@ -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 index 0000000000..2037e33fce --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32-1.s @@ -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 index 0000000000..26a0a4f2a6 --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32-mips3-1.l @@ -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 index 0000000000..4b3d6539cb --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32-mips3-1.s @@ -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 index 0000000000..11bca35d6c --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d @@ -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 index 0000000000..a6f0ed1f17 --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32-mips3.d @@ -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 index 0000000000..e4e5a8fa1b --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32-mips3.s @@ -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 --git a/gas/testsuite/gas/mips/ldstla-32-shared.d b/gas/testsuite/gas/mips/ldstla-32-shared.d index bcb6bd6a8d..b9e1f139d7 100644 --- a/gas/testsuite/gas/mips/ldstla-32-shared.d +++ b/gas/testsuite/gas/mips/ldstla-32-shared.d @@ -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 --git a/gas/testsuite/gas/mips/ldstla-32.d b/gas/testsuite/gas/mips/ldstla-32.d index 989cd7e0eb..6c467c48bb 100644 --- a/gas/testsuite/gas/mips/ldstla-32.d +++ b/gas/testsuite/gas/mips/ldstla-32.d @@ -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 --git a/gas/testsuite/gas/mips/ldstla-32.s b/gas/testsuite/gas/mips/ldstla-32.s index 0f363279e7..642c3d09ca 100644 --- a/gas/testsuite/gas/mips/ldstla-32.s +++ b/gas/testsuite/gas/mips/ldstla-32.s @@ -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) - - 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 diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 875087845b..09da50b371 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -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" -- 2.34.1