Changes in directory llvm/lib/Target/X86:
X86CallingConv.td updated: 1.10 -> 1.11 --- Log message: Add MMX calling conventions. --- Diffs of the changes: (+14 -4) X86CallingConv.td | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) Index: llvm/lib/Target/X86/X86CallingConv.td diff -u llvm/lib/Target/X86/X86CallingConv.td:1.10 llvm/lib/Target/X86/X86CallingConv.td:1.11 --- llvm/lib/Target/X86/X86CallingConv.td:1.10 Wed Feb 28 12:35:11 2007 +++ llvm/lib/Target/X86/X86CallingConv.td Thu Mar 29 19:35:22 2007 @@ -30,7 +30,11 @@ // Vector types are always returned in XMM0. If the target doesn't have XMM0, // it won't have vector types. - CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], CCAssignToReg<[XMM0]>> + CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], CCAssignToReg<[XMM0]>>, + + // MMX vector types are always returned in MM0. If the target doesn't have + // MM0, it doesn't support these vector types. + CCIfType<[v8i8, v4i16, v2i32, v1i64], CCAssignToReg<[MM0]>> ]>; // X86-32 C return-value convention. @@ -102,8 +106,10 @@ CCIfType<[i32, i64, f32, f64], CCAssignToStack<8, 8>>, // Vectors get 16-byte stack slots that are 16-byte aligned. - CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], - CCAssignToStack<16, 16>> + CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], CCAssignToStack<16, 16>>, + + // __m64 vectors get 8-byte stack slots that are 8-byte aligned. + CCIfType<[v8i8, v4i16, v2i32, v1i64], CCAssignToStack<8, 8>> ]>; @@ -127,7 +133,11 @@ CCAssignToReg<[XMM0, XMM1, XMM2, XMM3]>>, // Other vectors get 16-byte stack slots that are 16-byte aligned. - CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], CCAssignToStack<16, 16>> + CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], CCAssignToStack<16, 16>>, + + // __m64 vectors get 8-byte stack slots that are 8-byte aligned. They are + // passed in the parameter area. + CCIfType<[v8i8, v4i16, v2i32, v1i64], CCAssignToStack<8, 8>> ]>; def CC_X86_32_C : CallingConv<[ _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits