Enumerations | |
enum | LEVEL_BASE::CATEGORY_IPF { CATEGORY_INVALID, CATEGORY_MEMORY_FENCE, CATEGORY_LOAD, CATEGORY_STORE, CATEGORY_FETCH, CATEGORY_FETCHADD, CATEGORY_CMPXCHG, CATEGORY_XCHG, CATEGORY_BRANCH, CATEGORY_CBRANCH, CATEGORY_JUMP, CATEGORY_CJUMP, CATEGORY_CHECK, CATEGORY_RFI, CATEGORY_BREAK, CATEGORY_CALL_SIDE_EFFECTS, CATEGORY_RET_SIDE_EFFECTS, CATEGORY_BRANCH_PREDICT, CATEGORY_JUMP_PREDICT, CATEGORY_RSE_CONTROL, CATEGORY_NOP, CATEGORY_HINT, CATEGORY_MOVL, CATEGORY_INT_OP, CATEGORY_VEC_OP, CATEGORY_ADDL, CATEGORY_ADDS, CATEGORY_INT_CMP, CATEGORY_INT_PCMP, CATEGORY_FLT_CMP, CATEGORY_FLT_PCMP, CATEGORY_TEST, CATEGORY_ALLOC, CATEGORY_GET_FR, CATEGORY_SET_FR, CATEGORY_SET_AR, CATEGORY_GET_AR, CATEGORY_GET_BR, CATEGORY_SET_BR, CATEGORY_GET_PR, CATEGORY_SET_PR, CATEGORY_IP2GR, CATEGORY_SET_CR, CATEGORY_GET_CR, CATEGORY_SET_MR, CATEGORY_GET_MR, CATEGORY_GET_PSR, CATEGORY_SET_PSR, CATEGORY_GET_MASK, CATEGORY_SET_MASK, CATEGORY_PURGE_TRANSLATION_CACHE, CATEGORY_TRANSLATION, CATEGORY_INT_DEP, CATEGORY_INT_EXT, CATEGORY_SHIFT, CATEGORY_FLT_SQRT, CATEGORY_FLT_DIV, CATEGORY_CLEAR_RRB, CATEGORY_COVER, CATEGORY_EPC, CATEGORY_BSW, CATEGORY_BMISC, CATEGORY_MMISC, CATEGORY_FLT_OP, CATEGORY_FLT_CVT, CATEGORY_FLT_STATUS, CATEGORY_FLT_CLASS, CATEGORY_FLT_MULACC, CATEGORY_FLT_SELECT, CATEGORY_VMSW, CATEGORY_LAST } |
enum | LEVEL_BASE::PREDICATE_IPF { PREDICATE_PR0 = REG_PBASE + 0, PREDICATE_PR1 = REG_PBASE + 1, PREDICATE_PR2 = REG_PBASE + 2, PREDICATE_PR3 = REG_PBASE + 3, PREDICATE_PR4 = REG_PBASE + 4, PREDICATE_PR5 = REG_PBASE + 5, PREDICATE_PR6 = REG_PBASE + 6, PREDICATE_PR7 = REG_PBASE + 7, PREDICATE_PR8 = REG_PBASE + 8, PREDICATE_PR9 = REG_PBASE + 9, PREDICATE_PR15 = REG_PBASE + 15, PREDICATE_PR63 = REG_PBASE + 63, LEVEL_BASE::PREDICATE_ALWAYS_TRUE, PREDICATE_ALWAYS_TRUE = PREDICATE_PR0, PREDICATE_INVALID, PREDICATE_INVALID, PREDICATE_LAST, PREDICATE_LAST } |
enum | LEVEL_BASE::FCLASS_FLAGS { FCLASS_NAT = 0x4000000, FCLASS_QNAN = 0x2000000, FCLASS_SNAN = 0x1000000, FCLASS_POS = 0x200000000, FCLASS_NEG = 0x400000000, FCLASS_ZERO = 0x600100000, FCLASS_UNORM = 0x600200000, FCLASS_NORM = 0x600400000, FCLASS_INF = 0x600800000 } |
enum | LEVEL_BASE::TYPE_CMP { TYPE_CMP_INVALID, TYPE_CMP_LT, TYPE_CMP_LTU, TYPE_CMP_LE, TYPE_CMP_EQ, TYPE_CMP_NE, TYPE_CMP_GT, TYPE_CMP_GE, TYPE_CMP_Z, TYPE_CMP_NZ, TYPE_CMP_UNORD, TYPE_CMP_LAST } |
enum | LEVEL_BASE::TYPE_BWH { TYPE_BWH_INVALID, TYPE_BWH_SPNT, TYPE_BWH_SPTK, TYPE_BWH_DPNT, TYPE_BWH_DPTK, TYPE_BWH_LAST } |
enum | LEVEL_BASE::TYPE_PH { TYPE_PH_INVALID, TYPE_PH_FEW, TYPE_PH_MANY, TYPE_PH_LAST } |
enum | LEVEL_BASE::TYPE_BRA { TYPE_BRA_INVALID, TYPE_BRA_COND, TYPE_BRA_WEXIT, TYPE_BRA_WTOP, TYPE_BRA_CEXIT, TYPE_BRA_CTOP, TYPE_BRA_CLOOP, TYPE_BRA_CALL, TYPE_BRA_CALL_PSEUDO, TYPE_BRA_RET_PSEUDO, TYPE_BRA_IA, TYPE_BRA_RET, TYPE_BRA_LAST } |
enum | LEVEL_BASE::TYPE_CHK { TYPE_CHK_INVALID, TYPE_CHK_NAT, TYPE_CHK_ALAT, TYPE_CHK_FPFLAGS, TYPE_CHK_LAST } |
enum | LEVEL_BASE::TYPE_MEM { TYPE_MEM_INVALID, TYPE_MEM_NORMAL, TYPE_MEM_S, TYPE_MEM_A, TYPE_MEM_SA, TYPE_MEM_BIAS, TYPE_MEM_ACQ, TYPE_MEM_FILL, TYPE_MEM_CCLR, TYPE_MEM_CNC, TYPE_MEM_CCLRACQ, TYPE_MEM_REL, TYPE_MEM_SPILL, TYPE_MEM_EXCL, TYPE_MEM_FAULT, TYPE_MEM_FAULTEXCL, TYPE_MEM_LAST } |
enum | LEVEL_BASE::TYPE_MEMHINT { TYPE_MEMHINT_INVALID, TYPE_MEMHINT_NORMAL, TYPE_MEMHINT_NT1, TYPE_MEMHINT_NT2, TYPE_MEMHINT_NTA, TYPE_MEMHINT_LAST } |
enum | LEVEL_BASE::TYPE_PRED { TYPE_PRED_INVALID, TYPE_PRED_NORMAL, TYPE_PRED_UNC, TYPE_PRED_AND, TYPE_PRED_OR, TYPE_PRED_ORANDCM, TYPE_PRED_LAST } |
enum | LEVEL_BASE::TYPE_SIZE { TYPE_SIZE_INVALID, TYPE_SIZE_1, TYPE_SIZE_2, TYPE_SIZE_4, TYPE_SIZE_8, TYPE_SIZE_16, TYPE_SIZE_FS, TYPE_SIZE_FD, TYPE_SIZE_F8, TYPE_SIZE_FE, TYPE_SIZE_FF, TYPE_SIZE_FPS, TYPE_SIZE_FPD, TYPE_SIZE_FP8, TYPE_SIZE_F, TYPE_SIZE_LAST } |
enum | LEVEL_CORE::INS_PROP_IPF { INS_PROP_IPF_LOAD_SPECULATIVE = 1000, INS_PROP_IPF_LOAD_CHECK, INS_PROP_IPF_LOAD_ADVANCED, INS_PROP_IPF_LOAD_ORDERED, INS_PROP_IPF_LOAD_BIASED } |
Functions | |
TYPE_MEM | LEVEL_CORE::INS_MemType (INS ins) |
TYPE_PRED | LEVEL_CORE::INS_PredType (INS ins) |
TYPE_BRA | LEVEL_CORE::INS_BraType (INS ins) |
TYPE_CHK | LEVEL_CORE::INS_ChkType (INS ins) |
TYPE_SIZE | LEVEL_CORE::INS_SizeType (INS ins) |
|
Instruction Category abstraction for IPF.
|
|
Options for fclass instruction. See the manual for the meaning of these mnemonics. To generate these literal values, I wrote an example in the assembler and got the immediate value from pin.log. |
|
IPF properties |
|
Predicate abstraction for IPF.
|
|
x |
|
x |
|
x |
|
x |
|
x |
|
x |
|
x |
|
x |
|
x |
|
Branch type of ins, from RawInsTab |
|
Branch type of ins, from RawInsTab |
|
Memory type of ins, from RawInsTab |
|
Predicate type of ins, from RawInsTab |
|
Size type of ins, from RawInsTab |