[PATCH 2/15] arm: Add Armv8.1-M Mainline target feature +pacbti

This patch adds the -march feature +pacbti to Armv8.1-M Mainline.
This feature enables pointer signing and authentication instructions
on M-class architectures.

Pre-approved here
<https://gcc.gnu.org/pipermail/gcc-patches/2021-December/586144.html>.

gcc/Changelog:

	* config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
	* config/arm/arm-cpus.in (pacbti): New feature.
	* doc/invoke.texi (Arm Options): Document it.

Co-Authored-By: Tejas Belagod  <tbelagod@arm.com>
This commit is contained in:
Andrea Corallo 2021-12-06 11:38:32 +01:00
parent d8dadbc9a5
commit c91bb7b9fc
3 changed files with 14 additions and 0 deletions

View file

@ -229,6 +229,10 @@ define feature cdecp5
define feature cdecp6
define feature cdecp7
# M-profile control flow integrity extensions (PAC/AUT/BTI).
# Optional from Armv8.1-M Mainline.
define feature pacbti
# Feature groups. Conventionally all (or mostly) upper case.
# ALL_FPU lists all the feature bits associated with the floating-point
# unit; these will all be removed if the floating-point unit is disabled
@ -743,6 +747,7 @@ begin arch armv8.1-m.main
isa ARMv8_1m_main
# fp => FPv5-sp-d16; fp.dp => FPv5-d16
option dsp add armv7em
option pacbti add pacbti
option fp add FPv5 fp16
option fp.dp add FPv5 FP_DBL fp16
option nofp remove ALL_FP

View file

@ -331,6 +331,12 @@ emission of floating point pcs attributes. */
isa_bit_mve_float) \
&& !TARGET_GENERAL_REGS_ONLY)
/* Non-zero if this target supports Armv8.1-M Mainline pointer-signing
extension. */
#define TARGET_HAVE_PACBTI (arm_arch8_1m_main \
&& bitmap_bit_p (arm_active_target.isa, \
isa_bit_pacbti))
/* MVE have few common instructions as VFP, like VLDM alias VPOP, VLDR, VSTM
alia VPUSH, VSTR and VMOV, VMSR and VMRS. In the same manner it updates few
registers such as FPCAR, FPCCR, FPDSCR, FPSCR, MVFR0, MVFR1 and MVFR2. All

View file

@ -22020,6 +22020,9 @@ Disable the floating-point extension.
@item +cdecp0, +cdecp1, ... , +cdecp7
Enable the Custom Datapath Extension (CDE) on selected coprocessors according
to the numbers given in the options in the range 0 to 7.
@item +pacbti
Enable the Pointer Authentication and Branch Target Identification Extension.
@end table
@item armv8-m.main