]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
aarch64: Use PAUTH instead of V8_3A in some places
authorAndrew Carlotti <andrew.carlotti@arm.com>
Tue, 30 Jul 2024 15:26:04 +0000 (16:26 +0100)
committerAlfie Richards <alfie.richards@arm.com>
Tue, 1 Apr 2025 06:50:05 +0000 (06:50 +0000)
gcc/ChangeLog:

PR target/119372
* config/aarch64/aarch64.cc
(aarch64_expand_epilogue): Use TARGET_PAUTH.
* config/aarch64/aarch64.md: Update comment.

(cherry-picked from commit 20385cb92cbd4a1934661ab97a162c1e25935836)

gcc/config/aarch64/aarch64.cc
gcc/config/aarch64/aarch64.md

index 72d737d62228eca8b7dccfbcb5321033aa52277f..74d74976f4a3b298ec749d629a3a7db817e0a674 100644 (file)
@@ -10048,12 +10048,12 @@ aarch64_expand_epilogue (bool for_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 ()
-      && (for_sibcall || !TARGET_ARMV8_3))
+      && (for_sibcall || !TARGET_PAUTH))
     {
       switch (aarch64_ra_sign_key)
        {
index 47b70feff02bccfa17614800392bf68742728d41..0b205b43d97ddc37a70f6141e75957c89065baf4 100644 (file)
   [(set_attr "type" "f_cvtf2i")]
 )
 
-;; Pointer authentication patterns are always provided.  In architecture
-;; revisions prior to ARMv8.3-A these HINT instructions operate as NOPs.
+;; Pointer authentication patterns are always provided.  On targets that
+;; don't implement FEAT_PAuth these HINT instructions operate as NOPs.
 ;; 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.