arch-x86.C File Reference

#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 Documentation

#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) >> 6)

Definition at line 4489 of file arch-x86.C.

Referenced by NS_x86::ia32_decode_modrm().

#define MODRM_REG (  )     (((x) & (7 << 3)) >> 3)

Definition at line 4491 of file arch-x86.C.

Referenced by NS_x86::ia32_decode_modrm().

#define MODRM_RM (  )     ((x) & 7)

Definition at line 4490 of file arch-x86.C.

Referenced by NS_x86::ia32_decode_modrm().

#define MODRM_SET_MOD ( x,
 )     ((x) |= ((y) << 6))

Definition at line 4492 of file arch-x86.C.

#define MODRM_SET_REG ( x,
 )     ((x) |= ((y) << 3))

Definition at line 4494 of file arch-x86.C.

#define MODRM_SET_RM ( x,
 )     ((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) & 0x1)

Definition at line 5210 of file arch-x86.C.

Referenced by NS_x86::ia32_decode_rex().

#define REX_INIT (  )     ((x) = 0x40)

Definition at line 5212 of file arch-x86.C.

#define REX_ISREX (  )     (((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) & 0x4)

Definition at line 5208 of file arch-x86.C.

Referenced by NS_x86::ia32_decode_rex().

#define REX_SET_B ( x,
 )     ((x) |= ((v) ? 0x1 : 0))

Definition at line 5216 of file arch-x86.C.

#define REX_SET_R ( x,
 )     ((x) |= ((v) ? 0x4 : 0))

Definition at line 5214 of file arch-x86.C.

#define REX_SET_W ( x,
 )     ((x) |= ((v) ? 0x8 : 0))

Definition at line 5213 of file arch-x86.C.

#define REX_SET_X ( x,
 )     ((x) |= ((v) ? 0x2 : 0))

Definition at line 5215 of file arch-x86.C.

#define REX_W (  )     ((x) & 0x8)

Definition at line 5207 of file arch-x86.C.

Referenced by NS_x86::ia32_decode_rex().

#define REX_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,
 )     ((x) |= (((y) & 7) << 3))

Definition at line 5825 of file arch-x86.C.

#define SIB_SET_REG ( x,
 )     ((x) |= ((y) & 7))

Definition at line 5824 of file arch-x86.C.

#define SIB_SET_SS ( x,
 )     ((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.

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 12 Jul 2013 for SymtabAPI by  doxygen 1.6.1