[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp

Chris Lattner sabre at nondot.org
Sun Feb 25 01:14:42 PST 2007



Changes in directory llvm/lib/Target/X86:

X86ISelLowering.cpp updated: 1.333 -> 1.334
---
Log message:

allow vectors to be passed to stdcall/fastcall functions


---
Diffs of the changes:  (+10 -18)

 X86ISelLowering.cpp |   28 ++++++++++------------------
 1 files changed, 10 insertions(+), 18 deletions(-)


Index: llvm/lib/Target/X86/X86ISelLowering.cpp
diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.333 llvm/lib/Target/X86/X86ISelLowering.cpp:1.334
--- llvm/lib/Target/X86/X86ISelLowering.cpp:1.333	Sun Feb 25 03:12:39 2007
+++ llvm/lib/Target/X86/X86ISelLowering.cpp	Sun Feb 25 03:14:25 2007
@@ -645,8 +645,7 @@
                       unsigned NumIntRegs, unsigned NumXMMRegs,
                       unsigned MaxNumIntRegs,
                       unsigned &ObjSize, unsigned &ObjIntRegs,
-                      unsigned &ObjXMMRegs,
-                      bool AllowVectors = true) {
+                      unsigned &ObjXMMRegs) {
   ObjSize = 0;
   ObjIntRegs = 0;
   ObjXMMRegs = 0;
@@ -696,14 +695,11 @@
   case MVT::v2i64:
   case MVT::v4f32:
   case MVT::v2f64:
-   if (AllowVectors) {
-     if (NumXMMRegs < 4)
-       ObjXMMRegs = 1;
-     else
-       ObjSize = 16;
-     break;
-   } else
-     assert(0 && "Unhandled argument type [vector]!");
+    if (NumXMMRegs < 4)
+      ObjXMMRegs = 1;
+    else
+      ObjSize = 16;
+    break;
   }
 }
 
@@ -764,8 +760,7 @@
     HowToPassCallArgument(ObjectVT,
                           ArgInRegs[i],
                           NumIntRegs, NumXMMRegs, 3,
-                          ObjSize, ObjIntRegs, ObjXMMRegs,
-                          !isStdCall);
+                          ObjSize, ObjIntRegs, ObjXMMRegs);
 
     if (ObjSize > 4)
       ArgIncrement = ObjSize;
@@ -884,8 +879,7 @@
     HowToPassCallArgument(Arg.getValueType(),
                           ArgInRegs[i],
                           NumIntRegs, NumXMMRegs, 3,
-                          ObjSize, ObjIntRegs, ObjXMMRegs,
-                          CC != CallingConv::X86_StdCall);
+                          ObjSize, ObjIntRegs, ObjXMMRegs);
     if (ObjSize > 4)
       ArgIncrement = ObjSize;
 
@@ -918,8 +912,7 @@
     HowToPassCallArgument(Arg.getValueType(),
                           ArgInRegs[i],
                           NumIntRegs, NumXMMRegs, 3,
-                          ObjSize, ObjIntRegs, ObjXMMRegs,
-                          CC != CallingConv::X86_StdCall);
+                          ObjSize, ObjIntRegs, ObjXMMRegs);
     
     if (ObjSize > 4)
       ArgIncrement = ObjSize;
@@ -1574,8 +1567,7 @@
                           true, // Use as much registers as possible
                           NumIntRegs, NumXMMRegs,
                           (isFastCall ? 2 : FASTCC_NUM_INT_ARGS_INREGS),
-                          ObjSize, ObjIntRegs, ObjXMMRegs,
-                          !isFastCall);
+                          ObjSize, ObjIntRegs, ObjXMMRegs);
     
     if (ObjSize > 4)
       ArgIncrement = ObjSize;






More information about the llvm-commits mailing list