X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=opcodes%2Fm32r-asm.c;h=824366c716541ee6b6197bc731a4ce37e94a7513;hb=5b3b8cb07149b04b6e612ddae2b01958f839025f;hp=068b30f35203ab26b4eee5178df7cd99fa7e144a;hpb=9c03036a8f1cdb8dcf79a042d5ff9afc219d1dc7;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/m32r-asm.c b/opcodes/m32r-asm.c index 068b30f352..824366c716 100644 --- a/opcodes/m32r-asm.c +++ b/opcodes/m32r-asm.c @@ -551,7 +551,6 @@ parse_insn_normal (insn, strp, fields) #endif CGEN_INIT_PARSE (); - cgen_asm_init_parse (); #ifdef CGEN_MNEMONIC_OPERANDS past_opcode_p = 0; #endif @@ -678,10 +677,11 @@ insert_insn_normal (insn, fields, buffer) printed). */ const struct cgen_insn * -m32r_cgen_assemble_insn (str, fields, buf) +m32r_cgen_assemble_insn (str, fields, buf, errmsg) const char *str; struct cgen_fields *fields; cgen_insn_t *buf; + char **errmsg; { const char *start; CGEN_INSN_LIST *ilist; @@ -740,13 +740,22 @@ m32r_cgen_assemble_insn (str, fields, buf) /* Try the next entry. */ } - /* FIXME: Define this as a callback, or pass back string? */ - as_bad ("bad instruction `%s'", start); - return NULL; + /* FIXME: We can return a better error message than this. + Need to track why it failed and pick the right one. */ + { + static char errbuf[100]; + sprintf (errbuf, "bad instruction `%.50s%s'", + start, strlen (start) > 50 ? "..." : ""); + *errmsg = errbuf; + return NULL; + } } +#if 0 /* This calls back to GAS which we can't do without care. */ + /* Record each member of OPVALS in the assembler's symbol table. - FIXME: Not currently used. */ + This lets GAS parse registers for us. + ??? Interesting idea but not currently used. */ void m32r_cgen_asm_hash_keywords (opvals) @@ -764,3 +773,5 @@ m32r_cgen_asm_hash_keywords (opvals) cgen_asm_record_register (ke->name, ke->value); } } + +#endif /* 0 */