summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FrameLowering.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-09-29 20:12:33 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-09-29 20:12:33 +0000
commita80c1512861aa78f75a89b92275aaf2e92ff7fb9 (patch)
treeb5d4c3efc67ff022eb8a71ad379dc01a1447a46f /llvm/lib/Target/X86/X86FrameLowering.cpp
parent81f005617e42e64b553a5ded37f1afac9b3fb4cc (diff)
downloadbcm5719-llvm-a80c1512861aa78f75a89b92275aaf2e92ff7fb9.tar.gz
bcm5719-llvm-a80c1512861aa78f75a89b92275aaf2e92ff7fb9.zip
[WinEH] Teach AsmPrinter about funclets
Summary: Funclets have been turned into functions by the time they hit the object file. Make sure that they have decent names for the symbol table and CFI directives explaining how to reason about their prologues. Differential Revision: http://reviews.llvm.org/D13261 llvm-svn: 248824
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