aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorYufeng Zhang <yufeng.zhang@arm.com>2013-12-18 19:15:57 +0000
committerYufeng Zhang <yufeng.zhang@arm.com>2013-12-18 19:15:57 +0000
commit3f06bfce701d5060c7a11c827742b86dc385b4b4 (patch)
tree59e5ca3fd7a7d12cd1c6f315836ac81ba65da35a /gas/config
parentf45c82da381e0ce5ce51b7fb24d0d28611d266b8 (diff)
downloadgdb-3f06bfce701d5060c7a11c827742b86dc385b4b4.zip
gdb-3f06bfce701d5060c7a11c827742b86dc385b4b4.tar.gz
gdb-3f06bfce701d5060c7a11c827742b86dc385b4b4.tar.bz2
gas/
* config/tc-aarch64.c (md_assemble): Defer the feature checking until do_encode () succeeds. gas/testsuite/ * gas/aarch64/rm-simd-ext.d: New file. * gas/aarch64/rm-simd-ext.l: Likewise. * gas/aarch64/rm-simd-ext.s: Likewise.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-aarch64.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index fb0ae33..7a69d00 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -5531,14 +5531,6 @@ md_assemble (char *str)
dump_opcode_operands (opcode);
#endif /* DEBUG_AARCH64 */
- /* Check that this instruction is supported for this CPU. */
- if (!opcode->avariant
- || !AARCH64_CPU_HAS_FEATURE (cpu_variant, *opcode->avariant))
- {
- as_bad (_("selected processor does not support `%s'"), str);
- return;
- }
-
mapping_state (MAP_INSN);
inst_base = &inst.base;
@@ -5563,6 +5555,14 @@ md_assemble (char *str)
&& programmer_friendly_fixup (&inst)
&& do_encode (inst_base->opcode, &inst.base, &inst_base->value))
{
+ /* Check that this instruction is supported for this CPU. */
+ if (!opcode->avariant
+ || !AARCH64_CPU_HAS_FEATURE (cpu_variant, *opcode->avariant))
+ {
+ as_bad (_("selected processor does not support `%s'"), str);
+ return;
+ }
+
if (inst.reloc.type == BFD_RELOC_UNUSED
|| !inst.reloc.need_libopcodes_p)
output_inst (NULL);