summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FrameLowering.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/X86/X86FrameLowering.cpp')
-rw-r--r--llvm/lib/Target/X86/X86FrameLowering.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86FrameLowering.cpp b/llvm/lib/Target/X86/X86FrameLowering.cpp
index e4c35b115e0..0e6b5c4b404 100644
--- a/llvm/lib/Target/X86/X86FrameLowering.cpp
+++ b/llvm/lib/Target/X86/X86FrameLowering.cpp
@@ -713,8 +713,6 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF,
// Reset EBP / ESI to something good.
MBBI = restoreWin32EHStackPointers(MBB, MBBI, DL);
} else {
- // FIXME: Add SEH directives.
- NeedsWinCFI = false;
// Immediately spill RDX into the home slot. The runtime cares about this.
unsigned RDX = Uses64BitFramePtr ? X86::RDX : X86::EDX;
// MOV64mr %rdx, 16(%rsp)
@@ -727,6 +725,9 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF,
BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
.addReg(MachineFramePtr, RegState::Kill)
.setMIFlag(MachineInstr::FrameSetup);
+ BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_PushReg))
+ .addImm(MachineFramePtr)
+ .setMIFlag(MachineInstr::FrameSetup);
// MOV64rr %rdx, %rbp
unsigned MOVrr = Uses64BitFramePtr ? X86::MOV64rr : X86::MOV32rr;
BuildMI(MBB, MBBI, DL, TII.get(MOVrr), FramePtr)
OpenPOWER on IntegriCloud