Lines Matching defs:CSKYOperand

145 struct CSKYOperand : public MCParsedAsmOperand {  struct
147 enum KindTy {
154 } Kind;
156 struct RegOp {
160 struct ImmOp {
164 struct ConstpoolOp {
168 struct RegSeqOp {
173 struct RegListOp {
184 SMLoc StartLoc, EndLoc;
185 union {
194 CSKYOperand(KindTy K) : MCParsedAsmOperand(), Kind(K) {} in CSKYOperand() function
197 CSKYOperand(const CSKYOperand &o) : MCParsedAsmOperand() { in CSKYOperand() function
223 bool isToken() const override { return Kind == Token; } in isToken()
224 bool isReg() const override { return Kind == Register; } in isReg()
225 bool isImm() const override { return Kind == Immediate; } in isImm()
226 bool isRegisterSeq() const { return Kind == RegisterSeq; } in isRegisterSeq()
227 bool isRegisterList() const { return Kind == RegisterList; } in isRegisterList()
228 bool isConstPoolOp() const { return Kind == CPOP; } in isConstPoolOp()
230 bool isMem() const override { return false; } in isMem()
232 static bool evaluateConstantImm(const MCExpr *Expr, int64_t &Imm) { in evaluateConstantImm()
241 template <unsigned num, unsigned shift = 0> bool isUImm() const { in isUImm()
250 template <unsigned num> bool isOImm() const { in isOImm()
259 template <unsigned num, unsigned shift = 0> bool isSImm() const { in isSImm()
268 bool isUImm1() const { return isUImm<1>(); } in isUImm1()
269 bool isUImm2() const { return isUImm<2>(); } in isUImm2()
270 bool isUImm3() const { return isUImm<3>(); } in isUImm3()
271 bool isUImm4() const { return isUImm<4>(); } in isUImm4()
272 bool isUImm5() const { return isUImm<5>(); } in isUImm5()
273 bool isUImm6() const { return isUImm<6>(); } in isUImm6()
274 bool isUImm7() const { return isUImm<7>(); } in isUImm7()
275 bool isUImm8() const { return isUImm<8>(); } in isUImm8()
276 bool isUImm12() const { return isUImm<12>(); } in isUImm12()
277 bool isUImm16() const { return isUImm<16>(); } in isUImm16()
278 bool isUImm20() const { return isUImm<20>(); } in isUImm20()
279 bool isUImm24() const { return isUImm<24>(); } in isUImm24()
281 bool isOImm3() const { return isOImm<3>(); } in isOImm3()
282 bool isOImm4() const { return isOImm<4>(); } in isOImm4()
283 bool isOImm5() const { return isOImm<5>(); } in isOImm5()
284 bool isOImm6() const { return isOImm<6>(); } in isOImm6()
285 bool isOImm8() const { return isOImm<8>(); } in isOImm8()
286 bool isOImm12() const { return isOImm<12>(); } in isOImm12()
287 bool isOImm16() const { return isOImm<16>(); } in isOImm16()
289 bool isSImm8() const { return isSImm<8>(); } in isSImm8()
291 bool isUImm5Shift1() { return isUImm<5, 1>(); } in isUImm5Shift1()
292 bool isUImm5Shift2() { return isUImm<5, 2>(); } in isUImm5Shift2()
293 bool isUImm7Shift1() { return isUImm<7, 1>(); } in isUImm7Shift1()
294 bool isUImm7Shift2() { return isUImm<7, 2>(); } in isUImm7Shift2()
295 bool isUImm7Shift3() { return isUImm<7, 3>(); } in isUImm7Shift3()
296 bool isUImm8Shift2() { return isUImm<8, 2>(); } in isUImm8Shift2()
297 bool isUImm8Shift3() { return isUImm<8, 3>(); } in isUImm8Shift3()
298 bool isUImm8Shift8() { return isUImm<8, 8>(); } in isUImm8Shift8()
299 bool isUImm8Shift16() { return isUImm<8, 16>(); } in isUImm8Shift16()
300 bool isUImm8Shift24() { return isUImm<8, 24>(); } in isUImm8Shift24()
301 bool isUImm12Shift1() { return isUImm<12, 1>(); } in isUImm12Shift1()
302 bool isUImm12Shift2() { return isUImm<12, 2>(); } in isUImm12Shift2()
303 bool isUImm16Shift8() { return isUImm<16, 8>(); } in isUImm16Shift8()
304 bool isUImm16Shift16() { return isUImm<16, 16>(); } in isUImm16Shift16()
305 bool isUImm24Shift8() { return isUImm<24, 8>(); } in isUImm24Shift8()
307 bool isSImm16Shift1() { return isSImm<16, 1>(); } in isSImm16Shift1()
309 bool isCSKYSymbol() const { return isImm(); } in isCSKYSymbol()
311 bool isConstpool() const { return isConstPoolOp(); } in isConstpool()
312 bool isDataSymbol() const { return isConstPoolOp(); } in isDataSymbol()
314 bool isPSRFlag() const { in isPSRFlag()
323 template <unsigned MIN, unsigned MAX> bool isRegSeqTemplate() const { in isRegSeqTemplate()
333 bool isRegSeq() const { return isRegSeqTemplate<CSKY::R0, CSKY::R31>(); } in isRegSeq()
335 bool isRegSeqV1() const { in isRegSeqV1()
339 bool isRegSeqV2() const { in isRegSeqV2()
343 static bool isLegalRegList(unsigned from, unsigned to) { in isLegalRegList()
366 bool isRegList() const { in isRegList()
384 bool isExtImm6() { in isExtImm6()
399 SMLoc getStartLoc() const override { return StartLoc; } in getStartLoc()
401 SMLoc getEndLoc() const override { return EndLoc; } in getEndLoc()
403 unsigned getReg() const override { in getReg()
408 std::pair<unsigned, unsigned> getRegSeq() const { in getRegSeq()
413 RegListOp getRegList() const { in getRegList()
418 const MCExpr *getImm() const { in getImm()
423 const MCExpr *getConstpoolOp() const { in getConstpoolOp()
428 StringRef getToken() const { in getToken()
433 void print(raw_ostream &OS) const override { in print()
473 static std::unique_ptr<CSKYOperand> createToken(StringRef Str, SMLoc S) { in createToken()
481 static std::unique_ptr<CSKYOperand> createReg(unsigned RegNo, SMLoc S, in createReg()
490 static std::unique_ptr<CSKYOperand> createRegSeq(unsigned RegNoFrom, in createRegSeq()
501 createRegList(SmallVector<unsigned, 4> reglist, SMLoc S) { in createRegList()
535 static std::unique_ptr<CSKYOperand> createImm(const MCExpr *Val, SMLoc S, in createImm()
544 static std::unique_ptr<CSKYOperand> createConstpoolOp(const MCExpr *Val, in createConstpoolOp()
553 void addExpr(MCInst &Inst, const MCExpr *Expr) const { in addExpr()
562 void addRegOperands(MCInst &Inst, unsigned N) const { in addRegOperands()
567 void addImmOperands(MCInst &Inst, unsigned N) const { in addImmOperands()
572 void addConstpoolOperands(MCInst &Inst, unsigned N) const { in addConstpoolOperands()
577 void addRegSeqOperands(MCInst &Inst, unsigned N) const { in addRegSeqOperands()
585 static unsigned getListValue(unsigned ListFrom, unsigned ListTo) { in getListValue()
598 void addRegListOperands(MCInst &Inst, unsigned N) const { in addRegListOperands()
623 bool isValidForTie(const CSKYOperand &Other) const { in isValidForTie()