LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Enumerations | Functions
X86BaseInfo.h File Reference
#include "X86MCTargetDesc.h"
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/MC/MCInstrInfo.h"
Include dependency graph for X86BaseInfo.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 llvm
 List of target independent CodeGen pass IDs.
 
 llvm::X86
 Define some predicates that are used for node matching.
 
 llvm::X86II
 

Enumerations

enum  {
  llvm::X86::AddrBaseReg = 0, llvm::X86::AddrScaleAmt = 1, llvm::X86::AddrIndexReg = 2, llvm::X86::AddrDisp = 3,
  llvm::X86::AddrSegmentReg = 4, llvm::X86::AddrNumOperands = 5
}
 
enum  llvm::X86II::TOF {
  llvm::X86II::MO_NO_FLAG, llvm::X86II::MO_GOT_ABSOLUTE_ADDRESS, llvm::X86II::MO_PIC_BASE_OFFSET, llvm::X86II::MO_GOT,
  llvm::X86II::MO_GOTOFF, llvm::X86II::MO_GOTPCREL, llvm::X86II::MO_PLT, llvm::X86II::MO_TLSGD,
  llvm::X86II::MO_TLSLD, llvm::X86II::MO_TLSLDM, llvm::X86II::MO_GOTTPOFF, llvm::X86II::MO_INDNTPOFF,
  llvm::X86II::MO_TPOFF, llvm::X86II::MO_DTPOFF, llvm::X86II::MO_NTPOFF, llvm::X86II::MO_GOTNTPOFF,
  llvm::X86II::MO_DLLIMPORT, llvm::X86II::MO_DARWIN_STUB, llvm::X86II::MO_DARWIN_NONLAZY, llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE,
  llvm::X86II::MO_DARWIN_HIDDEN_NONLAZY_PIC_BASE, llvm::X86II::MO_TLVP, llvm::X86II::MO_TLVP_PIC_BASE, llvm::X86II::MO_SECREL
}
 Target Operand Flag enum. More...
 
enum  {
  llvm::X86II::Pseudo = 0, llvm::X86II::RawFrm = 1, llvm::X86II::AddRegFrm = 2, llvm::X86II::MRMDestReg = 3,
  llvm::X86II::MRMDestMem = 4, llvm::X86II::MRMSrcReg = 5, llvm::X86II::MRMSrcMem = 6, llvm::X86II::MRM0r = 16,
  llvm::X86II::MRM1r = 17, llvm::X86II::MRM2r = 18, llvm::X86II::MRM3r = 19, llvm::X86II::MRM4r = 20,
  llvm::X86II::MRM5r = 21, llvm::X86II::MRM6r = 22, llvm::X86II::MRM7r = 23, llvm::X86II::MRM0m = 24,
  llvm::X86II::MRM1m = 25, llvm::X86II::MRM2m = 26, llvm::X86II::MRM3m = 27, llvm::X86II::MRM4m = 28,
  llvm::X86II::MRM5m = 29, llvm::X86II::MRM6m = 30, llvm::X86II::MRM7m = 31, llvm::X86II::MRMInitReg = 32,
  llvm::X86II::MRM_C1 = 33, llvm::X86II::MRM_C2 = 34, llvm::X86II::MRM_C3 = 35, llvm::X86II::MRM_C4 = 36,
  llvm::X86II::MRM_C8 = 37, llvm::X86II::MRM_C9 = 38, llvm::X86II::MRM_CA = 39, llvm::X86II::MRM_CB = 40,
  llvm::X86II::MRM_E8 = 41, llvm::X86II::MRM_F0 = 42, llvm::X86II::MRM_F8 = 45, llvm::X86II::MRM_F9 = 46,
  llvm::X86II::MRM_D0 = 47, llvm::X86II::MRM_D1 = 48, llvm::X86II::MRM_D4 = 49, llvm::X86II::MRM_D5 = 50,
  llvm::X86II::MRM_D6 = 51, llvm::X86II::MRM_D8 = 52, llvm::X86II::MRM_D9 = 53, llvm::X86II::MRM_DA = 54,
  llvm::X86II::MRM_DB = 55, llvm::X86II::MRM_DC = 56, llvm::X86II::MRM_DD = 57, llvm::X86II::MRM_DE = 58,
  llvm::X86II::MRM_DF = 59, llvm::X86II::RawFrmImm8 = 43, llvm::X86II::RawFrmImm16 = 44, llvm::X86II::FormMask = 63,
  llvm::X86II::OpSize = 1 << 6, llvm::X86II::AdSize = 1 << 7, llvm::X86II::Op0Shift = 8, llvm::X86II::Op0Mask = 0x1F << Op0Shift,
  llvm::X86II::TB = 1 << Op0Shift, llvm::X86II::REP = 2 << Op0Shift, llvm::X86II::D8 = 3 << Op0Shift, llvm::X86II::D9 = 4 << Op0Shift,
  llvm::X86II::DA = 5 << Op0Shift, llvm::X86II::DB = 6 << Op0Shift, llvm::X86II::DC = 7 << Op0Shift, llvm::X86II::DD = 8 << Op0Shift,
  llvm::X86II::DE = 9 << Op0Shift, llvm::X86II::DF = 10 << Op0Shift, llvm::X86II::XD = 11 << Op0Shift, llvm::X86II::XS = 12 << Op0Shift,
  llvm::X86II::T8 = 13 << Op0Shift, llvm::X86II::TA = 14 << Op0Shift, llvm::X86II::A6 = 15 << Op0Shift, llvm::X86II::A7 = 16 << Op0Shift,
  llvm::X86II::T8XD = 17 << Op0Shift, llvm::X86II::T8XS = 18 << Op0Shift, llvm::X86II::TAXD = 19 << Op0Shift, llvm::X86II::XOP8 = 20 << Op0Shift,
  llvm::X86II::XOP9 = 21 << Op0Shift, llvm::X86II::XOPA = 22 << Op0Shift, llvm::X86II::REXShift = Op0Shift + 5, llvm::X86II::REX_W = 1 << REXShift,
  llvm::X86II::ImmShift = REXShift + 1, llvm::X86II::ImmMask = 7 << ImmShift, llvm::X86II::Imm8 = 1 << ImmShift, llvm::X86II::Imm8PCRel = 2 << ImmShift,
  llvm::X86II::Imm16 = 3 << ImmShift, llvm::X86II::Imm16PCRel = 4 << ImmShift, llvm::X86II::Imm32 = 5 << ImmShift, llvm::X86II::Imm32PCRel = 6 << ImmShift,
  llvm::X86II::Imm64 = 7 << ImmShift, llvm::X86II::FPTypeShift = ImmShift + 3, llvm::X86II::FPTypeMask = 7 << FPTypeShift, llvm::X86II::NotFP = 0 << FPTypeShift,
  llvm::X86II::ZeroArgFP = 1 << FPTypeShift, llvm::X86II::OneArgFP = 2 << FPTypeShift, llvm::X86II::OneArgFPRW = 3 << FPTypeShift, llvm::X86II::TwoArgFP = 4 << FPTypeShift,
  llvm::X86II::CompareFP = 5 << FPTypeShift, llvm::X86II::CondMovFP = 6 << FPTypeShift, llvm::X86II::SpecialFP = 7 << FPTypeShift, llvm::X86II::LOCKShift = FPTypeShift + 3,
  llvm::X86II::LOCK = 1 << LOCKShift, llvm::X86II::SegOvrShift = LOCKShift + 1, llvm::X86II::SegOvrMask = 3 << SegOvrShift, llvm::X86II::FS = 1 << SegOvrShift,
  llvm::X86II::GS = 2 << SegOvrShift, llvm::X86II::SSEDomainShift = SegOvrShift + 2, llvm::X86II::OpcodeShift = SSEDomainShift + 2, llvm::X86II::VEXShift = OpcodeShift + 8,
  llvm::X86II::VEX = 1U << 0, llvm::X86II::VEX_W = 1U << 1, llvm::X86II::VEX_4V = 1U << 2, llvm::X86II::VEX_4VOp3 = 1U << 3,
  llvm::X86II::VEX_I8IMM = 1U << 4, llvm::X86II::VEX_L = 1U << 5, llvm::X86II::VEX_LIG = 1U << 6, llvm::X86II::EVEX = 1U << 7,
  llvm::X86II::EVEX_K = 1U << 8, llvm::X86II::EVEX_Z = 1U << 9, llvm::X86II::EVEX_L2 = 1U << 10, llvm::X86II::EVEX_B = 1U << 11,
  llvm::X86II::EVEX_CD8EShift = VEXShift + 12, llvm::X86II::EVEX_CD8EMask = 3, llvm::X86II::EVEX_CD8VShift = EVEX_CD8EShift + 2, llvm::X86II::EVEX_CD8VMask = 7,
  llvm::X86II::Has3DNow0F0FOpcode = 1U << 17, llvm::X86II::MemOp4 = 1U << 18, llvm::X86II::XOP = 1U << 19
}
 

Functions

unsigned char llvm::X86II::getBaseOpcodeFor (uint64_t TSFlags)
 
bool llvm::X86II::hasImm (uint64_t TSFlags)
 
unsigned llvm::X86II::getSizeOfImm (uint64_t TSFlags)
 
unsigned llvm::X86II::isImmPCRel (uint64_t TSFlags)
 
int llvm::X86II::getOperandBias (const MCInstrDesc &Desc)
 
int llvm::X86II::getMemoryOperandNo (uint64_t TSFlags, unsigned Opcode)
 
bool llvm::X86II::isX86_64ExtendedReg (unsigned RegNo)
 
static bool llvm::X86II::is32ExtendedReg (unsigned RegNo)
 
bool llvm::X86II::isX86_64NonExtLowByteReg (unsigned reg)