[PATCH, GCC, ARM] Enable armv8.5-a and add +sb and +predres for previous ARMv8-a in ARM
Kyrill Tkachov
kyrylo.tkachov@foss.arm.com
Fri Nov 9 18:21:00 GMT 2018
Hi Sudi,
On 09/11/18 15:33, Sudakshina Das wrote:
> Hi
>
> This patch adds -march=armv8.5-a to the Arm backend.
> (https://developer.arm.com/products/architecture/cpu-architecture/a-profile/exploration-tools)
> Armv8.5-A also adds two new security features:
> - Speculation Barrier instruction
> - Execution and Data Prediction Restriction Instructions
> These are made optional to all older Armv8-A versions. Thus we are
> adding two new options "+sb" and "+predres" to all older Armv8-A. These
> are passed on to the assembler and have no code generation effects and
> have already gone in the trunk of binutils.
>
> Bootstrapped and regression tested with arm-none-linux-gnueabihf.
>
> Is this ok for trunk?
> Sudi
>
> *** gcc/ChangeLog ***
>
> 2018-xx-xx Sudakshina Das <sudi.das@arm.com>
>
> * config/arm/arm-cpus.in (armv8_5, sb, predres): New features.
> (ARMv8_5a): New fgroup.
> (armv8.5-a): New arch.
> (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New
> options sb and predres.
> * config/arm/arm-tables.opt: Regenerate.
> * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a
> * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a.
> * config/arm/t-multilib (v8_5_a_simd_variants): New variable.
> Add matching rules for -march=armv8.5-a and extensions.
> * doc/invoke.texi (ARM options): Document -march=armv8.5-a.
> Add sb and predres to all armv8-a except armv8.5-a.
>
> *** gcc/testsuite/ChangeLog ***
>
> 2018-xx-xx Sudakshina Das <sudi.das@arm.com>
>
> * gcc.target/arm/multilib.exp: Add some -march=armv8.5-a
> combination tests.
Hi
This patch adds -march=armv8.5-a to the Arm backend.
(https://developer.arm.com/products/architecture/cpu-architecture/a-profile/exploration-tools)
Armv8.5-A also adds two new security features:
- Speculation Barrier instruction
- Execution and Data Prediction Restriction Instructions
These are made optional to all older Armv8-A versions. Thus we are
adding two new options "+sb" and "+predres" to all older Armv8-A. These
are passed on to the assembler and have no code generation effects and
have already gone in the trunk of binutils.
Bootstrapped and regression tested with arm-none-linux-gnueabihf.
Is this ok for trunk?
Sudi
*** gcc/ChangeLog ***
2018-xx-xx Sudakshina Das<sudi.das@arm.com>
* config/arm/arm-cpus.in (armv8_5, sb, predres): New features.
(ARMv8_5a): New fgroup.
(armv8.5-a): New arch.
(armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New
options sb and predres.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/t-aprofile: Add matching rules for -march=armv8.5-a
* config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a.
* config/arm/t-multilib (v8_5_a_simd_variants): New variable.
Add matching rules for -march=armv8.5-a and extensions.
* doc/invoke.texi (ARM options): Document -march=armv8.5-a.
Add sb and predres to all armv8-a except armv8.5-a.
*** gcc/testsuite/ChangeLog ***
2018-xx-xx Sudakshina Das<sudi.das@arm.com>
* gcc.target/arm/multilib.exp: Add some -march=armv8.5-a
combination tests.
This is ok modulo a typo fix below.
Thanks,
Kyrill
<snip>
index 25788ad09851daf41038b1578307bf23b7f34a94..eba038f9d20bc54bef7bdb7fa1c0e7028d954ed7 100644
--- a/gcc/config/arm/t-multilib
+++ b/gcc/config/arm/t-multilib
@@ -70,7 +70,8 @@ v8_a_simd_variants := $(call all_feat_combs, simd crypto)
v8_1_a_simd_variants := $(call all_feat_combs, simd crypto)
v8_2_a_simd_variants := $(call all_feat_combs, simd fp16 fp16fml crypto dotprod)
v8_4_a_simd_variants := $(call all_feat_combs, simd fp16 crypto)
-v8_r_nosimd_variants := +crc
+v8_5_a_simd_variants := $(call all_feat_combs, simd fp16 crypto)
+v8_r_nosimd_variants := +cr5
Typo, should be +crc
More information about the Gcc-patches
mailing list