LLVM API Documentation

Namespaces | Enumerations | Functions
X86BaseInfo.h File Reference
#include "X86MCTargetDesc.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/ErrorHandling.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

namespace  llvm
 

List of target independent CodeGen pass IDs.


namespace  llvm::X86
 

Define some predicates that are used for node matching.


namespace  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::RawFrmMemOffs = 7,
  llvm::X86II::RawFrmSrc = 8, llvm::X86II::RawFrmDst = 9, llvm::X86II::RawFrmDstSrc = 10, llvm::X86II::RawFrmImm8 = 11,
  llvm::X86II::RawFrmImm16 = 12, llvm::X86II::MRMXr = 14, llvm::X86II::MRMXm = 15, 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::MRM_C0 = 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_CF = 41, llvm::X86II::MRM_D0 = 42, llvm::X86II::MRM_D1 = 43, llvm::X86II::MRM_D4 = 44,
  llvm::X86II::MRM_D5 = 45, llvm::X86II::MRM_D6 = 46, llvm::X86II::MRM_D7 = 47, llvm::X86II::MRM_D8 = 48,
  llvm::X86II::MRM_D9 = 49, llvm::X86II::MRM_DA = 50, llvm::X86II::MRM_DB = 51, llvm::X86II::MRM_DC = 52,
  llvm::X86II::MRM_DD = 53, llvm::X86II::MRM_DE = 54, llvm::X86II::MRM_DF = 55, llvm::X86II::MRM_E0 = 56,
  llvm::X86II::MRM_E1 = 57, llvm::X86II::MRM_E2 = 58, llvm::X86II::MRM_E3 = 59, llvm::X86II::MRM_E4 = 60,
  llvm::X86II::MRM_E5 = 61, llvm::X86II::MRM_E8 = 62, llvm::X86II::MRM_E9 = 63, llvm::X86II::MRM_EA = 64,
  llvm::X86II::MRM_EB = 65, llvm::X86II::MRM_EC = 66, llvm::X86II::MRM_ED = 67, llvm::X86II::MRM_EE = 68,
  llvm::X86II::MRM_F0 = 69, llvm::X86II::MRM_F1 = 70, llvm::X86II::MRM_F2 = 71, llvm::X86II::MRM_F3 = 72,
  llvm::X86II::MRM_F4 = 73, llvm::X86II::MRM_F5 = 74, llvm::X86II::MRM_F6 = 75, llvm::X86II::MRM_F7 = 76,
  llvm::X86II::MRM_F8 = 77, llvm::X86II::MRM_F9 = 78, llvm::X86II::MRM_FA = 79, llvm::X86II::MRM_FB = 80,
  llvm::X86II::MRM_FC = 81, llvm::X86II::MRM_FD = 82, llvm::X86II::MRM_FE = 83, llvm::X86II::MRM_FF = 84,
  llvm::X86II::FormMask = 127, llvm::X86II::OpSizeShift = 7, llvm::X86II::OpSizeMask = 0x3 << OpSizeShift, llvm::X86II::OpSize16 = 1,
  llvm::X86II::OpSize32 = 2, llvm::X86II::AdSizeShift = OpSizeShift + 2, llvm::X86II::AdSize = 1 << AdSizeShift, llvm::X86II::OpPrefixShift = AdSizeShift + 1,
  llvm::X86II::OpPrefixMask = 0x7 << OpPrefixShift, llvm::X86II::PS = 1 << OpPrefixShift, llvm::X86II::PD = 2 << OpPrefixShift, llvm::X86II::XS = 3 << OpPrefixShift,
  llvm::X86II::XD = 4 << OpPrefixShift, llvm::X86II::OpMapShift = OpPrefixShift + 3, llvm::X86II::OpMapMask = 0x7 << OpMapShift, llvm::X86II::OB = 0 << OpMapShift,
  llvm::X86II::TB = 1 << OpMapShift, llvm::X86II::T8 = 2 << OpMapShift, llvm::X86II::TA = 3 << OpMapShift, llvm::X86II::XOP8 = 4 << OpMapShift,
  llvm::X86II::XOP9 = 5 << OpMapShift, llvm::X86II::XOPA = 6 << OpMapShift, llvm::X86II::REXShift = OpMapShift + 3, llvm::X86II::REX_W = 1 << REXShift,
  llvm::X86II::ImmShift = REXShift + 1, llvm::X86II::ImmMask = 15 << 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::Imm32S = 7 << ImmShift, llvm::X86II::Imm64 = 8 << ImmShift, llvm::X86II::FPTypeShift = ImmShift + 4, 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::REPShift = LOCKShift + 1, llvm::X86II::REP = 1 << REPShift,
  llvm::X86II::SSEDomainShift = REPShift + 1, llvm::X86II::EncodingShift = SSEDomainShift + 2, llvm::X86II::EncodingMask = 0x3 << EncodingShift, llvm::X86II::VEX = 1,
  llvm::X86II::XOP = 2, llvm::X86II::EVEX = 3, llvm::X86II::OpcodeShift = EncodingShift + 2, llvm::X86II::VEXShift = OpcodeShift + 8,
  llvm::X86II::VEX_W = 1U << 0, llvm::X86II::VEX_4V = 1U << 1, llvm::X86II::VEX_4VOp3 = 1U << 2, llvm::X86II::VEX_I8IMM = 1U << 3,
  llvm::X86II::VEX_L = 1U << 4, llvm::X86II::VEX_LIG = 1U << 5, llvm::X86II::EVEX_K = 1U << 6, llvm::X86II::EVEX_Z = 1U << 7,
  llvm::X86II::EVEX_L2 = 1U << 8, llvm::X86II::EVEX_B = 1U << 9, llvm::X86II::CD8_Scale_Shift = VEXShift + 10, llvm::X86II::CD8_Scale_Mask = 127,
  llvm::X86II::Has3DNow0F0FOpcodeShift = CD8_Scale_Shift + 7, llvm::X86II::Has3DNow0F0FOpcode = 1U << (Has3DNow0F0FOpcodeShift - VEXShift), llvm::X86II::MemOp4Shift = Has3DNow0F0FOpcodeShift + 1, llvm::X86II::MemOp4 = 1U << (MemOp4Shift - VEXShift),
  llvm::X86II::EVEX_RCShift = MemOp4Shift + 1, llvm::X86II::EVEX_RC = 1U << (EVEX_RCShift - VEXShift)
}

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)
unsigned llvm::X86II::isImmSigned (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)