Deleted Added
full compact
MipsCallingConv.td (280031) MipsCallingConv.td (283526)
1//===-- MipsCallingConv.td - Calling Conventions for Mips --*- tablegen -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 109 unchanged lines hidden (view full) ---

118 CCAssignToRegWithShadow<[A0, A1, A2, A3,
119 T0, T1, T2, T3],
120 [D12_64, D13_64, D14_64, D15_64,
121 D16_64, D17_64, D18_64, D19_64]>,
122 CCAssignToStack<4, 8>
123]>;
124
125def CC_MipsN : CallingConv<[
1//===-- MipsCallingConv.td - Calling Conventions for Mips --*- tablegen -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 109 unchanged lines hidden (view full) ---

118 CCAssignToRegWithShadow<[A0, A1, A2, A3,
119 T0, T1, T2, T3],
120 [D12_64, D13_64, D14_64, D15_64,
121 D16_64, D17_64, D18_64, D19_64]>,
122 CCAssignToStack<4, 8>
123]>;
124
125def CC_MipsN : CallingConv<[
126 CCIfType<[i8, i16, i32],
126 CCIfType<[i8, i16, i32, i64],
127 CCIfSubtargetNot<"isLittle()",
128 CCIfInReg<CCPromoteToUpperBitsInType<i64>>>>,
129
130 // All integers (except soft-float integers) are promoted to 64-bit.
131 CCIfType<[i8, i16, i32], CCIfOrigArgWasNotFloat<CCPromoteToType<i64>>>,
132
133 // The only i32's we have left are soft-float arguments.
134 CCIfSubtarget<"abiUsesSoftFloat()", CCIfType<[i32], CCDelegateTo<CC_MipsN_SoftFloat>>>,

--- 19 unchanged lines hidden (view full) ---

154 // All stack parameter slots become 64-bit doublewords and are 8-byte aligned.
155 CCIfType<[f32], CCAssignToStack<4, 8>>,
156 CCIfType<[i64, f64], CCAssignToStack<8, 8>>
157]>;
158
159// N32/64 variable arguments.
160// All arguments are passed in integer registers.
161def CC_MipsN_VarArg : CallingConv<[
127 CCIfSubtargetNot<"isLittle()",
128 CCIfInReg<CCPromoteToUpperBitsInType<i64>>>>,
129
130 // All integers (except soft-float integers) are promoted to 64-bit.
131 CCIfType<[i8, i16, i32], CCIfOrigArgWasNotFloat<CCPromoteToType<i64>>>,
132
133 // The only i32's we have left are soft-float arguments.
134 CCIfSubtarget<"abiUsesSoftFloat()", CCIfType<[i32], CCDelegateTo<CC_MipsN_SoftFloat>>>,

--- 19 unchanged lines hidden (view full) ---

154 // All stack parameter slots become 64-bit doublewords and are 8-byte aligned.
155 CCIfType<[f32], CCAssignToStack<4, 8>>,
156 CCIfType<[i64, f64], CCAssignToStack<8, 8>>
157]>;
158
159// N32/64 variable arguments.
160// All arguments are passed in integer registers.
161def CC_MipsN_VarArg : CallingConv<[
162 CCIfType<[i8, i16, i32, i64],
163 CCIfSubtargetNot<"isLittle()",
164 CCIfInReg<CCPromoteToUpperBitsInType<i64>>>>,
165
162 // All integers are promoted to 64-bit.
163 CCIfType<[i8, i16, i32], CCPromoteToType<i64>>,
164
165 CCIfType<[f32], CCAssignToReg<[A0, A1, A2, A3, T0, T1, T2, T3]>>,
166
167 CCIfType<[i64, f64], CCAssignToReg<[A0_64, A1_64, A2_64, A3_64,
168 T0_64, T1_64, T2_64, T3_64]>>,
169

--- 253 unchanged lines hidden ---
166 // All integers are promoted to 64-bit.
167 CCIfType<[i8, i16, i32], CCPromoteToType<i64>>,
168
169 CCIfType<[f32], CCAssignToReg<[A0, A1, A2, A3, T0, T1, T2, T3]>>,
170
171 CCIfType<[i64, f64], CCAssignToReg<[A0_64, A1_64, A2_64, A3_64,
172 T0_64, T1_64, T2_64, T3_64]>>,
173

--- 253 unchanged lines hidden ---