aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-mips.c19
-rw-r--r--gas/testsuite/ChangeLog8
-rw-r--r--gas/testsuite/gas/mips/ldstla-32-mips3-shared.d56
-rw-r--r--gas/testsuite/gas/mips/ldstla-32-mips3.d56
-rw-r--r--gas/testsuite/gas/mips/ldstla-32-shared.d28
-rw-r--r--gas/testsuite/gas/mips/ldstla-32.d28
7 files changed, 73 insertions, 127 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d6d973e..f87b622 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2010-12-09 Maciej W. Rozycki <macro@codesourcery.com>
+ * config/tc-mips.c (macro) <ld_st>: Don't load a zero into an
+ auxiliary register when using a signed 16-bit constant offset.
+
+2010-12-09 Maciej W. Rozycki <macro@codesourcery.com>
+
* config/tc-mips.c (mips_ip): Remove lastregno's
preinitialization.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index b664585..eb1ba2e 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -6565,14 +6565,19 @@ macro (struct mips_cl_insn *ip)
is in non PIC code. */
if (offset_expr.X_op == O_constant)
{
- expr1.X_add_number = ((offset_expr.X_add_number + 0x8000)
- & ~(bfd_vma) 0xffff);
+ expr1.X_add_number = offset_expr.X_add_number;
normalize_address_expr (&expr1);
- load_register (tempreg, &expr1, HAVE_64BIT_ADDRESSES);
- if (breg != 0)
- macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t",
- tempreg, tempreg, breg);
- macro_build (&offset_expr, s, fmt, treg, BFD_RELOC_LO16, tempreg);
+ if (!IS_SEXT_16BIT_NUM (expr1.X_add_number))
+ {
+ expr1.X_add_number = ((expr1.X_add_number + 0x8000)
+ & ~(bfd_vma) 0xffff);
+ load_register (tempreg, &expr1, HAVE_64BIT_ADDRESSES);
+ if (breg != 0)
+ macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t",
+ tempreg, tempreg, breg);
+ breg = tempreg;
+ }
+ macro_build (&offset_expr, s, fmt, treg, BFD_RELOC_LO16, breg);
}
else if (mips_pic == NO_PIC)
{
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index bf89eb9..9371627 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,13 @@
2010-12-09 Maciej W. Rozycki <macro@codesourcery.com>
+ * gas/mips/ldstla-32.d: Update according to a 16-bit constant
+ offset optimization.
+ * gas/mips/ldstla-32-mips3.d: Likewise.
+ * gas/mips/ldstla-32-shared.d: Likewise.
+ * gas/mips/ldstla-32-mips3-shared.d: Likewise.
+
+2010-12-09 Maciej W. Rozycki <macro@codesourcery.com>
+
* gas/mips/at-2.l: Adjust according to message capitalization
fixes.
* gas/mips/illegal.l: Likewise.
diff --git a/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d b/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d
index 69a468a..305781f 100644
--- a/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d
+++ b/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d
@@ -21,12 +21,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: dc424567 ld v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: dc420000 ld v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: dc42ffff ld v0,-1\(v0\)
+[ 0-9a-f]+: dc820000 ld v0,0\(a0\)
+[ 0-9a-f]+: dc82ffff ld v0,-1\(a0\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: dc42ef01 ld v0,-4351\(v0\)
@@ -49,10 +45,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: dc42ffff ld v0,-1\(v0\)
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: dc424567 ld v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: dc420000 ld v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: dc42ffff ld v0,-1\(v0\)
+[ 0-9a-f]+: dc020000 ld v0,0\(zero\)
+[ 0-9a-f]+: dc02ffff ld v0,-1\(zero\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: dc42ef01 ld v0,-4351\(v0\)
[ 0-9a-f]+: 3c028000 lui v0,0x8000
@@ -75,12 +69,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: fc224567 sd v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: fc220000 sd v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: fc22ffff sd v0,-1\(at\)
+[ 0-9a-f]+: fc820000 sd v0,0\(a0\)
+[ 0-9a-f]+: fc82ffff sd v0,-1\(a0\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: fc22ef01 sd v0,-4351\(at\)
@@ -103,10 +93,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: fc22ffff sd v0,-1\(at\)
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: fc224567 sd v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: fc220000 sd v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: fc22ffff sd v0,-1\(at\)
+[ 0-9a-f]+: fc020000 sd v0,0\(zero\)
+[ 0-9a-f]+: fc02ffff sd v0,-1\(zero\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: fc22ef01 sd v0,-4351\(at\)
[ 0-9a-f]+: 3c018000 lui at,0x8000
@@ -129,12 +117,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: 8c424567 lw v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: 8c420000 lw v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
+[ 0-9a-f]+: 8c820000 lw v0,0\(a0\)
+[ 0-9a-f]+: 8c82ffff lw v0,-1\(a0\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: 8c42ef01 lw v0,-4351\(v0\)
@@ -157,10 +141,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 8c424567 lw v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 8c420000 lw v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
+[ 0-9a-f]+: 8c020000 lw v0,0\(zero\)
+[ 0-9a-f]+: 8c02ffff lw v0,-1\(zero\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 8c42ef01 lw v0,-4351\(v0\)
[ 0-9a-f]+: 3c028000 lui v0,0x8000
@@ -183,12 +165,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: ac224567 sw v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: ac220000 sw v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
+[ 0-9a-f]+: ac820000 sw v0,0\(a0\)
+[ 0-9a-f]+: ac82ffff sw v0,-1\(a0\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: ac22ef01 sw v0,-4351\(at\)
@@ -211,10 +189,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: ac224567 sw v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: ac220000 sw v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
+[ 0-9a-f]+: ac020000 sw v0,0\(zero\)
+[ 0-9a-f]+: ac02ffff sw v0,-1\(zero\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: ac22ef01 sw v0,-4351\(at\)
[ 0-9a-f]+: 3c018000 lui at,0x8000
diff --git a/gas/testsuite/gas/mips/ldstla-32-mips3.d b/gas/testsuite/gas/mips/ldstla-32-mips3.d
index b2dc9d1..2d9b00b 100644
--- a/gas/testsuite/gas/mips/ldstla-32-mips3.d
+++ b/gas/testsuite/gas/mips/ldstla-32-mips3.d
@@ -21,12 +21,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: dc424567 ld v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: dc420000 ld v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: dc42ffff ld v0,-1\(v0\)
+[ 0-9a-f]+: dc820000 ld v0,0\(a0\)
+[ 0-9a-f]+: dc82ffff ld v0,-1\(a0\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: dc42ef01 ld v0,-4351\(v0\)
@@ -49,10 +45,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: dc42ffff ld v0,-1\(v0\)
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: dc424567 ld v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: dc420000 ld v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: dc42ffff ld v0,-1\(v0\)
+[ 0-9a-f]+: dc020000 ld v0,0\(zero\)
+[ 0-9a-f]+: dc02ffff ld v0,-1\(zero\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: dc42ef01 ld v0,-4351\(v0\)
[ 0-9a-f]+: 3c028000 lui v0,0x8000
@@ -75,12 +69,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: fc224567 sd v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: fc220000 sd v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: fc22ffff sd v0,-1\(at\)
+[ 0-9a-f]+: fc820000 sd v0,0\(a0\)
+[ 0-9a-f]+: fc82ffff sd v0,-1\(a0\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: fc22ef01 sd v0,-4351\(at\)
@@ -103,10 +93,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: fc22ffff sd v0,-1\(at\)
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: fc224567 sd v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: fc220000 sd v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: fc22ffff sd v0,-1\(at\)
+[ 0-9a-f]+: fc020000 sd v0,0\(zero\)
+[ 0-9a-f]+: fc02ffff sd v0,-1\(zero\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: fc22ef01 sd v0,-4351\(at\)
[ 0-9a-f]+: 3c018000 lui at,0x8000
@@ -129,12 +117,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: 8c424567 lw v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: 8c420000 lw v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
+[ 0-9a-f]+: 8c820000 lw v0,0\(a0\)
+[ 0-9a-f]+: 8c82ffff lw v0,-1\(a0\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: 8c42ef01 lw v0,-4351\(v0\)
@@ -157,10 +141,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 8c424567 lw v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 8c420000 lw v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
+[ 0-9a-f]+: 8c020000 lw v0,0\(zero\)
+[ 0-9a-f]+: 8c02ffff lw v0,-1\(zero\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 8c42ef01 lw v0,-4351\(v0\)
[ 0-9a-f]+: 3c028000 lui v0,0x8000
@@ -183,12 +165,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: ac224567 sw v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: ac220000 sw v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
+[ 0-9a-f]+: ac820000 sw v0,0\(a0\)
+[ 0-9a-f]+: ac82ffff sw v0,-1\(a0\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: ac22ef01 sw v0,-4351\(at\)
@@ -211,10 +189,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: ac224567 sw v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: ac220000 sw v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
+[ 0-9a-f]+: ac020000 sw v0,0\(zero\)
+[ 0-9a-f]+: ac02ffff sw v0,-1\(zero\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: ac22ef01 sw v0,-4351\(at\)
[ 0-9a-f]+: 3c018000 lui at,0x8000
diff --git a/gas/testsuite/gas/mips/ldstla-32-shared.d b/gas/testsuite/gas/mips/ldstla-32-shared.d
index 9adadd3..d4787f9 100644
--- a/gas/testsuite/gas/mips/ldstla-32-shared.d
+++ b/gas/testsuite/gas/mips/ldstla-32-shared.d
@@ -177,12 +177,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: 8c424567 lw v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: 8c420000 lw v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
+[ 0-9a-f]+: 8c820000 lw v0,0\(a0\)
+[ 0-9a-f]+: 8c82ffff lw v0,-1\(a0\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: 8c42ef01 lw v0,-4351\(v0\)
@@ -205,10 +201,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 8c424567 lw v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 8c420000 lw v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
+[ 0-9a-f]+: 8c020000 lw v0,0\(zero\)
+[ 0-9a-f]+: 8c02ffff lw v0,-1\(zero\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 8c42ef01 lw v0,-4351\(v0\)
[ 0-9a-f]+: 3c028000 lui v0,0x8000
@@ -232,12 +226,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: ac224567 sw v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: ac220000 sw v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
+[ 0-9a-f]+: ac820000 sw v0,0\(a0\)
+[ 0-9a-f]+: ac82ffff sw v0,-1\(a0\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: ac22ef01 sw v0,-4351\(at\)
@@ -260,10 +250,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: ac224567 sw v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: ac220000 sw v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
+[ 0-9a-f]+: ac020000 sw v0,0\(zero\)
+[ 0-9a-f]+: ac02ffff sw v0,-1\(zero\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: ac22ef01 sw v0,-4351\(at\)
[ 0-9a-f]+: 3c018000 lui at,0x8000
diff --git a/gas/testsuite/gas/mips/ldstla-32.d b/gas/testsuite/gas/mips/ldstla-32.d
index 9ce1418..985246c 100644
--- a/gas/testsuite/gas/mips/ldstla-32.d
+++ b/gas/testsuite/gas/mips/ldstla-32.d
@@ -177,12 +177,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: 8c424567 lw v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: 8c420000 lw v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 00441021 addu v0,v0,a0
-[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
+[ 0-9a-f]+: 8c820000 lw v0,0\(a0\)
+[ 0-9a-f]+: 8c82ffff lw v0,-1\(a0\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 00441021 addu v0,v0,a0
[ 0-9a-f]+: 8c42ef01 lw v0,-4351\(v0\)
@@ -205,10 +201,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
[ 0-9a-f]+: 3c020123 lui v0,0x123
[ 0-9a-f]+: 8c424567 lw v0,17767\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 8c420000 lw v0,0\(v0\)
-[ 0-9a-f]+: 24020000 li v0,0
-[ 0-9a-f]+: 8c42ffff lw v0,-1\(v0\)
+[ 0-9a-f]+: 8c020000 lw v0,0\(zero\)
+[ 0-9a-f]+: 8c02ffff lw v0,-1\(zero\)
[ 0-9a-f]+: 3c02abce lui v0,0xabce
[ 0-9a-f]+: 8c42ef01 lw v0,-4351\(v0\)
[ 0-9a-f]+: 3c028000 lui v0,0x8000
@@ -232,12 +226,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: ac224567 sw v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: ac220000 sw v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: 00240821 addu at,at,a0
-[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
+[ 0-9a-f]+: ac820000 sw v0,0\(a0\)
+[ 0-9a-f]+: ac82ffff sw v0,-1\(a0\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: 00240821 addu at,at,a0
[ 0-9a-f]+: ac22ef01 sw v0,-4351\(at\)
@@ -260,10 +250,8 @@ Disassembly of section \.text:
[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
[ 0-9a-f]+: 3c010123 lui at,0x123
[ 0-9a-f]+: ac224567 sw v0,17767\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: ac220000 sw v0,0\(at\)
-[ 0-9a-f]+: 24010000 li at,0
-[ 0-9a-f]+: ac22ffff sw v0,-1\(at\)
+[ 0-9a-f]+: ac020000 sw v0,0\(zero\)
+[ 0-9a-f]+: ac02ffff sw v0,-1\(zero\)
[ 0-9a-f]+: 3c01abce lui at,0xabce
[ 0-9a-f]+: ac22ef01 sw v0,-4351\(at\)
[ 0-9a-f]+: 3c018000 lui at,0x8000