This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [ARM] Add feature check for ARMv8.1 AdvSIMD instructions.
- From: Ramana Radhakrishnan <ramana dot gcc at googlemail dot com>
- To: Matthew Wahab <matthew dot wahab at foss dot arm dot com>
- Cc: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Tue, 1 Mar 2016 12:36:25 +0000
- Subject: Re: [ARM] Add feature check for ARMv8.1 AdvSIMD instructions.
- Authentication-results: sourceware.org; auth=none
- References: <56CEF458 dot 6030107 at foss dot arm dot com>
On Thu, Feb 25, 2016 at 12:32 PM, Matthew Wahab
<matthew.wahab@foss.arm.com> wrote:
> 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?
OK.
Ramana
> 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.