[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