mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 21:32:39 +00:00
Remove an assumption of default arguments. This is in anticipation of a
change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96236 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
74a6a7990c
commit
534502d1e9
@ -1243,7 +1243,8 @@ SDValue PPCTargetLowering::LowerGlobalAddress(SDValue Op,
|
||||
|
||||
// If the global is weak or external, we have to go through the lazy
|
||||
// resolution stub.
|
||||
return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), Lo, NULL, 0);
|
||||
return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), Lo, NULL, 0,
|
||||
false, false, 0);
|
||||
}
|
||||
|
||||
SDValue PPCTargetLowering::LowerSETCC(SDValue Op, SelectionDAG &DAG) {
|
||||
@ -1355,7 +1356,8 @@ SDValue PPCTargetLowering::LowerVASTART(SDValue Op, SelectionDAG &DAG,
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
SDValue FR = DAG.getFrameIndex(VarArgsFrameIndex, PtrVT);
|
||||
const Value *SV = cast<SrcValueSDNode>(Op.getOperand(2))->getValue();
|
||||
return DAG.getStore(Op.getOperand(0), dl, FR, Op.getOperand(1), SV, 0);
|
||||
return DAG.getStore(Op.getOperand(0), dl, FR, Op.getOperand(1), SV, 0,
|
||||
false, false, 0);
|
||||
}
|
||||
|
||||
// For the 32-bit SVR4 ABI we follow the layout of the va_list struct.
|
||||
@ -1405,25 +1407,29 @@ SDValue PPCTargetLowering::LowerVASTART(SDValue Op, SelectionDAG &DAG,
|
||||
|
||||
// Store first byte : number of int regs
|
||||
SDValue firstStore = DAG.getTruncStore(Op.getOperand(0), dl, ArgGPR,
|
||||
Op.getOperand(1), SV, 0, MVT::i8);
|
||||
Op.getOperand(1), SV, 0, MVT::i8,
|
||||
false, false, 0);
|
||||
uint64_t nextOffset = FPROffset;
|
||||
SDValue nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, Op.getOperand(1),
|
||||
ConstFPROffset);
|
||||
|
||||
// Store second byte : number of float regs
|
||||
SDValue secondStore =
|
||||
DAG.getTruncStore(firstStore, dl, ArgFPR, nextPtr, SV, nextOffset, MVT::i8);
|
||||
DAG.getTruncStore(firstStore, dl, ArgFPR, nextPtr, SV, nextOffset, MVT::i8,
|
||||
false, false, 0);
|
||||
nextOffset += StackOffset;
|
||||
nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, nextPtr, ConstStackOffset);
|
||||
|
||||
// Store second word : arguments given on stack
|
||||
SDValue thirdStore =
|
||||
DAG.getStore(secondStore, dl, StackOffsetFI, nextPtr, SV, nextOffset);
|
||||
DAG.getStore(secondStore, dl, StackOffsetFI, nextPtr, SV, nextOffset,
|
||||
false, false, 0);
|
||||
nextOffset += FrameOffset;
|
||||
nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, nextPtr, ConstFrameOffset);
|
||||
|
||||
// Store third word : arguments given in registers
|
||||
return DAG.getStore(thirdStore, dl, FR, nextPtr, SV, nextOffset);
|
||||
return DAG.getStore(thirdStore, dl, FR, nextPtr, SV, nextOffset,
|
||||
false, false, 0);
|
||||
|
||||
}
|
||||
|
||||
@ -1628,7 +1634,8 @@ PPCTargetLowering::LowerFormalArguments_SVR4(
|
||||
|
||||
// Create load nodes to retrieve arguments from the stack.
|
||||
SDValue FIN = DAG.getFrameIndex(FI, PtrVT);
|
||||
InVals.push_back(DAG.getLoad(VA.getValVT(), dl, Chain, FIN, NULL, 0));
|
||||
InVals.push_back(DAG.getLoad(VA.getValVT(), dl, Chain, FIN, NULL, 0,
|
||||
false, false, 0));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1700,7 +1707,8 @@ PPCTargetLowering::LowerFormalArguments_SVR4(
|
||||
unsigned GPRIndex = 0;
|
||||
for (; GPRIndex != VarArgsNumGPR; ++GPRIndex) {
|
||||
SDValue Val = DAG.getRegister(GPArgRegs[GPRIndex], PtrVT);
|
||||
SDValue Store = DAG.getStore(Chain, dl, Val, FIN, NULL, 0);
|
||||
SDValue Store = DAG.getStore(Chain, dl, Val, FIN, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOps.push_back(Store);
|
||||
// Increment the address by four for the next argument to store
|
||||
SDValue PtrOff = DAG.getConstant(PtrVT.getSizeInBits()/8, PtrVT);
|
||||
@ -1714,7 +1722,8 @@ PPCTargetLowering::LowerFormalArguments_SVR4(
|
||||
unsigned VReg = MF.addLiveIn(GPArgRegs[GPRIndex], &PPC::GPRCRegClass);
|
||||
|
||||
SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT);
|
||||
SDValue Store = DAG.getStore(Val.getValue(1), dl, Val, FIN, NULL, 0);
|
||||
SDValue Store = DAG.getStore(Val.getValue(1), dl, Val, FIN, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOps.push_back(Store);
|
||||
// Increment the address by four for the next argument to store
|
||||
SDValue PtrOff = DAG.getConstant(PtrVT.getSizeInBits()/8, PtrVT);
|
||||
@ -1729,7 +1738,8 @@ PPCTargetLowering::LowerFormalArguments_SVR4(
|
||||
unsigned FPRIndex = 0;
|
||||
for (FPRIndex = 0; FPRIndex != VarArgsNumFPR; ++FPRIndex) {
|
||||
SDValue Val = DAG.getRegister(FPArgRegs[FPRIndex], MVT::f64);
|
||||
SDValue Store = DAG.getStore(Chain, dl, Val, FIN, NULL, 0);
|
||||
SDValue Store = DAG.getStore(Chain, dl, Val, FIN, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOps.push_back(Store);
|
||||
// Increment the address by eight for the next argument to store
|
||||
SDValue PtrOff = DAG.getConstant(EVT(MVT::f64).getSizeInBits()/8,
|
||||
@ -1741,7 +1751,8 @@ PPCTargetLowering::LowerFormalArguments_SVR4(
|
||||
unsigned VReg = MF.addLiveIn(FPArgRegs[FPRIndex], &PPC::F8RCRegClass);
|
||||
|
||||
SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, MVT::f64);
|
||||
SDValue Store = DAG.getStore(Val.getValue(1), dl, Val, FIN, NULL, 0);
|
||||
SDValue Store = DAG.getStore(Val.getValue(1), dl, Val, FIN, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOps.push_back(Store);
|
||||
// Increment the address by eight for the next argument to store
|
||||
SDValue PtrOff = DAG.getConstant(EVT(MVT::f64).getSizeInBits()/8,
|
||||
@ -1903,7 +1914,9 @@ PPCTargetLowering::LowerFormalArguments_Darwin(
|
||||
unsigned VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::GPRCRegClass);
|
||||
SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT);
|
||||
SDValue Store = DAG.getTruncStore(Val.getValue(1), dl, Val, FIN,
|
||||
NULL, 0, ObjSize==1 ? MVT::i8 : MVT::i16 );
|
||||
NULL, 0,
|
||||
ObjSize==1 ? MVT::i8 : MVT::i16,
|
||||
false, false, 0);
|
||||
MemOps.push_back(Store);
|
||||
++GPR_idx;
|
||||
}
|
||||
@ -1921,7 +1934,8 @@ PPCTargetLowering::LowerFormalArguments_Darwin(
|
||||
int FI = MFI->CreateFixedObject(PtrByteSize, ArgOffset, true, false);
|
||||
SDValue FIN = DAG.getFrameIndex(FI, PtrVT);
|
||||
SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT);
|
||||
SDValue Store = DAG.getStore(Val.getValue(1), dl, Val, FIN, NULL, 0);
|
||||
SDValue Store = DAG.getStore(Val.getValue(1), dl, Val, FIN, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOps.push_back(Store);
|
||||
++GPR_idx;
|
||||
ArgOffset += PtrByteSize;
|
||||
@ -2045,7 +2059,8 @@ PPCTargetLowering::LowerFormalArguments_Darwin(
|
||||
CurArgOffset + (ArgSize - ObjSize),
|
||||
isImmutable, false);
|
||||
SDValue FIN = DAG.getFrameIndex(FI, PtrVT);
|
||||
ArgVal = DAG.getLoad(ObjectVT, dl, Chain, FIN, NULL, 0);
|
||||
ArgVal = DAG.getLoad(ObjectVT, dl, Chain, FIN, NULL, 0,
|
||||
false, false, 0);
|
||||
}
|
||||
|
||||
InVals.push_back(ArgVal);
|
||||
@ -2091,7 +2106,8 @@ PPCTargetLowering::LowerFormalArguments_Darwin(
|
||||
VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::GPRCRegClass);
|
||||
|
||||
SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT);
|
||||
SDValue Store = DAG.getStore(Val.getValue(1), dl, Val, FIN, NULL, 0);
|
||||
SDValue Store = DAG.getStore(Val.getValue(1), dl, Val, FIN, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOps.push_back(Store);
|
||||
// Increment the address by four for the next argument to store
|
||||
SDValue PtrOff = DAG.getConstant(PtrVT.getSizeInBits()/8, PtrVT);
|
||||
@ -2271,7 +2287,7 @@ StoreTailCallArgumentsToStackSlot(SelectionDAG &DAG,
|
||||
// Store relative to framepointer.
|
||||
MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, FIN,
|
||||
PseudoSourceValue::getFixedStack(FI),
|
||||
0));
|
||||
0, false, false, 0));
|
||||
}
|
||||
}
|
||||
|
||||
@ -2297,7 +2313,8 @@ static SDValue EmitTailCallStoreFPAndRetAddr(SelectionDAG &DAG,
|
||||
EVT VT = isPPC64 ? MVT::i64 : MVT::i32;
|
||||
SDValue NewRetAddrFrIdx = DAG.getFrameIndex(NewRetAddr, VT);
|
||||
Chain = DAG.getStore(Chain, dl, OldRetAddr, NewRetAddrFrIdx,
|
||||
PseudoSourceValue::getFixedStack(NewRetAddr), 0);
|
||||
PseudoSourceValue::getFixedStack(NewRetAddr), 0,
|
||||
false, false, 0);
|
||||
|
||||
// When using the 32/64-bit SVR4 ABI there is no need to move the FP stack
|
||||
// slot as the FP is never overwritten.
|
||||
@ -2308,7 +2325,8 @@ static SDValue EmitTailCallStoreFPAndRetAddr(SelectionDAG &DAG,
|
||||
true, false);
|
||||
SDValue NewFramePtrIdx = DAG.getFrameIndex(NewFPIdx, VT);
|
||||
Chain = DAG.getStore(Chain, dl, OldFP, NewFramePtrIdx,
|
||||
PseudoSourceValue::getFixedStack(NewFPIdx), 0);
|
||||
PseudoSourceValue::getFixedStack(NewFPIdx), 0,
|
||||
false, false, 0);
|
||||
}
|
||||
}
|
||||
return Chain;
|
||||
@ -2346,14 +2364,16 @@ SDValue PPCTargetLowering::EmitTailCallLoadFPAndRetAddr(SelectionDAG & DAG,
|
||||
// Load the LR and FP stack slot for later adjusting.
|
||||
EVT VT = PPCSubTarget.isPPC64() ? MVT::i64 : MVT::i32;
|
||||
LROpOut = getReturnAddrFrameIndex(DAG);
|
||||
LROpOut = DAG.getLoad(VT, dl, Chain, LROpOut, NULL, 0);
|
||||
LROpOut = DAG.getLoad(VT, dl, Chain, LROpOut, NULL, 0,
|
||||
false, false, 0);
|
||||
Chain = SDValue(LROpOut.getNode(), 1);
|
||||
|
||||
// When using the 32/64-bit SVR4 ABI there is no need to load the FP stack
|
||||
// slot as the FP is never overwritten.
|
||||
if (isDarwinABI) {
|
||||
FPOpOut = getFramePointerFrameIndex(DAG);
|
||||
FPOpOut = DAG.getLoad(VT, dl, Chain, FPOpOut, NULL, 0);
|
||||
FPOpOut = DAG.getLoad(VT, dl, Chain, FPOpOut, NULL, 0,
|
||||
false, false, 0);
|
||||
Chain = SDValue(FPOpOut.getNode(), 1);
|
||||
}
|
||||
}
|
||||
@ -2395,7 +2415,8 @@ LowerMemOpCallTo(SelectionDAG &DAG, MachineFunction &MF, SDValue Chain,
|
||||
PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr,
|
||||
DAG.getConstant(ArgOffset, PtrVT));
|
||||
}
|
||||
MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0));
|
||||
MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0,
|
||||
false, false, 0));
|
||||
// Calculate and remember argument location.
|
||||
} else CalculateTailCallArgDest(DAG, MF, isPPC64, Arg, SPDiff, ArgOffset,
|
||||
TailCallArguments);
|
||||
@ -2862,7 +2883,8 @@ PPCTargetLowering::LowerCall_SVR4(SDValue Chain, SDValue Callee,
|
||||
PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(), StackPtr, PtrOff);
|
||||
|
||||
MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff,
|
||||
PseudoSourceValue::getStack(), LocMemOffset));
|
||||
PseudoSourceValue::getStack(), LocMemOffset,
|
||||
false, false, 0));
|
||||
} else {
|
||||
// Calculate and remember argument location.
|
||||
CalculateTailCallArgDest(DAG, MF, false, Arg, SPDiff, LocMemOffset,
|
||||
@ -3024,7 +3046,7 @@ PPCTargetLowering::LowerCall_Darwin(SDValue Chain, SDValue Callee,
|
||||
EVT VT = (Size==1) ? MVT::i8 : MVT::i16;
|
||||
if (GPR_idx != NumGPRs) {
|
||||
SDValue Load = DAG.getExtLoad(ISD::EXTLOAD, dl, PtrVT, Chain, Arg,
|
||||
NULL, 0, VT);
|
||||
NULL, 0, VT, false, false, 0);
|
||||
MemOpChains.push_back(Load.getValue(1));
|
||||
RegsToPass.push_back(std::make_pair(GPR[GPR_idx++], Load));
|
||||
|
||||
@ -3061,7 +3083,8 @@ PPCTargetLowering::LowerCall_Darwin(SDValue Chain, SDValue Callee,
|
||||
SDValue Const = DAG.getConstant(j, PtrOff.getValueType());
|
||||
SDValue AddArg = DAG.getNode(ISD::ADD, dl, PtrVT, Arg, Const);
|
||||
if (GPR_idx != NumGPRs) {
|
||||
SDValue Load = DAG.getLoad(PtrVT, dl, Chain, AddArg, NULL, 0);
|
||||
SDValue Load = DAG.getLoad(PtrVT, dl, Chain, AddArg, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOpChains.push_back(Load.getValue(1));
|
||||
RegsToPass.push_back(std::make_pair(GPR[GPR_idx++], Load));
|
||||
ArgOffset += PtrByteSize;
|
||||
@ -3092,19 +3115,22 @@ PPCTargetLowering::LowerCall_Darwin(SDValue Chain, SDValue Callee,
|
||||
RegsToPass.push_back(std::make_pair(FPR[FPR_idx++], Arg));
|
||||
|
||||
if (isVarArg) {
|
||||
SDValue Store = DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0);
|
||||
SDValue Store = DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOpChains.push_back(Store);
|
||||
|
||||
// Float varargs are always shadowed in available integer registers
|
||||
if (GPR_idx != NumGPRs) {
|
||||
SDValue Load = DAG.getLoad(PtrVT, dl, Store, PtrOff, NULL, 0);
|
||||
SDValue Load = DAG.getLoad(PtrVT, dl, Store, PtrOff, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOpChains.push_back(Load.getValue(1));
|
||||
RegsToPass.push_back(std::make_pair(GPR[GPR_idx++], Load));
|
||||
}
|
||||
if (GPR_idx != NumGPRs && Arg.getValueType() == MVT::f64 && !isPPC64){
|
||||
SDValue ConstFour = DAG.getConstant(4, PtrOff.getValueType());
|
||||
PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, ConstFour);
|
||||
SDValue Load = DAG.getLoad(PtrVT, dl, Store, PtrOff, NULL, 0);
|
||||
SDValue Load = DAG.getLoad(PtrVT, dl, Store, PtrOff, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOpChains.push_back(Load.getValue(1));
|
||||
RegsToPass.push_back(std::make_pair(GPR[GPR_idx++], Load));
|
||||
}
|
||||
@ -3147,10 +3173,12 @@ PPCTargetLowering::LowerCall_Darwin(SDValue Chain, SDValue Callee,
|
||||
// entirely in R registers. Maybe later.
|
||||
PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr,
|
||||
DAG.getConstant(ArgOffset, PtrVT));
|
||||
SDValue Store = DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0);
|
||||
SDValue Store = DAG.getStore(Chain, dl, Arg, PtrOff, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOpChains.push_back(Store);
|
||||
if (VR_idx != NumVRs) {
|
||||
SDValue Load = DAG.getLoad(MVT::v4f32, dl, Store, PtrOff, NULL, 0);
|
||||
SDValue Load = DAG.getLoad(MVT::v4f32, dl, Store, PtrOff, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOpChains.push_back(Load.getValue(1));
|
||||
RegsToPass.push_back(std::make_pair(VR[VR_idx++], Load));
|
||||
}
|
||||
@ -3160,7 +3188,8 @@ PPCTargetLowering::LowerCall_Darwin(SDValue Chain, SDValue Callee,
|
||||
break;
|
||||
SDValue Ix = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff,
|
||||
DAG.getConstant(i, PtrVT));
|
||||
SDValue Load = DAG.getLoad(PtrVT, dl, Store, Ix, NULL, 0);
|
||||
SDValue Load = DAG.getLoad(PtrVT, dl, Store, Ix, NULL, 0,
|
||||
false, false, 0);
|
||||
MemOpChains.push_back(Load.getValue(1));
|
||||
RegsToPass.push_back(std::make_pair(GPR[GPR_idx++], Load));
|
||||
}
|
||||
@ -3225,7 +3254,8 @@ PPCTargetLowering::LowerCall_Darwin(SDValue Chain, SDValue Callee,
|
||||
// TOC save area offset.
|
||||
SDValue PtrOff = DAG.getIntPtrConstant(40);
|
||||
SDValue AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff);
|
||||
Chain = DAG.getStore(Val.getValue(1), dl, Val, AddPtr, NULL, 0);
|
||||
Chain = DAG.getStore(Val.getValue(1), dl, Val, AddPtr, NULL, 0,
|
||||
false, false, 0);
|
||||
}
|
||||
|
||||
// Build a sequence of copy-to-reg nodes chained together with token chain
|
||||
@ -3300,13 +3330,15 @@ SDValue PPCTargetLowering::LowerSTACKRESTORE(SDValue Op, SelectionDAG &DAG,
|
||||
SDValue SaveSP = Op.getOperand(1);
|
||||
|
||||
// Load the old link SP.
|
||||
SDValue LoadLinkSP = DAG.getLoad(PtrVT, dl, Chain, StackPtr, NULL, 0);
|
||||
SDValue LoadLinkSP = DAG.getLoad(PtrVT, dl, Chain, StackPtr, NULL, 0,
|
||||
false, false, 0);
|
||||
|
||||
// Restore the stack pointer.
|
||||
Chain = DAG.getCopyToReg(LoadLinkSP.getValue(1), dl, SP, SaveSP);
|
||||
|
||||
// Store the old link SP.
|
||||
return DAG.getStore(Chain, dl, LoadLinkSP, StackPtr, NULL, 0);
|
||||
return DAG.getStore(Chain, dl, LoadLinkSP, StackPtr, NULL, 0,
|
||||
false, false, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -3483,14 +3515,16 @@ SDValue PPCTargetLowering::LowerFP_TO_INT(SDValue Op, SelectionDAG &DAG,
|
||||
SDValue FIPtr = DAG.CreateStackTemporary(MVT::f64);
|
||||
|
||||
// Emit a store to the stack slot.
|
||||
SDValue Chain = DAG.getStore(DAG.getEntryNode(), dl, Tmp, FIPtr, NULL, 0);
|
||||
SDValue Chain = DAG.getStore(DAG.getEntryNode(), dl, Tmp, FIPtr, NULL, 0,
|
||||
false, false, 0);
|
||||
|
||||
// Result is a load from the stack slot. If loading 4 bytes, make sure to
|
||||
// add in a bias.
|
||||
if (Op.getValueType() == MVT::i32)
|
||||
FIPtr = DAG.getNode(ISD::ADD, dl, FIPtr.getValueType(), FIPtr,
|
||||
DAG.getConstant(4, FIPtr.getValueType()));
|
||||
return DAG.getLoad(Op.getValueType(), dl, Chain, FIPtr, NULL, 0);
|
||||
return DAG.getLoad(Op.getValueType(), dl, Chain, FIPtr, NULL, 0,
|
||||
false, false, 0);
|
||||
}
|
||||
|
||||
SDValue PPCTargetLowering::LowerSINT_TO_FP(SDValue Op, SelectionDAG &DAG) {
|
||||
@ -3533,7 +3567,7 @@ SDValue PPCTargetLowering::LowerSINT_TO_FP(SDValue Op, SelectionDAG &DAG) {
|
||||
DAG.getMemIntrinsicNode(PPCISD::STD_32, dl, DAG.getVTList(MVT::Other),
|
||||
Ops, 4, MVT::i64, MMO);
|
||||
// Load the value as a double.
|
||||
SDValue Ld = DAG.getLoad(MVT::f64, dl, Store, FIdx, NULL, 0);
|
||||
SDValue Ld = DAG.getLoad(MVT::f64, dl, Store, FIdx, NULL, 0, false, false, 0);
|
||||
|
||||
// FCFID it and return it.
|
||||
SDValue FP = DAG.getNode(PPCISD::FCFID, dl, MVT::f64, Ld);
|
||||
@ -3578,12 +3612,13 @@ SDValue PPCTargetLowering::LowerFLT_ROUNDS_(SDValue Op, SelectionDAG &DAG) {
|
||||
int SSFI = MF.getFrameInfo()->CreateStackObject(8, 8, false);
|
||||
SDValue StackSlot = DAG.getFrameIndex(SSFI, PtrVT);
|
||||
SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, Chain,
|
||||
StackSlot, NULL, 0);
|
||||
StackSlot, NULL, 0, false, false, 0);
|
||||
|
||||
// Load FP Control Word from low 32 bits of stack slot.
|
||||
SDValue Four = DAG.getConstant(4, PtrVT);
|
||||
SDValue Addr = DAG.getNode(ISD::ADD, dl, PtrVT, StackSlot, Four);
|
||||
SDValue CWD = DAG.getLoad(MVT::i32, dl, Store, Addr, NULL, 0);
|
||||
SDValue CWD = DAG.getLoad(MVT::i32, dl, Store, Addr, NULL, 0,
|
||||
false, false, 0);
|
||||
|
||||
// Transform as necessary
|
||||
SDValue CWD1 =
|
||||
@ -4249,9 +4284,11 @@ SDValue PPCTargetLowering::LowerSCALAR_TO_VECTOR(SDValue Op,
|
||||
|
||||
// Store the input value into Value#0 of the stack slot.
|
||||
SDValue Store = DAG.getStore(DAG.getEntryNode(), dl,
|
||||
Op.getOperand(0), FIdx, NULL, 0);
|
||||
Op.getOperand(0), FIdx, NULL, 0,
|
||||
false, false, 0);
|
||||
// Load it out.
|
||||
return DAG.getLoad(Op.getValueType(), dl, Store, FIdx, NULL, 0);
|
||||
return DAG.getLoad(Op.getValueType(), dl, Store, FIdx, NULL, 0,
|
||||
false, false, 0);
|
||||
}
|
||||
|
||||
SDValue PPCTargetLowering::LowerMUL(SDValue Op, SelectionDAG &DAG) {
|
||||
@ -5460,7 +5497,8 @@ SDValue PPCTargetLowering::LowerRETURNADDR(SDValue Op, SelectionDAG &DAG) {
|
||||
// to the stack.
|
||||
FuncInfo->setLRStoreRequired();
|
||||
return DAG.getLoad(getPointerTy(), dl,
|
||||
DAG.getEntryNode(), RetAddrFI, NULL, 0);
|
||||
DAG.getEntryNode(), RetAddrFI, NULL, 0,
|
||||
false, false, 0);
|
||||
}
|
||||
|
||||
SDValue PPCTargetLowering::LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user