20 lines
778 B
LLVM
20 lines
778 B
LLVM
; RUN: llc < %s -mtriple=x86_64-uefi | FileCheck %s -check-prefix=UEFIFAST64
|
|
; RUN: llc < %s -mtriple=x86_64-windows-msvc | FileCheck %s -check-prefix=UEFIFAST64
|
|
|
|
declare fastcc i32 @fastcallee1(i32 %a1, i32 %a2, i32 %a3, i32 %a4)
|
|
|
|
define fastcc i32 @fastcaller1(i32 %in1, i32 %in2) nounwind {
|
|
;; Test that the caller allocates stack space for callee to spill the register arguments.
|
|
; UEFIFAST64-LABEL: fastcaller1:
|
|
; UEFIFAST64: # %bb.0: # %entry
|
|
; UEFIFAST64-NEXT: subq $40, %rsp
|
|
; UEFIFAST64-NEXT: movl %ecx, %r8d
|
|
; UEFIFAST64-NEXT: movl %edx, %r9d
|
|
; UEFIFAST64-NEXT: callq fastcallee1
|
|
; UEFIFAST64-NEXT: addq $40, %rsp
|
|
; UEFIFAST64-NEXT: retq
|
|
entry:
|
|
%tmp11 = call fastcc i32 @fastcallee1(i32 %in1, i32 %in2, i32 %in1, i32 %in2)
|
|
ret i32 %tmp11
|
|
}
|