[ARM] Add feature check for ARMv8.1 AdvSIMD instructions.

Matthew Wahab matthew.wahab@foss.arm.com
Thu Feb 25 12:32:00 GMT 2016


Hello,

The VQRDMLAH and VQRDMLSH instructions, enabled by the +rdma extension,
are only available on ARMv8.1 and later architectures but GAS accepts
them for ARMv8 or later. It also fails to record their use, needed to be
able to emit the correct build attributes.

This patch adds feature checking to the instructions and properly
records their use. The instructions continue to be accepted for ARMv8
but will emit a warning if the +rdma feature wasn't specified or implied
by other options. The existing tests for -march=armv8-a+rdma are renamed
to match the -march=armv8.1-a+simd option and a test for the new warning
is added.

This patch also enables the instructions for -march=armv8.1-a, provided
suitable options are also provided to enable the AdvSIMD code generation
(such as +simd).

Changes to emit build attributes will be done separately.

Tested for arm-none-linux-gnueabihf with cross-compiled check-binutils
and check-gas.

Ok for trunk?
Matthew

gas/
2016-02-25  Matthew Wahab  <matthew.wahab@arm.com>

	* config/gas/tc-arm.c (fpu_neon_ext_v8_1): Restrict to the ARMv8.1 RDMA
	feature.
	(record_feature_use): New.
	(mark_feature_used): Use record_feature_use.
	(do_neon_qrdmlah): New.
	(insns): Use do_neon_qrdmlah for vqrdmlah and vqrdmlsh and
	variants.
	(arm_extensions): Put into alphabetical order.  Re-indent "simd"
	and "rdma" entries.  Fix the incorrect merge value for "+rdma".

gas/testuite/
2016-02-25  Matthew Wahab  <matthew.wahab@arm.com>

	* gas/arm/armv8-a+rdma-warning.d: New.
	* gas/arm/armv8-a+rdma.d: Add assembler command line options.
	Make source file explicit.
	* gas/arm/armv8-a+rdma.l: New.
	* gas/arm/armv8-a+rdma.s: Remove .arch and .arch_extension
	directives.  Fix white-space.
	* gas/arm/armv8_1-a+simd.d: New.

include/opcode
2016-02-25  Matthew Wahab  <matthew.wahab@arm.com>

	* arm.h (ARM_ARCH_V8_1A): Add FPU_NEON_EXT_RDMA.
	(ARM_CPU_HAS_FEATURE): Add comment.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ARM-GAS-Add-architecture-check-to-ARMv8.1-AdvSIMD-in.patch
Type: text/x-patch
Size: 18254 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20160225/23e42b2f/attachment.bin>


More information about the Binutils mailing list