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.

llvm-svn: 37844
This commit is contained in:
Dan Gohman 2007-07-02 16:21:53 +00:00
parent 533dd16a7f
commit f9ae1c6001
1 changed files with 4 additions and 3 deletions

View File

@ -28,9 +28,10 @@ def RetCC_X86Common : CallingConv<[
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.