summaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorChris Demetriou <cgd@broadcom.com>2003-09-30 21:02:08 +0000
committerChris Demetriou <cgd@broadcom.com>2003-09-30 21:02:08 +0000
commita51b60d2037f4164484f3023362d529acaf71b1e (patch)
treecf9f9e229194b23ffc8f728d7df6b9c29b40e203 /gas/config
parent2139b6a260f9afd660f30488d01bb57052e3bb4e (diff)
downloadbinutils-redhat-a51b60d2037f4164484f3023362d529acaf71b1e.tar.gz
[ gas/ChangeLog ]
2003-09-30 Chris Demetriou <cgd@broadcom.com> * config/tc-mips.c (mips_ip): Capitalize first word of existing condition code warning, and add condition code warnings for .ps instructions, and for bc1any[24][tf]. [ gas/testsuite/ChangeLog ] 2003-09-30 Chris Demetriou <cgd@broadcom.com> * lib/gas-defs.exp (run_dump_test): If stderr file is specified and there was no stderr output, compare anyway (i.e., cause a test failure). * gas/mips/mips64-mips3d.s: Add some new instructions to test warnings. * gas/mips/mips64-mips3d.l: New file. * gas/mips/mips64-mips3d.d: Use mips64-mips3d.l, and update for changes to mips64-mips3d.s. * gas/mips/mips64-mips3d-incl.d: Likewise. * gas/mips/set-arch.l: New file. * gas/mips/set-arch.d: Specify set-arch.l as stderr output to check. * gas/mips/mips5.l: Make error messages match source.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-mips.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 25e5a3df8d..a1f2d3829d 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -9369,7 +9369,18 @@ do_msbd:
}
while (ISDIGIT (*s));
if (regno > 7)
- as_bad (_("invalid condition code register $fcc%d"), regno);
+ as_bad (_("Invalid condition code register $fcc%d"), regno);
+ if ((strcmp(str + strlen(str) - 3, ".ps") == 0
+ || strcmp(str + strlen(str) - 5, "any2f") == 0
+ || strcmp(str + strlen(str) - 5, "any2t") == 0)
+ && (regno & 1) != 0)
+ as_warn(_("Condition code register should be even for %s, was %d"),
+ str, regno);
+ if ((strcmp(str + strlen(str) - 5, "any4f") == 0
+ || strcmp(str + strlen(str) - 5, "any4t") == 0)
+ && (regno & 3) != 0)
+ as_warn(_("Condition code register should be 0 or 4 for %s, was %d"),
+ str, regno);
if (*args == 'N')
ip->insn_opcode |= regno << OP_SH_BCC;
else