diff options
author | Yufeng Zhang <yufeng.zhang@arm.com> | 2013-11-05 20:50:18 +0000 |
---|---|---|
committer | Yufeng Zhang <yufeng.zhang@arm.com> | 2013-11-05 20:50:18 +0000 |
commit | 68a642838267d9971f77f9eb487d32044a499c82 (patch) | |
tree | 9687f65166a0f885332088bec9166d438007c5d3 /gas/config | |
parent | 4e50d5f863090d22db5ce0ec1e7d9e075806fd91 (diff) | |
download | gdb-68a642838267d9971f77f9eb487d32044a499c82.zip gdb-68a642838267d9971f77f9eb487d32044a499c82.tar.gz gdb-68a642838267d9971f77f9eb487d32044a499c82.tar.bz2 |
gas/
* config/tc-aarch64.c (parse_operands): Handle AARCH64_OPND_COND1.
gas/testsuite/
* gas/aarch64/alias.s: Add tests.
* gas/aarch64/alias.d: Update.
* gas/aarch64/no-aliases.d: Update.
* gas/aarch64/diagnostic.s: Add tests.
* gas/aarch64/diagnostic.l: Update.
* gas/aarch64/illegal.s: Add tests.
* gas/aarch64/illegal.l: Update.
include/opcode/
* aarch64.h (enum aarch64_operand_class): Add AARCH64_OPND_CLASS_COND.
(enum aarch64_opnd): Add AARCH64_OPND_COND1.
opcodes/
* aarch64-dis.c (convert_ubfm_to_lsl): Check for cond != '111x'.
(convert_from_csel): Likewise.
* aarch64-opc.c (operand_general_constraint_met_p): Handle
AARCH64_OPND_CLASS_COND and AARCH64_OPND_COND1.
(aarch64_print_operand): Handle AARCH64_OPND_COND1.
* aarch64-tbl.h (aarch64_opcode_table): Use COND1 instead of
COND for cinc, cset, cinv, csetm and cneg.
(AARCH64_OPERANDS): Add entry for AARCH64_OPND_COND1.
* aarch64-asm-2.c: Re-generated.
* aarch64-dis-2.c: Ditto.
* aarch64-opc-2.c: Ditto.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-aarch64.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 02fe4de..4febbdc 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -4969,6 +4969,7 @@ parse_operands (char *str, const aarch64_opcode *opcode) break; case AARCH64_OPND_COND: + case AARCH64_OPND_COND1: info->cond = hash_find_n (aarch64_cond_hsh, str, 2); str += 2; if (info->cond == NULL) @@ -4976,6 +4977,13 @@ parse_operands (char *str, const aarch64_opcode *opcode) set_syntax_error (_("invalid condition")); goto failure; } + else if (operands[i] == AARCH64_OPND_COND1 + && (info->cond->value & 0xe) == 0xe) + { + /* Not allow AL or NV. */ + set_default_error (); + goto failure; + } break; case AARCH64_OPND_ADDR_ADRP: |