Treat floating point ST1 the same as ST0 when lowering for a call result

llvm-svn: 55135
This commit is contained in:
Mon P Wang 2008-08-21 19:54:16 +00:00
parent 893ce348a7
commit 5c2ac4a5e0
1 changed files with 2 additions and 1 deletions

View File

@ -969,7 +969,8 @@ LowerCallResult(SDValue Chain, SDValue InFlag, SDNode *TheCall,
// If this is a call to a function that returns an fp value on the floating // If this is a call to a function that returns an fp value on the floating
// point stack, but where we prefer to use the value in xmm registers, copy // point stack, but where we prefer to use the value in xmm registers, copy
// it out as F80 and use a truncate to move it from fp stack reg to xmm reg. // it out as F80 and use a truncate to move it from fp stack reg to xmm reg.
if (RVLocs[i].getLocReg() == X86::ST0 && if ((RVLocs[i].getLocReg() == X86::ST0 ||
RVLocs[i].getLocReg() == X86::ST1) &&
isScalarFPTypeInSSEReg(RVLocs[i].getValVT())) { isScalarFPTypeInSSEReg(RVLocs[i].getValVT())) {
CopyVT = MVT::f80; CopyVT = MVT::f80;
} }