Lines Matching defs:Addr
98 bool Mips16DAGToDAGISel::selectAddr(bool SPAllowed, SDValue Addr, SDValue &Base,
100 SDLoc DL(Addr);
101 EVT ValTy = Addr.getValueType();
105 if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>(Addr)) {
112 if (Addr.getOpcode() == MipsISD::Wrapper) {
113 Base = Addr.getOperand(0);
114 Offset = Addr.getOperand(1);
118 if ((Addr.getOpcode() == ISD::TargetExternalSymbol ||
119 Addr.getOpcode() == ISD::TargetGlobalAddress))
123 if (CurDAG->isBaseWithConstantOffset(Addr)) {
124 auto *CN = cast<ConstantSDNode>(Addr.getOperand(1));
129 dyn_cast<FrameIndexSDNode>(Addr.getOperand(0))) {
136 Base = Addr.getOperand(0);
142 if (Addr.getOpcode() == ISD::ADD) {
151 if (Addr.getOperand(1).getOpcode() == MipsISD::Lo ||
152 Addr.getOperand(1).getOpcode() == MipsISD::GPRel) {
153 SDValue Opnd0 = Addr.getOperand(1).getOperand(0);
156 Base = Addr.getOperand(0);
162 Base = Addr;
167 bool Mips16DAGToDAGISel::selectAddr16(SDValue Addr, SDValue &Base,
169 return selectAddr(false, Addr, Base, Offset);
172 bool Mips16DAGToDAGISel::selectAddr16SP(SDValue Addr, SDValue &Base,
174 return selectAddr(true, Addr, Base, Offset);