Fix uint->fp casts on PPC, allowing UnitTests/2005-05-12-Int64ToFP to

work on it.

llvm-svn: 21894
This commit is contained in:
Chris Lattner 2005-05-12 18:52:34 +00:00
parent c932bef114
commit 26f0317f46
1 changed files with 3 additions and 4 deletions

View File

@ -2148,10 +2148,9 @@ ExpandIntToFP(bool isSigned, MVT::ValueType DestTy, SDOperand Source) {
SDOperand Zero = getIntPtrConstant(0), Four = getIntPtrConstant(4);
SDOperand CstOffset = DAG.getNode(ISD::SELECT, Zero.getValueType(),
SignSet, Four, Zero);
// FIXME: This is almost certainly broken for big-endian systems. Should
// this just put the fudge factor in the low bits of the uint64 constant or?
static Constant *FudgeFactor =
ConstantUInt::get(Type::ULongTy, 0x5f800000ULL << 32);
uint64_t FF = 0x5f800000ULL;
if (TLI.isLittleEndian()) FF <<= 32;
static Constant *FudgeFactor = ConstantUInt::get(Type::ULongTy, FF);
MachineConstantPool *CP = DAG.getMachineFunction().getConstantPool();
SDOperand CPIdx = DAG.getConstantPool(CP->getConstantPoolIndex(FudgeFactor),