gas/
authorRichard Sandiford <rdsandiford@googlemail.com>
Mon, 4 Jul 2011 20:22:52 +0000 (20:22 +0000)
committerRichard Sandiford <rdsandiford@googlemail.com>
Mon, 4 Jul 2011 20:22:52 +0000 (20:22 +0000)
* config/tc-mips.c (gpr_read_mask, gpr_write_mask): Fix handling
of register 0.

gas/ChangeLog
gas/config/tc-mips.c

index 8bc4f5079888ad22022be8cef0ff6e41afcc4a16..9c0ded14b7b561ecb823071f5a04fda45bc475af 100644 (file)
@@ -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
index 2b3e4dcbb76407974454178c978d41550727ded6..bcb1822229ac935c378b12362c4a2cb3f1a22e11 100644 (file)
@@ -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.  */