diff options
Diffstat (limited to 'llvm/lib/Target/ARM/ARMCallingConv.td')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMCallingConv.td | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMCallingConv.td b/llvm/lib/Target/ARM/ARMCallingConv.td index 1b8337fd6c8..ff5a5e28711 100644 --- a/llvm/lib/Target/ARM/ARMCallingConv.td +++ b/llvm/lib/Target/ARM/ARMCallingConv.td @@ -15,6 +15,7 @@ class CCIfAlign<string Align, CCAction A>: //===----------------------------------------------------------------------===// // ARM APCS Calling Convention //===----------------------------------------------------------------------===// +let Entry = 1 in def CC_ARM_APCS : CallingConv<[ // Handles byval parameters. @@ -43,6 +44,7 @@ def CC_ARM_APCS : CallingConv<[ CCIfType<[v2f64], CCAssignToStack<16, 4>> ]>; +let Entry = 1 in def RetCC_ARM_APCS : CallingConv<[ CCIfType<[i1, i8, i16], CCPromoteToType<i32>>, CCIfType<[f32], CCBitConvertToType<i32>>, @@ -66,6 +68,7 @@ def RetCC_ARM_APCS : CallingConv<[ //===----------------------------------------------------------------------===// // ARM APCS Calling Convention for FastCC (when VFP2 or later is available) //===----------------------------------------------------------------------===// +let Entry = 1 in def FastCC_ARM_APCS : CallingConv<[ // Handle all vector types as either f64 or v2f64. CCIfType<[v1i64, v2i32, v4i16, v8i8, v2f32], CCBitConvertToType<f64>>, @@ -85,6 +88,7 @@ def FastCC_ARM_APCS : CallingConv<[ CCDelegateTo<CC_ARM_APCS> ]>; +let Entry = 1 in def RetFastCC_ARM_APCS : CallingConv<[ // Handle all vector types as either f64 or v2f64. CCIfType<[v1i64, v2i32, v4i16, v8i8, v2f32], CCBitConvertToType<f64>>, @@ -101,6 +105,7 @@ def RetFastCC_ARM_APCS : CallingConv<[ // ARM APCS Calling Convention for GHC //===----------------------------------------------------------------------===// +let Entry = 1 in def CC_ARM_APCS_GHC : CallingConv<[ // Handle all vector types as either f64 or v2f64. CCIfType<[v1i64, v2i32, v4i16, v8i8, v2f32], CCBitConvertToType<f64>>, @@ -151,6 +156,7 @@ def RetCC_ARM_AAPCS_Common : CallingConv<[ // ARM AAPCS (EABI) Calling Convention //===----------------------------------------------------------------------===// +let Entry = 1 in def CC_ARM_AAPCS : CallingConv<[ // Handles byval parameters. CCIfByVal<CCPassByVal<4, 4>>, @@ -173,6 +179,7 @@ def CC_ARM_AAPCS : CallingConv<[ CCDelegateTo<CC_ARM_AAPCS_Common> ]>; +let Entry = 1 in def RetCC_ARM_AAPCS : CallingConv<[ // Handle all vector types as either f64 or v2f64. CCIfType<[v1i64, v2i32, v4i16, v4f16, v8i8, v2f32], CCBitConvertToType<f64>>, @@ -195,6 +202,7 @@ def RetCC_ARM_AAPCS : CallingConv<[ // Also used for FastCC (when VFP2 or later is available) //===----------------------------------------------------------------------===// +let Entry = 1 in def CC_ARM_AAPCS_VFP : CallingConv<[ // Handles byval parameters. CCIfByVal<CCPassByVal<4, 4>>, @@ -219,6 +227,7 @@ def CC_ARM_AAPCS_VFP : CallingConv<[ CCDelegateTo<CC_ARM_AAPCS_Common> ]>; +let Entry = 1 in def RetCC_ARM_AAPCS_VFP : CallingConv<[ // Handle all vector types as either f64 or v2f64. CCIfType<[v1i64, v2i32, v4i16, v4f16, v8i8, v2f32], CCBitConvertToType<f64>>, |

