X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-mips.c;h=a1f2d3829d36d966b16e59f18db397c5abc178bc;hb=30c378fd6068045a2857a3cc78baad58aa787892;hp=25e5a3df8dfdf8c0045809608ca75979344ff2f7;hpb=5cd8624d608aabf3b2b7f9d866c4a23f2e371a54;p=deliverable%2Fbinutils-gdb.git 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