Rafael Espindola | c1382b7 | 2009-10-30 14:33:14 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=arm-linux-gnueabi | FileCheck %s |
| 2 | ; This test checks that the address of the varg arguments is correctly |
| 3 | ; computed when there are 5 or more regular arguments. |
| 4 | |
| 5 | define void @f(i32 %a1, i32 %a2, i32 %a3, i32 %a4, i32 %a5, ...) { |
| 6 | entry: |
| 7 | ;CHECK: sub sp, sp, #4 |
Evan Cheng | 00a99a3 | 2010-02-06 09:07:11 +0000 | [diff] [blame] | 8 | ;CHECK: add r{{[0-9]+}}, sp, #8 |
Johnny Chen | 9e08876 | 2010-03-17 17:52:21 +0000 | [diff] [blame] | 9 | ;CHECK: str r{{[0-9]+}}, [sp], #4 |
Rafael Espindola | c1382b7 | 2009-10-30 14:33:14 +0000 | [diff] [blame] | 10 | ;CHECK: bx lr |
| 11 | %ap = alloca i8*, align 4 |
| 12 | %ap1 = bitcast i8** %ap to i8* |
| 13 | call void @llvm.va_start(i8* %ap1) |
| 14 | ret void |
| 15 | } |
| 16 | |
| 17 | declare void @llvm.va_start(i8*) nounwind |