[PATCH][binutils][arm] PR25376 Change MVE into a CORE_HIGH feature

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH][binutils][arm] PR25376 Change MVE into a CORE_HIGH feature

Andre Vieira (lists)
Hi,

This patch moves MVE feature bits into the CORE_HIGH section.  This
makes sure .fpu and -mfpu does not reset the bits set by MVE. This is
important because .fpu has no option to "set" these same bits and thus,
mimic'ing GCC, we choose to define MVE as an architecture extension
rather than put it together with other the legacy fpu features.

This will enable the following behavior:
.arch armv8.1-m.main
.arch mve
.fpu fpv5-sp-d16               #does not disable mve.
vadd.i32 q0, q1, q2

This patch also makes sure MVE is not taken into account during
auto-detect. This was already the case, but because we moved the MVE
bits to the architecture feature space we must make sure ARM_ANY does
not include MVE.

Tested on arm-none-eabi, arm-wince-pe and arm-vxworks.

gas/ChangeLog:
2020-01-13  Andre Vieira  <[hidden email]>

         PR 25376
         * config/tc-arm.c (mve_ext, mve_fp_ext): Use CORE_HIGH.
         (armv8_1m_main_ext_table): Use CORE_HIGH for mve.
         * testsuite/arm/armv8_1-m-fpu-mve-1.s: New.
         * testsuite/arm/armv8_1-m-fpu-mve-1.d: New.
         * testsuite/arm/armv8_1-m-fpu-mve-2.s: New.
         * testsuite/arm/armv8_1-m-fpu-mve-2.d: New.


include/ChangeLog:
2020-01-13  Andre Vieira  <[hidden email]>

         PR 25376
         * opcodes/arm.h (FPU_MVE, FPU_MVE_FPU): Move these features to...
         (ARM_EXT2_MVE, ARM_EXT2_MVE_FP): ... the CORE_HIGH space.
         (ARM_ANY): Redefine to not include any MVE bits.
         (ARM_FEATURE_ALL): Removed.

opcodes/ChangeLog:
2020-01-13  Andre Vieira  <[hidden email]>

         PR 25376
         * opcodes/arm-dis.c (coprocessor_opcodes): Use CORE_HIGH for
         MVE bits.
         (neon_opcodes): Likewise.
         (select_arm_features): Make sure we enable MVE bits when
         selecting armv8.1-m.main. Make sure we do not enable MVE
         bits when not selecting any architecture.

pr25376.patch (57K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH][binutils][arm] PR25376 Change MVE into a CORE_HIGH feature

Nick Clifton
Hi Andre,

> gas/ChangeLog:
> 2020-01-13  Andre Vieira  <[hidden email]>
>
>         PR 25376
>         * config/tc-arm.c (mve_ext, mve_fp_ext): Use CORE_HIGH.
>         (armv8_1m_main_ext_table): Use CORE_HIGH for mve.
>         * testsuite/arm/armv8_1-m-fpu-mve-1.s: New.
>         * testsuite/arm/armv8_1-m-fpu-mve-1.d: New.
>         * testsuite/arm/armv8_1-m-fpu-mve-2.s: New.
>         * testsuite/arm/armv8_1-m-fpu-mve-2.d: New.
>
>
> include/ChangeLog:
> 2020-01-13  Andre Vieira  <[hidden email]>
>
>         PR 25376
>         * opcodes/arm.h (FPU_MVE, FPU_MVE_FPU): Move these features to...
>         (ARM_EXT2_MVE, ARM_EXT2_MVE_FP): ... the CORE_HIGH space.
>         (ARM_ANY): Redefine to not include any MVE bits.
>         (ARM_FEATURE_ALL): Removed.
>
> opcodes/ChangeLog:
> 2020-01-13  Andre Vieira  <[hidden email]>
>
>         PR 25376
>         * opcodes/arm-dis.c (coprocessor_opcodes): Use CORE_HIGH for
>         MVE bits.
>         (neon_opcodes): Likewise.
>         (select_arm_features): Make sure we enable MVE bits when
>         selecting armv8.1-m.main. Make sure we do not enable MVE
>         bits when not selecting any architecture.

Approved - please apply.

Cheers
 Nick