* 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.
This commit is contained in:
Yufeng Zhang 2013-12-18 19:15:57 +00:00
parent f45c82da38
commit 3f06bfce70
6 changed files with 53 additions and 8 deletions

View File

@ -1,3 +1,8 @@
2013-12-18 Yufeng Zhang <yufeng.zhang@arm.com>
* config/tc-aarch64.c (md_assemble): Defer the feature checking until
do_encode () succeeds.
2013-12-18 Nick Clifton <nickc@redhat.com>
* config/tc-rx.c (rx_include): Rename 'eof' to 'last_char' in

View File

@ -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);

View File

@ -1,3 +1,9 @@
2013-12-18 Yufeng Zhang <yufeng.zhang@arm.com>
* gas/aarch64/rm-simd-ext.d: New file.
* gas/aarch64/rm-simd-ext.l: Likewise.
* gas/aarch64/rm-simd-ext.s: Likewise.
2013-12-17 Kuan-Lin Chen <kuanlinchentw@gmail.com>
* gas/nds32/nds32.exp: Add system and user special register tests.

View File

@ -0,0 +1,4 @@
#name: SIMD Extension Removal
#source: rm-simd-ext.s
#error-output: rm-simd-ext.l
#as: -mcpu=cortex-a57+nosimd

View File

@ -0,0 +1,2 @@
[^:]*: Assembler messages:
[^:]*:27: Error: selected processor does not support `orr v0.16b,v1.16b,v2.16b'

View File

@ -0,0 +1,28 @@
/* rm-simd-ext.s Test file for AArch64 extension removal in -mcpu option.
Copyright 2013 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GAS.
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the license, or
(at your option) any later version.
GAS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING3. If not,
see <http://www.gnu.org/licenses/>. */
.text
mov w3, 200
mul w3, w2, w3
add w1, w1, w3
add w2, w0, w2, lsl 2
orr v0.16b, v1.16b, v2.16b
orr w1, w1, w3