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)
{
[(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.