LLVM API Documentation
#include <X86Operand.h>
X86Operand - Instances of this class represent a parsed X86 machine instruction.
Definition at line 22 of file X86Operand.h.
Definition at line 23 of file X86Operand.h.
llvm::X86Operand::X86Operand | ( | KindTy | K, |
SMLoc | Start, | ||
SMLoc | End | ||
) | [inline] |
Definition at line 65 of file X86Operand.h.
void llvm::X86Operand::addAbsMemOperands | ( | MCInst & | Inst, |
unsigned | N | ||
) | const [inline] |
Definition at line 374 of file X86Operand.h.
References llvm::MCInst::addOperand(), llvm::WinEH::CE, llvm::MCOperand::CreateExpr(), llvm::MCOperand::CreateImm(), and getMemDisp().
void llvm::X86Operand::addDstIdxOperands | ( | MCInst & | Inst, |
unsigned | N | ||
) | const [inline] |
Definition at line 388 of file X86Operand.h.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateReg(), and getMemBaseReg().
void llvm::X86Operand::addExpr | ( | MCInst & | Inst, |
const MCExpr * | Expr | ||
) | const [inline] |
Definition at line 316 of file X86Operand.h.
References llvm::MCInst::addOperand(), llvm::WinEH::CE, llvm::MCOperand::CreateExpr(), and llvm::MCOperand::CreateImm().
Referenced by addImmOperands(), and addMemOperands().
void llvm::X86Operand::addGR32orGR64Operands | ( | MCInst & | Inst, |
unsigned | N | ||
) | const [inline] |
Definition at line 352 of file X86Operand.h.
References llvm::MCInst::addOperand(), contains(), llvm::MCOperand::CreateReg(), getGR32FromGR64(), and getReg().
void llvm::X86Operand::addImmOperands | ( | MCInst & | Inst, |
unsigned | N | ||
) | const [inline] |
Definition at line 360 of file X86Operand.h.
void llvm::X86Operand::addMemOffsOperands | ( | MCInst & | Inst, |
unsigned | N | ||
) | const [inline] |
Definition at line 393 of file X86Operand.h.
References llvm::MCInst::addOperand(), llvm::WinEH::CE, llvm::MCOperand::CreateExpr(), llvm::MCOperand::CreateImm(), llvm::MCOperand::CreateReg(), getMemDisp(), and getMemSegReg().
void llvm::X86Operand::addMemOperands | ( | MCInst & | Inst, |
unsigned | N | ||
) | const [inline] |
Definition at line 365 of file X86Operand.h.
References addExpr(), llvm::MCInst::addOperand(), llvm::MCOperand::CreateImm(), llvm::MCOperand::CreateReg(), getMemBaseReg(), getMemDisp(), getMemIndexReg(), getMemScale(), and getMemSegReg().
void llvm::X86Operand::addRegOperands | ( | MCInst & | Inst, |
unsigned | N | ||
) | const [inline] |
Definition at line 324 of file X86Operand.h.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateReg(), and getReg().
void llvm::X86Operand::addSrcIdxOperands | ( | MCInst & | Inst, |
unsigned | N | ||
) | const [inline] |
Definition at line 383 of file X86Operand.h.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateReg(), getMemBaseReg(), and getMemSegReg().
static std::unique_ptr<X86Operand> llvm::X86Operand::CreateImm | ( | const MCExpr * | Val, |
SMLoc | StartLoc, | ||
SMLoc | EndLoc | ||
) | [inline, static] |
Definition at line 424 of file X86Operand.h.
static std::unique_ptr<X86Operand> llvm::X86Operand::CreateMem | ( | const MCExpr * | Disp, |
SMLoc | StartLoc, | ||
SMLoc | EndLoc, | ||
unsigned | Size = 0 , |
||
StringRef | SymName = StringRef() , |
||
void * | OpDecl = nullptr |
||
) | [inline, static] |
static std::unique_ptr<X86Operand> llvm::X86Operand::CreateReg | ( | unsigned | RegNo, |
SMLoc | StartLoc, | ||
SMLoc | EndLoc, | ||
bool | AddressOf = false , |
||
SMLoc | OffsetOfLoc = SMLoc() , |
||
StringRef | SymName = StringRef() , |
||
void * | OpDecl = nullptr |
||
) | [inline, static] |
Definition at line 412 of file X86Operand.h.
References AddressOf, EndLoc, OffsetOfLoc, OpDecl, Register, StartLoc, and SymName.
static std::unique_ptr<X86Operand> llvm::X86Operand::CreateToken | ( | StringRef | Str, |
SMLoc | Loc | ||
) | [inline, static] |
Definition at line 403 of file X86Operand.h.
References llvm::StringRef::data(), EndLoc, llvm::SMLoc::getFromPointer(), llvm::SMLoc::getPointer(), llvm::StringRef::size(), and Token.
SMLoc llvm::X86Operand::getEndLoc | ( | ) | const [inline, override, virtual] |
getEndLoc - Get the location of the last token of this operand.
Implements llvm::MCParsedAsmOperand.
Definition at line 74 of file X86Operand.h.
References EndLoc.
static unsigned llvm::X86Operand::getGR32FromGR64 | ( | unsigned | RegNo | ) | [inline, static] |
Definition at line 329 of file X86Operand.h.
References llvm::N86::EAX, llvm::N86::EBP, llvm::N86::EBX, llvm::N86::ECX, llvm::N86::EDI, llvm::N86::EDX, llvm::N86::ESI, llvm::N86::ESP, and llvm_unreachable.
Referenced by addGR32orGR64Operands().
const MCExpr* llvm::X86Operand::getImm | ( | ) | const [inline] |
Definition at line 98 of file X86Operand.h.
References Imm, Immediate, Kind, and llvm::X86Operand::ImmOp::Val.
Referenced by addImmOperands(), isImmSExti16i8(), isImmSExti32i8(), isImmSExti64i32(), and isImmSExti64i8().
SMRange llvm::X86Operand::getLocRange | ( | ) | const [inline] |
getLocRange - Get the range between the first and last token of this operand.
Definition at line 77 of file X86Operand.h.
unsigned llvm::X86Operand::getMemBaseReg | ( | ) | const [inline] |
Definition at line 111 of file X86Operand.h.
References llvm::X86Operand::MemOp::BaseReg, Kind, and Mem.
Referenced by addDstIdxOperands(), addMemOperands(), addSrcIdxOperands(), isAbsMem(), isDstIdx(), isMemOffs16(), isMemOffs32(), isMemOffs64(), isMemOffs8(), and isSrcIdx().
const MCExpr* llvm::X86Operand::getMemDisp | ( | ) | const [inline] |
Definition at line 103 of file X86Operand.h.
References llvm::X86Operand::MemOp::Disp, Kind, and Mem.
Referenced by addAbsMemOperands(), addMemOffsOperands(), addMemOperands(), isDstIdx(), and isSrcIdx().
unsigned llvm::X86Operand::getMemIndexReg | ( | ) | const [inline] |
Definition at line 115 of file X86Operand.h.
References llvm::X86Operand::MemOp::IndexReg, Kind, and Mem.
Referenced by addMemOperands(), isAbsMem(), isDstIdx(), isMemOffs16(), isMemOffs32(), isMemOffs64(), isMemOffs8(), isMemVX32(), isMemVX64(), isMemVY32(), isMemVY64(), isMemVZ32(), isMemVZ64(), and isSrcIdx().
unsigned llvm::X86Operand::getMemScale | ( | ) | const [inline] |
Definition at line 119 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Scale.
Referenced by addMemOperands(), isAbsMem(), isDstIdx(), isMemOffs16(), isMemOffs32(), isMemOffs64(), isMemOffs8(), and isSrcIdx().
unsigned llvm::X86Operand::getMemSegReg | ( | ) | const [inline] |
Definition at line 107 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::SegReg.
Referenced by addMemOffsOperands(), addMemOperands(), addSrcIdxOperands(), isAbsMem(), and isDstIdx().
SMLoc llvm::X86Operand::getOffsetOfLoc | ( | ) | const [inline, override, virtual] |
getOffsetOfLoc - Get the location of the offset operator.
Reimplemented from llvm::MCParsedAsmOperand.
Definition at line 79 of file X86Operand.h.
References OffsetOfLoc.
void* llvm::X86Operand::getOpDecl | ( | ) | [inline, override, virtual] |
Reimplemented from llvm::MCParsedAsmOperand.
Definition at line 69 of file X86Operand.h.
References OpDecl.
unsigned llvm::X86Operand::getReg | ( | ) | const [inline, override, virtual] |
Implements llvm::MCParsedAsmOperand.
Definition at line 93 of file X86Operand.h.
References Kind, Reg, Register, and llvm::X86Operand::RegOp::RegNo.
Referenced by addGR32orGR64Operands(), addRegOperands(), and isGR32orGR64().
SMLoc llvm::X86Operand::getStartLoc | ( | ) | const [inline, override, virtual] |
getStartLoc - Get the location of the first token of this operand.
Implements llvm::MCParsedAsmOperand.
Definition at line 72 of file X86Operand.h.
References StartLoc.
StringRef llvm::X86Operand::getSymName | ( | ) | [inline, override, virtual] |
Reimplemented from llvm::MCParsedAsmOperand.
Definition at line 68 of file X86Operand.h.
References SymName.
StringRef llvm::X86Operand::getToken | ( | ) | const [inline] |
Definition at line 83 of file X86Operand.h.
References llvm::X86Operand::TokOp::Data, Kind, llvm::X86Operand::TokOp::Length, Tok, and Token.
bool llvm::X86Operand::isAbsMem | ( | ) | const [inline] |
Definition at line 247 of file X86Operand.h.
References getMemBaseReg(), getMemIndexReg(), getMemScale(), getMemSegReg(), and Kind.
bool llvm::X86Operand::isDstIdx | ( | ) | const [inline] |
Definition at line 271 of file X86Operand.h.
References llvm::N86::EDI, getMemBaseReg(), getMemDisp(), getMemIndexReg(), getMemScale(), and getMemSegReg().
Referenced by isDstIdx16(), isDstIdx32(), isDstIdx64(), and isDstIdx8().
bool llvm::X86Operand::isDstIdx16 | ( | ) | const [inline] |
Definition at line 281 of file X86Operand.h.
References isDstIdx(), and isMem16().
bool llvm::X86Operand::isDstIdx32 | ( | ) | const [inline] |
Definition at line 284 of file X86Operand.h.
References isDstIdx(), and isMem32().
bool llvm::X86Operand::isDstIdx64 | ( | ) | const [inline] |
Definition at line 287 of file X86Operand.h.
References isDstIdx(), and isMem64().
bool llvm::X86Operand::isDstIdx8 | ( | ) | const [inline] |
Definition at line 278 of file X86Operand.h.
References isDstIdx(), and isMem8().
bool llvm::X86Operand::isGR32orGR64 | ( | ) | const [inline] |
Definition at line 310 of file X86Operand.h.
bool llvm::X86Operand::isImm | ( | ) | const [inline, override, virtual] |
isImm - Is this an immediate operand?
Implements llvm::MCParsedAsmOperand.
Definition at line 126 of file X86Operand.h.
References Immediate, and Kind.
Referenced by isImmSExti16i8(), isImmSExti32i8(), isImmSExti64i32(), and isImmSExti64i8().
bool llvm::X86Operand::isImmSExti16i8 | ( | ) | const [inline] |
Definition at line 128 of file X86Operand.h.
References llvm::WinEH::CE, llvm::dyn_cast(), getImm(), llvm::MCConstantExpr::getValue(), isImm(), and llvm::isImmSExti16i8Value().
bool llvm::X86Operand::isImmSExti32i8 | ( | ) | const [inline] |
Definition at line 142 of file X86Operand.h.
References llvm::WinEH::CE, llvm::dyn_cast(), getImm(), llvm::MCConstantExpr::getValue(), isImm(), and llvm::isImmSExti32i8Value().
bool llvm::X86Operand::isImmSExti64i32 | ( | ) | const [inline] |
Definition at line 170 of file X86Operand.h.
References llvm::WinEH::CE, llvm::dyn_cast(), getImm(), llvm::MCConstantExpr::getValue(), isImm(), and llvm::isImmSExti64i32Value().
bool llvm::X86Operand::isImmSExti64i8 | ( | ) | const [inline] |
Definition at line 156 of file X86Operand.h.
References llvm::WinEH::CE, llvm::dyn_cast(), getImm(), llvm::MCConstantExpr::getValue(), isImm(), and llvm::isImmSExti64i8Value().
bool llvm::X86Operand::isMem | ( | ) | const [inline, override, virtual] |
isMem - Is this a memory operand?
Implements llvm::MCParsedAsmOperand.
Definition at line 193 of file X86Operand.h.
bool llvm::X86Operand::isMem128 | ( | ) | const [inline] |
Definition at line 212 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMem16 | ( | ) | const [inline] |
Definition at line 200 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isDstIdx16(), and isSrcIdx16().
bool llvm::X86Operand::isMem256 | ( | ) | const [inline] |
Definition at line 215 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMem32 | ( | ) | const [inline] |
Definition at line 203 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isDstIdx32(), and isSrcIdx32().
bool llvm::X86Operand::isMem512 | ( | ) | const [inline] |
Definition at line 218 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMem64 | ( | ) | const [inline] |
Definition at line 206 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isDstIdx64(), and isSrcIdx64().
bool llvm::X86Operand::isMem8 | ( | ) | const [inline] |
Definition at line 197 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Size.
Referenced by isDstIdx8(), and isSrcIdx8().
bool llvm::X86Operand::isMem80 | ( | ) | const [inline] |
Definition at line 209 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemOffs16 | ( | ) | const [inline] |
Definition at line 295 of file X86Operand.h.
References getMemBaseReg(), getMemIndexReg(), getMemScale(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemOffs32 | ( | ) | const [inline] |
Definition at line 299 of file X86Operand.h.
References getMemBaseReg(), getMemIndexReg(), getMemScale(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemOffs64 | ( | ) | const [inline] |
Definition at line 303 of file X86Operand.h.
References getMemBaseReg(), getMemIndexReg(), getMemScale(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemOffs8 | ( | ) | const [inline] |
Definition at line 291 of file X86Operand.h.
References getMemBaseReg(), getMemIndexReg(), getMemScale(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemUnsized | ( | ) | const [inline] |
Definition at line 194 of file X86Operand.h.
References Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemVX32 | ( | ) | const [inline] |
Definition at line 222 of file X86Operand.h.
References getMemIndexReg(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemVX64 | ( | ) | const [inline] |
Definition at line 230 of file X86Operand.h.
References getMemIndexReg(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemVY32 | ( | ) | const [inline] |
Definition at line 226 of file X86Operand.h.
References getMemIndexReg(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemVY64 | ( | ) | const [inline] |
Definition at line 234 of file X86Operand.h.
References getMemIndexReg(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemVZ32 | ( | ) | const [inline] |
Definition at line 238 of file X86Operand.h.
References getMemIndexReg(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isMemVZ64 | ( | ) | const [inline] |
Definition at line 242 of file X86Operand.h.
References getMemIndexReg(), Kind, Mem, and llvm::X86Operand::MemOp::Size.
bool llvm::X86Operand::isOffsetOf | ( | ) | const [inline, override, virtual] |
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 185 of file X86Operand.h.
References llvm::SMLoc::getPointer(), and OffsetOfLoc.
bool llvm::X86Operand::isReg | ( | ) | const [inline, override, virtual] |
isReg - Is this a register operand?
Implements llvm::MCParsedAsmOperand.
Definition at line 308 of file X86Operand.h.
bool llvm::X86Operand::isSrcIdx | ( | ) | const [inline] |
Definition at line 252 of file X86Operand.h.
References llvm::N86::ESI, getMemBaseReg(), getMemDisp(), getMemIndexReg(), and getMemScale().
Referenced by isSrcIdx16(), isSrcIdx32(), isSrcIdx64(), and isSrcIdx8().
bool llvm::X86Operand::isSrcIdx16 | ( | ) | const [inline] |
Definition at line 261 of file X86Operand.h.
References isMem16(), and isSrcIdx().
bool llvm::X86Operand::isSrcIdx32 | ( | ) | const [inline] |
Definition at line 264 of file X86Operand.h.
References isMem32(), and isSrcIdx().
bool llvm::X86Operand::isSrcIdx64 | ( | ) | const [inline] |
Definition at line 267 of file X86Operand.h.
References isMem64(), and isSrcIdx().
bool llvm::X86Operand::isSrcIdx8 | ( | ) | const [inline] |
Definition at line 258 of file X86Operand.h.
References isMem8(), and isSrcIdx().
bool llvm::X86Operand::isToken | ( | ) | const [inline, override, virtual] |
isToken - Is this a token operand?
Implements llvm::MCParsedAsmOperand.
Definition at line 124 of file X86Operand.h.
bool llvm::X86Operand::needAddressOf | ( | ) | const [inline, override, virtual] |
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 189 of file X86Operand.h.
References AddressOf.
void llvm::X86Operand::print | ( | raw_ostream & | OS | ) | const [inline, override, virtual] |
print - Print a debug representation of the operand to the given stream.
Implements llvm::MCParsedAsmOperand.
Definition at line 81 of file X86Operand.h.
void llvm::X86Operand::setTokenValue | ( | StringRef | Value | ) | [inline] |
Definition at line 87 of file X86Operand.h.
References llvm::X86Operand::TokOp::Data, llvm::StringRef::data(), Kind, llvm::X86Operand::TokOp::Length, llvm::StringRef::size(), Tok, and Token.
union { ... } |
Definition at line 34 of file X86Operand.h.
Referenced by CreateReg(), and needAddressOf().
Definition at line 30 of file X86Operand.h.
Referenced by CreateImm(), CreateMem(), CreateReg(), CreateToken(), getEndLoc(), and getLocRange().
struct ImmOp llvm::X86Operand::Imm |
Definition at line 61 of file X86Operand.h.
Referenced by getImm().
Referenced by getImm(), getMemBaseReg(), getMemDisp(), getMemIndexReg(), getMemScale(), getMemSegReg(), getReg(), getToken(), isAbsMem(), isGR32orGR64(), isImm(), isMem(), isMem128(), isMem16(), isMem256(), isMem32(), isMem512(), isMem64(), isMem8(), isMem80(), isMemOffs16(), isMemOffs32(), isMemOffs64(), isMemOffs8(), isMemUnsized(), isMemVX32(), isMemVX64(), isMemVY32(), isMemVY64(), isMemVZ32(), isMemVZ64(), isReg(), isToken(), and setTokenValue().
struct MemOp llvm::X86Operand::Mem |
Definition at line 62 of file X86Operand.h.
Referenced by getMemBaseReg(), getMemDisp(), getMemIndexReg(), getMemScale(), getMemSegReg(), isMem128(), isMem16(), isMem256(), isMem32(), isMem512(), isMem64(), isMem8(), isMem80(), isMemOffs16(), isMemOffs32(), isMemOffs64(), isMemOffs8(), isMemUnsized(), isMemVX32(), isMemVX64(), isMemVY32(), isMemVY64(), isMemVZ32(), and isMemVZ64().
Definition at line 31 of file X86Operand.h.
Referenced by CreateReg(), getOffsetOfLoc(), and isOffsetOf().
void* llvm::X86Operand::OpDecl |
Definition at line 33 of file X86Operand.h.
Referenced by CreateMem(), CreateReg(), and getOpDecl().
struct RegOp llvm::X86Operand::Reg |
Definition at line 60 of file X86Operand.h.
Referenced by getReg().
Definition at line 30 of file X86Operand.h.
Referenced by CreateImm(), CreateMem(), CreateReg(), getLocRange(), and getStartLoc().
Definition at line 32 of file X86Operand.h.
Referenced by CreateMem(), CreateReg(), and getSymName().
struct TokOp llvm::X86Operand::Tok |
Definition at line 59 of file X86Operand.h.
Referenced by getToken(), and setTokenValue().