Author: djg Date: Mon Jul 2 11:21:53 2007 New Revision: 37844 URL: http://llvm.org/viewvc/llvm-project?rev=37844&view=rev Log: Vector results may be returned in XMM0 and XMM1, not just XMM0. With the recent lowering changes, this allows types like <4 x double> to be returned, using two vector registers.
Modified: llvm/trunk/lib/Target/X86/X86CallingConv.td Modified: llvm/trunk/lib/Target/X86/X86CallingConv.td URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CallingConv.td?rev=37844&r1=37843&r2=37844&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86CallingConv.td (original) +++ llvm/trunk/lib/Target/X86/X86CallingConv.td Mon Jul 2 11:21:53 2007 @@ -28,9 +28,10 @@ CCIfType<[i32], CCAssignToReg<[EAX, EDX]>>, CCIfType<[i64], CCAssignToReg<[RAX, RDX]>>, - // 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]>>, + // Vector types are returned in XMM0 and XMM1, when they fit. If the target + // doesn't have XMM registers, it won't have vector types. + CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], + CCAssignToReg<[XMM0,XMM1]>>, // MMX vector types are always returned in MM0. If the target doesn't have // MM0, it doesn't support these vector types. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits