diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-01-11 18:41:19 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-01-11 18:41:19 +0000 |
commit | 25cd4ff97e882ad5039dec15b0c9be8fef062b6b (patch) | |
tree | 510cf4f8702c2c9b709fe2ba1e048f14cedc5bb5 /test/CodeGen/X86/segmented-stacks.ll | |
parent | 11f0e7b158d669a8c630068a0d8bdd107caef487 (diff) | |
download | llvm-25cd4ff97e882ad5039dec15b0c9be8fef062b6b.tar.gz llvm-25cd4ff97e882ad5039dec15b0c9be8fef062b6b.tar.bz2 llvm-25cd4ff97e882ad5039dec15b0c9be8fef062b6b.tar.xz |
Generate the segmented stack prologue for fastcc too.
Patch by Brian Anderson.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147958 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/segmented-stacks.ll')
-rw-r--r-- | test/CodeGen/X86/segmented-stacks.ll | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/CodeGen/X86/segmented-stacks.ll b/test/CodeGen/X86/segmented-stacks.ll index 27537c085c..0e125d36a7 100644 --- a/test/CodeGen/X86/segmented-stacks.ll +++ b/test/CodeGen/X86/segmented-stacks.ll @@ -114,3 +114,58 @@ define void @test_large() { ; X64-NEXT: ret } + +define fastcc void @test_fastcc() { + %mem = alloca i32, i32 10 + call void @dummy_use (i32* %mem, i32 10) + ret void + +; X32: test_fastcc: + +; X32: cmpl %gs:48, %esp +; X32-NEXT: ja .LBB3_2 + +; X32: pushl $0 +; X32-NEXT: pushl $60 +; X32-NEXT: calll __morestack +; X32-NEXT: ret + +; X64: test_fastcc: + +; X64: cmpq %fs:112, %rsp +; X64-NEXT: ja .LBB3_2 + +; X64: movabsq $40, %r10 +; X64-NEXT: movabsq $0, %r11 +; X64-NEXT: callq __morestack +; X64-NEXT: ret + +} + +define fastcc void @test_fastcc_large() { + %mem = alloca i32, i32 10000 + call void @dummy_use (i32* %mem, i32 0) + ret void + +; X32: test_fastcc_large: + +; X32: leal -40012(%esp), %eax +; X32-NEXT: cmpl %gs:48, %eax +; X32-NEXT: ja .LBB4_2 + +; X32: pushl $0 +; X32-NEXT: pushl $40012 +; X32-NEXT: calll __morestack +; X32-NEXT: ret + +; X64: test_fastcc_large: + +; X64: leaq -40008(%rsp), %r11 +; X64-NEXT: cmpq %fs:112, %r11 +; X64-NEXT: ja .LBB4_2 + +; X64: movabsq $40008, %r10 +; X64-NEXT: movabsq $0, %r11 +; X64-NEXT: callq __morestack +; X64-NEXT: ret +} |