For PR1028:
authorReid Spencer <rspencer@reidspencer.com>
Wed, 17 Jan 2007 23:20:43 +0000 (23:20 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Wed, 17 Jan 2007 23:20:43 +0000 (23:20 +0000)
Ensure the CBE generates calls to GCC builtins for stack_save and
stack_restore when it encounters the corresponding intrinsics.

Patch by Gordon Henriksen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33312 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/CBackend/2007-01-17-StackSaveNRestore.ll [new file with mode: 0644]

diff --git a/test/CodeGen/CBackend/2007-01-17-StackSaveNRestore.ll b/test/CodeGen/CBackend/2007-01-17-StackSaveNRestore.ll
new file mode 100644 (file)
index 0000000..5694d2a
--- /dev/null
@@ -0,0 +1,12 @@
+; RUN: llvm-as < %s | llc -march=c | grep __builtin_stack_save
+; RUN: llvm-as < %s | llc -march=c | grep __builtin_stack_restore
+; PR1028
+
+declare i8* %llvm.stacksave()
+declare void %llvm.stackrestore(i8*)
+
+define i8* %test() {
+    %s = call i8* %llvm.stacksave()
+    call void %llvm.stackrestore(i8* %s)
+    ret i8* %s
+}