Lines Matching defs:final
29 struct X86Operand final : public MCParsedAsmOperand { struct
30 enum KindTy { Token, Register, Immediate, Memory, Prefix, DXRegister } Kind;
32 SMLoc StartLoc, EndLoc;
33 SMLoc OffsetOfLoc;
34 StringRef SymName;
35 void *OpDecl;
36 bool AddressOf;
37 bool CallOperand;
39 struct TokOp {
44 struct RegOp {
48 struct PrefOp {
52 struct ImmOp {
57 struct MemOp {
72 union {
80 X86Operand(KindTy K, SMLoc Start, SMLoc End) in X86Operand()
83 StringRef getSymName() override { return SymName; } in getSymName()
84 void *getOpDecl() override { return OpDecl; } in getOpDecl()
87 SMLoc getStartLoc() const override { return StartLoc; } in getStartLoc()
90 SMLoc getEndLoc() const override { return EndLoc; } in getEndLoc()
94 SMRange getLocRange() const { return SMRange(StartLoc, EndLoc); } in getLocRange()
97 SMLoc getOffsetOfLoc() const override { return OffsetOfLoc; } in getOffsetOfLoc()
99 void print(raw_ostream &OS) const override { in print()
149 StringRef getToken() const { in getToken()
153 void setTokenValue(StringRef Value) { in setTokenValue()
159 unsigned getReg() const override { in getReg()
164 unsigned getPrefix() const { in getPrefix()
169 const MCExpr *getImm() const { in getImm()
174 const MCExpr *getMemDisp() const { in getMemDisp()
178 unsigned getMemSegReg() const { in getMemSegReg()
182 unsigned getMemBaseReg() const { in getMemBaseReg()
186 unsigned getMemDefaultBaseReg() const { in getMemDefaultBaseReg()
190 unsigned getMemIndexReg() const { in getMemIndexReg()
194 unsigned getMemScale() const { in getMemScale()
198 unsigned getMemModeSize() const { in getMemModeSize()
202 unsigned getMemFrontendSize() const { in getMemFrontendSize()
207 bool isToken() const override {return Kind == Token; } in isToken()
209 bool isImm() const override { return Kind == Immediate; } in isImm()
211 bool isImmSExti16i8() const { in isImmSExti16i8()
225 bool isImmSExti32i8() const { in isImmSExti32i8()
239 bool isImmSExti64i8() const { in isImmSExti64i8()
253 bool isImmSExti64i32() const { in isImmSExti64i32()
268 bool isImmUnsignedi4() const { in isImmUnsignedi4()
277 bool isImmUnsignedi8() const { in isImmUnsignedi8()
286 bool isOffsetOfLocal() const override { return isImm() && Imm.LocalRef; } in isOffsetOfLocal()
288 bool needAddressOf() const override { return AddressOf; } in needAddressOf()
290 bool isMem() const override { return Kind == Memory; } in isMem()
291 bool isMemUnsized() const { in isMemUnsized()
294 bool isMem8() const { in isMem8()
297 bool isMem16() const { in isMem16()
300 bool isMem32() const { in isMem32()
303 bool isMem64() const { in isMem64()
306 bool isMem80() const { in isMem80()
309 bool isMem128() const { in isMem128()
312 bool isMem256() const { in isMem256()
315 bool isMem512() const { in isMem512()
319 bool isSibMem() const { in isSibMem()
323 bool isMemIndexReg(unsigned LowR, unsigned HighR) const { in isMemIndexReg()
328 bool isMem64_RC128() const { in isMem64_RC128()
331 bool isMem128_RC128() const { in isMem128_RC128()
334 bool isMem128_RC256() const { in isMem128_RC256()
337 bool isMem256_RC128() const { in isMem256_RC128()
340 bool isMem256_RC256() const { in isMem256_RC256()
344 bool isMem64_RC128X() const { in isMem64_RC128X()
347 bool isMem128_RC128X() const { in isMem128_RC128X()
350 bool isMem128_RC256X() const { in isMem128_RC256X()
353 bool isMem256_RC128X() const { in isMem256_RC128X()
356 bool isMem256_RC256X() const { in isMem256_RC256X()
359 bool isMem256_RC512() const { in isMem256_RC512()
362 bool isMem512_RC256X() const { in isMem512_RC256X()
365 bool isMem512_RC512() const { in isMem512_RC512()
369 bool isAbsMem() const { in isAbsMem()
373 bool isAVX512RC() const{ in isAVX512RC()
377 bool isAbsMem16() const { in isAbsMem16()
381 bool isSrcIdx() const { in isSrcIdx()
387 bool isSrcIdx8() const { in isSrcIdx8()
390 bool isSrcIdx16() const { in isSrcIdx16()
393 bool isSrcIdx32() const { in isSrcIdx32()
396 bool isSrcIdx64() const { in isSrcIdx64()
400 bool isDstIdx() const { in isDstIdx()
407 bool isDstIdx8() const { in isDstIdx8()
410 bool isDstIdx16() const { in isDstIdx16()
413 bool isDstIdx32() const { in isDstIdx32()
416 bool isDstIdx64() const { in isDstIdx64()
420 bool isMemOffs() const { in isMemOffs()
425 bool isMemOffs16_8() const { in isMemOffs16_8()
428 bool isMemOffs16_16() const { in isMemOffs16_16()
431 bool isMemOffs16_32() const { in isMemOffs16_32()
434 bool isMemOffs32_8() const { in isMemOffs32_8()
437 bool isMemOffs32_16() const { in isMemOffs32_16()
440 bool isMemOffs32_32() const { in isMemOffs32_32()
443 bool isMemOffs32_64() const { in isMemOffs32_64()
446 bool isMemOffs64_8() const { in isMemOffs64_8()
449 bool isMemOffs64_16() const { in isMemOffs64_16()
452 bool isMemOffs64_32() const { in isMemOffs64_32()
455 bool isMemOffs64_64() const { in isMemOffs64_64()
459 bool isPrefix() const { return Kind == Prefix; } in isPrefix()
460 bool isReg() const override { return Kind == Register; } in isReg()
461 bool isDXReg() const { return Kind == DXRegister; } in isDXReg()
463 bool isGR32orGR64() const { in isGR32orGR64()
469 bool isGR16orGR32orGR64() const { in isGR16orGR32orGR64()
476 bool isVectorReg() const { in isVectorReg()
484 bool isVK1Pair() const { in isVK1Pair()
489 bool isVK2Pair() const { in isVK2Pair()
494 bool isVK4Pair() const { in isVK4Pair()
499 bool isVK8Pair() const { in isVK8Pair()
504 bool isVK16Pair() const { in isVK16Pair()
509 void addExpr(MCInst &Inst, const MCExpr *Expr) const { in addExpr()
517 void addRegOperands(MCInst &Inst, unsigned N) const { in addRegOperands()
522 void addGR32orGR64Operands(MCInst &Inst, unsigned N) const { in addGR32orGR64Operands()
530 void addGR16orGR32orGR64Operands(MCInst &Inst, unsigned N) const { in addGR16orGR32orGR64Operands()
539 void addAVX512RCOperands(MCInst &Inst, unsigned N) const { in addAVX512RCOperands()
544 void addImmOperands(MCInst &Inst, unsigned N) const { in addImmOperands()
549 void addMaskPairOperands(MCInst &Inst, unsigned N) const { in addMaskPairOperands()
573 void addMemOperands(MCInst &Inst, unsigned N) const { in addMemOperands()
585 void addAbsMemOperands(MCInst &Inst, unsigned N) const { in addAbsMemOperands()
594 void addSrcIdxOperands(MCInst &Inst, unsigned N) const { in addSrcIdxOperands()
600 void addDstIdxOperands(MCInst &Inst, unsigned N) const { in addDstIdxOperands()
605 void addMemOffsOperands(MCInst &Inst, unsigned N) const { in addMemOffsOperands()
615 static std::unique_ptr<X86Operand> CreateToken(StringRef Str, SMLoc Loc) { in CreateToken()
627 auto Res = std::make_unique<X86Operand>(Register, StartLoc, EndLoc);
637 CreateDXReg(SMLoc StartLoc, SMLoc EndLoc) { in CreateDXReg()
642 CreatePrefix(unsigned Prefixes, SMLoc StartLoc, SMLoc EndLoc) { in CreatePrefix()
653 auto Res = std::make_unique<X86Operand>(Immediate, StartLoc, EndLoc);
667 auto Res = std::make_unique<X86Operand>(Memory, StartLoc, EndLoc);
699 auto Res = std::make_unique<X86Operand>(Memory, StartLoc, EndLoc);