Handle vector returns
authorAnton Korobeynikov <asl@math.spbu.ru>
Sat, 18 Jul 2009 12:51:06 +0000 (12:51 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Sat, 18 Jul 2009 12:51:06 +0000 (12:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76312 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SystemZ/SystemZCallingConv.td

index c81decfa8ed6d643d05daece279cacab4e87ad16..c799a9e501aa285f08f397bc0f60ed5d81151e9e 100644 (file)
@@ -17,11 +17,11 @@ def RetCC_SystemZ : CallingConv<[
   CCIfType<[i8, i16, i32], CCPromoteToType<i64>>,
 
   // i64 is returned in register R2
-  CCIfType<[i64], CCAssignToReg<[R2D]>>,
+  CCIfType<[i64], CCAssignToReg<[R2D, R3D, R4D, R5D]>>,
 
   // f32 / f64 are returned in F0
-  CCIfType<[f32], CCAssignToReg<[F0S]>>,
-  CCIfType<[f64], CCAssignToReg<[F0L]>>
+  CCIfType<[f32], CCAssignToReg<[F0S, F2S, F4S, F6S]>>,
+  CCIfType<[f64], CCAssignToReg<[F0L, F2L, F4L, F6L]>>
 ]>;
 
 //===----------------------------------------------------------------------===//