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

Chris Lattner sabre at nondot.org
Sun Feb 25 01:31:33 PST 2007



Changes in directory llvm/lib/Target/X86:

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

fastcc functions that return double values now return them in xmm0 on x86-32.
This implements CodeGen/X86/fp-stack-ret.ll:test[23]



---
Diffs of the changes:  (+3 -1)

 X86ISelLowering.cpp |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/X86/X86ISelLowering.cpp
diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.334 llvm/lib/Target/X86/X86ISelLowering.cpp:1.335
--- llvm/lib/Target/X86/X86ISelLowering.cpp:1.334	Sun Feb 25 03:14:25 2007
+++ llvm/lib/Target/X86/X86ISelLowering.cpp	Sun Feb 25 03:31:16 2007
@@ -434,7 +434,7 @@
 static void GetRetValueLocs(const MVT::ValueType *VTs, unsigned NumVTs,
                             unsigned *ResultRegs,
                             const X86Subtarget *Subtarget,
-                            unsigned CallingConv) {
+                            unsigned CC) {
   if (NumVTs == 0) return;
   
   if (NumVTs == 2) {
@@ -456,6 +456,8 @@
   case MVT::f64:
     if (Subtarget->is64Bit())
       Reg = X86::XMM0;         // FP values in X86-64 go in XMM0.
+    else if (CC == CallingConv::Fast)
+      Reg = X86::XMM0;         // FP values in X86-32 with fastcc go in XMM0.
     else
       Reg = X86::ST0;          // FP values in X86-32 go in ST0.
     break;






More information about the llvm-commits mailing list