[clang] [llvm] [ARM] Add support for Windows SEH (PR #184953)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 6 14:30:50 PDT 2026


================
@@ -3282,6 +3292,36 @@ bool ARMExpandPseudo::ExpandMI(MachineBasicBlock &MBB,
       MI.eraseFromParent();
       return true;
     }
+    case ARM::WIN_RECOVER_FP: {
+      MachineBasicBlock &MBB = *MI.getParent();
+      MachineBasicBlock::iterator MBBI = MI.getIterator();
+      MachineFunction &MF = *MI.getMF();
+      DebugLoc dl = MI.getDebugLoc();
+      Register DstReg = MI.getOperand(0).getReg();
+      const ARMBaseRegisterInfo &RI = TII->getRegisterInfo();
+      Register BaseReg = RI.getBaseRegister();
+      Register LocalAddrReg = RI.getLocalAddressRegister(MF);
+      if (AFI->isBasePtrSpilled()) {
+        // If the handler itself uses R6, we must restore the parent's R6.
----------------
efriedma-quic wrote:

I want to see CHECK lines for the case where the register is spilled.  (If this can actually happen?  Not sure.)

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


More information about the llvm-commits mailing list