From: Thiemo Seufer Date: Wed, 1 Oct 2003 02:07:48 +0000 (+0000) Subject: * config/tc-mips.c (macro_build_ldst_constoffset): Fix sign extension X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ecd13cd3ed9a3fcc6b539db7675807eb1f35f114;p=binutils-gdb.git * config/tc-mips.c (macro_build_ldst_constoffset): Fix sign extension tests. (load_register): Likewise. (macro): Likewise. * gas/mips/ldstla-32-shared.d: New file. * gas/mips/ldstla-32.d: New file. * gas/mips/ldstla-32.s: New file. * gas/mips/ldstla-n32-shared.d: New file. * gas/mips/ldstla-n32.d: New file. * gas/mips/ldstla-n32.s: New file. * gas/mips/ldstla-n64-shared.d: New file. * gas/mips/ldstla-n64.d: New file. * gas/mips/ldstla-n64.s: New file. * gas/mips/mips.exp: Add ld-st-la tests. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 3c05999e061..761b259af5f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2003-10-01 Thiemo Seufer + + * config/tc-mips.c (macro_build_ldst_constoffset): Fix sign extension + tests. + (load_register): Likewise. + (macro): Likewise. + 2003-09-30 Chris Demetriou * config/tc-mips.c (mips_ip): Capitalize first word of diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index a1f2d3829d3..18cb24bb113 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -3269,8 +3269,8 @@ macro_build_ldst_constoffset (char *place, int *counter, expressionS *ep, /* Sign-extending 32-bit constants makes their handling easier. */ if (! dbl) { - if (ep->X_add_number & ~((bfd_vma) 0xffffffff) - && ~(ep->X_add_number | 0xffffffff)) + if (ep->X_add_number & ~((bfd_vma) 0x7fffffff) + && ~(ep->X_add_number | 0x7fffffff)) as_bad (_("too large constant specified")); ep->X_add_number = (((ep->X_add_number & 0xffffffff) ^ 0x80000000) @@ -3278,7 +3278,7 @@ macro_build_ldst_constoffset (char *place, int *counter, expressionS *ep, } /* Right now, this routine can only handle signed 32-bit contants. */ - if (! IS_SEXT_32BIT_NUM(ep->X_add_number)) + if (! IS_SEXT_32BIT_NUM(ep->X_add_number + 0x8000)) as_warn (_("operand overflow")); if (IS_SEXT_16BIT_NUM(ep->X_add_number)) @@ -3433,8 +3433,8 @@ load_register (int *counter, int reg, expressionS *ep, int dbl) /* Sign-extending 32-bit constants makes their handling easier. */ if (! dbl) { - if (ep->X_add_number & ~((bfd_vma) 0xffffffff) - && ~(ep->X_add_number | 0xffffffff)) + if (ep->X_add_number & ~((bfd_vma) 0x7fffffff) + && ~(ep->X_add_number | 0x7fffffff)) as_bad (_("too large constant specified")); ep->X_add_number = (((ep->X_add_number & 0xffffffff) ^ 0x80000000) @@ -5113,7 +5113,7 @@ macro (struct mips_cl_insn *ip) RELAX_ENCODE (8, 4, 0, 0, 0, 0), offset_expr.X_add_symbol, 0, NULL); } - else if (IS_SEXT_32BIT_NUM (expr1.X_add_number)) + else if (IS_SEXT_32BIT_NUM (expr1.X_add_number + 0x8000)) { int dreg; @@ -5461,7 +5461,7 @@ macro (struct mips_cl_insn *ip) mips_opts.warn_about_macros), offset_expr.X_add_symbol, 0, NULL); } - else if (IS_SEXT_32BIT_NUM (expr1.X_add_number)) + else if (IS_SEXT_32BIT_NUM (expr1.X_add_number + 0x8000)) { int dreg; @@ -5943,8 +5943,8 @@ macro (struct mips_cl_insn *ip) && (! HAVE_64BIT_GPRS && offset_expr.X_op == O_constant)) && (offset_expr.X_op == O_constant)) { - if (offset_expr.X_add_number & ~((bfd_vma) 0xffffffff) - && ~(offset_expr.X_add_number | 0xffffffff)) + if (offset_expr.X_add_number & ~((bfd_vma) 0x7fffffff) + && ~(offset_expr.X_add_number | 0x7fffffff)) as_bad (_("too large constant specified")); offset_expr.X_add_number = (((offset_expr.X_add_number & 0xffffffff) @@ -6137,7 +6137,7 @@ macro (struct mips_cl_insn *ip) } if (offset_expr.X_op == O_constant - && ! IS_SEXT_32BIT_NUM (offset_expr.X_add_number)) + && ! IS_SEXT_32BIT_NUM (offset_expr.X_add_number + 0x8000)) as_bad (_("load/store address overflow (max 32 bits)")); if (breg == 0) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 677a75d0316..82caa448c9d 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,16 @@ +2003-10-01 Thiemo Seufer + + * gas/mips/ldstla-32-shared.d: New file. + * gas/mips/ldstla-32.d: New file. + * gas/mips/ldstla-32.s: New file. + * gas/mips/ldstla-n32-shared.d: New file. + * gas/mips/ldstla-n32.d: New file. + * gas/mips/ldstla-n32.s: New file. + * gas/mips/ldstla-n64-shared.d: New file. + * gas/mips/ldstla-n64.d: New file. + * gas/mips/ldstla-n64.s: New file. + * gas/mips/mips.exp: Add ld-st-la tests. + 2003-09-30 Chris Demetriou * lib/gas-defs.exp (run_dump_test): If stderr file is specified diff --git a/gas/testsuite/gas/mips/ldstla-32-shared.d b/gas/testsuite/gas/mips/ldstla-32-shared.d new file mode 100644 index 00000000000..bcb6bd6a8d7 --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32-shared.d @@ -0,0 +1,80 @@ +#objdump: -d +#as: -KPIC -32 +#name: MIPS ld-st-la constants (ABI o32, shared) +#source: ldstla-32.s + +.*: +file format elf32-.*mips + +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 + \.\.\. diff --git a/gas/testsuite/gas/mips/ldstla-32.d b/gas/testsuite/gas/mips/ldstla-32.d new file mode 100644 index 00000000000..989cd7e0eb7 --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32.d @@ -0,0 +1,80 @@ +#objdump: -d +#as: -32 +#name: MIPS ld-st-la constants (ABI o32) +#source: ldstla-32.s + +.*: +file format elf32-.*mips + +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 + \.\.\. diff --git a/gas/testsuite/gas/mips/ldstla-32.s b/gas/testsuite/gas/mips/ldstla-32.s new file mode 100644 index 00000000000..0f363279e72 --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-32.s @@ -0,0 +1,26 @@ + .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) + + la $2, 0x7fffffff + la $2, 0x01234567 + + .space 8 diff --git a/gas/testsuite/gas/mips/ldstla-n32-shared.d b/gas/testsuite/gas/mips/ldstla-n32-shared.d new file mode 100644 index 00000000000..0d4655b0dcf --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-n32-shared.d @@ -0,0 +1,154 @@ +#objdump: -d +#as: -KPIC -n32 +#name: MIPS ld-st-la constants (ABI n32, shared) +#source: ldstla-n32.s + +.*: +file format elf32-n.*mips + +Disassembly of section \.text: + +00000000 <\.text>: + 0: 3c020123 lui v0,0x123 + 4: 3c0189ac lui at,0x89ac + 8: 64424568 daddiu v0,v0,17768 + c: 0023082d daddu at,at,v1 + 10: 0002103c dsll32 v0,v0,0x0 + 14: 0041102d daddu v0,v0,at + 18: dc42cdef ld v0,-12817\(v0\) + 1c: 3c02abce lui v0,0xabce + 20: 3c012345 lui at,0x2345 + 24: 6442ef01 daddiu v0,v0,-4351 + 28: 0023082d daddu at,at,v1 + 2c: 0002103c dsll32 v0,v0,0x0 + 30: 0041102d daddu v0,v0,at + 34: dc426789 ld v0,26505\(v0\) + 38: 3c028000 lui v0,0x8000 + 3c: 00431021 addu v0,v0,v1 + 40: dc420000 ld v0,0\(v0\) + 44: 3c020000 lui v0,0x0 + 48: 3c010000 lui at,0x0 + 4c: 6442ffff daddiu v0,v0,-1 + 50: 0023082d daddu at,at,v1 + 54: 0002103c dsll32 v0,v0,0x0 + 58: 0041102d daddu v0,v0,at + 5c: dc420000 ld v0,0\(v0\) + 60: 3c020000 lui v0,0x0 + 64: 3c01abce lui at,0xabce + 68: 64420001 daddiu v0,v0,1 + 6c: 0023082d daddu at,at,v1 + 70: 0002103c dsll32 v0,v0,0x0 + 74: 0041102d daddu v0,v0,at + 78: dc42ef01 ld v0,-4351\(v0\) + 7c: 3c020123 lui v0,0x123 + 80: 00431021 addu v0,v0,v1 + 84: dc424567 ld v0,17767\(v0\) + 88: 3c010123 lui at,0x123 + 8c: 64214568 daddiu at,at,17768 + 90: 00010c38 dsll at,at,0x10 + 94: 642189ac daddiu at,at,-30292 + 98: 00010c38 dsll at,at,0x10 + 9c: 0023082d daddu at,at,v1 + a0: fc22cdef sd v0,-12817\(at\) + a4: 3c01abce lui at,0xabce + a8: 6421ef01 daddiu at,at,-4351 + ac: 00010c38 dsll at,at,0x10 + b0: 64212345 daddiu at,at,9029 + b4: 00010c38 dsll at,at,0x10 + b8: 0023082d daddu at,at,v1 + bc: fc226789 sd v0,26505\(at\) + c0: 3c018000 lui at,0x8000 + c4: 00230821 addu at,at,v1 + c8: fc220000 sd v0,0\(at\) + cc: 3c010000 lui at,0x0 + d0: 6421ffff daddiu at,at,-1 + d4: 00010c38 dsll at,at,0x10 + d8: 64210000 daddiu at,at,0 + dc: 00010c38 dsll at,at,0x10 + e0: 0023082d daddu at,at,v1 + e4: fc220000 sd v0,0\(at\) + e8: 3c010000 lui at,0x0 + ec: 64210001 daddiu at,at,1 + f0: 00010c38 dsll at,at,0x10 + f4: 6421abce daddiu at,at,-21554 + f8: 00010c38 dsll at,at,0x10 + fc: 0023082d daddu at,at,v1 + 100: fc22ef01 sd v0,-4351\(at\) + 104: 3c010123 lui at,0x123 + 108: 00230821 addu at,at,v1 + 10c: fc224567 sd v0,17767\(at\) + 110: 3c020123 lui v0,0x123 + 114: 3c0189ac lui at,0x89ac + 118: 64424568 daddiu v0,v0,17768 + 11c: 0023082d daddu at,at,v1 + 120: 0002103c dsll32 v0,v0,0x0 + 124: 0041102d daddu v0,v0,at + 128: 8c42cdef lw v0,-12817\(v0\) + 12c: 3c02abce lui v0,0xabce + 130: 3c012345 lui at,0x2345 + 134: 6442ef01 daddiu v0,v0,-4351 + 138: 0023082d daddu at,at,v1 + 13c: 0002103c dsll32 v0,v0,0x0 + 140: 0041102d daddu v0,v0,at + 144: 8c426789 lw v0,26505\(v0\) + 148: 3c028000 lui v0,0x8000 + 14c: 00431021 addu v0,v0,v1 + 150: 8c420000 lw v0,0\(v0\) + 154: 3c020000 lui v0,0x0 + 158: 3c010000 lui at,0x0 + 15c: 6442ffff daddiu v0,v0,-1 + 160: 0023082d daddu at,at,v1 + 164: 0002103c dsll32 v0,v0,0x0 + 168: 0041102d daddu v0,v0,at + 16c: 8c420000 lw v0,0\(v0\) + 170: 3c020000 lui v0,0x0 + 174: 3c01abce lui at,0xabce + 178: 64420001 daddiu v0,v0,1 + 17c: 0023082d daddu at,at,v1 + 180: 0002103c dsll32 v0,v0,0x0 + 184: 0041102d daddu v0,v0,at + 188: 8c42ef01 lw v0,-4351\(v0\) + 18c: 3c020123 lui v0,0x123 + 190: 00431021 addu v0,v0,v1 + 194: 8c424567 lw v0,17767\(v0\) + 198: 3c010123 lui at,0x123 + 19c: 64214568 daddiu at,at,17768 + 1a0: 00010c38 dsll at,at,0x10 + 1a4: 642189ac daddiu at,at,-30292 + 1a8: 00010c38 dsll at,at,0x10 + 1ac: 0023082d daddu at,at,v1 + 1b0: ac22cdef sw v0,-12817\(at\) + 1b4: 3c01abce lui at,0xabce + 1b8: 6421ef01 daddiu at,at,-4351 + 1bc: 00010c38 dsll at,at,0x10 + 1c0: 64212345 daddiu at,at,9029 + 1c4: 00010c38 dsll at,at,0x10 + 1c8: 0023082d daddu at,at,v1 + 1cc: ac226789 sw v0,26505\(at\) + 1d0: 3c018000 lui at,0x8000 + 1d4: 00230821 addu at,at,v1 + 1d8: ac220000 sw v0,0\(at\) + 1dc: 3c010000 lui at,0x0 + 1e0: 6421ffff daddiu at,at,-1 + 1e4: 00010c38 dsll at,at,0x10 + 1e8: 64210000 daddiu at,at,0 + 1ec: 00010c38 dsll at,at,0x10 + 1f0: 0023082d daddu at,at,v1 + 1f4: ac220000 sw v0,0\(at\) + 1f8: 3c010000 lui at,0x0 + 1fc: 64210001 daddiu at,at,1 + 200: 00010c38 dsll at,at,0x10 + 204: 6421abce daddiu at,at,-21554 + 208: 00010c38 dsll at,at,0x10 + 20c: 0023082d daddu at,at,v1 + 210: ac22ef01 sw v0,-4351\(at\) + 214: 3c010123 lui at,0x123 + 218: 00230821 addu at,at,v1 + 21c: ac224567 sw v0,17767\(at\) + 220: 3c028000 lui v0,0x8000 + 224: 3c020123 lui v0,0x123 + 228: 34424567 ori v0,v0,0x4567 + 22c: 3c027fff lui v0,0x7fff + 230: 3442ffff ori v0,v0,0xffff + 234: 3c020123 lui v0,0x123 + 238: 34424567 ori v0,v0,0x4567 + \.\.\. diff --git a/gas/testsuite/gas/mips/ldstla-n32.d b/gas/testsuite/gas/mips/ldstla-n32.d new file mode 100644 index 00000000000..9245da4c6a6 --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-n32.d @@ -0,0 +1,154 @@ +#objdump: -d +#as: -n32 +#name: MIPS ld-st-la constants (ABI n32) +#source: ldstla-n32.s + +.*: +file format elf32-n.*mips + +Disassembly of section \.text: + +00000000 <\.text>: + 0: 3c020123 lui v0,0x123 + 4: 3c0189ac lui at,0x89ac + 8: 64424568 daddiu v0,v0,17768 + c: 0023082d daddu at,at,v1 + 10: 0002103c dsll32 v0,v0,0x0 + 14: 0041102d daddu v0,v0,at + 18: dc42cdef ld v0,-12817\(v0\) + 1c: 3c02abce lui v0,0xabce + 20: 3c012345 lui at,0x2345 + 24: 6442ef01 daddiu v0,v0,-4351 + 28: 0023082d daddu at,at,v1 + 2c: 0002103c dsll32 v0,v0,0x0 + 30: 0041102d daddu v0,v0,at + 34: dc426789 ld v0,26505\(v0\) + 38: 3c028000 lui v0,0x8000 + 3c: 00431021 addu v0,v0,v1 + 40: dc420000 ld v0,0\(v0\) + 44: 3c020000 lui v0,0x0 + 48: 3c010000 lui at,0x0 + 4c: 6442ffff daddiu v0,v0,-1 + 50: 0023082d daddu at,at,v1 + 54: 0002103c dsll32 v0,v0,0x0 + 58: 0041102d daddu v0,v0,at + 5c: dc420000 ld v0,0\(v0\) + 60: 3c020000 lui v0,0x0 + 64: 3c01abce lui at,0xabce + 68: 64420001 daddiu v0,v0,1 + 6c: 0023082d daddu at,at,v1 + 70: 0002103c dsll32 v0,v0,0x0 + 74: 0041102d daddu v0,v0,at + 78: dc42ef01 ld v0,-4351\(v0\) + 7c: 3c020123 lui v0,0x123 + 80: 00431021 addu v0,v0,v1 + 84: dc424567 ld v0,17767\(v0\) + 88: 3c010123 lui at,0x123 + 8c: 64214568 daddiu at,at,17768 + 90: 00010c38 dsll at,at,0x10 + 94: 642189ac daddiu at,at,-30292 + 98: 00010c38 dsll at,at,0x10 + 9c: 0023082d daddu at,at,v1 + a0: fc22cdef sd v0,-12817\(at\) + a4: 3c01abce lui at,0xabce + a8: 6421ef01 daddiu at,at,-4351 + ac: 00010c38 dsll at,at,0x10 + b0: 64212345 daddiu at,at,9029 + b4: 00010c38 dsll at,at,0x10 + b8: 0023082d daddu at,at,v1 + bc: fc226789 sd v0,26505\(at\) + c0: 3c018000 lui at,0x8000 + c4: 00230821 addu at,at,v1 + c8: fc220000 sd v0,0\(at\) + cc: 3c010000 lui at,0x0 + d0: 6421ffff daddiu at,at,-1 + d4: 00010c38 dsll at,at,0x10 + d8: 64210000 daddiu at,at,0 + dc: 00010c38 dsll at,at,0x10 + e0: 0023082d daddu at,at,v1 + e4: fc220000 sd v0,0\(at\) + e8: 3c010000 lui at,0x0 + ec: 64210001 daddiu at,at,1 + f0: 00010c38 dsll at,at,0x10 + f4: 6421abce daddiu at,at,-21554 + f8: 00010c38 dsll at,at,0x10 + fc: 0023082d daddu at,at,v1 + 100: fc22ef01 sd v0,-4351\(at\) + 104: 3c010123 lui at,0x123 + 108: 00230821 addu at,at,v1 + 10c: fc224567 sd v0,17767\(at\) + 110: 3c020123 lui v0,0x123 + 114: 3c0189ac lui at,0x89ac + 118: 64424568 daddiu v0,v0,17768 + 11c: 0023082d daddu at,at,v1 + 120: 0002103c dsll32 v0,v0,0x0 + 124: 0041102d daddu v0,v0,at + 128: 8c42cdef lw v0,-12817\(v0\) + 12c: 3c02abce lui v0,0xabce + 130: 3c012345 lui at,0x2345 + 134: 6442ef01 daddiu v0,v0,-4351 + 138: 0023082d daddu at,at,v1 + 13c: 0002103c dsll32 v0,v0,0x0 + 140: 0041102d daddu v0,v0,at + 144: 8c426789 lw v0,26505\(v0\) + 148: 3c028000 lui v0,0x8000 + 14c: 00431021 addu v0,v0,v1 + 150: 8c420000 lw v0,0\(v0\) + 154: 3c020000 lui v0,0x0 + 158: 3c010000 lui at,0x0 + 15c: 6442ffff daddiu v0,v0,-1 + 160: 0023082d daddu at,at,v1 + 164: 0002103c dsll32 v0,v0,0x0 + 168: 0041102d daddu v0,v0,at + 16c: 8c420000 lw v0,0\(v0\) + 170: 3c020000 lui v0,0x0 + 174: 3c01abce lui at,0xabce + 178: 64420001 daddiu v0,v0,1 + 17c: 0023082d daddu at,at,v1 + 180: 0002103c dsll32 v0,v0,0x0 + 184: 0041102d daddu v0,v0,at + 188: 8c42ef01 lw v0,-4351\(v0\) + 18c: 3c020123 lui v0,0x123 + 190: 00431021 addu v0,v0,v1 + 194: 8c424567 lw v0,17767\(v0\) + 198: 3c010123 lui at,0x123 + 19c: 64214568 daddiu at,at,17768 + 1a0: 00010c38 dsll at,at,0x10 + 1a4: 642189ac daddiu at,at,-30292 + 1a8: 00010c38 dsll at,at,0x10 + 1ac: 0023082d daddu at,at,v1 + 1b0: ac22cdef sw v0,-12817\(at\) + 1b4: 3c01abce lui at,0xabce + 1b8: 6421ef01 daddiu at,at,-4351 + 1bc: 00010c38 dsll at,at,0x10 + 1c0: 64212345 daddiu at,at,9029 + 1c4: 00010c38 dsll at,at,0x10 + 1c8: 0023082d daddu at,at,v1 + 1cc: ac226789 sw v0,26505\(at\) + 1d0: 3c018000 lui at,0x8000 + 1d4: 00230821 addu at,at,v1 + 1d8: ac220000 sw v0,0\(at\) + 1dc: 3c010000 lui at,0x0 + 1e0: 6421ffff daddiu at,at,-1 + 1e4: 00010c38 dsll at,at,0x10 + 1e8: 64210000 daddiu at,at,0 + 1ec: 00010c38 dsll at,at,0x10 + 1f0: 0023082d daddu at,at,v1 + 1f4: ac220000 sw v0,0\(at\) + 1f8: 3c010000 lui at,0x0 + 1fc: 64210001 daddiu at,at,1 + 200: 00010c38 dsll at,at,0x10 + 204: 6421abce daddiu at,at,-21554 + 208: 00010c38 dsll at,at,0x10 + 20c: 0023082d daddu at,at,v1 + 210: ac22ef01 sw v0,-4351\(at\) + 214: 3c010123 lui at,0x123 + 218: 00230821 addu at,at,v1 + 21c: ac224567 sw v0,17767\(at\) + 220: 3c028000 lui v0,0x8000 + 224: 3c020123 lui v0,0x123 + 228: 34424567 ori v0,v0,0x4567 + 22c: 3c027fff lui v0,0x7fff + 230: 3442ffff ori v0,v0,0xffff + 234: 3c020123 lui v0,0x123 + 238: 34424567 ori v0,v0,0x4567 + \.\.\. diff --git a/gas/testsuite/gas/mips/ldstla-n32.s b/gas/testsuite/gas/mips/ldstla-n32.s new file mode 100644 index 00000000000..1b5d863bf9c --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-n32.s @@ -0,0 +1,35 @@ + .text + ld $2, 0x0123456789abcdef($3) + ld $2, 0xabcdef0123456789($3) + ld $2, 0xffffffff80000000($3) + ld $2, 0xffffffff00000000($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, 0xabcdef01($3) + sd $2, 0x01234567($3) + + lw $2, 0x0123456789abcdef($3) + lw $2, 0xabcdef0123456789($3) + lw $2, 0xffffffff80000000($3) + lw $2, 0xffffffff00000000($3) + lw $2, 0xabcdef01($3) + lw $2, 0x01234567($3) + + sw $2, 0x0123456789abcdef($3) + sw $2, 0xabcdef0123456789($3) + sw $2, 0xffffffff80000000($3) + sw $2, 0xffffffff00000000($3) + sw $2, 0xabcdef01($3) + sw $2, 0x01234567($3) + + dla $2, 0xffffffff80000000 + dla $2, 0x01234567 + la $2, 0x7fffffff + la $2, 0x01234567 + + .space 8 diff --git a/gas/testsuite/gas/mips/ldstla-n64-shared.d b/gas/testsuite/gas/mips/ldstla-n64-shared.d new file mode 100644 index 00000000000..2f3b7a72006 --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-n64-shared.d @@ -0,0 +1,181 @@ +#objdump: -d +#as: -KPIC -n64 +#name: MIPS ld-st-la constants (ABI n64, shared) +#source: ldstla-n64.s + +.*: +file format elf64-.*mips + +Disassembly of section \.text: + +0000000000000000 <\.text>: + 0: 3c020123 lui v0,0x123 + 4: 3c0189ac lui at,0x89ac + 8: 64424568 daddiu v0,v0,17768 + c: 0023082d daddu at,at,v1 + 10: 0002103c dsll32 v0,v0,0x0 + 14: 0041102d daddu v0,v0,at + 18: dc42cdef ld v0,-12817\(v0\) + 1c: 3c02abce lui v0,0xabce + 20: 3c012345 lui at,0x2345 + 24: 6442ef01 daddiu v0,v0,-4351 + 28: 0023082d daddu at,at,v1 + 2c: 0002103c dsll32 v0,v0,0x0 + 30: 0041102d daddu v0,v0,at + 34: dc426789 ld v0,26505\(v0\) + 38: 3c028000 lui v0,0x8000 + 3c: 0043102d daddu v0,v0,v1 + 40: dc420000 ld v0,0\(v0\) + 44: 3c020000 lui v0,0x0 + 48: 3c010000 lui at,0x0 + 4c: 6442ffff daddiu v0,v0,-1 + 50: 0023082d daddu at,at,v1 + 54: 0002103c dsll32 v0,v0,0x0 + 58: 0041102d daddu v0,v0,at + 5c: dc420000 ld v0,0\(v0\) + 60: 3c028000 lui v0,0x8000 + 64: 0043102d daddu v0,v0,v1 + 68: dc42ffff ld v0,-1\(v0\) + 6c: 3c020000 lui v0,0x0 + 70: 3c01abce lui at,0xabce + 74: 64420001 daddiu v0,v0,1 + 78: 0023082d daddu at,at,v1 + 7c: 0002103c dsll32 v0,v0,0x0 + 80: 0041102d daddu v0,v0,at + 84: dc42ef01 ld v0,-4351\(v0\) + 88: 3c020123 lui v0,0x123 + 8c: 0043102d daddu v0,v0,v1 + 90: dc424567 ld v0,17767\(v0\) + 94: 3c010123 lui at,0x123 + 98: 64214568 daddiu at,at,17768 + 9c: 00010c38 dsll at,at,0x10 + a0: 642189ac daddiu at,at,-30292 + a4: 00010c38 dsll at,at,0x10 + a8: 0023082d daddu at,at,v1 + ac: fc22cdef sd v0,-12817\(at\) + b0: 3c01abce lui at,0xabce + b4: 6421ef01 daddiu at,at,-4351 + b8: 00010c38 dsll at,at,0x10 + bc: 64212345 daddiu at,at,9029 + c0: 00010c38 dsll at,at,0x10 + c4: 0023082d daddu at,at,v1 + c8: fc226789 sd v0,26505\(at\) + cc: 3c018000 lui at,0x8000 + d0: 0023082d daddu at,at,v1 + d4: fc220000 sd v0,0\(at\) + d8: 3c010000 lui at,0x0 + dc: 6421ffff daddiu at,at,-1 + e0: 00010c38 dsll at,at,0x10 + e4: 64210000 daddiu at,at,0 + e8: 00010c38 dsll at,at,0x10 + ec: 0023082d daddu at,at,v1 + f0: fc220000 sd v0,0\(at\) + f4: 3c018000 lui at,0x8000 + f8: 0023082d daddu at,at,v1 + fc: fc22ffff sd v0,-1\(at\) + 100: 3c010000 lui at,0x0 + 104: 64210001 daddiu at,at,1 + 108: 00010c38 dsll at,at,0x10 + 10c: 6421abce daddiu at,at,-21554 + 110: 00010c38 dsll at,at,0x10 + 114: 0023082d daddu at,at,v1 + 118: fc22ef01 sd v0,-4351\(at\) + 11c: 3c010123 lui at,0x123 + 120: 0023082d daddu at,at,v1 + 124: fc224567 sd v0,17767\(at\) + 128: 3c020123 lui v0,0x123 + 12c: 3c0189ac lui at,0x89ac + 130: 64424568 daddiu v0,v0,17768 + 134: 0023082d daddu at,at,v1 + 138: 0002103c dsll32 v0,v0,0x0 + 13c: 0041102d daddu v0,v0,at + 140: 8c42cdef lw v0,-12817\(v0\) + 144: 3c02abce lui v0,0xabce + 148: 3c012345 lui at,0x2345 + 14c: 6442ef01 daddiu v0,v0,-4351 + 150: 0023082d daddu at,at,v1 + 154: 0002103c dsll32 v0,v0,0x0 + 158: 0041102d daddu v0,v0,at + 15c: 8c426789 lw v0,26505\(v0\) + 160: 3c028000 lui v0,0x8000 + 164: 0043102d daddu v0,v0,v1 + 168: 8c420000 lw v0,0\(v0\) + 16c: 3c020000 lui v0,0x0 + 170: 3c010000 lui at,0x0 + 174: 6442ffff daddiu v0,v0,-1 + 178: 0023082d daddu at,at,v1 + 17c: 0002103c dsll32 v0,v0,0x0 + 180: 0041102d daddu v0,v0,at + 184: 8c420000 lw v0,0\(v0\) + 188: 3c028000 lui v0,0x8000 + 18c: 0043102d daddu v0,v0,v1 + 190: 8c42ffff lw v0,-1\(v0\) + 194: 3c020000 lui v0,0x0 + 198: 3c01abce lui at,0xabce + 19c: 64420001 daddiu v0,v0,1 + 1a0: 0023082d daddu at,at,v1 + 1a4: 0002103c dsll32 v0,v0,0x0 + 1a8: 0041102d daddu v0,v0,at + 1ac: 8c42ef01 lw v0,-4351\(v0\) + 1b0: 3c020123 lui v0,0x123 + 1b4: 0043102d daddu v0,v0,v1 + 1b8: 8c424567 lw v0,17767\(v0\) + 1bc: 3c010123 lui at,0x123 + 1c0: 64214568 daddiu at,at,17768 + 1c4: 00010c38 dsll at,at,0x10 + 1c8: 642189ac daddiu at,at,-30292 + 1cc: 00010c38 dsll at,at,0x10 + 1d0: 0023082d daddu at,at,v1 + 1d4: ac22cdef sw v0,-12817\(at\) + 1d8: 3c01abce lui at,0xabce + 1dc: 6421ef01 daddiu at,at,-4351 + 1e0: 00010c38 dsll at,at,0x10 + 1e4: 64212345 daddiu at,at,9029 + 1e8: 00010c38 dsll at,at,0x10 + 1ec: 0023082d daddu at,at,v1 + 1f0: ac226789 sw v0,26505\(at\) + 1f4: 3c018000 lui at,0x8000 + 1f8: 0023082d daddu at,at,v1 + 1fc: ac220000 sw v0,0\(at\) + 200: 3c010000 lui at,0x0 + 204: 6421ffff daddiu at,at,-1 + 208: 00010c38 dsll at,at,0x10 + 20c: 64210000 daddiu at,at,0 + 210: 00010c38 dsll at,at,0x10 + 214: 0023082d daddu at,at,v1 + 218: ac220000 sw v0,0\(at\) + 21c: 3c018000 lui at,0x8000 + 220: 0023082d daddu at,at,v1 + 224: ac22ffff sw v0,-1\(at\) + 228: 3c010000 lui at,0x0 + 22c: 64210001 daddiu at,at,1 + 230: 00010c38 dsll at,at,0x10 + 234: 6421abce daddiu at,at,-21554 + 238: 00010c38 dsll at,at,0x10 + 23c: 0023082d daddu at,at,v1 + 240: ac22ef01 sw v0,-4351\(at\) + 244: 3c010123 lui at,0x123 + 248: 0023082d daddu at,at,v1 + 24c: ac224567 sw v0,17767\(at\) + 250: 3c020123 lui v0,0x123 + 254: 34424567 ori v0,v0,0x4567 + 258: 00021438 dsll v0,v0,0x10 + 25c: 344289ab ori v0,v0,0x89ab + 260: 00021438 dsll v0,v0,0x10 + 264: 3442cdef ori v0,v0,0xcdef + 268: 3c02abcd lui v0,0xabcd + 26c: 3442ef01 ori v0,v0,0xef01 + 270: 00021438 dsll v0,v0,0x10 + 274: 34422345 ori v0,v0,0x2345 + 278: 00021438 dsll v0,v0,0x10 + 27c: 34426789 ori v0,v0,0x6789 + 280: 3c028000 lui v0,0x8000 + 284: 2402ffff li v0,-1 + 288: 0002103c dsll32 v0,v0,0x0 + 28c: 3402abcd li v0,0xabcd + 290: 00021438 dsll v0,v0,0x10 + 294: 3442ef01 ori v0,v0,0xef01 + 298: 3c027fff lui v0,0x7fff + 29c: 3442ffff ori v0,v0,0xffff + 2a0: 3c020123 lui v0,0x123 + 2a4: 34424567 ori v0,v0,0x4567 + \.\.\. diff --git a/gas/testsuite/gas/mips/ldstla-n64.d b/gas/testsuite/gas/mips/ldstla-n64.d new file mode 100644 index 00000000000..ae465d596d5 --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-n64.d @@ -0,0 +1,181 @@ +#objdump: -d +#as: -n64 +#name: MIPS ld-st-la constants (ABI n64) +#source: ldstla-n64.s + +.*: +file format elf64-.*mips + +Disassembly of section \.text: + +0000000000000000 <\.text>: + 0: 3c020123 lui v0,0x123 + 4: 3c0189ac lui at,0x89ac + 8: 64424568 daddiu v0,v0,17768 + c: 0023082d daddu at,at,v1 + 10: 0002103c dsll32 v0,v0,0x0 + 14: 0041102d daddu v0,v0,at + 18: dc42cdef ld v0,-12817\(v0\) + 1c: 3c02abce lui v0,0xabce + 20: 3c012345 lui at,0x2345 + 24: 6442ef01 daddiu v0,v0,-4351 + 28: 0023082d daddu at,at,v1 + 2c: 0002103c dsll32 v0,v0,0x0 + 30: 0041102d daddu v0,v0,at + 34: dc426789 ld v0,26505\(v0\) + 38: 3c028000 lui v0,0x8000 + 3c: 0043102d daddu v0,v0,v1 + 40: dc420000 ld v0,0\(v0\) + 44: 3c020000 lui v0,0x0 + 48: 3c010000 lui at,0x0 + 4c: 6442ffff daddiu v0,v0,-1 + 50: 0023082d daddu at,at,v1 + 54: 0002103c dsll32 v0,v0,0x0 + 58: 0041102d daddu v0,v0,at + 5c: dc420000 ld v0,0\(v0\) + 60: 3c028000 lui v0,0x8000 + 64: 0043102d daddu v0,v0,v1 + 68: dc42ffff ld v0,-1\(v0\) + 6c: 3c020000 lui v0,0x0 + 70: 3c01abce lui at,0xabce + 74: 64420001 daddiu v0,v0,1 + 78: 0023082d daddu at,at,v1 + 7c: 0002103c dsll32 v0,v0,0x0 + 80: 0041102d daddu v0,v0,at + 84: dc42ef01 ld v0,-4351\(v0\) + 88: 3c020123 lui v0,0x123 + 8c: 0043102d daddu v0,v0,v1 + 90: dc424567 ld v0,17767\(v0\) + 94: 3c010123 lui at,0x123 + 98: 64214568 daddiu at,at,17768 + 9c: 00010c38 dsll at,at,0x10 + a0: 642189ac daddiu at,at,-30292 + a4: 00010c38 dsll at,at,0x10 + a8: 0023082d daddu at,at,v1 + ac: fc22cdef sd v0,-12817\(at\) + b0: 3c01abce lui at,0xabce + b4: 6421ef01 daddiu at,at,-4351 + b8: 00010c38 dsll at,at,0x10 + bc: 64212345 daddiu at,at,9029 + c0: 00010c38 dsll at,at,0x10 + c4: 0023082d daddu at,at,v1 + c8: fc226789 sd v0,26505\(at\) + cc: 3c018000 lui at,0x8000 + d0: 0023082d daddu at,at,v1 + d4: fc220000 sd v0,0\(at\) + d8: 3c010000 lui at,0x0 + dc: 6421ffff daddiu at,at,-1 + e0: 00010c38 dsll at,at,0x10 + e4: 64210000 daddiu at,at,0 + e8: 00010c38 dsll at,at,0x10 + ec: 0023082d daddu at,at,v1 + f0: fc220000 sd v0,0\(at\) + f4: 3c018000 lui at,0x8000 + f8: 0023082d daddu at,at,v1 + fc: fc22ffff sd v0,-1\(at\) + 100: 3c010000 lui at,0x0 + 104: 64210001 daddiu at,at,1 + 108: 00010c38 dsll at,at,0x10 + 10c: 6421abce daddiu at,at,-21554 + 110: 00010c38 dsll at,at,0x10 + 114: 0023082d daddu at,at,v1 + 118: fc22ef01 sd v0,-4351\(at\) + 11c: 3c010123 lui at,0x123 + 120: 0023082d daddu at,at,v1 + 124: fc224567 sd v0,17767\(at\) + 128: 3c020123 lui v0,0x123 + 12c: 3c0189ac lui at,0x89ac + 130: 64424568 daddiu v0,v0,17768 + 134: 0023082d daddu at,at,v1 + 138: 0002103c dsll32 v0,v0,0x0 + 13c: 0041102d daddu v0,v0,at + 140: 8c42cdef lw v0,-12817\(v0\) + 144: 3c02abce lui v0,0xabce + 148: 3c012345 lui at,0x2345 + 14c: 6442ef01 daddiu v0,v0,-4351 + 150: 0023082d daddu at,at,v1 + 154: 0002103c dsll32 v0,v0,0x0 + 158: 0041102d daddu v0,v0,at + 15c: 8c426789 lw v0,26505\(v0\) + 160: 3c028000 lui v0,0x8000 + 164: 0043102d daddu v0,v0,v1 + 168: 8c420000 lw v0,0\(v0\) + 16c: 3c020000 lui v0,0x0 + 170: 3c010000 lui at,0x0 + 174: 6442ffff daddiu v0,v0,-1 + 178: 0023082d daddu at,at,v1 + 17c: 0002103c dsll32 v0,v0,0x0 + 180: 0041102d daddu v0,v0,at + 184: 8c420000 lw v0,0\(v0\) + 188: 3c028000 lui v0,0x8000 + 18c: 0043102d daddu v0,v0,v1 + 190: 8c42ffff lw v0,-1\(v0\) + 194: 3c020000 lui v0,0x0 + 198: 3c01abce lui at,0xabce + 19c: 64420001 daddiu v0,v0,1 + 1a0: 0023082d daddu at,at,v1 + 1a4: 0002103c dsll32 v0,v0,0x0 + 1a8: 0041102d daddu v0,v0,at + 1ac: 8c42ef01 lw v0,-4351\(v0\) + 1b0: 3c020123 lui v0,0x123 + 1b4: 0043102d daddu v0,v0,v1 + 1b8: 8c424567 lw v0,17767\(v0\) + 1bc: 3c010123 lui at,0x123 + 1c0: 64214568 daddiu at,at,17768 + 1c4: 00010c38 dsll at,at,0x10 + 1c8: 642189ac daddiu at,at,-30292 + 1cc: 00010c38 dsll at,at,0x10 + 1d0: 0023082d daddu at,at,v1 + 1d4: ac22cdef sw v0,-12817\(at\) + 1d8: 3c01abce lui at,0xabce + 1dc: 6421ef01 daddiu at,at,-4351 + 1e0: 00010c38 dsll at,at,0x10 + 1e4: 64212345 daddiu at,at,9029 + 1e8: 00010c38 dsll at,at,0x10 + 1ec: 0023082d daddu at,at,v1 + 1f0: ac226789 sw v0,26505\(at\) + 1f4: 3c018000 lui at,0x8000 + 1f8: 0023082d daddu at,at,v1 + 1fc: ac220000 sw v0,0\(at\) + 200: 3c010000 lui at,0x0 + 204: 6421ffff daddiu at,at,-1 + 208: 00010c38 dsll at,at,0x10 + 20c: 64210000 daddiu at,at,0 + 210: 00010c38 dsll at,at,0x10 + 214: 0023082d daddu at,at,v1 + 218: ac220000 sw v0,0\(at\) + 21c: 3c018000 lui at,0x8000 + 220: 0023082d daddu at,at,v1 + 224: ac22ffff sw v0,-1\(at\) + 228: 3c010000 lui at,0x0 + 22c: 64210001 daddiu at,at,1 + 230: 00010c38 dsll at,at,0x10 + 234: 6421abce daddiu at,at,-21554 + 238: 00010c38 dsll at,at,0x10 + 23c: 0023082d daddu at,at,v1 + 240: ac22ef01 sw v0,-4351\(at\) + 244: 3c010123 lui at,0x123 + 248: 0023082d daddu at,at,v1 + 24c: ac224567 sw v0,17767\(at\) + 250: 3c020123 lui v0,0x123 + 254: 34424567 ori v0,v0,0x4567 + 258: 00021438 dsll v0,v0,0x10 + 25c: 344289ab ori v0,v0,0x89ab + 260: 00021438 dsll v0,v0,0x10 + 264: 3442cdef ori v0,v0,0xcdef + 268: 3c02abcd lui v0,0xabcd + 26c: 3442ef01 ori v0,v0,0xef01 + 270: 00021438 dsll v0,v0,0x10 + 274: 34422345 ori v0,v0,0x2345 + 278: 00021438 dsll v0,v0,0x10 + 27c: 34426789 ori v0,v0,0x6789 + 280: 3c028000 lui v0,0x8000 + 284: 2402ffff li v0,-1 + 288: 0002103c dsll32 v0,v0,0x0 + 28c: 3402abcd li v0,0xabcd + 290: 00021438 dsll v0,v0,0x10 + 294: 3442ef01 ori v0,v0,0xef01 + 298: 3c027fff lui v0,0x7fff + 29c: 3442ffff ori v0,v0,0xffff + 2a0: 3c020123 lui v0,0x123 + 2a4: 34424567 ori v0,v0,0x4567 + \.\.\. diff --git a/gas/testsuite/gas/mips/ldstla-n64.s b/gas/testsuite/gas/mips/ldstla-n64.s new file mode 100644 index 00000000000..4d229a6a6a6 --- /dev/null +++ b/gas/testsuite/gas/mips/ldstla-n64.s @@ -0,0 +1,42 @@ + .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, 0x0123456789abcdef($3) + lw $2, 0xabcdef0123456789($3) + lw $2, 0xffffffff80000000($3) + lw $2, 0xffffffff00000000($3) + lw $2, 0xffffffff7fffffff($3) + lw $2, 0xabcdef01($3) + lw $2, 0x01234567($3) + + sw $2, 0x0123456789abcdef($3) + sw $2, 0xabcdef0123456789($3) + sw $2, 0xffffffff80000000($3) + sw $2, 0xffffffff00000000($3) + sw $2, 0xffffffff7fffffff($3) + sw $2, 0xabcdef01($3) + sw $2, 0x01234567($3) + + dla $2, 0x0123456789abcdef + dla $2, 0xabcdef0123456789 + dla $2, 0xffffffff80000000 + dla $2, 0xffffffff00000000 + dla $2, 0xabcdef01 + dla $2, 0x7fffffff + dla $2, 0x01234567 + + .space 8 diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 12aeaebf234..865b580005e 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -714,4 +714,13 @@ if { [istarget mips*-*-*] } then { run_dump_test "hwr-names-numeric" run_dump_test "hwr-names-mips32r2" run_dump_test "hwr-names-mips64r2" + + run_dump_test "ldstla-32" + run_dump_test "ldstla-32-shared" + if $has_newabi { + run_dump_test "ldstla-n32" + run_dump_test "ldstla-n32-shared" + run_dump_test "ldstla-n64" + run_dump_test "ldstla-n64-shared" + } }