From a65d33760bae63b11569117597cf0fbd64f5c0eb Mon Sep 17 00:00:00 2001 From: Venkatraman Govindaraju Date: Fri, 17 May 2013 15:14:34 +0000 Subject: [Sparc] Implements hasReservedCallFrame and hasFP. This is to generate correct framesetup code when the function has variable sized allocas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182108 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/SPARC/2013-05-17-CallFrame.ll | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 test/CodeGen/SPARC/2013-05-17-CallFrame.ll (limited to 'test') diff --git a/test/CodeGen/SPARC/2013-05-17-CallFrame.ll b/test/CodeGen/SPARC/2013-05-17-CallFrame.ll new file mode 100644 index 0000000000..9e9e8216a8 --- /dev/null +++ b/test/CodeGen/SPARC/2013-05-17-CallFrame.ll @@ -0,0 +1,16 @@ +; RUN: llc -march=sparc < %s | FileCheck %s + +; CHECK: variable_alloca_with_adj_call_stack +; CHECK: save %sp, -96, %sp +; CHECK: add %sp, -16, %sp +; CHECK: call foo +; CHECK: add %sp, 16, %sp +define void @variable_alloca_with_adj_call_stack(i32 %num) { +entry: + %0 = alloca i8, i32 %num, align 8 + call void @foo(i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0) + ret void +} + + +declare void @foo(i8* , i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*); -- cgit v1.2.3