mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-22 13:29:44 +00:00
integer registers. This is already supported by the fastcc convention, but it doesn't hurt to support it in the standard conventions as well. In cases where we can cheat at the calling convention, this allows us to avoid returning things through memory in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157698 91177308-0d34-0410-b5e6-96231b3b80d8
18 lines
676 B
LLVM
18 lines
676 B
LLVM
; RUN: llc < %s | FileCheck %s
|
|
target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
|
|
target triple = "x86_64-apple-darwin11.3.0"
|
|
|
|
|
|
define { i8*, i64, i64*, i64 } @copy_4(i8* %a, i64 %b, i64* %c, i64 %d) nounwind {
|
|
entry:
|
|
%0 = insertvalue { i8*, i64, i64*, i64 } undef, i8* %a, 0
|
|
%1 = insertvalue { i8*, i64, i64*, i64 } %0, i64 %b, 1
|
|
%2 = insertvalue { i8*, i64, i64*, i64 } %1, i64* %c, 2
|
|
%3 = insertvalue { i8*, i64, i64*, i64 } %2, i64 %d, 3
|
|
ret { i8*, i64, i64*, i64 } %3
|
|
}
|
|
|
|
; CHECK: copy_4:
|
|
; CHECK-NOT: (%rdi)
|
|
; CHECK: ret
|