Alfie Richards <alfie.richa...@arm.com> writes: > Hi Richard, > > Is this backport okay for GCC 14 as well? > (It applies cleanly for 14 but patch for 12 and 13 required a minor edit)
Yeah, OK for GCC 14, thanks. Richard > > Alfie > > On 20/03/2025 14:05, Alfie Richards wrote: >> Hi all, >> >> This commit applies cleanly to GCC 14 and fixes PR119372. >> >> Bootstrapped and regtested on aarch64-linux-gnu. >> >> Okay for gcc 14 backport? >> >> Alfie Richards >> >> On 08/10/2024 16:46, Richard Sandiford wrote: >>> Andrew Carlotti <andrew.carlo...@arm.com> writes: >>>> gcc/ChangeLog: >>>> >>>> * config/aarch64/aarch64.cc >>>> (aarch64_expand_epilogue): Use TARGET_PAUTH. >>>> * config/aarch64/aarch64.md: Update comment. >>>> >>>> >>>> diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/ >>>> aarch64.cc >>>> index >>>> e7bb3278a27eca44c46afd26069d608218198a54..cf1107127fd5d9e12ad42441528666bf6b733f73 >>>> 100644 >>>> --- a/gcc/config/aarch64/aarch64.cc >>>> +++ b/gcc/config/aarch64/aarch64.cc >>>> @@ -10042,12 +10042,12 @@ aarch64_expand_epilogue (rtx_call_insn >>>> *sibcall) >>>> 1) Sibcalls don't return in a normal way, so if we're about to >>>> call one >>>> we must authenticate. >>>> - 2) The RETAA instruction is not available before ARMv8.3-A, so >>>> if we are >>>> - generating code for !TARGET_ARMV8_3 we can't use it and must >>>> + 2) The RETAA instruction is not available without FEAT_PAuth, so >>>> if we >>>> + are generating code for !TARGET_PAUTH we can't use it and must >>>> explicitly authenticate. >>>> */ >>>> if (aarch64_return_address_signing_enabled () >>>> - && (sibcall || !TARGET_ARMV8_3)) >>>> + && (sibcall || !TARGET_PAUTH)) >>>> { >>>> switch (aarch64_ra_sign_key) >>>> { >>>> diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/ >>>> aarch64.md >>>> index >>>> c54b29cd64b9e0dc6c6d12735049386ccedc5408..0940a84f9295ee2bc07282b150095fdb5af11a4d >>>> 100644 >>>> --- a/gcc/config/aarch64/aarch64.md >>>> +++ b/gcc/config/aarch64/aarch64.md >>>> @@ -7672,10 +7672,10 @@ >>>> ) >>>> ;; Pointer authentication patterns are always provided. In >>>> architecture >>>> -;; revisions prior to ARMv8.3-A these HINT instructions operate as >>>> NOPs. >>>> +;; revisions prior to FEAT_PAuth these HINT instructions operate as >>>> NOPs. >>> >>> I suppose this should be something like "On targets that don't implement >>> FEAT_PAuth". OK with that change, thanks. >>> >>> Richard >>> >>>> ;; This lets the user write portable software which authenticates >>>> pointers >>>> -;; when run on something which implements ARMv8.3-A, and which runs >>>> -;; correctly, but does not authenticate pointers, where ARMv8.3-A is >>>> not >>>> +;; when run on something which implements FEAT_PAuth, and which runs >>>> +;; correctly, but does not authenticate pointers, where FEAT_PAuth >>>> is not >>>> ;; implemented. >>>> ;; Signing/Authenticating R30 using SP as the salt. >>> >>