Lines Matching refs:AM

102     bool MatchAddress(SDValue N, MSP430ISelAddressMode &AM);
103 bool MatchWrapper(SDValue N, MSP430ISelAddressMode &AM);
104 bool MatchAddressBase(SDValue N, MSP430ISelAddressMode &AM);
135 bool MSP430DAGToDAGISel::MatchWrapper(SDValue N, MSP430ISelAddressMode &AM) { in MatchWrapper() argument
138 if (AM.hasSymbolicDisplacement()) in MatchWrapper()
144 AM.GV = G->getGlobal(); in MatchWrapper()
145 AM.Disp += G->getOffset(); in MatchWrapper()
148 AM.CP = CP->getConstVal(); in MatchWrapper()
149 AM.Alignment = CP->getAlign(); in MatchWrapper()
150 AM.Disp += CP->getOffset(); in MatchWrapper()
153 AM.ES = S->getSymbol(); in MatchWrapper()
156 AM.JT = J->getIndex(); in MatchWrapper()
159 AM.BlockAddr = cast<BlockAddressSDNode>(N0)->getBlockAddress(); in MatchWrapper()
167 bool MSP430DAGToDAGISel::MatchAddressBase(SDValue N, MSP430ISelAddressMode &AM) { in MatchAddressBase() argument
169 if (AM.BaseType != MSP430ISelAddressMode::RegBase || AM.Base.Reg.getNode()) { in MatchAddressBase()
175 AM.BaseType = MSP430ISelAddressMode::RegBase; in MatchAddressBase()
176 AM.Base.Reg = N; in MatchAddressBase()
180 bool MSP430DAGToDAGISel::MatchAddress(SDValue N, MSP430ISelAddressMode &AM) { in MatchAddress() argument
181 LLVM_DEBUG(errs() << "MatchAddress: "; AM.dump()); in MatchAddress()
187 AM.Disp += Val; in MatchAddress()
192 if (!MatchWrapper(N, AM)) in MatchAddress()
197 if (AM.BaseType == MSP430ISelAddressMode::RegBase in MatchAddress()
198 && AM.Base.Reg.getNode() == nullptr) { in MatchAddress()
199 AM.BaseType = MSP430ISelAddressMode::FrameIndexBase; in MatchAddress()
200 AM.Base.FrameIndex = cast<FrameIndexSDNode>(N)->getIndex(); in MatchAddress()
206 MSP430ISelAddressMode Backup = AM; in MatchAddress()
207 if (!MatchAddress(N.getNode()->getOperand(0), AM) && in MatchAddress()
208 !MatchAddress(N.getNode()->getOperand(1), AM)) in MatchAddress()
210 AM = Backup; in MatchAddress()
211 if (!MatchAddress(N.getNode()->getOperand(1), AM) && in MatchAddress()
212 !MatchAddress(N.getNode()->getOperand(0), AM)) in MatchAddress()
214 AM = Backup; in MatchAddress()
222 MSP430ISelAddressMode Backup = AM; in MatchAddress()
225 if (!MatchAddress(N.getOperand(0), AM) && in MatchAddress()
227 AM.GV == nullptr && in MatchAddress()
230 AM.Disp += Offset; in MatchAddress()
233 AM = Backup; in MatchAddress()
238 return MatchAddressBase(N, AM); in MatchAddress()
246 MSP430ISelAddressMode AM; in SelectAddr() local
248 if (MatchAddress(N, AM)) in SelectAddr()
251 if (AM.BaseType == MSP430ISelAddressMode::RegBase) in SelectAddr()
252 if (!AM.Base.Reg.getNode()) in SelectAddr()
253 AM.Base.Reg = CurDAG->getRegister(MSP430::SR, MVT::i16); in SelectAddr()
255 Base = (AM.BaseType == MSP430ISelAddressMode::FrameIndexBase) in SelectAddr()
257 AM.Base.FrameIndex, in SelectAddr()
259 : AM.Base.Reg; in SelectAddr()
261 if (AM.GV) in SelectAddr()
262 Disp = CurDAG->getTargetGlobalAddress(AM.GV, SDLoc(N), in SelectAddr()
263 MVT::i16, AM.Disp, in SelectAddr()
265 else if (AM.CP) in SelectAddr()
266 Disp = CurDAG->getTargetConstantPool(AM.CP, MVT::i16, AM.Alignment, AM.Disp, in SelectAddr()
268 else if (AM.ES) in SelectAddr()
269 Disp = CurDAG->getTargetExternalSymbol(AM.ES, MVT::i16, 0/*AM.SymbolFlags*/); in SelectAddr()
270 else if (AM.JT != -1) in SelectAddr()
271 Disp = CurDAG->getTargetJumpTable(AM.JT, MVT::i16, 0/*AM.SymbolFlags*/); in SelectAddr()
272 else if (AM.BlockAddr) in SelectAddr()
273 Disp = CurDAG->getTargetBlockAddress(AM.BlockAddr, MVT::i32, 0, in SelectAddr()
276 Disp = CurDAG->getTargetConstant(AM.Disp, SDLoc(N), MVT::i16); in SelectAddr()
299 ISD::MemIndexedMode AM = LD->getAddressingMode(); in isValidIndexedLoad() local
300 if (AM != ISD::POST_INC || LD->getExtensionType() != ISD::NON_EXTLOAD) in isValidIndexedLoad()