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

Ramana Radhakrishnan ramana.gcc@googlemail.com
Tue Mar 1 12:36:00 GMT 2016


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.



More information about the Binutils mailing list