Lines Matching refs:x86emu

1 /*	$OpenBSD: x86emu.c,v 1.9 2014/06/15 11:04:49 pirofti Exp $	*/
2 /* $NetBSD: x86emu.c,v 1.7 2009/02/03 19:26:29 joerg Exp $ */
36 __FBSDID("$FreeBSD: releng/11.0/sys/contrib/x86emu/x86emu.c 295776 2016-02-18 23:03:37Z jkim $");
38 #include <contrib/x86emu/x86emu.h>
39 #include <contrib/x86emu/x86emu_regs.h>
41 static void x86emu_intr_raise (struct x86emu *, uint8_t type);
43 static void x86emu_exec_one_byte(struct x86emu *);
44 static void x86emu_exec_two_byte(struct x86emu *);
46 static void fetch_decode_modrm (struct x86emu *);
47 static uint8_t fetch_byte_imm (struct x86emu *);
48 static uint16_t fetch_word_imm (struct x86emu *);
49 static uint32_t fetch_long_imm (struct x86emu *);
50 static uint8_t fetch_data_byte (struct x86emu *, uint32_t offset);
51 static uint8_t fetch_byte (struct x86emu *, u_int segment, uint32_t offset);
52 static uint16_t fetch_data_word (struct x86emu *, uint32_t offset);
53 static uint16_t fetch_word (struct x86emu *, uint32_t segment, uint32_t offset);
54 static uint32_t fetch_data_long (struct x86emu *, uint32_t offset);
55 static uint32_t fetch_long (struct x86emu *, uint32_t segment, uint32_t offset);
56 static void store_data_byte (struct x86emu *, uint32_t offset, uint8_t val);
57 static void store_byte (struct x86emu *, uint32_t segment, uint32_t offset, uint8_t val);
58 static void store_data_word (struct x86emu *, uint32_t offset, uint16_t val);
59 static void store_word (struct x86emu *, uint32_t segment, uint32_t offset, uint16_t val);
60 static void store_data_long (struct x86emu *, uint32_t offset, uint32_t val);
61 static void store_long (struct x86emu *, uint32_t segment, uint32_t offset, uint32_t val);
62 static uint8_t* decode_rl_byte_register(struct x86emu *);
63 static uint16_t* decode_rl_word_register(struct x86emu *);
64 static uint32_t* decode_rl_long_register(struct x86emu *);
65 static uint8_t* decode_rh_byte_register(struct x86emu *);
66 static uint16_t* decode_rh_word_register(struct x86emu *);
67 static uint32_t* decode_rh_long_register(struct x86emu *);
68 static uint16_t* decode_rh_seg_register(struct x86emu *);
69 static uint32_t decode_rl_address(struct x86emu *);
71 static uint8_t decode_and_fetch_byte(struct x86emu *);
72 static uint16_t decode_and_fetch_word(struct x86emu *);
73 static uint32_t decode_and_fetch_long(struct x86emu *);
75 static uint8_t decode_and_fetch_byte_imm8(struct x86emu *, uint8_t *);
76 static uint16_t decode_and_fetch_word_imm8(struct x86emu *, uint8_t *);
77 static uint32_t decode_and_fetch_long_imm8(struct x86emu *, uint8_t *);
79 static uint16_t decode_and_fetch_word_disp(struct x86emu *, int16_t);
80 static uint32_t decode_and_fetch_long_disp(struct x86emu *, int16_t);
82 static void write_back_byte(struct x86emu *, uint8_t);
83 static void write_back_word(struct x86emu *, uint16_t);
84 static void write_back_long(struct x86emu *, uint32_t);
86 static uint16_t aaa_word (struct x86emu *, uint16_t d);
87 static uint16_t aas_word (struct x86emu *, uint16_t d);
88 static uint16_t aad_word (struct x86emu *, uint16_t d);
89 static uint16_t aam_word (struct x86emu *, uint8_t d);
90 static uint8_t adc_byte (struct x86emu *, uint8_t d, uint8_t s);
91 static uint16_t adc_word (struct x86emu *, uint16_t d, uint16_t s);
92 static uint32_t adc_long (struct x86emu *, uint32_t d, uint32_t s);
93 static uint8_t add_byte (struct x86emu *, uint8_t d, uint8_t s);
94 static uint16_t add_word (struct x86emu *, uint16_t d, uint16_t s);
95 static uint32_t add_long (struct x86emu *, uint32_t d, uint32_t s);
96 static uint8_t and_byte (struct x86emu *, uint8_t d, uint8_t s);
97 static uint16_t and_word (struct x86emu *, uint16_t d, uint16_t s);
98 static uint32_t and_long (struct x86emu *, uint32_t d, uint32_t s);
99 static uint8_t cmp_byte (struct x86emu *, uint8_t d, uint8_t s);
100 static uint16_t cmp_word (struct x86emu *, uint16_t d, uint16_t s);
101 static uint32_t cmp_long (struct x86emu *, uint32_t d, uint32_t s);
102 static void cmp_byte_no_return (struct x86emu *, uint8_t d, uint8_t s);
103 static void cmp_word_no_return (struct x86emu *, uint16_t d, uint16_t s);
104 static void cmp_long_no_return (struct x86emu *, uint32_t d, uint32_t s);
105 static uint8_t daa_byte (struct x86emu *, uint8_t d);
106 static uint8_t das_byte (struct x86emu *, uint8_t d);
107 static uint8_t dec_byte (struct x86emu *, uint8_t d);
108 static uint16_t dec_word (struct x86emu *, uint16_t d);
109 static uint32_t dec_long (struct x86emu *, uint32_t d);
110 static uint8_t inc_byte (struct x86emu *, uint8_t d);
111 static uint16_t inc_word (struct x86emu *, uint16_t d);
112 static uint32_t inc_long (struct x86emu *, uint32_t d);
113 static uint8_t or_byte (struct x86emu *, uint8_t d, uint8_t s);
114 static uint16_t or_word (struct x86emu *, uint16_t d, uint16_t s);
115 static uint32_t or_long (struct x86emu *, uint32_t d, uint32_t s);
116 static uint8_t neg_byte (struct x86emu *, uint8_t s);
117 static uint16_t neg_word (struct x86emu *, uint16_t s);
118 static uint32_t neg_long (struct x86emu *, uint32_t s);
119 static uint8_t rcl_byte (struct x86emu *, uint8_t d, uint8_t s);
120 static uint16_t rcl_word (struct x86emu *, uint16_t d, uint8_t s);
121 static uint32_t rcl_long (struct x86emu *, uint32_t d, uint8_t s);
122 static uint8_t rcr_byte (struct x86emu *, uint8_t d, uint8_t s);
123 static uint16_t rcr_word (struct x86emu *, uint16_t d, uint8_t s);
124 static uint32_t rcr_long (struct x86emu *, uint32_t d, uint8_t s);
125 static uint8_t rol_byte (struct x86emu *, uint8_t d, uint8_t s);
126 static uint16_t rol_word (struct x86emu *, uint16_t d, uint8_t s);
127 static uint32_t rol_long (struct x86emu *, uint32_t d, uint8_t s);
128 static uint8_t ror_byte (struct x86emu *, uint8_t d, uint8_t s);
129 static uint16_t ror_word (struct x86emu *, uint16_t d, uint8_t s);
130 static uint32_t ror_long (struct x86emu *, uint32_t d, uint8_t s);
131 static uint8_t shl_byte (struct x86emu *, uint8_t d, uint8_t s);
132 static uint16_t shl_word (struct x86emu *, uint16_t d, uint8_t s);
133 static uint32_t shl_long (struct x86emu *, uint32_t d, uint8_t s);
134 static uint8_t shr_byte (struct x86emu *, uint8_t d, uint8_t s);
135 static uint16_t shr_word (struct x86emu *, uint16_t d, uint8_t s);
136 static uint32_t shr_long (struct x86emu *, uint32_t d, uint8_t s);
137 static uint8_t sar_byte (struct x86emu *, uint8_t d, uint8_t s);
138 static uint16_t sar_word (struct x86emu *, uint16_t d, uint8_t s);
139 static uint32_t sar_long (struct x86emu *, uint32_t d, uint8_t s);
140 static uint16_t shld_word (struct x86emu *, uint16_t d, uint16_t fill, uint8_t s);
141 static uint32_t shld_long (struct x86emu *, uint32_t d, uint32_t fill, uint8_t s);
142 static uint16_t shrd_word (struct x86emu *, uint16_t d, uint16_t fill, uint8_t s);
143 static uint32_t shrd_long (struct x86emu *, uint32_t d, uint32_t fill, uint8_t s);
144 static uint8_t sbb_byte (struct x86emu *, uint8_t d, uint8_t s);
145 static uint16_t sbb_word (struct x86emu *, uint16_t d, uint16_t s);
146 static uint32_t sbb_long (struct x86emu *, uint32_t d, uint32_t s);
147 static uint8_t sub_byte (struct x86emu *, uint8_t d, uint8_t s);
148 static uint16_t sub_word (struct x86emu *, uint16_t d, uint16_t s);
149 static uint32_t sub_long (struct x86emu *, uint32_t d, uint32_t s);
150 static void test_byte (struct x86emu *, uint8_t d, uint8_t s);
151 static void test_word (struct x86emu *, uint16_t d, uint16_t s);
152 static void test_long (struct x86emu *, uint32_t d, uint32_t s);
153 static uint8_t xor_byte (struct x86emu *, uint8_t d, uint8_t s);
154 static uint16_t xor_word (struct x86emu *, uint16_t d, uint16_t s);
155 static uint32_t xor_long (struct x86emu *, uint32_t d, uint32_t s);
156 static void imul_byte (struct x86emu *, uint8_t s);
157 static void imul_word (struct x86emu *, uint16_t s);
158 static void imul_long (struct x86emu *, uint32_t s);
159 static void mul_byte (struct x86emu *, uint8_t s);
160 static void mul_word (struct x86emu *, uint16_t s);
161 static void mul_long (struct x86emu *, uint32_t s);
162 static void idiv_byte (struct x86emu *, uint8_t s);
163 static void idiv_word (struct x86emu *, uint16_t s);
164 static void idiv_long (struct x86emu *, uint32_t s);
165 static void div_byte (struct x86emu *, uint8_t s);
166 static void div_word (struct x86emu *, uint16_t s);
167 static void div_long (struct x86emu *, uint32_t s);
168 static void ins (struct x86emu *, int size);
169 static void outs (struct x86emu *, int size);
170 static void push_word (struct x86emu *, uint16_t w);
171 static void push_long (struct x86emu *, uint32_t w);
172 static uint16_t pop_word (struct x86emu *);
173 static uint32_t pop_long (struct x86emu *);
180 x86emu_intr_dispatch(struct x86emu *emu, uint8_t intno)
196 x86emu_intr_handle(struct x86emu *emu)
216 x86emu_intr_raise(struct x86emu *emu, uint8_t intrnum)
229 x86emu_exec(struct x86emu *emu)
252 x86emu_exec_call(struct x86emu *emu, uint16_t seg, uint16_t off)
263 x86emu_exec_intr(struct x86emu *emu, uint8_t intr)
282 x86emu_halt_sys(struct x86emu *emu)
300 fetch_decode_modrm(struct x86emu *emu)
321 fetch_byte_imm(struct x86emu *emu)
341 fetch_word_imm(struct x86emu *emu)
361 fetch_long_imm(struct x86emu *emu)
400 get_data_segment(struct x86emu *emu)
438 fetch_data_byte(struct x86emu *emu, uint32_t offset)
453 fetch_data_word(struct x86emu *emu, uint32_t offset)
468 fetch_data_long(struct x86emu *emu, uint32_t offset)
484 fetch_byte(struct x86emu *emu, uint32_t segment, uint32_t offset)
500 fetch_word(struct x86emu *emu, uint32_t segment, uint32_t offset)
516 fetch_long(struct x86emu *emu, uint32_t segment, uint32_t offset)
533 store_data_byte(struct x86emu *emu, uint32_t offset, uint8_t val)
550 store_data_word(struct x86emu *emu, uint32_t offset, uint16_t val)
567 store_data_long(struct x86emu *emu, uint32_t offset, uint32_t val)
584 store_byte(struct x86emu *emu, uint32_t segment, uint32_t offset, uint8_t val)
601 store_word(struct x86emu *emu, uint32_t segment, uint32_t offset, uint16_t val)
618 store_long(struct x86emu *emu, uint32_t segment, uint32_t offset, uint32_t val)
635 decode_rm_byte_register(struct x86emu *emu, int reg)
660 decode_rl_byte_register(struct x86emu *emu)
666 decode_rh_byte_register(struct x86emu *emu)
683 decode_rm_word_register(struct x86emu *emu, int reg)
708 decode_rl_word_register(struct x86emu *emu)
714 decode_rh_word_register(struct x86emu *emu)
731 decode_rm_long_register(struct x86emu *emu, int reg)
756 decode_rl_long_register(struct x86emu *emu)
762 decode_rh_long_register(struct x86emu *emu)
781 decode_rh_seg_register(struct x86emu *emu)
805 decode_sib_address(struct x86emu *emu, int sib, int mod)
884 decode_rl_address(struct x86emu *emu)
976 decode_and_fetch_byte(struct x86emu *emu)
987 decode_and_fetch_word_disp(struct x86emu *emu, int16_t disp)
1001 decode_and_fetch_long_disp(struct x86emu *emu, int16_t disp)
1015 decode_and_fetch_word(struct x86emu *emu)
1021 decode_and_fetch_long(struct x86emu *emu)
1027 decode_and_fetch_byte_imm8(struct x86emu *emu, uint8_t *imm)
1040 decode_and_fetch_word_imm8(struct x86emu *emu, uint8_t *imm)
1053 decode_and_fetch_long_imm8(struct x86emu *emu, uint8_t *imm)
1066 write_back_byte(struct x86emu *emu, uint8_t val)
1075 write_back_word(struct x86emu *emu, uint16_t val)
1084 write_back_long(struct x86emu *emu, uint32_t val)
1093 common_inc_word_long(struct x86emu *emu, union x86emu_register *reg)
1102 common_dec_word_long(struct x86emu *emu, union x86emu_register *reg)
1111 common_binop_byte_rm_r(struct x86emu *emu,
1112 uint8_t (*binop)(struct x86emu *, uint8_t, uint8_t))
1132 common_binop_ns_byte_rm_r(struct x86emu *emu,
1133 void (*binop)(struct x86emu *, uint8_t, uint8_t))
1150 common_binop_word_rm_r(struct x86emu *emu,
1151 uint16_t (*binop)(struct x86emu *, uint16_t, uint16_t))
1170 common_binop_byte_r_rm(struct x86emu *emu,
1171 uint8_t (*binop)(struct x86emu *, uint8_t, uint8_t))
1188 common_binop_long_rm_r(struct x86emu *emu,
1189 uint32_t (*binop)(struct x86emu *, uint32_t, uint32_t))
1208 common_binop_word_long_rm_r(struct x86emu *emu,
1209 uint16_t (*binop16)(struct x86emu *, uint16_t, uint16_t),
1210 uint32_t (*binop32)(struct x86emu *, uint32_t, uint32_t))
1219 common_binop_ns_word_rm_r(struct x86emu *emu,
1220 void (*binop)(struct x86emu *, uint16_t, uint16_t))
1238 common_binop_ns_long_rm_r(struct x86emu *emu,
1239 void (*binop)(struct x86emu *, uint32_t, uint32_t))
1256 common_binop_ns_word_long_rm_r(struct x86emu *emu,
1257 void (*binop16)(struct x86emu *, uint16_t, uint16_t),
1258 void (*binop32)(struct x86emu *, uint32_t, uint32_t))
1267 common_binop_long_r_rm(struct x86emu *emu,
1268 uint32_t (*binop)(struct x86emu *, uint32_t, uint32_t))
1285 common_binop_word_r_rm(struct x86emu *emu,
1286 uint16_t (*binop)(struct x86emu *, uint16_t, uint16_t))
1303 common_binop_word_long_r_rm(struct x86emu *emu,
1304 uint16_t (*binop16)(struct x86emu *, uint16_t, uint16_t),
1305 uint32_t (*binop32)(struct x86emu *, uint32_t, uint32_t))
1314 common_binop_byte_imm(struct x86emu *emu,
1315 uint8_t (*binop)(struct x86emu *, uint8_t, uint8_t))
1324 common_binop_word_long_imm(struct x86emu *emu,
1325 uint16_t (*binop16)(struct x86emu *, uint16_t, uint16_t),
1326 uint32_t (*binop32)(struct x86emu *, uint32_t, uint32_t))
1342 common_push_word_long(struct x86emu *emu, union x86emu_register *reg)
1351 common_pop_word_long(struct x86emu *emu, union x86emu_register *reg)
1360 common_imul_long_IMM(struct x86emu *emu, int byte_imm)
1393 common_imul_word_IMM(struct x86emu *emu, int byte_imm)
1426 common_imul_imm(struct x86emu *emu, int byte_imm)
1435 common_jmp_near(struct x86emu *emu, int cond)
1447 common_load_far_pointer(struct x86emu *emu, uint16_t *seg)
1469 x86emuOp_cmp_byte_R_RM(struct x86emu *emu)
1485 x86emuOp32_cmp_word_R_RM(struct x86emu *emu)
1496 x86emuOp16_cmp_word_R_RM(struct x86emu *emu)
1507 x86emuOp_cmp_word_R_RM(struct x86emu *emu)
1520 x86emuOp_cmp_byte_AL_IMM(struct x86emu *emu)
1533 x86emuOp32_cmp_word_AX_IMM(struct x86emu *emu)
1542 x86emuOp16_cmp_word_AX_IMM(struct x86emu *emu)
1551 x86emuOp_cmp_word_AX_IMM(struct x86emu *emu)
1564 x86emuOp_push_all(struct x86emu *emu)
1596 x86emuOp_pop_all(struct x86emu *emu)
1627 x86emuOp_push_word_IMM(struct x86emu *emu)
1647 x86emuOp_push_byte_IMM(struct x86emu *emu)
1664 x86emuOp_ins_word(struct x86emu *emu)
1678 x86emuOp_outs_word(struct x86emu *emu)
1692 x86emuOp_jump_near_L(struct x86emu *emu)
1707 x86emuOp_jump_near_NL(struct x86emu *emu)
1722 x86emuOp_jump_near_LE(struct x86emu *emu)
1737 x86emuOp_jump_near_NLE(struct x86emu *emu)
1748 uint8_t(*const opc80_byte_operation[]) (struct x86emu *, uint8_t d, uint8_t s) =
1765 x86emuOp_opc80_byte_RM_IMM(struct x86emu *emu)
1784 (struct x86emu *, uint16_t d, uint16_t s) =
1798 (struct x86emu *, uint32_t d, uint32_t s) =
1815 x86emuOp32_opc81_word_RM_IMM(struct x86emu *emu)
1833 x86emuOp16_opc81_word_RM_IMM(struct x86emu *emu)
1851 x86emuOp_opc81_word_RM_IMM(struct x86emu *emu)
1861 (struct x86emu *, uint8_t s, uint8_t d) =
1878 x86emuOp_opc82_byte_RM_IMM(struct x86emu *emu)
1898 (struct x86emu *, uint16_t s, uint16_t d) =
1912 (struct x86emu *, uint32_t s, uint32_t d) =
1929 x86emuOp32_opc83_word_RM_IMM(struct x86emu *emu)
1942 x86emuOp16_opc83_word_RM_IMM(struct x86emu *emu)
1955 x86emuOp_opc83_word_RM_IMM(struct x86emu *emu)
1968 x86emuOp_xchg_byte_RM_R(struct x86emu *emu)
1986 x86emuOp32_xchg_word_RM_R(struct x86emu *emu)
2000 x86emuOp16_xchg_word_RM_R(struct x86emu *emu)
2014 x86emuOp_xchg_word_RM_R(struct x86emu *emu)
2027 x86emuOp_mov_byte_RM_R(struct x86emu *emu)
2048 x86emuOp32_mov_word_RM_R(struct x86emu *emu)
2065 x86emuOp16_mov_word_RM_R(struct x86emu *emu)
2082 x86emuOp_mov_word_RM_R(struct x86emu *emu)
2095 x86emuOp_mov_byte_R_RM(struct x86emu *emu)
2109 x86emuOp_mov_word_R_RM(struct x86emu *emu)
2131 x86emuOp_mov_word_RM_SR(struct x86emu *emu)
2152 x86emuOp_lea_word_R_M(struct x86emu *emu)
2179 x86emuOp_mov_word_SR_RM(struct x86emu *emu)
2199 x86emuOp32_pop_RM(struct x86emu *emu)
2216 x86emuOp16_pop_RM(struct x86emu *emu)
2233 x86emuOp_pop_RM(struct x86emu *emu)
2246 x86emuOp_xchg_word_AX_CX(struct x86emu *emu)
2266 x86emuOp_xchg_word_AX_DX(struct x86emu *emu)
2286 x86emuOp_xchg_word_AX_BX(struct x86emu *emu)
2306 x86emuOp_xchg_word_AX_SP(struct x86emu *emu)
2326 x86emuOp_xchg_word_AX_BP(struct x86emu *emu)
2346 x86emuOp_xchg_word_AX_SI(struct x86emu *emu)
2366 x86emuOp_xchg_word_AX_DI(struct x86emu *emu)
2386 x86emuOp_cbw(struct x86emu *emu)
2408 x86emuOp_cwd(struct x86emu *emu)
2430 x86emuOp_call_far_IMM(struct x86emu *emu)
2452 x86emuOp_pushf_word(struct x86emu *emu)
2470 x86emuOp_popf_word(struct x86emu *emu)
2484 x86emuOp_sahf(struct x86emu *emu)
2497 x86emuOp_lahf(struct x86emu *emu)
2510 x86emuOp_mov_AL_M_IMM(struct x86emu *emu)
2523 x86emuOp_mov_AX_M_IMM(struct x86emu *emu)
2540 x86emuOp_mov_M_AL_IMM(struct x86emu *emu)
2553 x86emuOp_mov_M_AX_IMM(struct x86emu *emu)
2570 x86emuOp_movs_byte(struct x86emu *emu)
2601 x86emuOp_movs_word(struct x86emu *emu)
2642 x86emuOp_cmps_byte(struct x86emu *emu)
2694 x86emuOp_cmps_word(struct x86emu *emu)
2774 x86emuOp_test_AX_IMM(struct x86emu *emu)
2788 x86emuOp_stos_byte(struct x86emu *emu)
2817 x86emuOp_stos_word(struct x86emu *emu)
2855 x86emuOp_lods_byte(struct x86emu *emu)
2883 x86emuOp_lods_word(struct x86emu *emu)
2919 x86emuOp_scas_byte(struct x86emu *emu)
2964 x86emuOp_scas_word(struct x86emu *emu)
3032 x86emuOp_mov_word_AX_IMM(struct x86emu *emu)
3045 x86emuOp_mov_word_CX_IMM(struct x86emu *emu)
3058 x86emuOp_mov_word_DX_IMM(struct x86emu *emu)
3071 x86emuOp_mov_word_BX_IMM(struct x86emu *emu)
3084 x86emuOp_mov_word_SP_IMM(struct x86emu *emu)
3097 x86emuOp_mov_word_BP_IMM(struct x86emu *emu)
3110 x86emuOp_mov_word_SI_IMM(struct x86emu *emu)
3123 x86emuOp_mov_word_DI_IMM(struct x86emu *emu)
3133 (struct x86emu *, uint8_t d, uint8_t s) =
3150 x86emuOp_opcC0_byte_RM_MEM(struct x86emu *emu)
3168 (struct x86emu *, uint16_t s, uint8_t d) =
3182 (struct x86emu *, uint32_t s, uint8_t d) =
3199 x86emuOp_opcC1_word_RM_MEM(struct x86emu *emu)
3231 x86emuOp_ret_near_IMM(struct x86emu *emu)
3245 x86emuOp_mov_byte_RM_IMM(struct x86emu *emu)
3270 x86emuOp32_mov_word_RM_IMM(struct x86emu *emu)
3291 x86emuOp16_mov_word_RM_IMM(struct x86emu *emu)
3312 x86emuOp_mov_word_RM_IMM(struct x86emu *emu)
3325 x86emuOp_enter(struct x86emu *emu)
3352 x86emuOp_leave(struct x86emu *emu)
3363 x86emuOp_ret_far_IMM(struct x86emu *emu)
3378 x86emuOp_ret_far(struct x86emu *emu)
3389 x86emuOp_int3(struct x86emu *emu)
3399 x86emuOp_int_IMM(struct x86emu *emu)
3412 x86emuOp_into(struct x86emu *emu)
3423 x86emuOp_iret(struct x86emu *emu)
3435 x86emuOp_opcD0_byte_RM_1(struct x86emu *emu)
3450 x86emuOp_opcD1_word_RM_1(struct x86emu *emu)
3474 x86emuOp_opcD2_byte_RM_CL(struct x86emu *emu)
3490 x86emuOp_opcD3_word_RM_CL(struct x86emu *emu)
3516 x86emuOp_aam(struct x86emu *emu)
3534 x86emuOp_aad(struct x86emu *emu)
3553 x86emuOp_xlat(struct x86emu *emu)
3563 x86emuOp_esc_coprocess_d8(struct x86emu *emu)
3568 x86emuOp_esc_coprocess_d9(struct x86emu *emu)
3576 x86emuOp_esc_coprocess_da(struct x86emu *emu)
3584 x86emuOp_esc_coprocess_db(struct x86emu *emu)
3592 x86emuOp_esc_coprocess_dc(struct x86emu *emu)
3600 x86emuOp_esc_coprocess_dd(struct x86emu *emu)
3608 x86emuOp_esc_coprocess_de(struct x86emu *emu)
3616 x86emuOp_esc_coprocess_df(struct x86emu *emu)
3629 x86emuOp_loopne(struct x86emu *emu)
3645 x86emuOp_loope(struct x86emu *emu)
3661 x86emuOp_loop(struct x86emu *emu)
3677 x86emuOp_jcxz(struct x86emu *emu)
3694 x86emuOp_in_byte_AL_IMM(struct x86emu *emu)
3707 x86emuOp_in_word_AX_IMM(struct x86emu *emu)
3724 x86emuOp_out_byte_IMM_AL(struct x86emu *emu)
3737 x86emuOp_out_word_IMM_AX(struct x86emu *emu)
3754 x86emuOp_call_near_IMM(struct x86emu *emu)
3776 x86emuOp_jump_near_IMM(struct x86emu *emu)
3790 x86emuOp_jump_far_IMM(struct x86emu *emu)
3805 x86emuOp_jump_byte_IMM(struct x86emu *emu)
3820 x86emuOp_in_byte_AL_DX(struct x86emu *emu)
3830 x86emuOp_in_word_AX_DX(struct x86emu *emu)
3844 x86emuOp_out_byte_DX_AL(struct x86emu *emu)
3854 x86emuOp_out_word_DX_AX(struct x86emu *emu)
3868 x86emuOp_lock(struct x86emu *emu)
3879 x86emuOp_cmc(struct x86emu *emu)
3892 x86emuOp_opcF6_byte_RM(struct x86emu *emu)
3937 x86emuOp32_opcF7_word_RM(struct x86emu *emu)
3986 x86emuOp16_opcF7_word_RM(struct x86emu *emu)
4035 x86emuOp_opcF7_word_RM(struct x86emu *emu)
4048 x86emuOp_opcFE_byte_RM(struct x86emu *emu)
4088 x86emuOp32_opcFF_word_RM(struct x86emu *emu)
4126 x86emuOp16_opcFF_word_RM(struct x86emu *emu)
4165 x86emuOp_opcFF_word_RM(struct x86emu *emu)
4219 x86emu_exec_one_byte(struct x86emu * emu)
5026 common_jmp_long(struct x86emu *emu, int cond)
5037 common_set_byte(struct x86emu *emu, int cond)
5054 common_bitstring32(struct x86emu *emu, int op)
5082 common_bitstring16(struct x86emu *emu, int op)
5110 common_bitstring(struct x86emu *emu, int op)
5119 common_bitsearch32(struct x86emu *emu, int diff)
5134 common_bitsearch16(struct x86emu *emu, int diff)
5149 common_bitsearch(struct x86emu *emu, int diff)
5158 common_shift32(struct x86emu *emu, int shift_left, int use_cl)
5179 common_shift16(struct x86emu *emu, int shift_left, int use_cl)
5200 common_shift(struct x86emu *emu, int shift_left, int use_cl)
5219 x86emuOp2_rdtsc(struct x86emu *emu)
5230 x86emuOp2_push_FS(struct x86emu *emu)
5240 x86emuOp2_pop_FS(struct x86emu *emu)
5261 x86emuOp2_cpuid(struct x86emu *emu)
5298 x86emuOp2_bt_R(struct x86emu *emu)
5308 x86emuOp2_shld_IMM(struct x86emu *emu)
5318 x86emuOp2_shld_CL(struct x86emu *emu)
5328 x86emuOp2_push_GS(struct x86emu *emu)
5338 x86emuOp2_pop_GS(struct x86emu *emu)
5348 x86emuOp2_bts_R(struct x86emu *emu)
5358 x86emuOp2_shrd_IMM(struct x86emu *emu)
5368 x86emuOp2_shrd_CL(struct x86emu *emu)
5378 x86emuOp2_32_imul_R_RM(struct x86emu *emu)
5398 x86emuOp2_16_imul_R_RM(struct x86emu *emu)
5418 x86emuOp2_imul_R_RM(struct x86emu *emu)
5431 x86emuOp2_lss_R_IMM(struct x86emu *emu)
5441 x86emuOp2_btr_R(struct x86emu *emu)
5451 x86emuOp2_lfs_R_IMM(struct x86emu *emu)
5461 x86emuOp2_lgs_R_IMM(struct x86emu *emu)
5471 x86emuOp2_32_movzx_byte_R_RM(struct x86emu *emu)
5481 x86emuOp2_16_movzx_byte_R_RM(struct x86emu *emu)
5491 x86emuOp2_movzx_byte_R_RM(struct x86emu *emu)
5504 x86emuOp2_movzx_word_R_RM(struct x86emu *emu)
5518 x86emuOp2_32_btX_I(struct x86emu *emu)
5547 x86emuOp2_16_btX_I(struct x86emu *emu)
5576 x86emuOp2_btX_I(struct x86emu *emu)
5589 x86emuOp2_btc_R(struct x86emu *emu)
5599 x86emuOp2_bsf(struct x86emu *emu)
5609 x86emuOp2_bsr(struct x86emu *emu)
5619 x86emuOp2_32_movsx_byte_R_RM(struct x86emu *emu)
5629 x86emuOp2_16_movsx_byte_R_RM(struct x86emu *emu)
5639 x86emuOp2_movsx_byte_R_RM(struct x86emu *emu)
5652 x86emuOp2_movsx_word_R_RM(struct x86emu *emu)
5662 x86emu_exec_two_byte(struct x86emu * emu)
5979 aaa_word(struct x86emu *emu, uint16_t d)
6003 aas_word(struct x86emu *emu, uint16_t d)
6027 aad_word(struct x86emu *emu, uint16_t d)
6050 aam_word(struct x86emu *emu, uint8_t d)
6072 adc_byte(struct x86emu *emu, uint8_t d, uint8_t s)
6099 adc_word(struct x86emu *emu, uint16_t d, uint16_t s)
6126 adc_long(struct x86emu *emu, uint32_t d, uint32_t s)
6159 add_byte(struct x86emu *emu, uint8_t d, uint8_t s)
6182 add_word(struct x86emu *emu, uint16_t d, uint16_t s)
6205 add_long(struct x86emu *emu, uint32_t d, uint32_t s)
6234 and_byte(struct x86emu *emu, uint8_t d, uint8_t s)
6255 and_word(struct x86emu *emu, uint16_t d, uint16_t s)
6276 and_long(struct x86emu *emu, uint32_t d, uint32_t s)
6297 cmp_byte(struct x86emu *emu, uint8_t d, uint8_t s)
6317 cmp_byte_no_return(struct x86emu *emu, uint8_t d, uint8_t s)
6327 cmp_word(struct x86emu *emu, uint16_t d, uint16_t s)
6346 cmp_word_no_return(struct x86emu *emu, uint16_t d, uint16_t s)
6356 cmp_long(struct x86emu *emu, uint32_t d, uint32_t s)
6375 cmp_long_no_return(struct x86emu *emu, uint32_t d, uint32_t s)
6385 daa_byte(struct x86emu *emu, uint8_t d)
6407 das_byte(struct x86emu *emu, uint8_t d)
6428 dec_byte(struct x86emu *emu, uint8_t d)
6452 dec_word(struct x86emu *emu, uint16_t d)
6476 dec_long(struct x86emu *emu, uint32_t d)
6500 inc_byte(struct x86emu *emu, uint8_t d)
6522 inc_word(struct x86emu *emu, uint16_t d)
6544 inc_long(struct x86emu *emu, uint32_t d)
6566 or_byte(struct x86emu *emu, uint8_t d, uint8_t s)
6585 or_word(struct x86emu *emu, uint16_t d, uint16_t s)
6605 or_long(struct x86emu *emu, uint32_t d, uint32_t s)
6626 neg_byte(struct x86emu *emu, uint8_t s)
6652 neg_word(struct x86emu *emu, uint16_t s)
6679 neg_long(struct x86emu *emu, uint32_t s)
6706 rcl_byte(struct x86emu *emu, uint8_t d, uint8_t s)
6777 rcl_word(struct x86emu *emu, uint16_t d, uint8_t s)
6802 rcl_long(struct x86emu *emu, uint32_t d, uint8_t s)
6827 rcr_byte(struct x86emu *emu, uint8_t d, uint8_t s)
6905 rcr_word(struct x86emu *emu, uint16_t d, uint8_t s)
6938 rcr_long(struct x86emu *emu, uint32_t d, uint8_t s)
6972 rol_byte(struct x86emu *emu, uint8_t d, uint8_t s)
7017 rol_word(struct x86emu *emu, uint16_t d, uint8_t s)
7043 rol_long(struct x86emu *emu, uint32_t d, uint8_t s)
7069 ror_byte(struct x86emu *emu, uint8_t d, uint8_t s)
7111 ror_word(struct x86emu *emu, uint16_t d, uint8_t s)
7135 ror_long(struct x86emu *emu, uint32_t d, uint8_t s)
7159 shl_byte(struct x86emu *emu, uint8_t d, uint8_t s)
7204 shl_word(struct x86emu *emu, uint16_t d, uint8_t s)
7245 shl_long(struct x86emu *emu, uint32_t d, uint8_t s)
7283 shr_byte(struct x86emu *emu, uint8_t d, uint8_t s)
7321 shr_word(struct x86emu *emu, uint16_t d, uint8_t s)
7359 shr_long(struct x86emu *emu, uint32_t d, uint8_t s)
7396 sar_byte(struct x86emu *emu, uint8_t d, uint8_t s)
7437 sar_word(struct x86emu *emu, uint16_t d, uint8_t s)
7478 sar_long(struct x86emu *emu, uint32_t d, uint8_t s)
7519 shld_word(struct x86emu *emu, uint16_t d, uint16_t fill, uint8_t s)
7557 shld_long(struct x86emu *emu, uint32_t d, uint32_t fill, uint8_t s)
7595 shrd_word(struct x86emu *emu, uint16_t d, uint16_t fill, uint8_t s)
7633 shrd_long(struct x86emu *emu, uint32_t d, uint32_t fill, uint8_t s)
7670 sbb_byte(struct x86emu *emu, uint8_t d, uint8_t s)
7696 sbb_word(struct x86emu *emu, uint16_t d, uint16_t s)
7722 sbb_long(struct x86emu *emu, uint32_t d, uint32_t s)
7748 sub_byte(struct x86emu *emu, uint8_t d, uint8_t s)
7771 sub_word(struct x86emu *emu, uint16_t d, uint16_t s)
7794 sub_long(struct x86emu *emu, uint32_t d, uint32_t s)
7817 test_byte(struct x86emu *emu, uint8_t d, uint8_t s)
7836 test_word(struct x86emu *emu, uint16_t d, uint16_t s)
7855 test_long(struct x86emu *emu, uint32_t d, uint32_t s)
7874 xor_byte(struct x86emu *emu, uint8_t d, uint8_t s)
7893 xor_word(struct x86emu *emu, uint16_t d, uint16_t s)
7912 xor_long(struct x86emu *emu, uint32_t d, uint32_t s)
7931 imul_byte(struct x86emu *emu, uint8_t s)
7951 imul_word(struct x86emu *emu, uint16_t s)
7972 imul_long(struct x86emu *emu, uint32_t s)
7994 mul_byte(struct x86emu *emu, uint8_t s)
8013 mul_word(struct x86emu *emu, uint16_t s)
8033 mul_long(struct x86emu *emu, uint32_t s)
8054 idiv_byte(struct x86emu *emu, uint8_t s)
8078 idiv_word(struct x86emu *emu, uint16_t s)
8107 idiv_long(struct x86emu *emu, uint32_t s)
8137 div_byte(struct x86emu *emu, uint8_t s)
8161 div_word(struct x86emu *emu, uint16_t s)
8190 div_long(struct x86emu *emu, uint32_t s)
8220 ins(struct x86emu *emu, int size)
8285 outs(struct x86emu *emu, int size)
8355 push_word(struct x86emu *emu, uint16_t w)
8368 push_long(struct x86emu *emu, uint32_t w)
8381 pop_word(struct x86emu *emu)
8397 pop_long(struct x86emu *emu)