mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Fix uint->fp casts on PPC, allowing UnitTests/2005-05-12-Int64ToFP to
work on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21894 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
dae2e9383b
commit
383203b003
@ -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),
|
||||
|
Loading…
Reference in New Issue
Block a user