mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Make TargetLowering::getPointerTy() taking DataLayout as an argument
Summary: This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the one owned by the module. Reviewers: echristo Subscribers: jholewinski, ted, yaron.keren, rafael, llvm-commits Differential Revision: http://reviews.llvm.org/D11028 From: Mehdi Amini <mehdi.amini@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241775 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1055,7 +1055,8 @@ const char *PPCTargetLowering::getTargetNodeName(unsigned Opcode) const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
EVT PPCTargetLowering::getSetCCResultType(LLVMContext &C, EVT VT) const {
|
||||
EVT PPCTargetLowering::getSetCCResultType(const DataLayout &DL, LLVMContext &C,
|
||||
EVT VT) const {
|
||||
if (!VT.isVector())
|
||||
return Subtarget.useCRBits() ? MVT::i1 : MVT::i32;
|
||||
|
||||
@ -1796,7 +1797,7 @@ bool PPCTargetLowering::SelectAddressRegImm(SDValue N, SDValue &Disp,
|
||||
}
|
||||
}
|
||||
|
||||
Disp = DAG.getTargetConstant(0, dl, getPointerTy());
|
||||
Disp = DAG.getTargetConstant(0, dl, getPointerTy(DAG.getDataLayout()));
|
||||
if (FrameIndexSDNode *FI = dyn_cast<FrameIndexSDNode>(N)) {
|
||||
Base = DAG.getTargetFrameIndex(FI->getIndex(), N.getValueType());
|
||||
fixupFuncForFI(DAG, FI->getIndex(), N.getValueType());
|
||||
@ -2084,7 +2085,7 @@ SDValue PPCTargetLowering::LowerGlobalTLSAddress(SDValue Op,
|
||||
GlobalAddressSDNode *GA = cast<GlobalAddressSDNode>(Op);
|
||||
SDLoc dl(GA);
|
||||
const GlobalValue *GV = GA->getGlobal();
|
||||
EVT PtrVT = getPointerTy();
|
||||
EVT PtrVT = getPointerTy(DAG.getDataLayout());
|
||||
bool is64bit = Subtarget.isPPC64();
|
||||
const Module *M = DAG.getMachineFunction().getFunction()->getParent();
|
||||
PICLevel::Level picLevel = M->getPICLevel();
|
||||
@ -2270,7 +2271,7 @@ SDValue PPCTargetLowering::LowerVAARG(SDValue Op, SelectionDAG &DAG,
|
||||
const PPCSubtarget &Subtarget) const {
|
||||
SDNode *Node = Op.getNode();
|
||||
EVT VT = Node->getValueType(0);
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
SDValue InChain = Node->getOperand(0);
|
||||
SDValue VAListPtr = Node->getOperand(1);
|
||||
const Value *SV = cast<SrcValueSDNode>(Node->getOperand(2))->getValue();
|
||||
@ -2399,7 +2400,7 @@ SDValue PPCTargetLowering::LowerINIT_TRAMPOLINE(SDValue Op,
|
||||
SDValue Nest = Op.getOperand(3); // 'nest' parameter value
|
||||
SDLoc dl(Op);
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
bool isPPC64 = (PtrVT == MVT::i64);
|
||||
Type *IntPtrTy =
|
||||
DAG.getTargetLoweringInfo().getDataLayout()->getIntPtrType(
|
||||
@ -2440,7 +2441,7 @@ SDValue PPCTargetLowering::LowerVASTART(SDValue Op, SelectionDAG &DAG,
|
||||
if (Subtarget.isDarwinABI() || Subtarget.isPPC64()) {
|
||||
// vastart just stores the address of the VarArgsFrameIndex slot into the
|
||||
// memory location argument.
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
SDValue FR = DAG.getFrameIndex(FuncInfo->getVarArgsFrameIndex(), PtrVT);
|
||||
const Value *SV = cast<SrcValueSDNode>(Op.getOperand(2))->getValue();
|
||||
return DAG.getStore(Op.getOperand(0), dl, FR, Op.getOperand(1),
|
||||
@ -2476,8 +2477,7 @@ SDValue PPCTargetLowering::LowerVASTART(SDValue Op, SelectionDAG &DAG,
|
||||
SDValue ArgGPR = DAG.getConstant(FuncInfo->getVarArgsNumGPR(), dl, MVT::i32);
|
||||
SDValue ArgFPR = DAG.getConstant(FuncInfo->getVarArgsNumFPR(), dl, MVT::i32);
|
||||
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
|
||||
SDValue StackOffsetFI = DAG.getFrameIndex(FuncInfo->getVarArgsStackOffset(),
|
||||
PtrVT);
|
||||
@ -2797,7 +2797,7 @@ PPCTargetLowering::LowerFormalArguments_32SVR4(
|
||||
MachineFrameInfo *MFI = MF.getFrameInfo();
|
||||
PPCFunctionInfo *FuncInfo = MF.getInfo<PPCFunctionInfo>();
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
// Potential tail calls could cause overwriting of argument stack slots.
|
||||
bool isImmutable = !(getTargetMachine().Options.GuaranteedTailCallOpt &&
|
||||
(CallConv == CallingConv::Fast));
|
||||
@ -3023,7 +3023,7 @@ PPCTargetLowering::LowerFormalArguments_64SVR4(
|
||||
assert(!(CallConv == CallingConv::Fast && isVarArg) &&
|
||||
"fastcc not supported on varargs functions");
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
// Potential tail calls could cause overwriting of argument stack slots.
|
||||
bool isImmutable = !(getTargetMachine().Options.GuaranteedTailCallOpt &&
|
||||
(CallConv == CallingConv::Fast));
|
||||
@ -3425,7 +3425,7 @@ PPCTargetLowering::LowerFormalArguments_Darwin(
|
||||
MachineFrameInfo *MFI = MF.getFrameInfo();
|
||||
PPCFunctionInfo *FuncInfo = MF.getInfo<PPCFunctionInfo>();
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
bool isPPC64 = PtrVT == MVT::i64;
|
||||
// Potential tail calls could cause overwriting of argument stack slots.
|
||||
bool isImmutable = !(getTargetMachine().Options.GuaranteedTailCallOpt &&
|
||||
@ -3845,7 +3845,8 @@ static SDNode *isBLACompatibleAddress(SDValue Op, SelectionDAG &DAG) {
|
||||
return nullptr; // Top 6 bits have to be sext of immediate.
|
||||
|
||||
return DAG.getConstant((int)C->getZExtValue() >> 2, SDLoc(Op),
|
||||
DAG.getTargetLoweringInfo().getPointerTy()).getNode();
|
||||
DAG.getTargetLoweringInfo().getPointerTy(
|
||||
DAG.getDataLayout())).getNode();
|
||||
}
|
||||
|
||||
namespace {
|
||||
@ -3991,7 +3992,7 @@ LowerMemOpCallTo(SelectionDAG &DAG, MachineFunction &MF, SDValue Chain,
|
||||
bool isVector, SmallVectorImpl<SDValue> &MemOpChains,
|
||||
SmallVectorImpl<TailCallArgumentInfo> &TailCallArguments,
|
||||
SDLoc dl) {
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
if (!isTailCall) {
|
||||
if (isVector) {
|
||||
SDValue StackPtr;
|
||||
@ -4062,7 +4063,7 @@ unsigned PrepareCall(SelectionDAG &DAG, SDValue &Callee, SDValue &InFlag,
|
||||
bool isSVR4ABI = Subtarget.isSVR4ABI();
|
||||
bool isELFv2ABI = Subtarget.isELFv2ABI();
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
NodeTys.push_back(MVT::Other); // Returns a chain
|
||||
NodeTys.push_back(MVT::Glue); // Returns a flag for retval copy to use.
|
||||
|
||||
@ -4379,7 +4380,7 @@ PPCTargetLowering::FinishCall(CallingConv::ID CallConv, SDLoc dl,
|
||||
// allocated and an unnecessary move instruction being generated.
|
||||
CallOpc = PPCISD::BCTRL_LOAD_TOC;
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
SDValue StackPtr = DAG.getRegister(PPC::X1, PtrVT);
|
||||
unsigned TOCSaveOffset = Subtarget.getFrameLowering()->getTOCSaveOffset();
|
||||
SDValue TOCOff = DAG.getIntPtrConstant(TOCSaveOffset, dl);
|
||||
@ -4584,7 +4585,8 @@ PPCTargetLowering::LowerCall_32SVR4(SDValue Chain, SDValue Callee,
|
||||
unsigned LocMemOffset = ByValVA.getLocMemOffset();
|
||||
|
||||
SDValue PtrOff = DAG.getIntPtrConstant(LocMemOffset, dl);
|
||||
PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(), StackPtr, PtrOff);
|
||||
PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(MF.getDataLayout()),
|
||||
StackPtr, PtrOff);
|
||||
|
||||
// Create a copy of the argument in the local area of the current
|
||||
// stack frame.
|
||||
@ -4621,7 +4623,8 @@ PPCTargetLowering::LowerCall_32SVR4(SDValue Chain, SDValue Callee,
|
||||
|
||||
if (!isTailCall) {
|
||||
SDValue PtrOff = DAG.getIntPtrConstant(LocMemOffset, dl);
|
||||
PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(), StackPtr, PtrOff);
|
||||
PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(MF.getDataLayout()),
|
||||
StackPtr, PtrOff);
|
||||
|
||||
MemOpChains.push_back(DAG.getStore(Chain, dl, Arg, PtrOff,
|
||||
MachinePointerInfo(),
|
||||
@ -4702,7 +4705,7 @@ PPCTargetLowering::LowerCall_64SVR4(SDValue Chain, SDValue Callee,
|
||||
bool isLittleEndian = Subtarget.isLittleEndian();
|
||||
unsigned NumOps = Outs.size();
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
unsigned PtrByteSize = 8;
|
||||
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
@ -5318,7 +5321,7 @@ PPCTargetLowering::LowerCall_Darwin(SDValue Chain, SDValue Callee,
|
||||
|
||||
unsigned NumOps = Outs.size();
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
bool isPPC64 = PtrVT == MVT::i64;
|
||||
unsigned PtrByteSize = isPPC64 ? 8 : 4;
|
||||
|
||||
@ -5762,7 +5765,7 @@ SDValue PPCTargetLowering::LowerSTACKRESTORE(SDValue Op, SelectionDAG &DAG,
|
||||
SDLoc dl(Op);
|
||||
|
||||
// Get the corect type for pointers.
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
|
||||
// Construct the stack pointer operand.
|
||||
bool isPPC64 = Subtarget.isPPC64();
|
||||
@ -5792,7 +5795,7 @@ SDValue
|
||||
PPCTargetLowering::getReturnAddrFrameIndex(SelectionDAG & DAG) const {
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
bool isPPC64 = Subtarget.isPPC64();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
|
||||
// Get current frame pointer save index. The users of this index will be
|
||||
// primarily DYNALLOC instructions.
|
||||
@ -5815,7 +5818,7 @@ SDValue
|
||||
PPCTargetLowering::getFramePointerFrameIndex(SelectionDAG & DAG) const {
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
bool isPPC64 = Subtarget.isPPC64();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
|
||||
// Get current frame pointer save index. The users of this index will be
|
||||
// primarily DYNALLOC instructions.
|
||||
@ -5843,7 +5846,7 @@ SDValue PPCTargetLowering::LowerDYNAMIC_STACKALLOC(SDValue Op,
|
||||
SDLoc dl(Op);
|
||||
|
||||
// Get the corect type for pointers.
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
// Negate the size.
|
||||
SDValue NegSize = DAG.getNode(ISD::SUB, dl, PtrVT,
|
||||
DAG.getConstant(0, dl, PtrVT), Size);
|
||||
@ -5886,8 +5889,9 @@ SDValue PPCTargetLowering::LowerLOAD(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue BasePtr = LD->getBasePtr();
|
||||
MachineMemOperand *MMO = LD->getMemOperand();
|
||||
|
||||
SDValue NewLD = DAG.getExtLoad(ISD::EXTLOAD, dl, getPointerTy(), Chain,
|
||||
BasePtr, MVT::i8, MMO);
|
||||
SDValue NewLD =
|
||||
DAG.getExtLoad(ISD::EXTLOAD, dl, getPointerTy(DAG.getDataLayout()), Chain,
|
||||
BasePtr, MVT::i8, MMO);
|
||||
SDValue Result = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, NewLD);
|
||||
|
||||
SDValue Ops[] = { Result, SDValue(NewLD.getNode(), 1) };
|
||||
@ -5911,7 +5915,8 @@ SDValue PPCTargetLowering::LowerSTORE(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue Value = ST->getValue();
|
||||
MachineMemOperand *MMO = ST->getMemOperand();
|
||||
|
||||
Value = DAG.getNode(ISD::ZERO_EXTEND, dl, getPointerTy(), Value);
|
||||
Value = DAG.getNode(ISD::ZERO_EXTEND, dl, getPointerTy(DAG.getDataLayout()),
|
||||
Value);
|
||||
return DAG.getTruncStore(Chain, dl, Value, BasePtr, MVT::i8, MMO);
|
||||
}
|
||||
|
||||
@ -6372,7 +6377,7 @@ SDValue PPCTargetLowering::LowerINT_TO_FP(SDValue Op,
|
||||
SINT.getOpcode() == ISD::ZERO_EXTEND)) &&
|
||||
SINT.getOperand(0).getValueType() == MVT::i32) {
|
||||
MachineFrameInfo *FrameInfo = MF.getFrameInfo();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
|
||||
|
||||
int FrameIdx = FrameInfo->CreateStackObject(4, 4, false);
|
||||
SDValue FIdx = DAG.getFrameIndex(FrameIdx, PtrVT);
|
||||
@ -6417,7 +6422,7 @@ SDValue PPCTargetLowering::LowerINT_TO_FP(SDValue Op,
|
||||
// then lfd it and fcfid it.
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
MachineFrameInfo *FrameInfo = MF.getFrameInfo();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
|
||||
SDValue Ld;
|
||||
if (Subtarget.hasLFIWAX() || Subtarget.hasFPCVT()) {
|
||||
@ -6504,7 +6509,7 @@ SDValue PPCTargetLowering::LowerFLT_ROUNDS_(SDValue Op,
|
||||
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
EVT VT = Op.getValueType();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
|
||||
// Save FP Control Word to register
|
||||
EVT NodeTys[] = {
|
||||
@ -6725,7 +6730,7 @@ SDValue PPCTargetLowering::LowerBUILD_VECTOR(SDValue Op,
|
||||
MachineFrameInfo *FrameInfo = DAG.getMachineFunction().getFrameInfo();
|
||||
int FrameIdx = FrameInfo->CreateStackObject(16, 16, false);
|
||||
MachinePointerInfo PtrInfo = MachinePointerInfo::getFixedStack(FrameIdx);
|
||||
EVT PtrVT = getPointerTy();
|
||||
EVT PtrVT = getPointerTy(DAG.getDataLayout());
|
||||
SDValue FIdx = DAG.getFrameIndex(FrameIdx, PtrVT);
|
||||
|
||||
assert(BVN->getNumOperands() == 4 &&
|
||||
@ -6758,9 +6763,9 @@ SDValue PPCTargetLowering::LowerBUILD_VECTOR(SDValue Op,
|
||||
}
|
||||
|
||||
Constant *CP = ConstantVector::get(CV);
|
||||
SDValue CPIdx = DAG.getConstantPool(CP, getPointerTy(),
|
||||
16 /* alignment */);
|
||||
|
||||
SDValue CPIdx = DAG.getConstantPool(CP, getPointerTy(DAG.getDataLayout()),
|
||||
16 /* alignment */);
|
||||
|
||||
SmallVector<SDValue, 2> Ops;
|
||||
Ops.push_back(DAG.getEntryNode());
|
||||
Ops.push_back(CPIdx);
|
||||
@ -7451,7 +7456,7 @@ SDValue PPCTargetLowering::LowerSCALAR_TO_VECTOR(SDValue Op,
|
||||
// Create a stack slot that is 16-byte aligned.
|
||||
MachineFrameInfo *FrameInfo = DAG.getMachineFunction().getFrameInfo();
|
||||
int FrameIdx = FrameInfo->CreateStackObject(16, 16, false);
|
||||
EVT PtrVT = getPointerTy();
|
||||
EVT PtrVT = getPointerTy(DAG.getDataLayout());
|
||||
SDValue FIdx = DAG.getFrameIndex(FrameIdx, PtrVT);
|
||||
|
||||
// Store the input value into Value#0 of the stack slot.
|
||||
@ -7497,7 +7502,7 @@ SDValue PPCTargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op,
|
||||
MachineFrameInfo *FrameInfo = DAG.getMachineFunction().getFrameInfo();
|
||||
int FrameIdx = FrameInfo->CreateStackObject(16, 16, false);
|
||||
MachinePointerInfo PtrInfo = MachinePointerInfo::getFixedStack(FrameIdx);
|
||||
EVT PtrVT = getPointerTy();
|
||||
EVT PtrVT = getPointerTy(DAG.getDataLayout());
|
||||
SDValue FIdx = DAG.getFrameIndex(FrameIdx, PtrVT);
|
||||
|
||||
SDValue StoreChain = DAG.getEntryNode();
|
||||
@ -7649,9 +7654,9 @@ SDValue PPCTargetLowering::LowerVectorStore(SDValue Op,
|
||||
|
||||
SmallVector<SDValue, 8> Stores;
|
||||
for (unsigned Idx = 0; Idx < 4; ++Idx) {
|
||||
SDValue Ex =
|
||||
DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, ScalarVT, Value,
|
||||
DAG.getConstant(Idx, dl, getVectorIdxTy()));
|
||||
SDValue Ex = DAG.getNode(
|
||||
ISD::EXTRACT_VECTOR_ELT, dl, ScalarVT, Value,
|
||||
DAG.getConstant(Idx, dl, getVectorIdxTy(DAG.getDataLayout())));
|
||||
SDValue Store;
|
||||
if (ScalarVT != ScalarMemVT)
|
||||
Store =
|
||||
@ -7713,7 +7718,7 @@ SDValue PPCTargetLowering::LowerVectorStore(SDValue Op,
|
||||
MachineFrameInfo *FrameInfo = DAG.getMachineFunction().getFrameInfo();
|
||||
int FrameIdx = FrameInfo->CreateStackObject(16, 16, false);
|
||||
MachinePointerInfo PtrInfo = MachinePointerInfo::getFixedStack(FrameIdx);
|
||||
EVT PtrVT = getPointerTy();
|
||||
EVT PtrVT = getPointerTy(DAG.getDataLayout());
|
||||
SDValue FIdx = DAG.getFrameIndex(FrameIdx, PtrVT);
|
||||
|
||||
SmallVector<SDValue, 2> Ops;
|
||||
@ -7918,7 +7923,8 @@ void PPCTargetLowering::ReplaceNodeResults(SDNode *N,
|
||||
|
||||
assert(N->getValueType(0) == MVT::i1 &&
|
||||
"Unexpected result type for CTR decrement intrinsic");
|
||||
EVT SVT = getSetCCResultType(*DAG.getContext(), N->getValueType(0));
|
||||
EVT SVT = getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(),
|
||||
N->getValueType(0));
|
||||
SDVTList VTs = DAG.getVTList(SVT, MVT::Other);
|
||||
SDValue NewInt = DAG.getNode(N->getOpcode(), dl, VTs, N->getOperand(0),
|
||||
N->getOperand(1));
|
||||
@ -8246,7 +8252,7 @@ PPCTargetLowering::emitEHSjLjSetJmp(MachineInstr *MI,
|
||||
unsigned mainDstReg = MRI.createVirtualRegister(RC);
|
||||
unsigned restoreDstReg = MRI.createVirtualRegister(RC);
|
||||
|
||||
MVT PVT = getPointerTy();
|
||||
MVT PVT = getPointerTy(MF->getDataLayout());
|
||||
assert((PVT == MVT::i64 || PVT == MVT::i32) &&
|
||||
"Invalid Pointer Size!");
|
||||
// For v = setjmp(buf), we generate
|
||||
@ -8384,7 +8390,7 @@ PPCTargetLowering::emitEHSjLjLongJmp(MachineInstr *MI,
|
||||
MachineInstr::mmo_iterator MMOBegin = MI->memoperands_begin();
|
||||
MachineInstr::mmo_iterator MMOEnd = MI->memoperands_end();
|
||||
|
||||
MVT PVT = getPointerTy();
|
||||
MVT PVT = getPointerTy(MF->getDataLayout());
|
||||
assert((PVT == MVT::i64 || PVT == MVT::i32) &&
|
||||
"Invalid Pointer Size!");
|
||||
|
||||
@ -10217,7 +10223,8 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,
|
||||
2*MemVT.getStoreSize()-1);
|
||||
|
||||
// Create the new base load.
|
||||
SDValue LDXIntID = DAG.getTargetConstant(IntrLD, dl, getPointerTy());
|
||||
SDValue LDXIntID =
|
||||
DAG.getTargetConstant(IntrLD, dl, getPointerTy(MF.getDataLayout()));
|
||||
SDValue BaseLoadOps[] = { Chain, LDXIntID, Ptr };
|
||||
SDValue BaseLoad =
|
||||
DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl,
|
||||
@ -10241,7 +10248,8 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,
|
||||
if (!findConsecutiveLoad(LD, DAG))
|
||||
--IncValue;
|
||||
|
||||
SDValue Increment = DAG.getConstant(IncValue, dl, getPointerTy());
|
||||
SDValue Increment =
|
||||
DAG.getConstant(IncValue, dl, getPointerTy(MF.getDataLayout()));
|
||||
Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr, Increment);
|
||||
|
||||
MachineMemOperand *ExtraMMO =
|
||||
@ -10975,22 +10983,22 @@ SDValue PPCTargetLowering::LowerRETURNADDR(SDValue Op,
|
||||
PPCFunctionInfo *FuncInfo = MF.getInfo<PPCFunctionInfo>();
|
||||
FuncInfo->setLRStoreRequired();
|
||||
bool isPPC64 = Subtarget.isPPC64();
|
||||
auto PtrVT = getPointerTy(MF.getDataLayout());
|
||||
|
||||
if (Depth > 0) {
|
||||
SDValue FrameAddr = LowerFRAMEADDR(Op, DAG);
|
||||
SDValue Offset =
|
||||
DAG.getConstant(Subtarget.getFrameLowering()->getReturnSaveOffset(), dl,
|
||||
isPPC64 ? MVT::i64 : MVT::i32);
|
||||
return DAG.getLoad(getPointerTy(), dl, DAG.getEntryNode(),
|
||||
DAG.getNode(ISD::ADD, dl, getPointerTy(),
|
||||
FrameAddr, Offset),
|
||||
return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(),
|
||||
DAG.getNode(ISD::ADD, dl, PtrVT, FrameAddr, Offset),
|
||||
MachinePointerInfo(), false, false, false, 0);
|
||||
}
|
||||
|
||||
// Just load the return address off the stack.
|
||||
SDValue RetAddrFI = getReturnAddrFrameIndex(DAG);
|
||||
return DAG.getLoad(getPointerTy(), dl, DAG.getEntryNode(),
|
||||
RetAddrFI, MachinePointerInfo(), false, false, false, 0);
|
||||
return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), RetAddrFI,
|
||||
MachinePointerInfo(), false, false, false, 0);
|
||||
}
|
||||
|
||||
SDValue PPCTargetLowering::LowerFRAMEADDR(SDValue Op,
|
||||
@ -10998,13 +11006,13 @@ SDValue PPCTargetLowering::LowerFRAMEADDR(SDValue Op,
|
||||
SDLoc dl(Op);
|
||||
unsigned Depth = cast<ConstantSDNode>(Op.getOperand(0))->getZExtValue();
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
bool isPPC64 = PtrVT == MVT::i64;
|
||||
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
MachineFrameInfo *MFI = MF.getFrameInfo();
|
||||
MFI->setFrameAddressIsTaken(true);
|
||||
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy(MF.getDataLayout());
|
||||
bool isPPC64 = PtrVT == MVT::i64;
|
||||
|
||||
// Naked functions never have a frame pointer, and so we use r1. For all
|
||||
// other functions, this decision must be delayed until during PEI.
|
||||
unsigned FrameReg;
|
||||
|
Reference in New Issue
Block a user