From 268f6bed84d11426bfd97ad25d78b2afe7581b2a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 9 Jun 2001 05:01:29 +0000 Subject: [PATCH] 2001-06-08 H.J. Lu * config/tc-mips.c (mips_ip): Properly handle illegal operands. --- gas/ChangeLog | 4 ++++ gas/config/tc-mips.c | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 5247678e993..ae2cd9c5508 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2001-06-08 H.J. Lu + + * config/tc-mips.c (mips_ip): Properly handle illegal operands. + 2001-06-08 H.J. Lu * config/tc-mips.c (md_apply_fix): Don't adjust common diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 6ffe65bc9dd..b61d01c4d93 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -7098,19 +7098,25 @@ mips_ip (str, ip) } else { - static char buf[100]; - sprintf (buf, - _("opcode not supported on this processor: %s (%s)"), - mips_cpu_to_str (mips_cpu), - mips_isa_to_str (mips_opts.isa)); + if (!insn_error) + { + static char buf[100]; + sprintf (buf, + _("opcode not supported on this processor: %s (%s)"), + mips_cpu_to_str (mips_cpu), + mips_isa_to_str (mips_opts.isa)); - insn_error = buf; + insn_error = buf; + } + if (save_c) + *(--s) = save_c; return; } } ip->insn_mo = insn; ip->insn_opcode = insn->match; + insn_error = NULL; for (args = insn->args;; ++args) { if (*s == ' ') @@ -7951,8 +7957,11 @@ mips_ip (str, ip) { ++insn; s = argsStart; + insn_error = _("illegal operands"); continue; } + if (save_c) + *(--s) = save_c; insn_error = _("illegal operands"); return; } -- 2.30.2