aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorChris Demetriou <cgd@google.com>2003-09-30 21:02:08 +0000
committerChris Demetriou <cgd@google.com>2003-09-30 21:02:08 +0000
commit30c378fd6068045a2857a3cc78baad58aa787892 (patch)
treede96e03def471d3a629b7f967287a6687835e038 /gas/config
parent5cd8624d608aabf3b2b7f9d866c4a23f2e371a54 (diff)
downloadgdb-30c378fd6068045a2857a3cc78baad58aa787892.zip
gdb-30c378fd6068045a2857a3cc78baad58aa787892.tar.gz
gdb-30c378fd6068045a2857a3cc78baad58aa787892.tar.bz2
[ 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 25e5a3d..a1f2d38 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