mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-06 11:19:09 +00:00
2b24e1eac4
Use the spill slot alignment as well as the local variable alignment to determine when the stack needs to be realigned. This works now that the ARM target can always realign the stack by using a base pointer. Still respect the ARMBaseRegisterInfo::canRealignStack() function vetoing a realigned stack. Don't use aligned spill code in that case. llvm-svn: 146997
23 lines
707 B
LLVM
23 lines
707 B
LLVM
; RUN: llc < %s -O0 -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios | FileCheck %s --check-prefix=THUMB
|
|
|
|
; Target-specific selector can't properly handle the double because it isn't
|
|
; being passed via a register, so the materialized arguments become dead code.
|
|
|
|
define i32 @main(i32 %argc, i8** %argv) nounwind {
|
|
entry:
|
|
; THUMB: main
|
|
call void @printArgsNoRet(i32 1, float 0x4000CCCCC0000000, i8 signext 99, double 4.100000e+00)
|
|
; THUMB: blx _printArgsNoRet
|
|
; THUMB-NOT: ldr
|
|
; THUMB-NOT: vldr
|
|
; THUMB-NOT: vmov
|
|
; THUMB-NOT: ldr
|
|
; THUMB-NOT: sxtb
|
|
; THUMB: movs r0, #0
|
|
; THUMB: movt r0, #0
|
|
; THUMB: pop
|
|
ret i32 0
|
|
}
|
|
|
|
declare void @printArgsNoRet(i32 %a1, float %a2, i8 signext %a3, double %a4)
|