mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Enable support for returning i1, i8, and i16. Nothing special todo as it's the
callee's responsibility to sign or zero-extend the return value. The additional test case just checks to make sure the calls are selected (i.e., -fast-isel-abort doesn't assert). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144047 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -43,6 +43,7 @@ def CC_ARM_APCS : CallingConv<[
|
||||
]>;
|
||||
|
||||
def RetCC_ARM_APCS : CallingConv<[
|
||||
CCIfType<[i1, i8, i16], CCPromoteToType<i32>>,
|
||||
CCIfType<[f32], CCBitConvertToType<i32>>,
|
||||
|
||||
// Handle all vector types as either f64 or v2f64.
|
||||
@@ -106,6 +107,7 @@ def CC_ARM_AAPCS_Common : CallingConv<[
|
||||
]>;
|
||||
|
||||
def RetCC_ARM_AAPCS_Common : CallingConv<[
|
||||
CCIfType<[i1, i8, i16], CCPromoteToType<i32>>,
|
||||
CCIfType<[i32], CCAssignToReg<[R0, R1, R2, R3]>>,
|
||||
CCIfType<[i64], CCAssignToRegWithShadow<[R0, R2], [R1, R3]>>
|
||||
]>;
|
||||
|
Reference in New Issue
Block a user