Function temporaries can not overlap with retval or args.See the comment in source...
[oota-llvm.git] / lib / Target / PowerPC / PPCCallingConv.td
index 9e31b5a6690c8af06a3bb87970b3466dbefbdd77..9f916f38d5e4936ac30512444cea53278f38b8fb 100644 (file)
@@ -2,8 +2,8 @@
 // 
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by Chris Lattner and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 // 
 //===----------------------------------------------------------------------===//
 //
@@ -22,10 +22,11 @@ class CCIfSubtarget<string F, CCAction A>
 
 // Return-value convention for PowerPC
 def RetCC_PPC : CallingConv<[
-  CCIfType<[i32], CCAssignToReg<[R3, R4]>>,
-  CCIfType<[i64], CCAssignToReg<[X3, X4]>>,
+  CCIfType<[i32], CCAssignToReg<[R3, R4, R5, R6, R7, R8, R9, R10]>>,
+  CCIfType<[i64], CCAssignToReg<[X3, X4, X5, X6]>>,
   
-  CCIfType<[f32, f64], CCAssignToReg<[F1]>>,
+  CCIfType<[f32], CCAssignToReg<[F1]>>,
+  CCIfType<[f64], CCAssignToReg<[F1, F2]>>,
   
   // Vector types are always returned in V2.
   CCIfType<[v16i8, v8i16, v4i32, v4f32], CCAssignToReg<[V2]>>