[llvm] [AArch64][SME] Handle SME state around TLS-descriptor calls (PR #155608)

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 3 13:50:22 PST 2025


================
@@ -162,6 +162,12 @@ getZAStateBeforeInst(const TargetRegisterInfo &TRI, MachineInstr &MI,
   if (MI.getOpcode() == AArch64::RequiresZASavePseudo)
     return {ZAState::LOCAL_SAVED, std::prev(InsertPt)};
 
+  // TLS-descriptor calls don't use the standard call lowering, so handle them
+  // as a special case here. Assume a private ZA interface.
+  if (MI.getOpcode() == AArch64::TLSDESC_CALLSEQ ||
+      MI.getOpcode() == AArch64::TLSDESC_AUTH_CALLSEQ)
----------------
sdesmalen-arm wrote:

Rather than checking these instructions here, should SelectionDAG insert a `AArch64::RequiresZASavePseudo` before the call?

https://github.com/llvm/llvm-project/pull/155608


More information about the llvm-commits mailing list