diff options
author | Doug Evans <dje@google.com> | 1999-10-05 00:05:52 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 1999-10-05 00:05:52 +0000 |
commit | 1fa60b5dde8d6e82e4c8589c1b76b4b8a8730f22 (patch) | |
tree | 471599c575886f9e3aa0f8a62b0b23473f4fcb13 /opcodes/m32r-asm.c | |
parent | 103f02d372fd3f4960fb51cc3b83bbb98dc64ec1 (diff) | |
download | gdb-1fa60b5dde8d6e82e4c8589c1b76b4b8a8730f22.zip gdb-1fa60b5dde8d6e82e4c8589c1b76b4b8a8730f22.tar.gz gdb-1fa60b5dde8d6e82e4c8589c1b76b4b8a8730f22.tar.bz2 |
* fr30-asm.c,fr30-desc.h: Rebuild.
* m32r-asm.c,m32r-desc.c,m32r-desc.h: Rebuild. Add m32rx support.
* m32r-dis.c,m32r-ibld.c,m32r-opc.c,m32r-opc.h,m32r-opinst.c: Ditto.
Diffstat (limited to 'opcodes/m32r-asm.c')
-rw-r--r-- | opcodes/m32r-asm.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/opcodes/m32r-asm.c b/opcodes/m32r-asm.c index 0d67c92..2d3bd96 100644 --- a/opcodes/m32r-asm.c +++ b/opcodes/m32r-asm.c @@ -222,6 +222,15 @@ m32r_cgen_parse_operand (cd, opindex, strp, fields) switch (opindex) { + case M32R_OPERAND_ACC : + errmsg = cgen_parse_keyword (cd, strp, & m32r_cgen_opval_h_accums, & fields->f_acc); + break; + case M32R_OPERAND_ACCD : + errmsg = cgen_parse_keyword (cd, strp, & m32r_cgen_opval_h_accums, & fields->f_accd); + break; + case M32R_OPERAND_ACCS : + errmsg = cgen_parse_keyword (cd, strp, & m32r_cgen_opval_h_accums, & fields->f_accs); + break; case M32R_OPERAND_DCR : errmsg = cgen_parse_keyword (cd, strp, & m32r_cgen_opval_cr_names, & fields->f_r1); break; @@ -255,6 +264,9 @@ m32r_cgen_parse_operand (cd, opindex, strp, fields) case M32R_OPERAND_HI16 : errmsg = parse_hi16 (cd, strp, M32R_OPERAND_HI16, &fields->f_hi16); break; + case M32R_OPERAND_IMM1 : + errmsg = cgen_parse_unsigned_integer (cd, strp, M32R_OPERAND_IMM1, &fields->f_imm1); + break; case M32R_OPERAND_SCR : errmsg = cgen_parse_keyword (cd, strp, & m32r_cgen_opval_cr_names, & fields->f_r2); break; @@ -360,9 +372,14 @@ parse_insn_normal (cd, insn, strp, fields) p = CGEN_INSN_MNEMONIC (insn); while (*p && tolower (*p) == tolower (*str)) ++p, ++str; - - if (* p || (* str && !isspace (* str))) + + if (* p) + return _("unrecognized instruction"); + +#ifndef CGEN_MNEMONIC_OPERANDS + if (* str && !isspace (* str)) return _("unrecognized instruction"); +#endif CGEN_INIT_PARSE (cd); cgen_init_parse_operand (cd); @@ -385,6 +402,10 @@ parse_insn_normal (cd, insn, strp, fields) /* Non operand chars must match exactly. */ if (CGEN_SYNTAX_CHAR_P (* syn)) { + /* FIXME: While we allow for non-GAS callers above, we assume the + first char after the mnemonic part is a space. */ + /* FIXME: We also take inappropriate advantage of the fact that + GAS's input scrubber will remove extraneous blanks. */ if (*str == CGEN_SYNTAX_CHAR (* syn)) { #ifdef CGEN_MNEMONIC_OPERANDS |