diff options
Diffstat (limited to 'test/CodeGen/X86/pop-stack-cleanup-msvc.ll')
-rw-r--r-- | test/CodeGen/X86/pop-stack-cleanup-msvc.ll | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/CodeGen/X86/pop-stack-cleanup-msvc.ll b/test/CodeGen/X86/pop-stack-cleanup-msvc.ll new file mode 100644 index 00000000000..6330d3de72f --- /dev/null +++ b/test/CodeGen/X86/pop-stack-cleanup-msvc.ll @@ -0,0 +1,26 @@ +; RUN: llc < %s | FileCheck %s + +target triple = "i686--windows-msvc" + +declare { i8*, i32 } @param2_ret2(i32, i32) +declare i32 @__CxxFrameHandler3(...) + + +define void @test_reserved_regs() minsize optsize personality i32 (...)* @__CxxFrameHandler3 { +; CHECK-LABEL: test_reserved_regs: +; CHECK: calll _param2_ret2 +; CHECK-NEXT: popl %ecx +; CHECK-NEXT: popl %edi +start: + %s = alloca i64 + store i64 4, i64* %s + %0 = invoke { i8*, i32 } @param2_ret2(i32 0, i32 1) + to label %out unwind label %cleanup + +out: + ret void + +cleanup: + %cp = cleanuppad within none [] + cleanupret from %cp unwind to caller +} |