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 | 4eecacb9c8ea1ed2eaa7e60e975f394c5a969feb (patch) | |
tree | 61832c6e8108f5b2fb49a595a33ef5fa9494841f /llvm/test/CodeGen/X86 | |
parent | 3212a342692b23c666f529715ca8daa2b731644b (diff) | |
download | bcm5719-llvm-4eecacb9c8ea1ed2eaa7e60e975f394c5a969feb.tar.gz bcm5719-llvm-4eecacb9c8ea1ed2eaa7e60e975f394c5a969feb.zip |
Generate the segmented stack prologue for fastcc too.
Patch by Brian Anderson.
llvm-svn: 147958
Diffstat (limited to 'llvm/test/CodeGen/X86')
-rw-r--r-- | llvm/test/CodeGen/X86/segmented-stacks.ll | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/segmented-stacks.ll b/llvm/test/CodeGen/X86/segmented-stacks.ll index 27537c085c8..0e125d36a76 100644 --- a/llvm/test/CodeGen/X86/segmented-stacks.ll +++ b/llvm/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 +} |