mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
8258135c90
Also remove some code that died in the process. One now non-existant ori is checked for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115306 91177308-0d34-0410-b5e6-96231b3b80d8
35 lines
1.0 KiB
LLVM
35 lines
1.0 KiB
LLVM
; Test parameter passing and return values
|
|
;RUN: llc --march=cellspu %s -o - | FileCheck %s
|
|
|
|
; this fits into registers r3-r74
|
|
%paramstruct = type { i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,
|
|
i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,
|
|
i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,
|
|
i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,
|
|
i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,
|
|
i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32,i32}
|
|
define ccc i32 @test_regs( %paramstruct %prm )
|
|
{
|
|
;CHECK: lr $3, $74
|
|
;CHECK: bi $lr
|
|
%1 = extractvalue %paramstruct %prm, 71
|
|
ret i32 %1
|
|
}
|
|
|
|
define ccc i32 @test_regs_and_stack( %paramstruct %prm, i32 %stackprm )
|
|
{
|
|
;CHECK-NOT: a $3, $74, $75
|
|
%1 = extractvalue %paramstruct %prm, 71
|
|
%2 = add i32 %1, %stackprm
|
|
ret i32 %2
|
|
}
|
|
|
|
define ccc %paramstruct @test_return( i32 %param, %paramstruct %prm )
|
|
{
|
|
;CHECK: lqd $75, 80($sp)
|
|
;CHECK-NOT: ori {{\$[0-9]+, \$[0-9]+, 0}}
|
|
;CHECK: lr $3, $4
|
|
ret %paramstruct %prm
|
|
}
|
|
|