aboutsummaryrefslogtreecommitdiff
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
commit87f8eb977e936160d4c332d88a8bce3db690521c (patch)
tree1fa8f38d53a0c82edb0d50d47e634702cc3a6b6c /opcodes/ia64-opc-d.c
parentaacc1edd3ae439544e7e1e2e03ff456b723eae02 (diff)
downloadgdb-87f8eb977e936160d4c332d88a8bce3db690521c.zip
gdb-87f8eb977e936160d4c332d88a8bce3db690521c.tar.gz
gdb-87f8eb977e936160d4c332d88a8bce3db690521c.tar.bz2
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 6021d3b..27390f5 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}},