Pin
|
Classes | |
struct | REGDEF_ENTRY |
class | REGISTER_SET< _min, _max > |
Typedefs | |
typedef UINT64 | REG_CLASS_BITS |
typedef class REGISTER_SET< REG_FirstInRegset, REG_LastInRegset > | REGSET |
Enumerations | |
enum | REG { REG_INVALID_ = 0, REG_NONE = 1, REG_FIRST = 2, REG_RBASE, REG_MACHINE_BASE = REG_RBASE, REG_APPLICATION_BASE = REG_RBASE, REG_PHYSICAL_INTEGER_BASE = REG_RBASE, REG_TO_SPILL_BASE = REG_RBASE, REG_GR_BASE = REG_RBASE, REG_RDI = REG_GR_BASE, REG_GDI = REG_RDI, REG_RSI, REG_GSI = REG_RSI, REG_RBP, REG_GBP = REG_RBP, REG_RSP, REG_STACK_PTR = REG_RSP, REG_RBX, REG_GBX = REG_RBX, REG_RDX, REG_GDX = REG_RDX, REG_RCX, REG_GCX = REG_RCX, REG_RAX, REG_GAX = REG_RAX, REG_R8, REG_R9, REG_R10, REG_R11, REG_R12, REG_R13, REG_R14, REG_R15, REG_GR_LAST = REG_R15, REG_SEG_BASE, REG_SEG_CS = REG_SEG_BASE, REG_SEG_SS, REG_SEG_DS, REG_SEG_ES, REG_SEG_FS, REG_SEG_GS, REG_SEG_LAST = REG_SEG_GS, REG_RFLAGS, REG_GFLAGS = REG_RFLAGS, REG_RIP, REG_INST_PTR = REG_RIP, REG_PHYSICAL_INTEGER_END = REG_INST_PTR, REG_AL, REG_AH, REG_AX, REG_CL, REG_CH, REG_CX, REG_DL, REG_DH, REG_DX, REG_BL, REG_BH, REG_BX, REG_BP, REG_SI, REG_DI, REG_SP, REG_FLAGS, REG_IP, REG_EDI, REG_DIL, REG_ESI, REG_SIL, REG_EBP, REG_BPL, REG_ESP, REG_SPL, REG_EBX, REG_EDX, REG_ECX, REG_EAX, REG_EFLAGS, REG_EIP, REG_R8B, REG_R8W, REG_R8D, REG_R9B, REG_R9W, REG_R9D, REG_R10B, REG_R10W, REG_R10D, REG_R11B, REG_R11W, REG_R11D, REG_R12B, REG_R12W, REG_R12D, REG_R13B, REG_R13W, REG_R13D, REG_R14B, REG_R14W, REG_R14D, REG_R15B, REG_R15W, REG_R15D, REG_MM_BASE, REG_MM0 = REG_MM_BASE, REG_MM1, REG_MM2, REG_MM3, REG_MM4, REG_MM5, REG_MM6, REG_MM7, REG_MM_LAST = REG_MM7, REG_XMM_BASE, REG_FIRST_FP_REG = REG_XMM_BASE, REG_XMM0 = REG_XMM_BASE, REG_XMM1, REG_XMM2, REG_XMM3, REG_XMM4, REG_XMM5, REG_XMM6, REG_XMM7, REG_XMM8, REG_XMM9, REG_XMM10, REG_XMM11, REG_XMM12, REG_XMM13, REG_XMM14, REG_XMM15, REG_XMM_SSE_LAST = REG_XMM15, REG_XMM_AVX_LAST = REG_XMM_SSE_LAST, REG_XMM_AVX512_HI16_FIRST, REG_XMM16 = REG_XMM_AVX512_HI16_FIRST, REG_XMM17, REG_XMM18, REG_XMM19, REG_XMM20, REG_XMM21, REG_XMM22, REG_XMM23, REG_XMM24, REG_XMM25, REG_XMM26, REG_XMM27, REG_XMM28, REG_XMM29, REG_XMM30, REG_XMM31, REG_XMM_AVX512_HI16_LAST = REG_XMM31, REG_XMM_AVX512_LAST = REG_XMM_AVX512_HI16_LAST, REG_XMM_LAST = REG_XMM_AVX512_LAST, REG_YMM_BASE, REG_YMM0 = REG_YMM_BASE, REG_YMM1, REG_YMM2, REG_YMM3, REG_YMM4, REG_YMM5, REG_YMM6, REG_YMM7, REG_YMM8, REG_YMM9, REG_YMM10, REG_YMM11, REG_YMM12, REG_YMM13, REG_YMM14, REG_YMM15, REG_YMM_AVX_LAST = REG_YMM15, REG_YMM_AVX512_HI16_FIRST, REG_YMM16 = REG_YMM_AVX512_HI16_FIRST, REG_YMM17, REG_YMM18, REG_YMM19, REG_YMM20, REG_YMM21, REG_YMM22, REG_YMM23, REG_YMM24, REG_YMM25, REG_YMM26, REG_YMM27, REG_YMM28, REG_YMM29, REG_YMM30, REG_YMM31, REG_YMM_AVX512_HI16_LAST = REG_YMM31, REG_YMM_AVX512_LAST = REG_YMM_AVX512_HI16_LAST, REG_YMM_LAST = REG_YMM_AVX512_LAST, REG_ZMM_BASE, REG_ZMM0 = REG_ZMM_BASE, REG_ZMM1, REG_ZMM2, REG_ZMM3, REG_ZMM4, REG_ZMM5, REG_ZMM6, REG_ZMM7, REG_ZMM8, REG_ZMM9, REG_ZMM10, REG_ZMM11, REG_ZMM12, REG_ZMM13, REG_ZMM14, REG_ZMM15, REG_ZMM_AVX512_SPLIT_LAST = REG_ZMM15, REG_ZMM_AVX512_HI16_FIRST, REG_ZMM16 = REG_ZMM_AVX512_HI16_FIRST, REG_ZMM17, REG_ZMM18, REG_ZMM19, REG_ZMM20, REG_ZMM21, REG_ZMM22, REG_ZMM23, REG_ZMM24, REG_ZMM25, REG_ZMM26, REG_ZMM27, REG_ZMM28, REG_ZMM29, REG_ZMM30, REG_ZMM31, REG_ZMM_AVX512_HI16_LAST = REG_ZMM31, REG_ZMM_AVX512_LAST = REG_ZMM_AVX512_HI16_LAST, REG_ZMM_LAST = REG_ZMM_AVX512_LAST, REG_K_BASE, REG_K0 = REG_K_BASE, REG_IMPLICIT_FULL_MASK = REG_K0, REG_K1, REG_K2, REG_K3, REG_K4, REG_K5, REG_K6, REG_K7, REG_K_LAST = REG_K7, REG_TMM0, REG_TMM1, REG_TMM2, REG_TMM3, REG_TMM4, REG_TMM5, REG_TMM6, REG_TMM7, REG_TMM_FIRST = REG_TMM0, REG_TMM_LAST = REG_TMM7, REG_TILECONFIG, REG_MXCSR, REG_MXCSRMASK, REG_ORIG_RAX, REG_ORIG_GAX = REG_ORIG_RAX, REG_FPST_BASE, REG_FPSTATUS_BASE = REG_FPST_BASE, REG_FPCW = REG_FPSTATUS_BASE, REG_FPSW, REG_FPTAG, REG_FPIP_OFF, REG_FPIP_SEL, REG_FPOPCODE, REG_FPDP_OFF, REG_FPDP_SEL, REG_FPSTATUS_LAST = REG_FPDP_SEL, REG_ST_BASE, REG_ST0 = REG_ST_BASE, REG_ST1, REG_ST2, REG_ST3, REG_ST4, REG_ST5, REG_ST6, REG_ST7, REG_ST_LAST = REG_ST7, REG_FPST_LAST = REG_ST_LAST, REG_DR_BASE, REG_DR0 = REG_DR_BASE, REG_DR1, REG_DR2, REG_DR3, REG_DR4, REG_DR5, REG_DR6, REG_DR7, REG_DR_LAST = REG_DR7, REG_CR_BASE, REG_CR0 = REG_CR_BASE, REG_CR1, REG_CR2, REG_CR3, REG_CR4, REG_CR_LAST = REG_CR4, REG_TSSR, REG_LDTR, REG_TR_BASE, REG_TR = REG_TR_BASE, REG_TR3, REG_TR4, REG_TR5, REG_TR6, REG_TR7, REG_TR_LAST = REG_TR7, REG_MACHINE_LAST = REG_TR_LAST, REG_STATUS_FLAGS, REG_DF_FLAG, REG_APPLICATION_LAST = REG_DF_FLAG, REG_TOOL_BASE, REG_SEG_GS_BASE = REG_TOOL_BASE, REG_SEG_FS_BASE, REG_INST_BASE, REG_INST_SCRATCH_BASE = REG_INST_BASE, REG_INST_G0 = REG_INST_SCRATCH_BASE, REG_INST_G1, REG_INST_G2, REG_INST_G3, REG_INST_G4, REG_INST_G5, REG_INST_G6, REG_INST_G7, REG_INST_G8, REG_INST_G9, REG_INST_G10, REG_INST_G11, REG_INST_G12, REG_INST_G13, REG_INST_G14, REG_INST_G15, REG_INST_G16, REG_INST_G17, REG_INST_G18, REG_INST_G19, REG_INST_G20, REG_INST_G21, REG_INST_G22, REG_INST_G23, REG_INST_G24, REG_INST_G25, REG_INST_G26, REG_INST_G27, REG_INST_G28, REG_INST_G29, REG_INST_TOOL_FIRST = REG_INST_G0, REG_INST_TOOL_LAST = REG_INST_G29, REG_BUF_BASE0, REG_BUF_BASE1, REG_BUF_BASE2, REG_BUF_BASE3, REG_BUF_BASE4, REG_BUF_BASE5, REG_BUF_BASE6, REG_BUF_BASE7, REG_BUF_BASE8, REG_BUF_BASE9, REG_BUF_BASE_LAST = REG_BUF_BASE9, REG_BUF_END0, REG_BUF_END1, REG_BUF_END2, REG_BUF_END3, REG_BUF_END4, REG_BUF_END5, REG_BUF_END6, REG_BUF_END7, REG_BUF_END8, REG_BUF_END9, REG_BUF_ENDLAST = REG_BUF_END9, REG_BUF_LAST = REG_BUF_ENDLAST, REG_INST_SCRATCH_LAST = REG_BUF_LAST, REG_INST_G0D, REG_INST_G1D, REG_INST_G2D, REG_INST_G3D, REG_INST_G4D, REG_INST_G5D, REG_INST_G6D, REG_INST_G7D, REG_INST_G8D, REG_INST_G9D, REG_INST_G10D, REG_INST_G11D, REG_INST_G12D, REG_INST_G13D, REG_INST_G14D, REG_INST_G15D, REG_INST_G16D, REG_INST_G17D, REG_INST_G18D, REG_INST_G19D, REG_INST_G20D, REG_INST_G21D, REG_INST_G22D, REG_INST_G23D, REG_INST_G24D, REG_INST_G25D, REG_INST_G26D, REG_INST_G27D, REG_INST_G28D, REG_INST_G29D, REG_TOOL_LAST = REG_INST_G29D, REG_SPECIAL_BASE, REG_X87 = REG_SPECIAL_BASE, REG_SPECIAL_LAST = REG_X87, REG_PIN_BASE, REG_PIN_SEG_GS_VAL = REG_PIN_BASE, REG_PIN_SEG_FS_VAL, REG_LAST_CONTEXT_REG = REG_PIN_SEG_FS_VAL, REG_PIN_GR_BASE, REG_PIN_EDI = REG_PIN_GR_BASE, REG_PIN_ESI, REG_PIN_EBP, REG_PIN_ESP, REG_PIN_EBX, REG_PIN_EDX, REG_PIN_ECX, REG_PIN_EAX, REG_PIN_AL, REG_PIN_AH, REG_PIN_AX, REG_PIN_CL, REG_PIN_CH, REG_PIN_CX, REG_PIN_DL, REG_PIN_DH, REG_PIN_DX, REG_PIN_BL, REG_PIN_BH, REG_PIN_BX, REG_PIN_BP, REG_PIN_SI, REG_PIN_DI, REG_PIN_SP, REG_PIN_RDI, REG_PIN_GDI = REG_PIN_RDI, REG_PIN_RSI, REG_PIN_GSI = REG_PIN_RSI, REG_PIN_RBP, REG_PIN_GBP = REG_PIN_RBP, REG_PIN_RSP, REG_PIN_STACK_PTR = REG_PIN_RSP, REG_PIN_RBX, REG_PIN_GBX = REG_PIN_RBX, REG_PIN_RDX, REG_PIN_GDX = REG_PIN_RDX, REG_PIN_RCX, REG_PIN_GCX = REG_PIN_RCX, REG_PIN_RAX, REG_PIN_GAX = REG_PIN_RAX, REG_PIN_R8, REG_PIN_R9, REG_PIN_R10, REG_PIN_R11, REG_PIN_R12, REG_PIN_R13, REG_PIN_R14, REG_PIN_R15, REG_PIN_DIL, REG_PIN_SIL, REG_PIN_BPL, REG_PIN_SPL, REG_PIN_R8B, REG_PIN_R8W, REG_PIN_R8D, REG_PIN_R9B, REG_PIN_R9W, REG_PIN_R9D, REG_PIN_R10B, REG_PIN_R10W, REG_PIN_R10D, REG_PIN_R11B, REG_PIN_R11W, REG_PIN_R11D, REG_PIN_R12B, REG_PIN_R12W, REG_PIN_R12D, REG_PIN_R13B, REG_PIN_R13W, REG_PIN_R13D, REG_PIN_R14B, REG_PIN_R14W, REG_PIN_R14D, REG_PIN_R15B, REG_PIN_R15W, REG_PIN_R15D, REG_PIN_THREAD_ID, REG_PIN_INDIRREG, REG_PIN_IPRELADDR, REG_PIN_SYSENTER_RESUMEADDR, REG_PIN_SYSCALL_NEXT_PC, REG_PIN_VMENTER, REG_PIN_T_BASE, REG_PIN_T0 = REG_PIN_T_BASE, REG_PIN_T1, REG_PIN_T2, REG_PIN_T3, REG_PIN_T0D, REG_PIN_T1D, REG_PIN_T2D, REG_PIN_T3D, REG_PIN_T0W, REG_PIN_T1W, REG_PIN_T2W, REG_PIN_T3W, REG_PIN_T0L, REG_PIN_T1L, REG_PIN_T2L, REG_PIN_T3L, REG_PIN_T_LAST = REG_PIN_T3L, REG_PIN_THREAD_IDD, REG_TO_SPILL_LAST = REG_PIN_THREAD_IDD, REG_PIN_INST_COND, REG_PIN_INST_T0, REG_PIN_INST_T1, REG_PIN_INST_T2, REG_PIN_INST_T3, REG_PIN_INST_T0D, REG_PIN_INST_T1D, REG_PIN_INST_T2D, REG_PIN_INST_T3D, REG_PIN_INST_T0W, REG_PIN_INST_T1W, REG_PIN_INST_T2W, REG_PIN_INST_T3W, REG_PIN_INST_T0L, REG_PIN_INST_T1L, REG_PIN_INST_T2L, REG_PIN_INST_T3L, REG_PIN_INST_PRESERVED_PREDICATE, REG_PIN_FLAGS_BEFORE_AC_CLEARING, REG_PIN_BRIDGE_ORIG_SP, REG_PIN_BRIDGE_APP_IP, REG_PIN_BRIDGE_SP_BEFORE_ALIGN, REG_PIN_BRIDGE_SP_BEFORE_CALL, REG_PIN_BRIDGE_SP_BEFORE_MARSHALLING_FRAME, REG_PIN_BRIDGE_MARSHALLING_FRAME, REG_PIN_BRIDGE_ON_STACK_CONTEXT_FRAME, REG_PIN_BRIDGE_ON_STACK_CONTEXT_SP, REG_PIN_BRIDGE_MULTI_MEMORYACCESS_FRAME, REG_PIN_BRIDGE_MULTI_MEMORYACCESS_SP, REG_PIN_MULTI_MEM_ACCESS_AND_REWRITE_EMULATION_INFO_FRAME, REG_PIN_OPERANDS_INFO_OP0, REG_PIN_OPERANDS_INFO_OP1, REG_PIN_OPERANDS_INFO_OP2, REG_PIN_OPERANDS_INFO_OP3, REG_PIN_OPERANDS_INFO_GEN_SP, REG_PIN_BRIDGE_TRANS_MEMORY_CALLBACK_FRAME, REG_PIN_BRIDGE_TRANS_MEMORY_CALLBACK_SP, REG_PIN_TRANS_MEMORY_CALLBACK_READ_ADDR, REG_PIN_TRANS_MEMORY_CALLBACK_READ2_ADDR, REG_PIN_TRANS_MEMORY_CALLBACK_WRITE_ADDR, REG_PIN_BRIDGE_SPILL_AREA_CONTEXT_FRAME, REG_PIN_BRIDGE_SPILL_AREA_CONTEXT_SP, REG_PIN_AVX_IN_USE, REG_PIN_SPILLPTR, REG_PIN_GR_LAST = REG_PIN_SPILLPTR, REG_PIN_X87, REG_PIN_MXCSR, REG_PIN_STATUS_FLAGS, REG_PIN_DF_FLAG, REG_PIN_FLAGS, REG_PIN_XMM_BASE, REG_PIN_XMM0 = REG_PIN_XMM_BASE, REG_PIN_XMM1, REG_PIN_XMM2, REG_PIN_XMM3, REG_PIN_XMM4, REG_PIN_XMM5, REG_PIN_XMM6, REG_PIN_XMM7, REG_PIN_XMM8, REG_PIN_XMM9, REG_PIN_XMM10, REG_PIN_XMM11, REG_PIN_XMM12, REG_PIN_XMM13, REG_PIN_XMM14, REG_PIN_XMM15, REG_PIN_XMM_SSE_LAST = REG_PIN_XMM15, REG_PIN_XMM_AVX_LAST = REG_PIN_XMM_SSE_LAST, REG_PIN_XMM_AVX512_HI16_FIRST, REG_PIN_XMM16 = REG_PIN_XMM_AVX512_HI16_FIRST, REG_PIN_XMM17, REG_PIN_XMM18, REG_PIN_XMM19, REG_PIN_XMM20, REG_PIN_XMM21, REG_PIN_XMM22, REG_PIN_XMM23, REG_PIN_XMM24, REG_PIN_XMM25, REG_PIN_XMM26, REG_PIN_XMM27, REG_PIN_XMM28, REG_PIN_XMM29, REG_PIN_XMM30, REG_PIN_XMM31, REG_PIN_XMM_AVX512_HI16_LAST = REG_PIN_XMM31, REG_PIN_XMM_AVX512_LAST = REG_PIN_XMM_AVX512_HI16_LAST, REG_PIN_XMM_LAST = REG_PIN_XMM_AVX512_LAST, REG_PIN_YMM_BASE, REG_PIN_YMM0 = REG_PIN_YMM_BASE, REG_PIN_YMM1, REG_PIN_YMM2, REG_PIN_YMM3, REG_PIN_YMM4, REG_PIN_YMM5, REG_PIN_YMM6, REG_PIN_YMM7, REG_PIN_YMM8, REG_PIN_YMM9, REG_PIN_YMM10, REG_PIN_YMM11, REG_PIN_YMM12, REG_PIN_YMM13, REG_PIN_YMM14, REG_PIN_YMM15, REG_PIN_YMM_AVX_LAST = REG_PIN_YMM15, REG_PIN_YMM_AVX512_HI16_FIRST, REG_PIN_YMM16 = REG_PIN_YMM_AVX512_HI16_FIRST, REG_PIN_YMM17, REG_PIN_YMM18, REG_PIN_YMM19, REG_PIN_YMM20, REG_PIN_YMM21, REG_PIN_YMM22, REG_PIN_YMM23, REG_PIN_YMM24, REG_PIN_YMM25, REG_PIN_YMM26, REG_PIN_YMM27, REG_PIN_YMM28, REG_PIN_YMM29, REG_PIN_YMM30, REG_PIN_YMM31, REG_PIN_YMM_AVX512_HI16_LAST = REG_PIN_YMM31, REG_PIN_YMM_AVX512_LAST = REG_PIN_YMM_AVX512_HI16_LAST, REG_PIN_YMM_LAST = REG_PIN_YMM_AVX512_LAST, REG_PIN_ZMM_BASE, REG_PIN_ZMM0 = REG_PIN_ZMM_BASE, REG_PIN_ZMM1, REG_PIN_ZMM2, REG_PIN_ZMM3, REG_PIN_ZMM4, REG_PIN_ZMM5, REG_PIN_ZMM6, REG_PIN_ZMM7, REG_PIN_ZMM8, REG_PIN_ZMM9, REG_PIN_ZMM10, REG_PIN_ZMM11, REG_PIN_ZMM12, REG_PIN_ZMM13, REG_PIN_ZMM14, REG_PIN_ZMM15, REG_PIN_ZMM_AVX512_SPLIT_LAST = REG_PIN_ZMM15, REG_PIN_ZMM_AVX512_HI16_FIRST, REG_PIN_ZMM16 = REG_PIN_ZMM_AVX512_HI16_FIRST, REG_PIN_ZMM17, REG_PIN_ZMM18, REG_PIN_ZMM19, REG_PIN_ZMM20, REG_PIN_ZMM21, REG_PIN_ZMM22, REG_PIN_ZMM23, REG_PIN_ZMM24, REG_PIN_ZMM25, REG_PIN_ZMM26, REG_PIN_ZMM27, REG_PIN_ZMM28, REG_PIN_ZMM29, REG_PIN_ZMM30, REG_PIN_ZMM31, REG_PIN_ZMM_AVX512_HI16_LAST = REG_PIN_ZMM31, REG_PIN_ZMM_AVX512_LAST = REG_PIN_ZMM_AVX512_HI16_LAST, REG_PIN_ZMM_LAST = REG_PIN_ZMM_AVX512_LAST, REG_PIN_K_BASE, REG_PIN_K0 = REG_PIN_K_BASE, REG_PIN_K1, REG_PIN_K2, REG_PIN_K3, REG_PIN_K4, REG_PIN_K5, REG_PIN_K6, REG_PIN_K7, REG_PIN_K_LAST = REG_PIN_K7, REG_PIN_LAST = REG_PIN_K_LAST, REG_LAST } |
enum | REG_ACCESS { REG_ACCESS_READ, REG_ACCESS_WRITE, REG_ACCESS_OVERWRITE } |
enum | REGNAME { REGNAME_LAST } |
enum | REGWIDTH { REGWIDTH_8 = 0, REGWIDTH_16 = 1, REGWIDTH_32 = 2, REGWIDTH_64 = 3, REGWIDTH_80, REGWIDTH_128, REGWIDTH_256, REGWIDTH_512, REGWIDTH_TILE, REGWIDTH_REG_X87, REGWIDTH_INVALID, REGWIDTH_NATIVE = REGWIDTH_64 } |
enum | REG_CLASS { REG_CLASS_NONE = 0, REG_CLASS_PSEUDO, REG_CLASS_GR, REG_CLASS_GRU8, REG_CLASS_GRL8, REG_CLASS_GRH16, REG_CLASS_GRH32, REG_CLASS_SEG, REG_CLASS_MM, REG_CLASS_XMM, REG_CLASS_YMM, REG_CLASS_ZMM, REG_CLASS_K, REG_CLASS_TMM, REG_CLASS_FPST, REG_CLASS_ST, REG_CLASS_CR, REG_CLASS_DR, REG_CLASS_TR, REG_CLASS_FLAGS, REG_CLASS_FLAGS16, REG_CLASS_FLAGS32, REG_CLASS_STATUS_FLAGS, REG_CLASS_DFLAG, REG_CLASS_X87, REG_CLASS_MXCSR, REG_CLASS_MXCSRMASK, REG_CLASS_IP, REG_CLASS_IP16, REG_CLASS_IP32, REG_CLASS_ARCH, REG_CLASS_PIN_GR, REG_CLASS_PIN_GRU8, REG_CLASS_PIN_GRL8, REG_CLASS_PIN_GRH16, REG_CLASS_PIN_GRH32, REG_CLASS_PIN_XMM, REG_CLASS_PIN_YMM, REG_CLASS_PIN_ZMM, REG_CLASS_PIN_K, REG_CLASS_PIN_X87, REG_CLASS_PIN_MXCSR, REG_CLASS_PIN_FLAGS, REG_CLASS_PIN_STATUS_FLAGS, REG_CLASS_PIN_DFLAG } |
enum | REG_SUBCLASS { REG_SUBCLASS_NONE = 0, REG_SUBCLASS_REX, REG_SUBCLASS_FULL_STACKPTR, REG_SUBCLASS_PIN_FULL_STACKPTR, REG_SUBCLASS_PIN_TMP, REG_SUBCLASS_PIN_INST_GR, REG_SUBCLASS_PIN_INST_GR_H32, REG_SUBCLASS_PIN_INST_BUF, REG_SUBCLASS_PIN_INST_COND } |
enum | REG_ALLOC_TYPE { REG_ALLOC_NONE = 0, REG_ALLOC_PART, REG_ALLOC_ANY_GR, REG_ALLOC_IDENT, REG_ALLOC_CR = REG_ALLOC_IDENT, REG_ALLOC_DR = REG_ALLOC_IDENT, REG_ALLOC_TR = REG_ALLOC_IDENT, REG_ALLOC_ST = REG_ALLOC_IDENT, REG_ALLOC_MM = REG_ALLOC_IDENT, REG_ALLOC_XMM = REG_ALLOC_IDENT, REG_ALLOC_YMM = REG_ALLOC_IDENT, REG_ALLOC_ZMM = REG_ALLOC_IDENT, REG_ALLOC_K = REG_ALLOC_IDENT, REG_ALLOC_TMM = REG_ALLOC_IDENT, REG_ALLOC_SEG = REG_ALLOC_IDENT, REG_ALLOC_STACK_PTR = REG_ALLOC_IDENT, REG_ALLOC_X87 = REG_ALLOC_IDENT, REG_ALLOC_FLAGS = REG_ALLOC_IDENT, REG_ALLOC_STATUS_FLAGS = REG_ALLOC_IDENT, REG_ALLOC_DFLAG = REG_ALLOC_IDENT } |
Variables | |
const REGDEF_ENTRY | _regDefTable [] |
UINT64 | _regClassBitMapTable [REG_LAST] |
UINT64 | _regSubClassBitMapTable [REG_LAST] |
UINT32 | _regSpillSizeTable [REG_LAST] |
REGWIDTH | _regWidthTable [REG_LAST] |
REG_ALLOC_TYPE | _regAllocTypeTable [REG_LAST] |
REG | _regFullNameTable [REG_LAST] |
REG | _regMachineNameTable [REG_LAST] |
REG | _regPinNameTable [REG_LAST] |
INT32 | _regWidthToBitWidth [] |
const REG_CLASS_BITS | REGCBIT_APP_ALL |
const REG_CLASS_BITS | REGCBIT_PIN_ALL |
const REG_CLASS_BITS | REGCBIT_ALL_REGS = REGCBIT_APP_ALL | REGCBIT_PIN_ALL |
const REG_CLASS_BITS | REGCBIT_APP_FLAGS |
const REG_CLASS_BITS | REGCBIT_PIN_FLAGS |
const REG_CLASS_BITS | REGCBIT_PARTIAL |
const REG_SUBCLASS_BITS | REGSBIT_PIN_INST_ALL |
const REG_SUBCLASS_BITS | REGSBIT_PIN_SCRATCH_ALL = (_REGCBIT(REG_SUBCLASS_PIN_INST_GR)) | (_REGCBIT(REG_SUBCLASS_PIN_INST_BUF)) |
const REG_SUBCLASS_BITS | REGSBIT_STACKPTR_ALL |
const REG | REG_FirstInRegset = REG_RBASE |
const REG | REG_LastInRegset = REG(REG_LAST - 1) |
typedef UINT64 REG_CLASS_BITS |
Bit flag that represents a REG_CLASS value.
typedef class REGISTER_SET< REG_FirstInRegset, REG_LastInRegset > REGSET |
A regset type that contains all registers
enum REG |
This file contains REG primitives
The x86 register enum (for both IA-32 and Intel(R) 64 architectures) Note that each register added to this enum, must have a row in the _regDefTable. Note also that the _regDefTable is defined separately for Intel64 and for IA-32.
enum REG_ACCESS |
Registers access type in context via GetContextReg/SetContextReg
enum REG_ALLOC_TYPE |
Classification of registers under register allocation. Registers of the same allocation type can replace each other during register re-allocation.
enum REG_CLASS |
Enumeration of register classes. Each register belongs to one and only one class.
enum REG_SUBCLASS |
Additional classification of register.
enum REGNAME |
x
enum REGWIDTH |
This file contains REG primitives
register widths
REG PIN_ClaimToolRegister | ( | ) |
Claim a PIN scratch register for use by this tool.
By using this function to claim scratch registers tools can avoid contention if a tool is composed from different components each of which uses scratch registers. Using this function is to be preferred to directly using the REG_INST_Gn register enumerations.
Note that although this function is available in probe mode, use of Pin scratch registers is not currently supported in probe mode, so this function is useless there.
|
inline |
UINT16 REG_ConvertX87AbridgedTagToFull | ( | const FXSAVE * | fxsave | ) |
[in] | - | FXSAVE struct with the desired abridged tag to be converted to full tag. This function converts the 8b FPU state tag from input FXSAVE into 16b tag. |
UINT8 REG_ConvertX87FullTagToAbridged | ( | UINT16 | fullTag | ) |
[in] | - | 16b version of FPU state tag. |
If reg is a partial register, return the name of the full register containing it. For example, on IA-32, if reg is REG_AL, the function will return REG_EAX. If reg is a full register, the function returns it unchanged. If reg is not in range of REG enumeration, returns invalid reg.
|
inline |
Return the invalid register.
|
inline |
Return TRUE if reg is a upper or lower 8-bit register
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Return TRUE if the register a GS or FS register
|
inline |
This file contains REG primitives
Return TRUE if reg is a lower 16-bit register
|
inline |
Return TRUE if reg is a lower 32-bit register, actually any 32 bit register
|
inline |
|
inline |
|
inline |
Return TRUE if reg is a lower 8-bit register
|
inline |
|
inline |
|
inline |
BOOL REG_is_partialreg | ( | const REG | reg | ) |
Return TRUE if reg is a partial register
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Return TRUE if reg is a upper 8-bit register
|
inline |
|
inline |
|
inline |
|
inline |
REG REG_LastSupportedXmm | ( | ) |
REG REG_LastSupportedYmm | ( | ) |
REG REG_LastSupportedZmm | ( | ) |
|
inline |
|
inline |
UINT32 REG_Size | ( | REG | reg | ) |
return the register size in bytes
std::string REG_StringShort | ( | REG | reg | ) |
convert a REG into a printable string
|
inline |
Check if register is valid.
|
inline |
|
inline |
Insert all registers into the specified regset
|
inline |
Remove all registers from the specified regset
Insert the specified reg into the specified regset
|
inline |
|
inline |
Pop the next register from the specified regset
Remove the specified reg from the specified regset
|
inline |
const REGDEF_ENTRY _regDefTable[] |
The main register information table
const REG REG_FirstInRegset = REG_RBASE |
REG represented by the first bit in the regset vector.
x
REG represented by the last bit in the regset vector. Most of the code assumes that REG_LAST is not an actual register, so we should not include it in the set. We use REG_LAST-1 for the last registers.
const REG_CLASS_BITS REGCBIT_ALL_REGS = REGCBIT_APP_ALL | REGCBIT_PIN_ALL |
Mask of REG_CLASS_BITS values for all valid registers.xx
const REG_CLASS_BITS REGCBIT_APP_ALL |
Mask of REG_CLASS_BITS values for all application registers.
const REG_CLASS_BITS REGCBIT_APP_FLAGS |
Mask of REG_CLASS_BITS values for all application flag registers.
const REG_CLASS_BITS REGCBIT_PARTIAL |
Mask of REG_CLASS_BITS values for partial registers (excluding XMM, even if AVX is present).
const REG_CLASS_BITS REGCBIT_PIN_ALL |
Mask of REG_CLASS_BITS values for all Pin registers.
const REG_CLASS_BITS REGCBIT_PIN_FLAGS |
Mask of REG_CLASS_BITS values for all Pin flag registers.
const REG_SUBCLASS_BITS REGSBIT_PIN_INST_ALL |
Combination of REG_SUBCLASS_BITS flags of all instrumentation registers.
const REG_SUBCLASS_BITS REGSBIT_PIN_SCRATCH_ALL = (_REGCBIT(REG_SUBCLASS_PIN_INST_GR)) | (_REGCBIT(REG_SUBCLASS_PIN_INST_BUF)) |
Combination of REG_SUBCLASS_BITS flags of all instrumentation scratch registers.
const REG_SUBCLASS_BITS REGSBIT_STACKPTR_ALL |
Combination of REG_SUBCLASS_BITS flags of stack registers (both app and pin).