[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