LLVM
8.0.1
|
X86Operand - Instances of this class represent a parsed X86 machine instruction. More...
#include "Target/X86/AsmParser/X86Operand.h"
Classes | |
struct | ImmOp |
struct | MemOp |
struct | PrefOp |
struct | RegOp |
struct | TokOp |
Public Types | |
enum | KindTy { Token, Register, Immediate, Memory, Prefix, DXRegister } |
Public Attributes | |
enum llvm::X86Operand::KindTy | Kind |
SMLoc | StartLoc |
SMLoc | EndLoc |
SMLoc | OffsetOfLoc |
StringRef | SymName |
void * | OpDecl |
bool | AddressOf |
union { | |
struct TokOp Tok | |
struct RegOp Reg | |
struct ImmOp Imm | |
struct MemOp Mem | |
struct PrefOp Pref | |
}; | |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::MCParsedAsmOperand | |
MCParsedAsmOperand ()=default | |
MCParsedAsmOperand (const MCParsedAsmOperand &RHS)=default | |
MCParsedAsmOperand & | operator= (const MCParsedAsmOperand &)=default |
X86Operand - Instances of this class represent a parsed X86 machine instruction.
Definition at line 32 of file X86Operand.h.
Enumerator | |
---|---|
Token | |
Register | |
Immediate | |
Memory | |
Prefix | |
DXRegister |
Definition at line 33 of file X86Operand.h.
Definition at line 80 of file X86Operand.h.
Definition at line 495 of file X86Operand.h.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createExpr(), llvm::MCOperand::createImm(), and getMemDisp().
Definition at line 476 of file X86Operand.h.
Definition at line 510 of file X86Operand.h.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createReg(), and getMemBaseReg().
Definition at line 455 of file X86Operand.h.
References llvm::MCInst::addOperand(), llvm::MCOperand::createExpr(), and llvm::MCOperand::createImm().
Referenced by addAVX512RCOperands(), addImmOperands(), and addMemOperands().
Definition at line 468 of file X86Operand.h.
References llvm::MCInst::addOperand(), assert(), contains(), llvm::MCOperand::createReg(), getReg(), and llvm::getX86SubSuperRegister().
Definition at line 481 of file X86Operand.h.
Definition at line 515 of file X86Operand.h.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createExpr(), llvm::MCOperand::createImm(), llvm::MCOperand::createReg(), getMemDisp(), and getMemSegReg().
Definition at line 486 of file X86Operand.h.
References addExpr(), llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCOperand::createReg(), getMemBaseReg(), getMemDisp(), getMemIndexReg(), getMemScale(), and getMemSegReg().
Referenced by IsSmallMemAccess().
Definition at line 463 of file X86Operand.h.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createReg(), and getReg().
Definition at line 504 of file X86Operand.h.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createReg(), getMemBaseReg(), and getMemSegReg().
|
inlinestatic |
Definition at line 547 of file X86Operand.h.
References DXRegister, EndLoc, and StartLoc.
|
inlinestatic |
Definition at line 558 of file X86Operand.h.
|
inlinestatic |
Create an absolute memory operand.
Definition at line 567 of file X86Operand.h.
References EndLoc, Memory, OpDecl, Size, StartLoc, and SymName.
Referenced by CheckBaseRegAndIndexRegAndScale(), and IsSmallMemAccess().
|
inlinestatic |
|
inlinestatic |
Definition at line 552 of file X86Operand.h.
|
inlinestatic |
Definition at line 534 of file X86Operand.h.
References AddressOf, EndLoc, OffsetOfLoc, OpDecl, Register, StartLoc, and SymName.
|
inlinestatic |
Definition at line 525 of file X86Operand.h.
References llvm::StringRef::data(), EndLoc, llvm::SMLoc::getFromPointer(), llvm::SMLoc::getPointer(), llvm::StringRef::size(), and Token.
|
inlineoverridevirtual |
getEndLoc - Get the location of the last token of this operand.
Implements llvm::MCParsedAsmOperand.
Definition at line 90 of file X86Operand.h.
References EndLoc.
Definition at line 169 of file X86Operand.h.
References assert(), Imm, Immediate, and llvm::X86Operand::ImmOp::Val.
Referenced by addAVX512RCOperands(), addImmOperands(), isImmSExti16i8(), isImmSExti32i8(), isImmSExti64i32(), isImmSExti64i8(), and isImmUnsignedi8().
|
inline |
getLocRange - Get the range between the first and last token of this operand.
Definition at line 94 of file X86Operand.h.
Referenced by getPrefixes().
|
inline |
Definition at line 182 of file X86Operand.h.
References assert(), llvm::X86Operand::MemOp::BaseReg, and Mem.
Referenced by addDstIdxOperands(), addMemOperands(), addSrcIdxOperands(), isAbsMem(), isDstIdx(), isMemOffs(), IsSmallMemAccess(), and isSrcIdx().
Definition at line 174 of file X86Operand.h.
References assert(), llvm::X86Operand::MemOp::Disp, and Mem.
Referenced by addAbsMemOperands(), addMemOffsOperands(), addMemOperands(), isDstIdx(), IsSmallMemAccess(), and isSrcIdx().
|
inline |
Definition at line 198 of file X86Operand.h.
References assert(), llvm::X86Operand::MemOp::FrontendSize, and Mem.
Referenced by getPrefixes().
|
inline |
Definition at line 186 of file X86Operand.h.
References assert(), llvm::X86Operand::MemOp::IndexReg, and Mem.
Referenced by addMemOperands(), isAbsMem(), isDstIdx(), isMemOffs(), IsSmallMemAccess(), and isSrcIdx().
|
inline |
Definition at line 194 of file X86Operand.h.
References assert(), Mem, and llvm::X86Operand::MemOp::ModeSize.
Referenced by IsSmallMemAccess().
|
inline |
Definition at line 190 of file X86Operand.h.
References assert(), Mem, and llvm::X86Operand::MemOp::Scale.
Referenced by addMemOperands(), isAbsMem(), isDstIdx(), isMemOffs(), IsSmallMemAccess(), and isSrcIdx().
|
inline |
Definition at line 178 of file X86Operand.h.
References assert(), Mem, and llvm::X86Operand::MemOp::SegReg.
Referenced by addMemOffsOperands(), addMemOperands(), addSrcIdxOperands(), isAbsMem(), isDstIdx(), and IsSmallMemAccess().
|
inlineoverridevirtual |
getOffsetOfLoc - Get the location of the offset operator.
Reimplemented from llvm::MCParsedAsmOperand.
Definition at line 97 of file X86Operand.h.
References OffsetOfLoc.
|
inlineoverridevirtual |
Reimplemented from llvm::MCParsedAsmOperand.
Definition at line 84 of file X86Operand.h.
References OpDecl.
|
inline |
Definition at line 164 of file X86Operand.h.
References assert(), Prefix, and llvm::X86Operand::PrefOp::Prefixes.
Referenced by getPrefixes().
|
inlineoverridevirtual |
Implements llvm::MCParsedAsmOperand.
Definition at line 159 of file X86Operand.h.
References assert(), Reg, Register, and llvm::X86Operand::RegOp::RegNo.
Referenced by addGR32orGR64Operands(), addRegOperands(), CheckBaseRegAndIndexRegAndScale(), and isGR32orGR64().
|
inlineoverridevirtual |
getStartLoc - Get the location of the first token of this operand.
Implements llvm::MCParsedAsmOperand.
Definition at line 87 of file X86Operand.h.
References StartLoc.
Referenced by CheckBaseRegAndIndexRegAndScale(), and getPrefixes().
|
inlineoverridevirtual |
Reimplemented from llvm::MCParsedAsmOperand.
Definition at line 83 of file X86Operand.h.
References SymName.
|
inline |
Definition at line 149 of file X86Operand.h.
References assert(), llvm::X86Operand::TokOp::Data, llvm::X86Operand::TokOp::Length, Tok, and Token.
|
inline |
Definition at line 355 of file X86Operand.h.
References getMemBaseReg(), getMemIndexReg(), getMemScale(), and getMemSegReg().
Referenced by isAbsMem16().
|
inline |
Definition at line 363 of file X86Operand.h.
References isAbsMem(), Mem, and llvm::X86Operand::MemOp::ModeSize.
|
inline |
Definition at line 359 of file X86Operand.h.
References isImm().
|
inline |
Definition at line 386 of file X86Operand.h.
References llvm::N86::EDI, getMemBaseReg(), getMemDisp(), getMemIndexReg(), getMemScale(), and getMemSegReg().
Referenced by isDstIdx16(), isDstIdx32(), isDstIdx64(), and isDstIdx8().
|
inline |
Definition at line 396 of file X86Operand.h.
References isDstIdx(), and isMem16().
|
inline |
Definition at line 399 of file X86Operand.h.
References isDstIdx(), and isMem32().
|
inline |
Definition at line 402 of file X86Operand.h.
References isDstIdx(), and isMem64().
|
inline |
Definition at line 393 of file X86Operand.h.
References isDstIdx(), and isMem8().
|
inline |
Definition at line 447 of file X86Operand.h.
References DXRegister.
|
inline |
Definition at line 449 of file X86Operand.h.
|
inlineoverridevirtual |
isImm - Is this an immediate operand?
Implements llvm::MCParsedAsmOperand.
Definition at line 205 of file X86Operand.h.
References Immediate.
Referenced by isAVX512RC(), isImmSExti16i8(), isImmSExti32i8(), isImmSExti64i32(), isImmSExti64i8(), and isImmUnsignedi8().
|
inline |
Definition at line 207 of file X86Operand.h.
References llvm::dyn_cast(), getImm(), llvm::MCConstantExpr::getValue(), isImm(), and llvm::isImmSExti16i8Value().
|
inline |
Definition at line 221 of file X86Operand.h.
References llvm::dyn_cast(), getImm(), llvm::MCConstantExpr::getValue(), isImm(), and llvm::isImmSExti32i8Value().
|
inline |
Definition at line 249 of file X86Operand.h.
References llvm::dyn_cast(), getImm(), llvm::MCConstantExpr::getValue(), isImm(), and llvm::isImmSExti64i32Value().
|
inline |
Definition at line 235 of file X86Operand.h.
References llvm::dyn_cast(), getImm(), llvm::MCConstantExpr::getValue(), isImm(), and llvm::isImmSExti64i8Value().
|
inline |
Definition at line 264 of file X86Operand.h.
References llvm::dyn_cast(), getImm(), llvm::MCConstantExpr::getValue(), isImm(), and llvm::isImmUnsignedi8Value().
|
inlineoverridevirtual |
isMem - Is this a memory operand?
Implements llvm::MCParsedAsmOperand.
Definition at line 281 of file X86Operand.h.
References Memory.
Referenced by CheckBaseRegAndIndexRegAndScale(), and IsSmallMemAccess().
|
inline |
Definition at line 300 of file X86Operand.h.
References Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isMem128_RC128(), isMem128_RC128X(), isMem128_RC256(), and isMem128_RC256X().
|
inline |
Definition at line 317 of file X86Operand.h.
References isMem128(), and isMemIndexReg().
|
inline |
Definition at line 333 of file X86Operand.h.
References isMem128(), and isMemIndexReg().
|
inline |
Definition at line 320 of file X86Operand.h.
References isMem128(), and isMemIndexReg().
|
inline |
Definition at line 336 of file X86Operand.h.
References isMem128(), and isMemIndexReg().
|
inline |
Definition at line 288 of file X86Operand.h.
References Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isDstIdx16(), and isSrcIdx16().
|
inline |
Definition at line 303 of file X86Operand.h.
References Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isMem256_RC128(), isMem256_RC128X(), isMem256_RC256(), isMem256_RC256X(), and isMem256_RC512().
|
inline |
Definition at line 323 of file X86Operand.h.
References isMem256(), and isMemIndexReg().
|
inline |
Definition at line 339 of file X86Operand.h.
References isMem256(), and isMemIndexReg().
|
inline |
Definition at line 326 of file X86Operand.h.
References isMem256(), and isMemIndexReg().
|
inline |
Definition at line 342 of file X86Operand.h.
References isMem256(), and isMemIndexReg().
|
inline |
Definition at line 345 of file X86Operand.h.
References isMem256(), and isMemIndexReg().
|
inline |
Definition at line 291 of file X86Operand.h.
References Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isDstIdx32(), and isSrcIdx32().
|
inline |
Definition at line 306 of file X86Operand.h.
References Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isMem512_RC256X(), and isMem512_RC512().
|
inline |
Definition at line 348 of file X86Operand.h.
References isMem512(), and isMemIndexReg().
|
inline |
Definition at line 351 of file X86Operand.h.
References isMem512(), and isMemIndexReg().
|
inline |
Definition at line 294 of file X86Operand.h.
References Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isDstIdx64(), isMem64_RC128(), isMem64_RC128X(), and isSrcIdx64().
|
inline |
Definition at line 314 of file X86Operand.h.
References isMem64(), and isMemIndexReg().
|
inline |
Definition at line 330 of file X86Operand.h.
References isMem64(), and isMemIndexReg().
|
inline |
Definition at line 285 of file X86Operand.h.
References Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isDstIdx8(), and isSrcIdx8().
|
inline |
Definition at line 297 of file X86Operand.h.
References Mem, and llvm::X86Operand::MemOp::Size.
Definition at line 309 of file X86Operand.h.
References assert(), llvm::X86Operand::MemOp::IndexReg, and Mem.
Referenced by isMem128_RC128(), isMem128_RC128X(), isMem128_RC256(), isMem128_RC256X(), isMem256_RC128(), isMem256_RC128X(), isMem256_RC256(), isMem256_RC256X(), isMem256_RC512(), isMem512_RC256X(), isMem512_RC512(), isMem64_RC128(), and isMem64_RC128X().
|
inline |
Definition at line 406 of file X86Operand.h.
References getMemBaseReg(), getMemIndexReg(), and getMemScale().
Referenced by isMemOffs16_16(), isMemOffs16_32(), isMemOffs16_8(), isMemOffs32_16(), isMemOffs32_32(), isMemOffs32_64(), isMemOffs32_8(), isMemOffs64_16(), isMemOffs64_32(), isMemOffs64_64(), and isMemOffs64_8().
|
inline |
Definition at line 414 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 417 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 411 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 423 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 426 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 429 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 420 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 435 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 438 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 441 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 432 of file X86Operand.h.
References isMemOffs(), Mem, llvm::X86Operand::MemOp::ModeSize, and llvm::X86Operand::MemOp::Size.
|
inline |
Definition at line 282 of file X86Operand.h.
References Mem, and llvm::X86Operand::MemOp::Size.
Referenced by getPrefixes().
|
inlineoverridevirtual |
isOffsetOf - Do we need to emit code to get the offset of the variable, rather then the value of the variable? Only valid when parsing MS-style inline assembly.
Reimplemented from llvm::MCParsedAsmOperand.
Definition at line 273 of file X86Operand.h.
References llvm::SMLoc::getPointer().
|
inline |
|
inlineoverridevirtual |
isReg - Is this a register operand?
Implements llvm::MCParsedAsmOperand.
Definition at line 446 of file X86Operand.h.
References Register.
Referenced by CheckBaseRegAndIndexRegAndScale().
|
inline |
Definition at line 367 of file X86Operand.h.
References llvm::N86::ESI, getMemBaseReg(), getMemDisp(), getMemIndexReg(), getMemScale(), and SI.
Referenced by isSrcIdx16(), isSrcIdx32(), isSrcIdx64(), and isSrcIdx8().
|
inline |
Definition at line 376 of file X86Operand.h.
References isMem16(), and isSrcIdx().
|
inline |
Definition at line 379 of file X86Operand.h.
References isMem32(), and isSrcIdx().
|
inline |
Definition at line 382 of file X86Operand.h.
References isMem64(), and isSrcIdx().
|
inline |
Definition at line 373 of file X86Operand.h.
References isMem8(), and isSrcIdx().
|
inlineoverridevirtual |
isToken - Is this a token operand?
Implements llvm::MCParsedAsmOperand.
Definition at line 203 of file X86Operand.h.
References Token.
|
inlineoverridevirtual |
needAddressOf - Do we need to emit code to get the address of the variable/label? Only valid when parsing MS-style inline assembly.
Reimplemented from llvm::MCParsedAsmOperand.
Definition at line 277 of file X86Operand.h.
References AddressOf.
|
inlineoverridevirtual |
print - Print a debug representation of the operand to the given stream.
Implements llvm::MCParsedAsmOperand.
Definition at line 99 of file X86Operand.h.
References llvm::X86Operand::MemOp::BaseReg, llvm::MCExpr::Constant, llvm::X86Operand::TokOp::Data, llvm::StringRef::data(), llvm::X86Operand::MemOp::Disp, DXRegister, llvm::MCExpr::getKind(), llvm::MCSymbol::getName(), llvm::X86IntelInstPrinter::getRegisterName(), Imm, Immediate, llvm::X86Operand::MemOp::IndexReg, Mem, Memory, llvm::X86Operand::MemOp::ModeSize, Prefix, llvm::X86Operand::PrefOp::Prefixes, Reg, Register, llvm::X86Operand::RegOp::RegNo, llvm::X86Operand::MemOp::Scale, llvm::X86Operand::MemOp::SegReg, llvm::X86Operand::MemOp::Size, llvm::MCExpr::SymbolRef, Tok, Token, and llvm::X86Operand::ImmOp::Val.
|
inline |
Definition at line 153 of file X86Operand.h.
References assert(), llvm::X86Operand::TokOp::Data, llvm::StringRef::data(), llvm::X86Operand::TokOp::Length, llvm::StringRef::size(), Tok, and Token.
union { ... } |
bool llvm::X86Operand::AddressOf |
Definition at line 39 of file X86Operand.h.
Referenced by CreateReg(), and needAddressOf().
SMLoc llvm::X86Operand::EndLoc |
Definition at line 35 of file X86Operand.h.
Referenced by CreateDXReg(), CreateImm(), CreateMem(), CreatePrefix(), CreateReg(), CreateToken(), and getEndLoc().
struct ImmOp llvm::X86Operand::Imm |
Definition at line 75 of file X86Operand.h.
enum llvm::X86Operand::KindTy llvm::X86Operand::Kind |
struct MemOp llvm::X86Operand::Mem |
Definition at line 76 of file X86Operand.h.
Referenced by CheckBaseRegAndIndexRegAndScale(), getMemBaseReg(), getMemDisp(), getMemFrontendSize(), getMemIndexReg(), getMemModeSize(), getMemScale(), getMemSegReg(), getPrefixes(), isAbsMem16(), isMem128(), isMem16(), isMem256(), isMem32(), isMem512(), isMem64(), isMem8(), isMem80(), isMemIndexReg(), isMemOffs16_16(), isMemOffs16_32(), isMemOffs16_8(), isMemOffs32_16(), isMemOffs32_32(), isMemOffs32_64(), isMemOffs32_8(), isMemOffs64_16(), isMemOffs64_32(), isMemOffs64_64(), isMemOffs64_8(), isMemUnsized(), and print().
SMLoc llvm::X86Operand::OffsetOfLoc |
Definition at line 36 of file X86Operand.h.
Referenced by CreateReg(), and getOffsetOfLoc().
void* llvm::X86Operand::OpDecl |
Definition at line 38 of file X86Operand.h.
Referenced by CreateMem(), CreateReg(), and getOpDecl().
struct PrefOp llvm::X86Operand::Pref |
Definition at line 77 of file X86Operand.h.
struct RegOp llvm::X86Operand::Reg |
Definition at line 74 of file X86Operand.h.
SMLoc llvm::X86Operand::StartLoc |
Definition at line 35 of file X86Operand.h.
Referenced by CreateDXReg(), CreateImm(), CreateMem(), CreatePrefix(), CreateReg(), and getStartLoc().
StringRef llvm::X86Operand::SymName |
Definition at line 37 of file X86Operand.h.
Referenced by CreateMem(), CreateReg(), and getSymName().
struct TokOp llvm::X86Operand::Tok |
Definition at line 73 of file X86Operand.h.
Referenced by getToken(), print(), and setTokenValue().