Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

x86opc.h File Reference

#include "common.h"

Go to the source code of this file.

Classes

union  int_or_ptr
struct  x86_insn_op
struct  x86opc_finsn
struct  x86opc_insn
struct  x86opc_insn_op
struct  x86opc_insn_op_special

Defines

#define X86_PREFIX_NO   -1
#define X86_PREFIX_LOCK   0
#define X86_PREFIX_ES   0
#define X86_PREFIX_CS   1
#define X86_PREFIX_SS   2
#define X86_PREFIX_DS   3
#define X86_PREFIX_FS   4
#define X86_PREFIX_GS   5
#define X86_PREFIX_REPNZ   0
#define X86_PREFIX_REPZ   1
#define X86_OPSIZEUNKNOWN   -1
#define X86_OPSIZE16   0
#define X86_OPSIZE32   1
#define X86_ADDRSIZEUNKNOWN   -1
#define X86_ADDRSIZE16   0
#define X86_ADDRSIZE32   1
#define X86_OPTYPE_EMPTY   0
#define X86_OPTYPE_IMM   1
#define X86_OPTYPE_REG   2
#define X86_OPTYPE_SEG   3
#define X86_OPTYPE_MEM   4
#define X86_OPTYPE_CRX   5
#define X86_OPTYPE_DRX   6
#define X86_OPTYPE_TRX   7
#define X86_OPTYPE_STX   8
#define X86_OPTYPE_MMX   9
#define X86_OPTYPE_FARPTR   10
#define X86_OPTYPE_USER   32
#define TYPE_0   0
#define TYPE_A   1
#define TYPE_C   2
#define TYPE_D   3
#define TYPE_E   4
#define TYPE_G   5
#define TYPE_Is   6
#define TYPE_I   7
#define TYPE_Ix   8
#define TYPE_J   9
#define TYPE_M   10
#define TYPE_O   11
#define TYPE_P   12
#define TYPE_Q   13
#define TYPE_R   14
#define TYPE_Rx   15
#define TYPE_S   16
#define TYPE_Sx   17
#define TYPE_T   18
#define TYPE_F   19
#define TYPE_Fx   20
#define SPECIAL_TYPE_INVALID   0
#define SPECIAL_TYPE_PREFIX   1
#define SPECIAL_TYPE_GROUP   2
#define SPECIAL_TYPE_FGROUP   3
#define SIZE_0   '0'
#define SIZE_B   'b'
#define SIZE_W   'w'
#define SIZE_D   'd'
#define SIZE_Q   'q'
#define SIZE_C   'c'
#define SIZE_V   'v'
#define SIZE_P   'p'
#define SIZE_S   's'
#define SIZE_L   'l'
#define SIZE_T   't'
#define SIZE_A   'a'
#define X86_REG_INVALID   -2
#define X86_REG_NO   -1
#define X86_REG_AX   0
#define X86_REG_CX   1
#define X86_REG_DX   2
#define X86_REG_BX   3
#define X86_REG_SP   4
#define X86_REG_BP   5
#define X86_REG_SI   6
#define X86_REG_DI   7
#define X86_GROUPS   20

Variables

char * x86_regs [3][8]
char * x86_segs [8]
x86opc_insn x86_insns [256]
x86opc_insn x86_insns_ext [256]
x86opc_insn x86_group_insns [X86_GROUPS][8]
x86opc_insn x86_modfloat_group_insns [8][8]
x86opc_finsn x86_float_group_insns [8][8]


Define Documentation

#define SIZE_0   '0'
 

Definition at line 126 of file x86opc.h.

#define SIZE_A   'a'
 

Definition at line 137 of file x86opc.h.

Referenced by x86asm::esizeaddr().

#define SIZE_B   'b'
 

Definition at line 127 of file x86opc.h.

Referenced by x86dis::esizeaddr(), x86asm::esizeaddr(), x86dis::esizeop(), and x86asm::esizeop().

#define SIZE_C   'c'
 

Definition at line 131 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86dis::esizeaddr(), x86asm::esizeaddr(), x86dis::esizeop(), and x86asm::esizeop().

#define SIZE_D   'd'
 

Definition at line 129 of file x86opc.h.

Referenced by x86dis::esizeaddr(), x86asm::esizeaddr(), x86dis::esizeop(), and x86asm::esizeop().

#define SIZE_L   'l'
 

Definition at line 135 of file x86opc.h.

Referenced by x86dis::esizeaddr(), x86dis::esizeop(), x86asm::esizeop(), x86asm::flsz2hsz(), and x86dis::isfloat().

#define SIZE_P   'p'
 

Definition at line 133 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::encode_insn(), x86dis::esizeaddr(), x86asm::esizeaddr(), x86dis::esizeop(), and x86asm::esizeop().

#define SIZE_Q   'q'
 

Definition at line 130 of file x86opc.h.

Referenced by x86dis::esizeaddr(), x86asm::esizeaddr(), x86dis::esizeop(), and x86asm::esizeop().

#define SIZE_S   's'
 

Definition at line 134 of file x86opc.h.

Referenced by x86dis::esizeaddr(), x86dis::esizeop(), x86asm::esizeop(), x86asm::flsz2hsz(), and x86dis::isfloat().

#define SIZE_T   't'
 

Definition at line 136 of file x86opc.h.

Referenced by x86dis::esizeaddr(), x86dis::esizeop(), x86asm::esizeop(), x86asm::flsz2hsz(), and x86dis::isfloat().

#define SIZE_V   'v'
 

Definition at line 132 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86dis::esizeaddr(), x86asm::esizeaddr(), x86dis::esizeop(), and x86asm::esizeop().

#define SIZE_W   'w'
 

Definition at line 128 of file x86opc.h.

Referenced by x86dis::esizeaddr(), x86asm::esizeaddr(), x86dis::esizeop(), and x86asm::esizeop().

#define SPECIAL_TYPE_FGROUP   3
 

Definition at line 124 of file x86opc.h.

Referenced by x86dis::decode_insn().

#define SPECIAL_TYPE_GROUP   2
 

Definition at line 123 of file x86opc.h.

Referenced by x86dis::decode_insn(), and x86asm::match_opcodes().

#define SPECIAL_TYPE_INVALID   0
 

Definition at line 121 of file x86opc.h.

Referenced by x86dis::decode_insn().

#define SPECIAL_TYPE_PREFIX   1
 

Definition at line 122 of file x86opc.h.

Referenced by x86dis::decode_insn().

#define TYPE_0   0
 

Definition at line 97 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::encode_op(), x86asm::match_size(), and x86asm::match_type().

#define TYPE_A   1
 

Definition at line 98 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_C   2
 

Definition at line 100 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_D   3
 

Definition at line 101 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_E   4
 

Definition at line 102 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_F   19
 

Definition at line 117 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_Fx   20
 

Definition at line 118 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::encode_op(), and x86asm::match_type().

#define TYPE_G   5
 

Definition at line 103 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_I   7
 

Definition at line 105 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_Is   6
 

Definition at line 104 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::encode_op(), and x86asm::match_size().

#define TYPE_Ix   8
 

Definition at line 106 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::encode_op(), and x86asm::match_type().

#define TYPE_J   9
 

Definition at line 107 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::encode_op(), and x86asm::match_size().

#define TYPE_M   10
 

Definition at line 108 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_O   11
 

Definition at line 109 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_P   12
 

Definition at line 110 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_Q   13
 

Definition at line 111 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_R   14
 

Definition at line 112 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_Rx   15
 

Definition at line 113 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::encode_op(), and x86asm::match_type().

#define TYPE_S   16
 

Definition at line 114 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define TYPE_Sx   17
 

Definition at line 115 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::encode_op(), and x86asm::match_type().

#define TYPE_T   18
 

Definition at line 116 of file x86opc.h.

Referenced by x86dis::decode_op(), and x86asm::encode_op().

#define X86_ADDRSIZE16   0
 

Definition at line 45 of file x86opc.h.

Referenced by NEAnalyser::createAssembler(), AnalyX86Disassembler::createUnasm(), x86dis::decode_modrm(), x86dis::decode_op(), x86asm::encode_modrm(), x86asm::encode_op(), x86dis::esizeaddr(), x86asm::esizeaddr(), x86asm::match_fopcodes(), x86asm::opmem(), x86dis::prefixes(), and x86dis::str_op().

#define X86_ADDRSIZE32   1
 

Definition at line 46 of file x86opc.h.

Referenced by XBEAnalyser::createAssembler(), PEAnalyser::createAssembler(), LEAnalyser::createAssembler(), ElfAnalyser::createAssembler(), CoffAnalyser::createAssembler(), AnalyX86Disassembler::createUnasm(), x86dis::decode_op(), x86asm::encode_op(), htdisasm_init(), x86asm::match_fopcodes(), x86asm::opmem(), x86dis::prefixes(), and x86dis::str_op().

#define X86_ADDRSIZEUNKNOWN   -1
 

Definition at line 44 of file x86opc.h.

Referenced by x86asm::encode_modrm(), x86asm::match_type(), and x86asm::opmem().

#define X86_GROUPS   20
 

Definition at line 176 of file x86opc.h.

#define X86_OPSIZE16   0
 

Definition at line 41 of file x86opc.h.

Referenced by NEAnalyser::createAssembler(), AnalyX86Disassembler::createUnasm(), x86dis::esizeop(), x86asm::esizeop(), ht_disasm_viewer::handlemsg(), x86asm::immlsz2hsz(), x86asm::lsz2hsz(), x86asm::match_opcode(), x86dis::prefixes(), and x86dis::strf().

#define X86_OPSIZE32   1
 

Definition at line 42 of file x86opc.h.

Referenced by XBEAnalyser::createAssembler(), PEAnalyser::createAssembler(), LEAnalyser::createAssembler(), ElfAnalyser::createAssembler(), CoffAnalyser::createAssembler(), AnalyX86Disassembler::createUnasm(), ht_disasm_viewer::handlemsg(), htdisasm_init(), x86asm::match_opcode(), x86dis::prefixes(), and x86dis::strf().

#define X86_OPSIZEUNKNOWN   -1
 

Definition at line 40 of file x86opc.h.

#define X86_OPTYPE_CRX   5
 

Definition at line 53 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::opspecialregs(), x86dis::special_param_ambiguity(), and x86dis::str_op().

#define X86_OPTYPE_DRX   6
 

Definition at line 54 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::opspecialregs(), x86dis::special_param_ambiguity(), and x86dis::str_op().

#define X86_OPTYPE_EMPTY   0
 

Definition at line 48 of file x86opc.h.

Referenced by AnalyX86Disassembler::branchAddr(), x86dis_vxd::decode(), x86dis::decode(), x86asm::match_size(), x86asm::match_type(), and x86asm::translate_str().

#define X86_OPTYPE_FARPTR   10
 

Definition at line 58 of file x86opc.h.

Referenced by AnalyX86Disassembler::branchAddr(), x86dis::decode_op(), x86asm::encode_op(), AnalyX86Disassembler::examineOpcode(), x86asm::opfarptr(), and x86dis::str_op().

#define X86_OPTYPE_IMM   1
 

Definition at line 49 of file x86opc.h.

Referenced by AnalyX86Disassembler::branchAddr(), x86dis_vxd::decode(), x86dis::decode(), x86dis::decode_op(), AnalyX86Disassembler::examineOpcode(), x86asm::match_size(), x86asm::opimm(), x86asm::opplugimm(), srt_x86_mkvalue(), and x86dis::str_op().

#define X86_OPTYPE_MEM   4
 

Definition at line 52 of file x86opc.h.

Referenced by AnalyX86Disassembler::branchAddr(), x86dis::decode_modrm(), x86dis::decode_op(), x86asm::encode(), x86asm::encode_modrm(), AnalyX86Disassembler::examineOpcode(), x86asm::match_size(), x86asm::match_type(), x86asm::opmem(), x86dis::special_param_ambiguity(), srt_x86_lea(), srt_x86_mkdest(), srt_x86_mkvalue(), and x86dis::str_op().

#define X86_OPTYPE_MMX   9
 

Definition at line 57 of file x86opc.h.

Referenced by x86dis::decode_modrm(), x86dis::decode_op(), x86dis::special_param_ambiguity(), and x86dis::str_op().

#define X86_OPTYPE_REG   2
 

Definition at line 50 of file x86opc.h.

Referenced by x86dis::decode_modrm(), x86dis::decode_op(), x86asm::encode_modrm(), x86asm::opreg(), x86dis::special_param_ambiguity(), srt_x86_mkdest(), srt_x86_mkvalue(), and x86dis::str_op().

#define X86_OPTYPE_SEG   3
 

Definition at line 51 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::opseg(), x86dis::special_param_ambiguity(), and x86dis::str_op().

#define X86_OPTYPE_STX   8
 

Definition at line 56 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::match_size(), x86asm::opspecialregs(), x86dis::special_param_ambiguity(), and x86dis::str_op().

#define X86_OPTYPE_TRX   7
 

Definition at line 55 of file x86opc.h.

Referenced by x86dis::decode_op(), x86asm::opspecialregs(), x86dis::special_param_ambiguity(), and x86dis::str_op().

#define X86_OPTYPE_USER   32
 

Definition at line 61 of file x86opc.h.

Referenced by x86dis_vxd::decode(), and x86dis_vxd::str_op().

#define X86_PREFIX_CS   1
 

Definition at line 31 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86asm::opmem(), and x86dis::prefixes().

#define X86_PREFIX_DS   3
 

Definition at line 33 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86asm::opmem(), and x86dis::prefixes().

#define X86_PREFIX_ES   0
 

Definition at line 30 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86asm::opmem(), and x86dis::prefixes().

#define X86_PREFIX_FS   4
 

Definition at line 34 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86asm::opmem(), and x86dis::prefixes().

#define X86_PREFIX_GS   5
 

Definition at line 35 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86asm::opmem(), and x86dis::prefixes().

#define X86_PREFIX_LOCK   0
 

Definition at line 28 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86dis::prefixes(), x86dis::strf(), and x86asm::translate_str().

#define X86_PREFIX_NO   -1
 

Definition at line 26 of file x86opc.h.

Referenced by x86dis_vxd::decode(), x86dis::decode(), x86dis::prefixes(), x86dis::str_op(), and x86asm::translate_str().

#define X86_PREFIX_REPNZ   0
 

Definition at line 37 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86dis::prefixes(), x86dis::strf(), and x86asm::translate_str().

#define X86_PREFIX_REPZ   1
 

Definition at line 38 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86dis::prefixes(), x86dis::strf(), and x86asm::translate_str().

#define X86_PREFIX_SS   2
 

Definition at line 32 of file x86opc.h.

Referenced by x86asm::encode_insn(), x86asm::opmem(), and x86dis::prefixes().

#define X86_REG_AX   0
 

Definition at line 167 of file x86opc.h.

#define X86_REG_BP   5
 

Definition at line 172 of file x86opc.h.

Referenced by x86dis::decode_sib(), and x86asm::encode_sib_v().

#define X86_REG_BX   3
 

Definition at line 170 of file x86opc.h.

#define X86_REG_CX   1
 

Definition at line 168 of file x86opc.h.

#define X86_REG_DI   7
 

Definition at line 174 of file x86opc.h.

#define X86_REG_DX   2
 

Definition at line 169 of file x86opc.h.

Referenced by srt_x86_div().

#define X86_REG_INVALID   -2
 

Definition at line 165 of file x86opc.h.

#define X86_REG_NO   -1
 

Definition at line 166 of file x86opc.h.

Referenced by AnalyX86Disassembler::branchAddr(), x86dis::decode_modrm(), x86dis::decode_op(), x86dis::decode_sib(), x86asm::encode_op(), x86asm::encode_sib_v(), AnalyX86Disassembler::examineOpcode(), x86asm::opmem(), srt_x86_mkaddr(), and x86dis::str_op().

#define X86_REG_SI   6
 

Definition at line 173 of file x86opc.h.

#define X86_REG_SP   4
 

Definition at line 171 of file x86opc.h.

Referenced by x86asm::encode_sib_v(), srt_x86_pop(), and srt_x86_push().


Variable Documentation

x86opc_finsn x86_float_group_insns[8][8]
 

Definition at line 185 of file x86opc.h.

Referenced by x86dis::decode_insn(), and x86asm::match_fopcodes().

x86opc_insn x86_group_insns[X86_GROUPS][8]
 

Definition at line 182 of file x86opc.h.

Referenced by x86dis::decode_insn(), and x86asm::match_opcodes().

x86opc_insn x86_insns[256]
 

Definition at line 180 of file x86opc.h.

Referenced by x86dis::decode(), and x86asm::encode().

x86opc_insn x86_insns_ext[256]
 

Definition at line 181 of file x86opc.h.

Referenced by x86dis::decode_insn(), and x86asm::encode().

x86opc_insn x86_modfloat_group_insns[8][8]
 

Definition at line 184 of file x86opc.h.

Referenced by x86dis::decode_insn(), and x86asm::match_fopcodes().

char* x86_regs[3][8]
 

Definition at line 178 of file x86opc.h.

Referenced by x86asm::opmem(), x86asm::opreg(), srt_x86_idx2reg(), and x86dis::str_op().

char* x86_segs[8]
 

Definition at line 179 of file x86opc.h.

Referenced by x86asm::opmem(), x86asm::opseg(), and x86dis::str_op().


Generated on Fri May 7 21:15:52 2004 by doxygen 1.3.5