aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-mips.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 8bc4f50..9c0ded1 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-04 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (gpr_read_mask, gpr_write_mask): Fix handling
+ of register 0.
+
2011-07-04 Maciej W. Rozycki <macro@codesourcery.com>
* config/tc-mips.c (append_insn): Make sure DWARF-2 location
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 2b3e4dc..bcb1822 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -2450,7 +2450,8 @@ gpr_read_mask (const struct mips_cl_insn *ip)
if (pinfo2 & INSN2_READ_GPR_Z)
mask |= 1 << EXTRACT_OPERAND (RZ, *ip);
}
- return mask & ~0;
+ /* Don't include register 0. */
+ return mask & ~1;
}
/* Return the mask of core registers that IP writes. */
@@ -2492,7 +2493,8 @@ gpr_write_mask (const struct mips_cl_insn *ip)
if (pinfo2 & INSN2_WRITE_GPR_Z)
mask |= 1 << EXTRACT_OPERAND (RZ, *ip);
}
- return mask & ~0;
+ /* Don't include register 0. */
+ return mask & ~1;
}
/* Return the mask of floating-point registers that IP reads. */