Allow XMM2 and XMM3 to be used for non ABI compliant code.
authorMon P Wang <wangmp@apple.com>
Thu, 20 Nov 2008 07:48:19 +0000 (07:48 +0000)
committerMon P Wang <wangmp@apple.com>
Thu, 20 Nov 2008 07:48:19 +0000 (07:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59720 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86CallingConv.td

index c5aef19c7e64e9a03916220f1ccb389e7b948553..385bd916183d58f149b2dc92963b797a1130f878 100644 (file)
@@ -28,10 +28,11 @@ def RetCC_X86Common : CallingConv<[
   CCIfType<[i32], CCAssignToReg<[EAX, EDX]>>,
   CCIfType<[i64], CCAssignToReg<[RAX, RDX]>>,
   
-  // 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.
+  // Vector types are returned in XMM0 and XMM1, when they fit.  XMMM2 and XMM3
+  // can only be used by ABI non-compliant code. If the target doesn't have XMM
+  // registers, it won't have vector types.
   CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64],
-            CCAssignToReg<[XMM0,XMM1]>>,
+            CCAssignToReg<[XMM0,XMM1,XMM2,XMM3]>>,
 
   // MMX vector types are always returned in MM0. If the target doesn't have
   // MM0, it doesn't support these vector types.