summaryrefslogtreecommitdiff
path: root/opcodes/ia64-opc-d.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2001-02-22 03:16:21 +0000
committerJim Wilson <wilson@tuliptree.org>2001-02-22 03:16:21 +0000
commitf91e9eb31a3e761b1a6b73a6a2577986905abef9 (patch)
treeb293c7b1f16f1e2e1d6dbb369f848daffa75addc /opcodes/ia64-opc-d.c
parent2ce9a287c9c42b5a762997acf58b33ec1a975908 (diff)
downloadgdb-f91e9eb31a3e761b1a6b73a6a2577986905abef9.tar.gz
Improve gas error messages for invalid instructions.
* cpu-ia64-opc.c (elf64_ia64_operands}: Fix typo: error string for C8 said "1" instead of "8". Clarify error string for IMM22: "signed integer" instead of just "integer". * config/tc-ia64.c (enum operand_match_result): New type. (operand_match): Change return type to operand_match_result. Fix all returns appropriately, adding support for returning the out-of-range result. (parse_operands): New locals result, error_pos, out_of_range_pos, curr_out_of_range_pos. Rewrite operand matching loop to give better error messages. * ia64-opc-d.c (ia64_opcodes_d): Break the "add" pattern into two separate variants: one for IMM22 and the other for IMM14. * ia64-asmtab.c: Regenerate.
Diffstat (limited to 'opcodes/ia64-opc-d.c')
-rw-r--r--opcodes/ia64-opc-d.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/opcodes/ia64-opc-d.c b/opcodes/ia64-opc-d.c
index 6021d3b8daf..27390f59f2e 100644
--- a/opcodes/ia64-opc-d.c
+++ b/opcodes/ia64-opc-d.c
@@ -1,7 +1,9 @@
struct ia64_opcode ia64_opcodes_d[] =
{
{"add", IA64_TYPE_DYN, 1, 0, 0,
- {IA64_OPND_R1, IA64_OPND_IMM22, IA64_OPND_R3}},
+ {IA64_OPND_R1, IA64_OPND_IMM22, IA64_OPND_R3_2}},
+ {"add", IA64_TYPE_DYN, 1, 0, 0,
+ {IA64_OPND_R1, IA64_OPND_IMM14, IA64_OPND_R3}},
{"break", IA64_TYPE_DYN, 0, 0, 0, {IA64_OPND_IMMU21}},
{"chk.s", IA64_TYPE_DYN, 0, 0, 0, {IA64_OPND_R2, IA64_OPND_TGT25b}},
{"mov", IA64_TYPE_DYN, 1, 0, 0, {IA64_OPND_R1, IA64_OPND_AR3}},