diff --git a/clang/lib/Basic/Targets/AArch64.h b/clang/lib/Basic/Targets/AArch64.h --- a/clang/lib/Basic/Targets/AArch64.h +++ b/clang/lib/Basic/Targets/AArch64.h @@ -45,6 +45,7 @@ bool HasMTE = false; bool HasTME = false; bool HasPAuth = false; + bool HasFPAC = false; bool HasLS64 = false; bool HasRandGen = false; bool HasMatMul = false; diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp --- a/clang/lib/Basic/Targets/AArch64.cpp +++ b/clang/lib/Basic/Targets/AArch64.cpp @@ -909,6 +909,8 @@ HasTME = true; if (Feature == "+pauth") HasPAuth = true; + if (Feature == "+fpac") + HasFPAC = true; if (Feature == "+i8mm") HasMatMul = true; if (Feature == "+bf16") diff --git a/llvm/lib/Target/AArch64/AArch64.td b/llvm/lib/Target/AArch64/AArch64.td --- a/llvm/lib/Target/AArch64/AArch64.td +++ b/llvm/lib/Target/AArch64/AArch64.td @@ -316,6 +316,10 @@ "pauth", "HasPAuth", "true", "Enable v8.3-A Pointer Authentication extension (FEAT_PAuth)">; +def FeatureFPAC : SubtargetFeature< + "fpac", "HasFPAC", "true", + "Assume AUT* instructions generate fault on invalid PAC (FEAT_FPAC)">; + def FeatureJS : SubtargetFeature< "jsconv", "HasJS", "true", "Enable v8.3-A JavaScript FP conversion instructions (FEAT_JSCVT)",