#include "common/h/Types.h"#include <assert.h>#include <stdio.h>#include <map>#include <string>#include <iostream>#include "boost/assign/list_of.hpp"#include "boost/assign/std/vector.hpp"#include "boost/assign/std/set.hpp"#include "common/h/arch-x86.h"#include "dyn_regs.h"Go to the source code of this file.
Namespaces | |
| namespace | NS_x86 |
Defines | |
| #define | Zz { 0, 0 } |
| #define | ImplImm { am_ImplImm, op_b } |
| #define | Ap { am_A, op_p } |
| #define | Cd { am_C, op_d } |
| #define | Dd { am_D, op_d } |
| #define | Eb { am_E, op_b } |
| #define | Ed { am_E, op_d } |
| #define | Ef { am_E, op_f } |
| #define | Efd { am_E, op_dbl } |
| #define | Ep { am_E, op_p } |
| #define | Ev { am_E, op_v } |
| #define | Ew { am_E, op_w } |
| #define | Ey { am_E, op_y } |
| #define | Fv { am_F, op_v } |
| #define | Gb { am_G, op_b } |
| #define | Gd { am_G, op_d } |
| #define | Gv { am_G, op_v } |
| #define | Gw { am_G, op_w } |
| #define | Gf { am_G, op_f } |
| #define | Gfd { am_G, op_dbl } |
| #define | Ib { am_I, op_b } |
| #define | Iv { am_I, op_v } |
| #define | Iw { am_I, op_w } |
| #define | Iz { am_I, op_z } |
| #define | Jb { am_J, op_b } |
| #define | Jv { am_J, op_v } |
| #define | Jz { am_J, op_z } |
| #define | Ma { am_M, op_a } |
| #define | Mb { am_M, op_b } |
| #define | Mlea { am_M, op_lea } |
| #define | Mp { am_M, op_p } |
| #define | Ms { am_M, op_s } |
| #define | Md { am_M, op_d } |
| #define | Mq { am_M, op_q } |
| #define | Mdq { am_M, op_dq } |
| #define | M512 { am_M, op_512 } |
| #define | Mf { am_M, op_f } |
| #define | Mfd { am_M, op_dbl } |
| #define | M14 { am_M, op_14 } |
| #define | Ob { am_O, op_b } |
| #define | Ov { am_O, op_v } |
| #define | Pd { am_P, op_d } |
| #define | Pdq { am_P, op_dq } |
| #define | Ppi { am_P, op_pi } |
| #define | Pq { am_P, op_q } |
| #define | Qdq { am_Q, op_dq } |
| #define | Qd { am_Q, op_d } |
| #define | Qpi { am_Q, op_pi } |
| #define | Qq { am_Q, op_q } |
| #define | Rd { am_R, op_d } |
| #define | RMb { am_RM, op_b } |
| #define | RMw { am_RM, op_w } |
| #define | Td { am_T, op_d } |
| #define | UMd { am_UM, op_d } |
| #define | Sw { am_S, op_w } |
| #define | Vd { am_V, op_d } |
| #define | Vdq { am_V, op_dq } |
| #define | Vpd { am_V, op_pd } |
| #define | Vps { am_V, op_ps } |
| #define | Vq { am_V, op_q } |
| #define | VRq { am_VR, op_q } |
| #define | VRdq { am_VR, op_dq } |
| #define | Vss { am_V, op_ss } |
| #define | Vsd { am_V, op_sd } |
| #define | Wdq { am_W, op_dq } |
| #define | Wpd { am_W, op_pd } |
| #define | Wps { am_W, op_ps } |
| #define | Wq { am_W, op_q } |
| #define | Ws { am_W, op_s } |
| #define | Wsd { am_W, op_sd } |
| #define | Wss { am_W, op_ss } |
| #define | Xb { am_X, op_b } |
| #define | Xv { am_X, op_v } |
| #define | Yb { am_Y, op_b } |
| #define | Yv { am_Y, op_v } |
| #define | STHb { am_stackH, op_b } |
| #define | STPb { am_stackP, op_b } |
| #define | STHv { am_stackH, op_v } |
| #define | STPv { am_stackP, op_v } |
| #define | STHw { am_stackH, op_w } |
| #define | STPw { am_stackP, op_w } |
| #define | STHd { am_stackH, op_d } |
| #define | STPd { am_stackP, op_d } |
| #define | STHa { am_stackH, op_allgprs } |
| #define | STPa { am_stackP, op_allgprs } |
| #define | STKb { am_stack, op_b } |
| #define | STKv { am_stack, op_v } |
| #define | STKw { am_stack, op_w } |
| #define | STKd { am_stack, op_d } |
| #define | STKa { am_stack, op_allgprs } |
| #define | GPRS { am_allgprs, op_allgprs } |
| #define | AH { am_reg, x86::iah } |
| #define | AX { am_reg, x86::iax } |
| #define | BH { am_reg, x86::ibh } |
| #define | CH { am_reg, x86::ich } |
| #define | DH { am_reg, x86::idh } |
| #define | AL { am_reg, x86::ial } |
| #define | BL { am_reg, x86::ibl } |
| #define | CL { am_reg, x86::icl } |
| #define | CS { am_reg, x86::ics } |
| #define | DL { am_reg, x86::idl } |
| #define | DX { am_reg, x86::idx } |
| #define | eAX { am_reg, x86::ieax } |
| #define | eBX { am_reg, x86::iebx } |
| #define | eCX { am_reg, x86::iecx } |
| #define | eDX { am_reg, x86::iedx } |
| #define | EAX { am_reg, x86::ieax } |
| #define | EBX { am_reg, x86::iebx } |
| #define | ECX { am_reg, x86::iecx } |
| #define | EDX { am_reg, x86::iedx } |
| #define | DS { am_reg, x86::ids } |
| #define | ES { am_reg, x86::ies } |
| #define | FS { am_reg, x86::ifs } |
| #define | GS { am_reg, x86::igs } |
| #define | SS { am_reg, x86::iss } |
| #define | eSP { am_reg, x86::iesp } |
| #define | eBP { am_reg, x86::iebp } |
| #define | eSI { am_reg, x86::iesi } |
| #define | eDI { am_reg, x86::iedi } |
| #define | ESP { am_reg, x86::iesp } |
| #define | EBP { am_reg, x86::iebp } |
| #define | ESI { am_reg, x86::iesi } |
| #define | EDI { am_reg, x86::iedi } |
| #define | ECXEBX { am_tworeghack, op_ecxebx } |
| #define | EDXEAX { am_tworeghack, op_edxeax } |
| #define | rAX { am_reg, x86_64::irax } |
| #define | rBX { am_reg, x86_64::irbx } |
| #define | rCX { am_reg, x86_64::ircx } |
| #define | rDX { am_reg, x86_64::irdx } |
| #define | rSP { am_reg, x86_64::irsp } |
| #define | rBP { am_reg, x86_64::irbp } |
| #define | rSI { am_reg, x86_64::irsi } |
| #define | rDI { am_reg, x86_64::irdi } |
| #define | ST0 { am_reg, x86::ist0 } |
| #define | ST1 { am_reg, x86::ist1 } |
| #define | ST2 { am_reg, x86::ist2 } |
| #define | ST3 { am_reg, x86::ist3 } |
| #define | ST4 { am_reg, x86::ist4 } |
| #define | ST5 { am_reg, x86::ist5 } |
| #define | ST6 { am_reg, x86::ist6 } |
| #define | ST7 { am_reg, x86::ist7 } |
| #define | FPOS 16 |
| #define | MODRM_MOD(x) ((x) >> 6) |
| #define | MODRM_RM(x) ((x) & 7) |
| #define | MODRM_REG(x) (((x) & (7 << 3)) >> 3) |
| #define | MODRM_SET_MOD(x, y) ((x) |= ((y) << 6)) |
| #define | MODRM_SET_RM(x, y) ((x) |= (y)) |
| #define | MODRM_SET_REG(x, y) ((x) |= ((y) << 3)) |
| #define | REX_ISREX(x) (((x) >> 4) == 4) |
| #define | REX_W(x) ((x) & 0x8) |
| #define | REX_R(x) ((x) & 0x4) |
| #define | REX_X(x) ((x) & 0x2) |
| #define | REX_B(x) ((x) & 0x1) |
| #define | REX_INIT(x) ((x) = 0x40) |
| #define | REX_SET_W(x, v) ((x) |= ((v) ? 0x8 : 0)) |
| #define | REX_SET_R(x, v) ((x) |= ((v) ? 0x4 : 0)) |
| #define | REX_SET_X(x, v) ((x) |= ((v) ? 0x2 : 0)) |
| #define | REX_SET_B(x, v) ((x) |= ((v) ? 0x1 : 0)) |
| #define | SIB_SET_REG(x, y) ((x) |= ((y) & 7)) |
| #define | SIB_SET_INDEX(x, y) ((x) |= (((y) & 7) << 3)) |
| #define | SIB_SET_SS(x, y) ((x) | (((y) & 3) << 6)) |
Enumerations | |
| enum | { NS_x86::Grp1a = 0, NS_x86::Grp1b, NS_x86::Grp1c, NS_x86::Grp1d, NS_x86::Grp2, NS_x86::Grp3a, NS_x86::Grp3b, NS_x86::Grp4, NS_x86::Grp5, NS_x86::Grp6, NS_x86::Grp7, NS_x86::Grp8, NS_x86::Grp9, NS_x86::Grp11, NS_x86::Grp12, NS_x86::Grp13, NS_x86::Grp14, NS_x86::Grp15, NS_x86::Grp16, NS_x86::Grp17, NS_x86::GrpAMD } |
| enum | { NS_x86::SSE10 = 0, NS_x86::SSE11, NS_x86::SSE12, NS_x86::SSE13, NS_x86::SSE14, NS_x86::SSE15, NS_x86::SSE16, NS_x86::SSE17, NS_x86::SSE28, NS_x86::SSE29, NS_x86::SSE2A, NS_x86::SSE2B, NS_x86::SSE2C, NS_x86::SSE2D, NS_x86::SSE2E, NS_x86::SSE2F, NS_x86::SSE50, NS_x86::SSE51, NS_x86::SSE52, NS_x86::SSE53, NS_x86::SSE54, NS_x86::SSE55, NS_x86::SSE56, NS_x86::SSE57, NS_x86::SSE58, NS_x86::SSE59, NS_x86::SSE5A, NS_x86::SSE5B, NS_x86::SSE5C, NS_x86::SSE5D, NS_x86::SSE5E, NS_x86::SSE5F, NS_x86::SSE60, NS_x86::SSE61, NS_x86::SSE62, NS_x86::SSE63, NS_x86::SSE64, NS_x86::SSE65, NS_x86::SSE66, NS_x86::SSE67, NS_x86::SSE68, NS_x86::SSE69, NS_x86::SSE6A, NS_x86::SSE6B, NS_x86::SSE6C, NS_x86::SSE6D, NS_x86::SSE6E, NS_x86::SSE6F, NS_x86::SSE70, NS_x86::SSE74, NS_x86::SSE75, NS_x86::SSE76, NS_x86::SSE78, NS_x86::SSE79, NS_x86::SSE7C, NS_x86::SSE7D, NS_x86::SSE7E, NS_x86::SSE7F, NS_x86::SSEB8, NS_x86::SSEC2, NS_x86::SSEC4, NS_x86::SSEC5, NS_x86::SSEC6, NS_x86::SSED0, NS_x86::SSED1, NS_x86::SSED2, NS_x86::SSED3, NS_x86::SSED4, NS_x86::SSED5, NS_x86::SSED6, NS_x86::SSED7, NS_x86::SSED8, NS_x86::SSED9, NS_x86::SSEDA, NS_x86::SSEDB, NS_x86::SSEDC, NS_x86::SSEDD, NS_x86::SSEDE, NS_x86::SSEDF, NS_x86::SSEE0, NS_x86::SSEE1, NS_x86::SSEE2, NS_x86::SSEE3, NS_x86::SSEE4, NS_x86::SSEE5, NS_x86::SSEE6, NS_x86::SSEE7, NS_x86::SSEE8, NS_x86::SSEE9, NS_x86::SSEEA, NS_x86::SSEEB, NS_x86::SSEEC, NS_x86::SSEED, NS_x86::SSEEE, NS_x86::SSEEF, NS_x86::SSEF0, NS_x86::SSEF1, NS_x86::SSEF2, NS_x86::SSEF3, NS_x86::SSEF4, NS_x86::SSEF5, NS_x86::SSEF6, NS_x86::SSEF7, NS_x86::SSEF8, NS_x86::SSEF9, NS_x86::SSEFA, NS_x86::SSEFB, NS_x86::SSEFC, NS_x86::SSEFD, NS_x86::SSEFE, NS_x86::SSEFF } |
| enum | { NS_x86::SSEB00 = 0, NS_x86::SSEB01, NS_x86::SSEB02, NS_x86::SSEB03, NS_x86::SSEB04, NS_x86::SSEB05, NS_x86::SSEB06, NS_x86::SSEB07, NS_x86::SSEB08, NS_x86::SSEB09, NS_x86::SSEB0A, NS_x86::SSEB0B, NS_x86::SSEB10, NS_x86::SSEB14, NS_x86::SSEB15, NS_x86::SSEB17, NS_x86::SSEB1C, NS_x86::SSEB1D, NS_x86::SSEB1E, NS_x86::SSEB20, NS_x86::SSEB21, NS_x86::SSEB22, NS_x86::SSEB23, NS_x86::SSEB24, NS_x86::SSEB25, NS_x86::SSEB28, NS_x86::SSEB29, NS_x86::SSEB2A, NS_x86::SSEB2B, NS_x86::SSEB30, NS_x86::SSEB31, NS_x86::SSEB32, NS_x86::SSEB33, NS_x86::SSEB34, NS_x86::SSEB35, NS_x86::SSEB37, NS_x86::SSEB38, NS_x86::SSEB39, NS_x86::SSEB3A, NS_x86::SSEB3B, NS_x86::SSEB3C, NS_x86::SSEB3D, NS_x86::SSEB3E, NS_x86::SSEB3F, NS_x86::SSEB40, NS_x86::SSEB41, NS_x86::SSEBF0, NS_x86::SSEBF1 } |
| enum | { NS_x86::SSET08 = 0, NS_x86::SSET09, NS_x86::SSET0A, NS_x86::SSET0B, NS_x86::SSET0C, NS_x86::SSET0D, NS_x86::SSET0E, NS_x86::SSET0F, NS_x86::SSET14, NS_x86::SSET15, NS_x86::SSET16, NS_x86::SSET17, NS_x86::SSET20, NS_x86::SSET21, NS_x86::SSET22, NS_x86::SSET40, NS_x86::SSET41, NS_x86::SSET42, NS_x86::SSET60, NS_x86::SSET61, NS_x86::SSET62, NS_x86::SSET63 } |
| enum | { NS_x86::G12SSE010B = 0, NS_x86::G12SSE100B, NS_x86::G12SSE110B, NS_x86::G13SSE010B, NS_x86::G13SSE100B, NS_x86::G13SSE110B, NS_x86::G14SSE010B, NS_x86::G14SSE011B, NS_x86::G14SSE110B, NS_x86::G14SSE111B } |
| enum | { NS_x86::GrpD8 = 0, NS_x86::GrpD9, NS_x86::GrpDA, NS_x86::GrpDB, NS_x86::GrpDC, NS_x86::GrpDD, NS_x86::GrpDE, NS_x86::GrpDF } |
| enum | { NS_x86::fNT = 1, NS_x86::fPREFETCHNT, NS_x86::fPREFETCHT0, NS_x86::fPREFETCHT1, NS_x86::fPREFETCHT2, NS_x86::fPREFETCHAMDE, NS_x86::fPREFETCHAMDW, NS_x86::fCALL, NS_x86::fNEARRET, NS_x86::fFARRET, NS_x86::fIRET, NS_x86::fENTER, NS_x86::fLEAVE, NS_x86::fXLAT, NS_x86::fIO, NS_x86::fSEGDESC, NS_x86::fCOND, NS_x86::fCMPXCH, NS_x86::fCMPXCH8, NS_x86::fINDIRCALL, NS_x86::fINDIRJUMP, NS_x86::fFXSAVE, NS_x86::fFXRSTOR, NS_x86::fCLFLUSH, NS_x86::fREP, NS_x86::fSCAS, NS_x86::fCMPS } |
Functions | |
| unsigned int | NS_x86::swapBytesIfNeeded (unsigned int i) |
| COMMON_EXPORT void | NS_x86::ia32_set_mode_64 (bool mode) |
| COMMON_EXPORT bool | NS_x86::ia32_is_mode_64 () |
| static void | NS_x86::ia32_translate_for_64 (ia32_entry **gotit_ptr) |
| static unsigned int | NS_x86::ia32_decode_modrm (const unsigned int addrSzAttr, const unsigned char *addr, ia32_memacc *macadr, const ia32_prefixes *pref, ia32_locations *pos) |
| int | NS_x86::getOperSz (const ia32_prefixes &pref) |
| COMMON_EXPORT ia32_instruction & | NS_x86::ia32_decode (unsigned int capabilities, const unsigned char *addr, ia32_instruction &) |
| ia32_instruction & | NS_x86::ia32_decode_FP (unsigned int opcode, const ia32_prefixes &pref, const unsigned char *addr, ia32_instruction &instruct, ia32_entry *entry, ia32_memacc *mac) |
| static int | NS_x86::type2size (unsigned int optype, unsigned int operSzAttr) |
| unsigned int | NS_x86::ia32_decode_operands (const ia32_prefixes &pref, const ia32_entry &gotit, const unsigned char *addr, ia32_instruction &instruct, ia32_memacc *mac) |
| bool | NS_x86::is_sse_opcode (unsigned char byte1, unsigned char byte2, unsigned char byte3) |
| bool | NS_x86::ia32_decode_prefixes (const unsigned char *addr, ia32_prefixes &, ia32_locations *loc=NULL) |
| bool | NS_x86::ia32_decode_rex (const unsigned char *addr, ia32_prefixes &pref, ia32_locations *loc) |
| unsigned int | NS_x86::ia32_emulate_old_type (ia32_instruction &instruct) |
| COMMON_EXPORT unsigned | NS_x86::get_instruction (const unsigned char *instr, unsigned &instType, const unsigned char **op_ptr=NULL) |
| COMMON_EXPORT Address | NS_x86::get_target (const unsigned char *instr, unsigned type, unsigned size, Address addr) |
| int | NS_x86::displacement (const unsigned char *instr, unsigned type) |
| COMMON_EXPORT int | NS_x86::count_prefixes (unsigned insnType) |
| unsigned | NS_x86::copy_prefixes (const unsigned char *&origInsn, unsigned char *&newInsn, unsigned insnType) |
| unsigned | NS_x86::copy_prefixes_nosize (const unsigned char *&origInsn, unsigned char *&newInsn, unsigned insnType) |
| bool | NS_x86::convert_to_rel8 (const unsigned char *&origInsn, unsigned char *&newInsn) |
| bool | NS_x86::convert_to_rel32 (const unsigned char *&origInsn, unsigned char *&newInsn) |
| COMMON_EXPORT void | NS_x86::decode_SIB (unsigned sib, unsigned &scale, Register &index_reg, Register &base_reg) |
| COMMON_EXPORT const unsigned char * | NS_x86::skip_headers (const unsigned char *, ia32_prefixes *=NULL) |
| COMMON_EXPORT bool | NS_x86::insn_hasSIB (unsigned, unsigned &, unsigned &, unsigned &) |
| COMMON_EXPORT bool | NS_x86::insn_hasDisp8 (unsigned ModRM) |
| COMMON_EXPORT bool | NS_x86::insn_hasDisp32 (unsigned ModRM) |
| Address | NS_x86::get_immediate_operand (instruction *instr) |
| COMMON_EXPORT int | NS_x86::get_disp (instruction *insn) |
| COMMON_EXPORT bool | NS_x86::isStackFramePrecheck_gcc (const unsigned char *buffer) |
| COMMON_EXPORT bool | NS_x86::isStackFramePrecheck_msvs (const unsigned char *buffer) |
Variables | |
| COMMON_EXPORT dyn_hash_map < entryID, std::string > | NS_x86::entryNames_IAPI |
| dyn_hash_map< prefixEntryID, std::string > | NS_x86::prefixEntryNames_IAPI |
| static ia32_entry | NS_x86::oneByteMap [256] |
| static ia32_entry | NS_x86::twoByteMap [256] |
| static ia32_entry | NS_x86::threeByteMap [256] |
| static ia32_entry | NS_x86::threeByteMap2 [256] |
| static ia32_entry | NS_x86::fpuMap [][2][8] |
| static ia32_entry | NS_x86::groupMap [][8] |
| static ia32_entry | NS_x86::groupMap2 [][2][8] |
| static ia32_entry | NS_x86::sseMap [][4] |
| static ia32_entry | NS_x86::sseMapBis [][5] |
| static ia32_entry | NS_x86::sseMapTer [][3] |
| static ia32_entry | NS_x86::ssegrpMap [][2] |
| static bool | NS_x86::mode_64 = false |
| ia32_entry | NS_x86::movsxd = { e_movsxd, t_done, 0, true, { Gv, Ed, Zz }, 0, s1W2R } |
| ia32_entry | NS_x86::invalid = { e_No_Entry, t_ill, 0, true, { Zz, Zz, Zz }, 0, 0 } |
| static const unsigned char | NS_x86::sse_prefix [256] |
| static const unsigned char | NS_x86::sse_prefix_bis [256] |
| static const unsigned char | NS_x86::sse_prefix_ter [256] |
| unsigned char | NS_x86::illegalRep [2] = {0x0f, 0x0b} |
| unsigned char | NS_x86::trapRep [1] = {0xCC} |
| #define AH { am_reg, x86::iah } |
Definition at line 226 of file arch-x86.C.
| #define AL { am_reg, x86::ial } |
Definition at line 231 of file arch-x86.C.
| #define Ap { am_A, op_p } |
Definition at line 133 of file arch-x86.C.
| #define AX { am_reg, x86::iax } |
Definition at line 227 of file arch-x86.C.
| #define BH { am_reg, x86::ibh } |
Definition at line 228 of file arch-x86.C.
| #define BL { am_reg, x86::ibl } |
Definition at line 232 of file arch-x86.C.
| #define Cd { am_C, op_d } |
Definition at line 134 of file arch-x86.C.
| #define CH { am_reg, x86::ich } |
Definition at line 229 of file arch-x86.C.
| #define CL { am_reg, x86::icl } |
Definition at line 233 of file arch-x86.C.
| #define CS { am_reg, x86::ics } |
Definition at line 234 of file arch-x86.C.
| #define Dd { am_D, op_d } |
Definition at line 135 of file arch-x86.C.
| #define DH { am_reg, x86::idh } |
Definition at line 230 of file arch-x86.C.
| #define DL { am_reg, x86::idl } |
Definition at line 235 of file arch-x86.C.
| #define DS { am_reg, x86::ids } |
Definition at line 245 of file arch-x86.C.
| #define DX { am_reg, x86::idx } |
Definition at line 236 of file arch-x86.C.
| #define EAX { am_reg, x86::ieax } |
Definition at line 241 of file arch-x86.C.
| #define eAX { am_reg, x86::ieax } |
Definition at line 237 of file arch-x86.C.
| #define Eb { am_E, op_b } |
Definition at line 136 of file arch-x86.C.
| #define EBP { am_reg, x86::iebp } |
Definition at line 255 of file arch-x86.C.
| #define eBP { am_reg, x86::iebp } |
Definition at line 251 of file arch-x86.C.
| #define EBX { am_reg, x86::iebx } |
Definition at line 242 of file arch-x86.C.
| #define eBX { am_reg, x86::iebx } |
Definition at line 238 of file arch-x86.C.
| #define ECX { am_reg, x86::iecx } |
Definition at line 243 of file arch-x86.C.
| #define eCX { am_reg, x86::iecx } |
Definition at line 239 of file arch-x86.C.
| #define ECXEBX { am_tworeghack, op_ecxebx } |
Definition at line 258 of file arch-x86.C.
| #define Ed { am_E, op_d } |
Definition at line 137 of file arch-x86.C.
| #define EDI { am_reg, x86::iedi } |
Definition at line 257 of file arch-x86.C.
| #define eDI { am_reg, x86::iedi } |
Definition at line 253 of file arch-x86.C.
| #define EDX { am_reg, x86::iedx } |
Definition at line 244 of file arch-x86.C.
| #define eDX { am_reg, x86::iedx } |
Definition at line 240 of file arch-x86.C.
| #define EDXEAX { am_tworeghack, op_edxeax } |
Definition at line 259 of file arch-x86.C.
| #define Ef { am_E, op_f } |
Definition at line 138 of file arch-x86.C.
| #define Efd { am_E, op_dbl } |
Definition at line 139 of file arch-x86.C.
| #define Ep { am_E, op_p } |
Definition at line 140 of file arch-x86.C.
| #define ES { am_reg, x86::ies } |
Definition at line 246 of file arch-x86.C.
| #define ESI { am_reg, x86::iesi } |
Definition at line 256 of file arch-x86.C.
| #define eSI { am_reg, x86::iesi } |
Definition at line 252 of file arch-x86.C.
| #define ESP { am_reg, x86::iesp } |
Definition at line 254 of file arch-x86.C.
| #define eSP { am_reg, x86::iesp } |
Definition at line 250 of file arch-x86.C.
| #define Ev { am_E, op_v } |
Definition at line 141 of file arch-x86.C.
| #define Ew { am_E, op_w } |
Definition at line 142 of file arch-x86.C.
| #define Ey { am_E, op_y } |
Definition at line 143 of file arch-x86.C.
| #define FPOS 16 |
Definition at line 276 of file arch-x86.C.
Referenced by NS_x86::ia32_decode().
| #define FS { am_reg, x86::ifs } |
Definition at line 247 of file arch-x86.C.
| #define Fv { am_F, op_v } |
Definition at line 144 of file arch-x86.C.
| #define Gb { am_G, op_b } |
Definition at line 145 of file arch-x86.C.
| #define Gd { am_G, op_d } |
Definition at line 146 of file arch-x86.C.
| #define Gf { am_G, op_f } |
Definition at line 149 of file arch-x86.C.
| #define Gfd { am_G, op_dbl } |
Definition at line 150 of file arch-x86.C.
| #define GPRS { am_allgprs, op_allgprs } |
Definition at line 224 of file arch-x86.C.
| #define GS { am_reg, x86::igs } |
Definition at line 248 of file arch-x86.C.
| #define Gv { am_G, op_v } |
Definition at line 147 of file arch-x86.C.
| #define Gw { am_G, op_w } |
Definition at line 148 of file arch-x86.C.
| #define Ib { am_I, op_b } |
Definition at line 151 of file arch-x86.C.
| #define ImplImm { am_ImplImm, op_b } |
Definition at line 132 of file arch-x86.C.
| #define Iv { am_I, op_v } |
Definition at line 152 of file arch-x86.C.
| #define Iw { am_I, op_w } |
Definition at line 153 of file arch-x86.C.
| #define Iz { am_I, op_z } |
Definition at line 154 of file arch-x86.C.
| #define Jb { am_J, op_b } |
Definition at line 155 of file arch-x86.C.
| #define Jv { am_J, op_v } |
Definition at line 156 of file arch-x86.C.
| #define Jz { am_J, op_z } |
Definition at line 157 of file arch-x86.C.
| #define M14 { am_M, op_14 } |
Definition at line 169 of file arch-x86.C.
| #define M512 { am_M, op_512 } |
Definition at line 166 of file arch-x86.C.
| #define Ma { am_M, op_a } |
Definition at line 158 of file arch-x86.C.
| #define Mb { am_M, op_b } |
Definition at line 159 of file arch-x86.C.
| #define Md { am_M, op_d } |
Definition at line 163 of file arch-x86.C.
| #define Mdq { am_M, op_dq } |
Definition at line 165 of file arch-x86.C.
| #define Mf { am_M, op_f } |
Definition at line 167 of file arch-x86.C.
| #define Mfd { am_M, op_dbl } |
Definition at line 168 of file arch-x86.C.
| #define Mlea { am_M, op_lea } |
Definition at line 160 of file arch-x86.C.
| #define MODRM_MOD | ( | x | ) | ((x) >> 6) |
Definition at line 4489 of file arch-x86.C.
Referenced by NS_x86::ia32_decode_modrm().
| #define MODRM_REG | ( | x | ) | (((x) & (7 << 3)) >> 3) |
Definition at line 4491 of file arch-x86.C.
Referenced by NS_x86::ia32_decode_modrm().
| #define MODRM_RM | ( | x | ) | ((x) & 7) |
Definition at line 4490 of file arch-x86.C.
Referenced by NS_x86::ia32_decode_modrm().
| #define MODRM_SET_MOD | ( | x, | |||
| y | ) | ((x) |= ((y) << 6)) |
Definition at line 4492 of file arch-x86.C.
| #define MODRM_SET_REG | ( | x, | |||
| y | ) | ((x) |= ((y) << 3)) |
Definition at line 4494 of file arch-x86.C.
| #define MODRM_SET_RM | ( | x, | |||
| y | ) | ((x) |= (y)) |
Definition at line 4493 of file arch-x86.C.
| #define Mp { am_M, op_p } |
Definition at line 161 of file arch-x86.C.
| #define Mq { am_M, op_q } |
Definition at line 164 of file arch-x86.C.
| #define Ms { am_M, op_s } |
Definition at line 162 of file arch-x86.C.
| #define Ob { am_O, op_b } |
Definition at line 170 of file arch-x86.C.
| #define Ov { am_O, op_v } |
Definition at line 171 of file arch-x86.C.
| #define Pd { am_P, op_d } |
Definition at line 172 of file arch-x86.C.
| #define Pdq { am_P, op_dq } |
Definition at line 173 of file arch-x86.C.
| #define Ppi { am_P, op_pi } |
Definition at line 174 of file arch-x86.C.
| #define Pq { am_P, op_q } |
Definition at line 175 of file arch-x86.C.
| #define Qd { am_Q, op_d } |
Definition at line 177 of file arch-x86.C.
| #define Qdq { am_Q, op_dq } |
Definition at line 176 of file arch-x86.C.
| #define Qpi { am_Q, op_pi } |
Definition at line 178 of file arch-x86.C.
| #define Qq { am_Q, op_q } |
Definition at line 179 of file arch-x86.C.
| #define rAX { am_reg, x86_64::irax } |
Definition at line 260 of file arch-x86.C.
| #define rBP { am_reg, x86_64::irbp } |
Definition at line 265 of file arch-x86.C.
| #define rBX { am_reg, x86_64::irbx } |
Definition at line 261 of file arch-x86.C.
| #define rCX { am_reg, x86_64::ircx } |
Definition at line 262 of file arch-x86.C.
| #define Rd { am_R, op_d } |
Definition at line 180 of file arch-x86.C.
| #define rDI { am_reg, x86_64::irdi } |
Definition at line 267 of file arch-x86.C.
| #define rDX { am_reg, x86_64::irdx } |
Definition at line 263 of file arch-x86.C.
| #define REX_B | ( | x | ) | ((x) & 0x1) |
Definition at line 5210 of file arch-x86.C.
Referenced by NS_x86::ia32_decode_rex().
| #define REX_INIT | ( | x | ) | ((x) = 0x40) |
Definition at line 5212 of file arch-x86.C.
| #define REX_ISREX | ( | x | ) | (((x) >> 4) == 4) |
Definition at line 5127 of file arch-x86.C.
Referenced by NS_x86::ia32_decode_prefixes(), and NS_x86::ia32_decode_rex().
| #define REX_R | ( | x | ) | ((x) & 0x4) |
Definition at line 5208 of file arch-x86.C.
Referenced by NS_x86::ia32_decode_rex().
| #define REX_SET_B | ( | x, | |||
| v | ) | ((x) |= ((v) ? 0x1 : 0)) |
Definition at line 5216 of file arch-x86.C.
| #define REX_SET_R | ( | x, | |||
| v | ) | ((x) |= ((v) ? 0x4 : 0)) |
Definition at line 5214 of file arch-x86.C.
| #define REX_SET_W | ( | x, | |||
| v | ) | ((x) |= ((v) ? 0x8 : 0)) |
Definition at line 5213 of file arch-x86.C.
| #define REX_SET_X | ( | x, | |||
| v | ) | ((x) |= ((v) ? 0x2 : 0)) |
Definition at line 5215 of file arch-x86.C.
| #define REX_W | ( | x | ) | ((x) & 0x8) |
Definition at line 5207 of file arch-x86.C.
Referenced by NS_x86::ia32_decode_rex().
| #define REX_X | ( | x | ) | ((x) & 0x2) |
Definition at line 5209 of file arch-x86.C.
Referenced by NS_x86::ia32_decode_rex().
| #define RMb { am_RM, op_b } |
Definition at line 181 of file arch-x86.C.
| #define RMw { am_RM, op_w } |
Definition at line 182 of file arch-x86.C.
| #define rSI { am_reg, x86_64::irsi } |
Definition at line 266 of file arch-x86.C.
| #define rSP { am_reg, x86_64::irsp } |
Definition at line 264 of file arch-x86.C.
| #define SIB_SET_INDEX | ( | x, | |||
| y | ) | ((x) |= (((y) & 7) << 3)) |
Definition at line 5825 of file arch-x86.C.
| #define SIB_SET_REG | ( | x, | |||
| y | ) | ((x) |= ((y) & 7)) |
Definition at line 5824 of file arch-x86.C.
| #define SIB_SET_SS | ( | x, | |||
| y | ) | ((x) | (((y) & 3) << 6)) |
Definition at line 5826 of file arch-x86.C.
| #define SS { am_reg, x86::iss } |
Definition at line 249 of file arch-x86.C.
| #define ST0 { am_reg, x86::ist0 } |
Definition at line 268 of file arch-x86.C.
| #define ST1 { am_reg, x86::ist1 } |
Definition at line 269 of file arch-x86.C.
| #define ST2 { am_reg, x86::ist2 } |
Definition at line 270 of file arch-x86.C.
| #define ST3 { am_reg, x86::ist3 } |
Definition at line 271 of file arch-x86.C.
| #define ST4 { am_reg, x86::ist4 } |
Definition at line 272 of file arch-x86.C.
| #define ST5 { am_reg, x86::ist5 } |
Definition at line 273 of file arch-x86.C.
| #define ST6 { am_reg, x86::ist6 } |
Definition at line 274 of file arch-x86.C.
| #define ST7 { am_reg, x86::ist7 } |
Definition at line 275 of file arch-x86.C.
| #define STHa { am_stackH, op_allgprs } |
Definition at line 214 of file arch-x86.C.
| #define STHb { am_stackH, op_b } |
Definition at line 206 of file arch-x86.C.
| #define STHd { am_stackH, op_d } |
Definition at line 212 of file arch-x86.C.
| #define STHv { am_stackH, op_v } |
Definition at line 208 of file arch-x86.C.
| #define STHw { am_stackH, op_w } |
Definition at line 210 of file arch-x86.C.
| #define STKa { am_stack, op_allgprs } |
Definition at line 221 of file arch-x86.C.
| #define STKb { am_stack, op_b } |
Definition at line 217 of file arch-x86.C.
| #define STKd { am_stack, op_d } |
Definition at line 220 of file arch-x86.C.
| #define STKv { am_stack, op_v } |
Definition at line 218 of file arch-x86.C.
| #define STKw { am_stack, op_w } |
Definition at line 219 of file arch-x86.C.
| #define STPa { am_stackP, op_allgprs } |
Definition at line 215 of file arch-x86.C.
| #define STPb { am_stackP, op_b } |
Definition at line 207 of file arch-x86.C.
| #define STPd { am_stackP, op_d } |
Definition at line 213 of file arch-x86.C.
| #define STPv { am_stackP, op_v } |
Definition at line 209 of file arch-x86.C.
| #define STPw { am_stackP, op_w } |
Definition at line 211 of file arch-x86.C.
| #define Sw { am_S, op_w } |
Definition at line 185 of file arch-x86.C.
| #define Td { am_T, op_d } |
Definition at line 183 of file arch-x86.C.
| #define UMd { am_UM, op_d } |
Definition at line 184 of file arch-x86.C.
| #define Vd { am_V, op_d } |
Definition at line 186 of file arch-x86.C.
| #define Vdq { am_V, op_dq } |
Definition at line 187 of file arch-x86.C.
| #define Vpd { am_V, op_pd } |
Definition at line 188 of file arch-x86.C.
| #define Vps { am_V, op_ps } |
Definition at line 189 of file arch-x86.C.
| #define Vq { am_V, op_q } |
Definition at line 190 of file arch-x86.C.
| #define VRdq { am_VR, op_dq } |
Definition at line 192 of file arch-x86.C.
| #define VRq { am_VR, op_q } |
Definition at line 191 of file arch-x86.C.
| #define Vsd { am_V, op_sd } |
Definition at line 194 of file arch-x86.C.
| #define Vss { am_V, op_ss } |
Definition at line 193 of file arch-x86.C.
| #define Wdq { am_W, op_dq } |
Definition at line 195 of file arch-x86.C.
| #define Wpd { am_W, op_pd } |
Definition at line 196 of file arch-x86.C.
| #define Wps { am_W, op_ps } |
Definition at line 197 of file arch-x86.C.
| #define Wq { am_W, op_q } |
Definition at line 198 of file arch-x86.C.
| #define Ws { am_W, op_s } |
Definition at line 199 of file arch-x86.C.
| #define Wsd { am_W, op_sd } |
Definition at line 200 of file arch-x86.C.
| #define Wss { am_W, op_ss } |
Definition at line 201 of file arch-x86.C.
| #define Xb { am_X, op_b } |
Definition at line 202 of file arch-x86.C.
| #define Xv { am_X, op_v } |
Definition at line 203 of file arch-x86.C.
| #define Yb { am_Y, op_b } |
Definition at line 204 of file arch-x86.C.
| #define Yv { am_Y, op_v } |
Definition at line 205 of file arch-x86.C.
| #define Zz { 0, 0 } |
Definition at line 131 of file arch-x86.C.
1.6.1