diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2005-04-13 18:17:48 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@linux-mips.org> | 2005-04-13 18:17:48 +0000 |
commit | 44bff94a802d571d7a8ed7f0966637cd91cc631f (patch) | |
tree | f030e7c6ff2835650d71e2d73b71a03a6738adea /gas | |
parent | 0298e8bd2eace9c5d50f583784e89a47ef7143dc (diff) | |
download | gdb-44bff94a802d571d7a8ed7f0966637cd91cc631f.zip gdb-44bff94a802d571d7a8ed7f0966637cd91cc631f.tar.gz gdb-44bff94a802d571d7a8ed7f0966637cd91cc631f.tar.bz2 |
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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 13 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 87 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/ldstla-32-shared.d | 380 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/ldstla-32.d | 380 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/ldstla-32.s | 146 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips.exp | 10 |
7 files changed, 841 insertions, 193 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 852d4b0..6bc7518 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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-13 Jan Beulich <jbeulich@novell.com> H.J. Lu <hongjiu.lu@intel.com> diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 73eab2a..2c2fbfc 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 f7e1b4f..e5ebd34 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -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-13 Jan Beulich <jbeulich@novell.com> H.J. Lu <hongjiu.lu@intel.com> diff --git a/gas/testsuite/gas/mips/ldstla-32-shared.d b/gas/testsuite/gas/mips/ldstla-32-shared.d index bcb6bd6..b9e1f13 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 989cd7e..6c467c4 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 0f36327..642c3d0 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 8750878..09da50b 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" |