mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-25 00:29:20 +00:00
Now that canRealignStack() understands frozen reserved registers, it is safe to use it for aligned spill instructions. It will only return true if the registers reserved at the beginning of register allocation allow for dynamic stack realignment. <rdar://problem/10625436> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147579 91177308-0d34-0410-b5e6-96231b3b80d8
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)
|