diff options
author | Doug Evans <dje@google.com> | 1998-01-24 00:44:52 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 1998-01-24 00:44:52 +0000 |
commit | fbe2ad4648553027fecca48393d829e1ba603904 (patch) | |
tree | 6a77166b81ac234ac05427a54d430af73e8e4012 | |
parent | ea32bce77398ac73f68e9e3be4a0920fcbcd270b (diff) | |
download | gdb-fbe2ad4648553027fecca48393d829e1ba603904.zip gdb-fbe2ad4648553027fecca48393d829e1ba603904.tar.gz gdb-fbe2ad4648553027fecca48393d829e1ba603904.tar.bz2 |
* config/tc-txvu.c (assemble_insn): Delete test for !isalpha
after parsing mnemonic. ASCII operand chars are case insensitive.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-txvu.c | 28 |
2 files changed, 16 insertions, 17 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 2a930a7..ef8b4cd 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,4 +1,9 @@ start-sanitize-sky +Fri Jan 23 16:44:19 1998 Doug Evans <devans@seba.cygnus.com> + + * config/tc-txvu.c (assemble_insn): Delete test for !isalpha + after parsing mnemonic. ASCII operand chars are case insensitive. + Thu Jan 22 20:30:24 1998 Doug Evans <devans@seba.cygnus.com> * config/tc-txvu.c (assemble_insn): Commas moved to opcode table. diff --git a/gas/config/tc-txvu.c b/gas/config/tc-txvu.c index 7da6b94..502f28a 100644 --- a/gas/config/tc-txvu.c +++ b/gas/config/tc-txvu.c @@ -184,8 +184,6 @@ assemble_insn (str, lower_p, buf) break; if (*syn != '\0') continue; - if (isalpha (*str)) - continue; /* Scan the syntax string. If it doesn't match, try the next one. */ @@ -204,10 +202,12 @@ assemble_insn (str, lower_p, buf) const struct txvu_operand *operand; const char *errmsg; - /* Non operand chars must match exactly. */ + /* Non operand chars must match exactly. + Operand chars that are letters are not part of symbols + and are case insensitive. */ if (*syn < 128) { - if (*str == *syn) + if (tolower (*str) == tolower (*syn)) { if (*syn == ' ') past_opcode_p = 1; @@ -264,6 +264,8 @@ assemble_insn (str, lower_p, buf) s = str; /* Pick the suffix out and parse it. */ + /* ??? Hmmm ... there may not be any need to nul-terminate the + string, and it may in fact complicate things. */ for (t = *s == '.' ? s + 1 : s; *t && isalpha (*t); ++t) continue; c = *t; @@ -272,9 +274,10 @@ assemble_insn (str, lower_p, buf) *t = c; if (errmsg) { - /* This can happen in "blle foo" and we're currently using - the template "b%q%.n %j". The "bl" insn occurs later in - the table so "lle" isn't an illegal suffix. */ + /* This can happen, for example, in ARC's in "blle foo" and + we're currently using the template "b%q%.n %j". The "bl" + insn occurs later in the table so "lle" isn't an illegal + suffix. */ break; } /* Insert the suffix's value into the insn. */ @@ -312,6 +315,7 @@ assemble_insn (str, lower_p, buf) /* Is there anything left to parse? We don't check for this at the top because we want to parse any trailing fake arguments in the syntax string. */ + /* ??? This doesn't allow operands with a legal value of "". */ if (*str == '\0') break; @@ -355,16 +359,6 @@ assemble_insn (str, lower_p, buf) const char *errmsg = NULL; insn = (*operand->insert) (insn, operand, mods, value, &errmsg); -#if 0 - if (errmsg != (const char *) NULL) - as_warn (errmsg); -#endif - /* FIXME: We want to try shimm insns for limm ones. But if - the constant won't fit, we must go on to try the next - possibility. Where do we issue warnings for constants - that are too big then? At present, we'll flag the insn - as unrecognizable! Maybe have the "bad instruction" - error message include our `errmsg'? */ if (errmsg != (const char *) NULL) break; } |