summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/win64_frame.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/win64_frame.ll')
-rw-r--r--llvm/test/CodeGen/X86/win64_frame.ll19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/win64_frame.ll b/llvm/test/CodeGen/X86/win64_frame.ll
index 2a8095bde7c..34f78ad0ac2 100644
--- a/llvm/test/CodeGen/X86/win64_frame.ll
+++ b/llvm/test/CodeGen/X86/win64_frame.ll
@@ -184,7 +184,26 @@ define i64 @f10(i64* %foo, i64 %bar, i64 %baz) {
; CHECK-NEXT: popq %rbp
}
+define i8* @f11() "no-frame-pointer-elim"="true" {
+ ; CHECK-LABEL: f11:
+ ; CHECK: pushq %rbp
+ ; CHECK: movq %rsp, %rbp
+ ; CHECK: .seh_setframe 5, 0
+ ; CHECK: leaq 8(%rbp), %rax
+ %aora = call i8* @llvm.addressofreturnaddress()
+ ret i8* %aora
+}
+
+define i8* @f12() {
+ ; CHECK-LABEL: f12:
+ ; CHECK-NOT: push
+ ; CHECK: movq %rsp, %rax
+ %aora = call i8* @llvm.addressofreturnaddress()
+ ret i8* %aora
+}
+
declare i8* @llvm.returnaddress(i32) nounwind readnone
+declare i8* @llvm.addressofreturnaddress() nounwind readnone
declare i64 @llvm.x86.flags.read.u64()
declare void @llvm.va_start(i8*) nounwind
OpenPOWER on IntegriCloud