[llvm] [X86][APX] Implement Windows APX ABI callee-saved registers per Microsoft spec (PR #200391)

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 2 21:09:42 PDT 2026


================
@@ -296,15 +306,18 @@ X86RegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const {
   case CallingConv::X86_RegCall:
     if (Is64Bit) {
       if (IsWin64) {
-        return (HasSSE ? CSR_Win64_RegCall_SaveList :
-                         CSR_Win64_RegCall_NoSSE_SaveList);
+        if (HasEGPR) {
+          assert(HasSSE && "EGPR on Windows X64 requires SSE");
+          return CSR_Win64_APX_RegCall_SaveList;
+        }
+        return (HasSSE ? CSR_Win64_RegCall_SaveList
+                       : CSR_Win64_RegCall_NoSSE_SaveList);
       } else {
----------------
phoebewang wrote:

Nit: We can remove else given there's return in if block.

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


More information about the llvm-commits mailing list