Lines Matching defs:CSKYOperand

143 struct CSKYOperand : public MCParsedAsmOperand {  struct
145 enum KindTy {
152 } Kind;
154 struct RegOp {
158 struct ImmOp {
162 struct ConstpoolOp {
166 struct RegSeqOp {
171 struct RegListOp {
182 SMLoc StartLoc, EndLoc;
183 union {
192 CSKYOperand(KindTy K) : MCParsedAsmOperand(), Kind(K) {} in CSKYOperand() function
195 CSKYOperand(const CSKYOperand &o) : MCParsedAsmOperand() { in CSKYOperand() function
221 bool isToken() const override { return Kind == Token; } in isToken()
222 bool isReg() const override { return Kind == Register; } in isReg()
223 bool isImm() const override { return Kind == Immediate; } in isImm()
224 bool isRegisterSeq() const { return Kind == RegisterSeq; } in isRegisterSeq()
225 bool isRegisterList() const { return Kind == RegisterList; } in isRegisterList()
226 bool isConstPoolOp() const { return Kind == CPOP; } in isConstPoolOp()
228 bool isMem() const override { return false; } in isMem()
230 static bool evaluateConstantImm(const MCExpr *Expr, int64_t &Imm) { in evaluateConstantImm()
239 template <unsigned num, unsigned shift = 0> bool isUImm() const { in isUImm()
248 template <unsigned num> bool isOImm() const { in isOImm()
257 template <unsigned num, unsigned shift = 0> bool isSImm() const { in isSImm()
266 bool isUImm1() const { return isUImm<1>(); } in isUImm1()
267 bool isUImm2() const { return isUImm<2>(); } in isUImm2()
268 bool isUImm3() const { return isUImm<3>(); } in isUImm3()
269 bool isUImm4() const { return isUImm<4>(); } in isUImm4()
270 bool isUImm5() const { return isUImm<5>(); } in isUImm5()
271 bool isUImm6() const { return isUImm<6>(); } in isUImm6()
272 bool isUImm7() const { return isUImm<7>(); } in isUImm7()
273 bool isUImm8() const { return isUImm<8>(); } in isUImm8()
274 bool isUImm12() const { return isUImm<12>(); } in isUImm12()
275 bool isUImm16() const { return isUImm<16>(); } in isUImm16()
276 bool isUImm20() const { return isUImm<20>(); } in isUImm20()
277 bool isUImm24() const { return isUImm<24>(); } in isUImm24()
279 bool isOImm3() const { return isOImm<3>(); } in isOImm3()
280 bool isOImm4() const { return isOImm<4>(); } in isOImm4()
281 bool isOImm5() const { return isOImm<5>(); } in isOImm5()
282 bool isOImm6() const { return isOImm<6>(); } in isOImm6()
283 bool isOImm8() const { return isOImm<8>(); } in isOImm8()
284 bool isOImm12() const { return isOImm<12>(); } in isOImm12()
285 bool isOImm16() const { return isOImm<16>(); } in isOImm16()
287 bool isSImm8() const { return isSImm<8>(); } in isSImm8()
289 bool isUImm5Shift1() { return isUImm<5, 1>(); } in isUImm5Shift1()
290 bool isUImm5Shift2() { return isUImm<5, 2>(); } in isUImm5Shift2()
291 bool isUImm7Shift1() { return isUImm<7, 1>(); } in isUImm7Shift1()
292 bool isUImm7Shift2() { return isUImm<7, 2>(); } in isUImm7Shift2()
293 bool isUImm7Shift3() { return isUImm<7, 3>(); } in isUImm7Shift3()
294 bool isUImm8Shift2() { return isUImm<8, 2>(); } in isUImm8Shift2()
295 bool isUImm8Shift3() { return isUImm<8, 3>(); } in isUImm8Shift3()
296 bool isUImm8Shift8() { return isUImm<8, 8>(); } in isUImm8Shift8()
297 bool isUImm8Shift16() { return isUImm<8, 16>(); } in isUImm8Shift16()
298 bool isUImm8Shift24() { return isUImm<8, 24>(); } in isUImm8Shift24()
299 bool isUImm12Shift1() { return isUImm<12, 1>(); } in isUImm12Shift1()
300 bool isUImm12Shift2() { return isUImm<12, 2>(); } in isUImm12Shift2()
301 bool isUImm16Shift8() { return isUImm<16, 8>(); } in isUImm16Shift8()
302 bool isUImm16Shift16() { return isUImm<16, 16>(); } in isUImm16Shift16()
303 bool isUImm24Shift8() { return isUImm<24, 8>(); } in isUImm24Shift8()
305 bool isSImm16Shift1() { return isSImm<16, 1>(); } in isSImm16Shift1()
307 bool isCSKYSymbol() const { return isImm(); } in isCSKYSymbol()
309 bool isConstpool() const { return isConstPoolOp(); } in isConstpool()
310 bool isDataSymbol() const { return isConstPoolOp(); } in isDataSymbol()
312 bool isPSRFlag() const { in isPSRFlag()
321 template <unsigned MIN, unsigned MAX> bool isRegSeqTemplate() const { in isRegSeqTemplate()
331 bool isRegSeq() const { return isRegSeqTemplate<CSKY::R0, CSKY::R31>(); } in isRegSeq()
333 bool isRegSeqV1() const { in isRegSeqV1()
337 bool isRegSeqV2() const { in isRegSeqV2()
341 static bool isLegalRegList(unsigned from, unsigned to) { in isLegalRegList()
364 bool isRegList() const { in isRegList()
382 bool isExtImm6() { in isExtImm6()
397 SMLoc getStartLoc() const override { return StartLoc; } in getStartLoc()
399 SMLoc getEndLoc() const override { return EndLoc; } in getEndLoc()
401 unsigned getReg() const override { in getReg()
406 std::pair<unsigned, unsigned> getRegSeq() const { in getRegSeq()
411 RegListOp getRegList() const { in getRegList()
416 const MCExpr *getImm() const { in getImm()
421 const MCExpr *getConstpoolOp() const { in getConstpoolOp()
426 StringRef getToken() const { in getToken()
431 void print(raw_ostream &OS) const override { in print()
471 static std::unique_ptr<CSKYOperand> createToken(StringRef Str, SMLoc S) { in createToken()
479 static std::unique_ptr<CSKYOperand> createReg(unsigned RegNo, SMLoc S, in createReg()
488 static std::unique_ptr<CSKYOperand> createRegSeq(unsigned RegNoFrom, in createRegSeq()
499 createRegList(SmallVector<unsigned, 4> reglist, SMLoc S) { in createRegList()
533 static std::unique_ptr<CSKYOperand> createImm(const MCExpr *Val, SMLoc S, in createImm()
542 static std::unique_ptr<CSKYOperand> createConstpoolOp(const MCExpr *Val, in createConstpoolOp()
551 void addExpr(MCInst &Inst, const MCExpr *Expr) const { in addExpr()
560 void addRegOperands(MCInst &Inst, unsigned N) const { in addRegOperands()
565 void addImmOperands(MCInst &Inst, unsigned N) const { in addImmOperands()
570 void addConstpoolOperands(MCInst &Inst, unsigned N) const { in addConstpoolOperands()
575 void addRegSeqOperands(MCInst &Inst, unsigned N) const { in addRegSeqOperands()
583 static unsigned getListValue(unsigned ListFrom, unsigned ListTo) { in getListValue()
596 void addRegListOperands(MCInst &Inst, unsigned N) const { in addRegListOperands()
621 bool isValidForTie(const CSKYOperand &Other) const { in isValidForTie()