mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-21 18:29:46 +00:00
This patch takes pain to ensure all the PEI lowering code does the right thing when lowering frame indices, insert code to manipulate stack pointers, etc. It's also custom lowering dynamic stack alloc into pseudo instructions so we can insert the right instructions at scheduling time. This fixes PR4659 and PR4682. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78361 91177308-0d34-0410-b5e6-96231b3b80d8
29 lines
619 B
LLVM
29 lines
619 B
LLVM
; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | FileCheck %s
|
|
|
|
define void @test1() {
|
|
; CHECK: test1:
|
|
; CHECK: sub sp, #64 * 4
|
|
%tmp = alloca [ 64 x i32 ] , align 4
|
|
ret void
|
|
}
|
|
|
|
define void @test2() {
|
|
; CHECK: test2:
|
|
; CHECK: sub.w sp, sp, #4160
|
|
; CHECK: sub sp, #2 * 4
|
|
%tmp = alloca [ 4168 x i8 ] , align 4
|
|
ret void
|
|
}
|
|
|
|
define i32 @test3() {
|
|
; CHECK: test3:
|
|
; CHECK: sub.w sp, sp, #805306368
|
|
; CHECK: sub sp, #4 * 4
|
|
%retval = alloca i32, align 4
|
|
%tmp = alloca i32, align 4
|
|
%a = alloca [805306369 x i8], align 16
|
|
store i32 0, i32* %tmp
|
|
%tmp1 = load i32* %tmp
|
|
ret i32 %tmp1
|
|
}
|