2 #define OPPROTO(x) void x(u8)
4 OPPROTO(x86emuOp_illegal_op
);
5 OPPROTO(x86emuOp_add_byte_RM_R
);
6 OPPROTO(x86emuOp_add_word_RM_R
);
7 OPPROTO(x86emuOp_add_byte_R_RM
);
8 OPPROTO(x86emuOp_add_word_R_RM
);
9 OPPROTO(x86emuOp_add_byte_AL_IMM
);
10 OPPROTO(x86emuOp_add_word_AX_IMM
);
11 OPPROTO(x86emuOp_push_ES
);
12 OPPROTO(x86emuOp_pop_ES
);
13 OPPROTO(x86emuOp_or_byte_RM_R
);
14 OPPROTO(x86emuOp_or_word_RM_R
);
15 OPPROTO(x86emuOp_or_byte_R_RM
);
16 OPPROTO(x86emuOp_or_word_R_RM
);
17 OPPROTO(x86emuOp_or_byte_AL_IMM
);
18 OPPROTO(x86emuOp_or_word_AX_IMM
);
19 OPPROTO(x86emuOp_push_CS
);
20 OPPROTO(x86emuOp_two_byte
);
21 OPPROTO(x86emuOp_adc_byte_RM_R
);
22 OPPROTO(x86emuOp_adc_word_RM_R
);
23 OPPROTO(x86emuOp_adc_byte_R_RM
);
24 OPPROTO(x86emuOp_adc_word_R_RM
);
25 OPPROTO(x86emuOp_adc_byte_AL_IMM
);
26 OPPROTO(x86emuOp_adc_word_AX_IMM
);
27 OPPROTO(x86emuOp_push_SS
);
28 OPPROTO(x86emuOp_pop_SS
);
29 OPPROTO(x86emuOp_sbb_byte_RM_R
);
30 OPPROTO(x86emuOp_sbb_word_RM_R
);
31 OPPROTO(x86emuOp_sbb_byte_R_RM
);
32 OPPROTO(x86emuOp_sbb_word_R_RM
);
33 OPPROTO(x86emuOp_sbb_byte_AL_IMM
);
34 OPPROTO(x86emuOp_sbb_word_AX_IMM
);
35 OPPROTO(x86emuOp_push_DS
);
36 OPPROTO(x86emuOp_pop_DS
);
37 OPPROTO(x86emuOp_and_byte_RM_R
);
38 OPPROTO(x86emuOp_and_word_RM_R
);
39 OPPROTO(x86emuOp_and_byte_R_RM
);
40 OPPROTO(x86emuOp_and_word_R_RM
);
41 OPPROTO(x86emuOp_and_byte_AL_IMM
);
42 OPPROTO(x86emuOp_and_word_AX_IMM
);
43 OPPROTO(x86emuOp_segovr_ES
);
44 OPPROTO(x86emuOp_daa
);
45 OPPROTO(x86emuOp_sub_byte_RM_R
);
46 OPPROTO(x86emuOp_sub_word_RM_R
);
47 OPPROTO(x86emuOp_sub_byte_R_RM
);
48 OPPROTO(x86emuOp_sub_word_R_RM
);
49 OPPROTO(x86emuOp_sub_byte_AL_IMM
);
50 OPPROTO(x86emuOp_sub_word_AX_IMM
);
51 OPPROTO(x86emuOp_segovr_CS
);
52 OPPROTO(x86emuOp_das
);
53 OPPROTO(x86emuOp_xor_byte_RM_R
);
54 OPPROTO(x86emuOp_xor_word_RM_R
);
55 OPPROTO(x86emuOp_xor_byte_R_RM
);
56 OPPROTO(x86emuOp_xor_word_R_RM
);
57 OPPROTO(x86emuOp_xor_byte_AL_IMM
);
58 OPPROTO(x86emuOp_xor_word_AX_IMM
);
59 OPPROTO(x86emuOp_segovr_SS
);
60 OPPROTO(x86emuOp_aaa
);
61 OPPROTO(x86emuOp_cmp_byte_RM_R
);
62 OPPROTO(x86emuOp_cmp_word_RM_R
);
63 OPPROTO(x86emuOp_cmp_byte_R_RM
);
64 OPPROTO(x86emuOp_cmp_word_R_RM
);
65 OPPROTO(x86emuOp_cmp_byte_AL_IMM
);
66 OPPROTO(x86emuOp_cmp_word_AX_IMM
);
67 OPPROTO(x86emuOp_segovr_DS
);
68 OPPROTO(x86emuOp_aas
);
69 OPPROTO(x86emuOp_inc_AX
);
70 OPPROTO(x86emuOp_inc_CX
);
71 OPPROTO(x86emuOp_inc_DX
);
72 OPPROTO(x86emuOp_inc_BX
);
73 OPPROTO(x86emuOp_inc_SP
);
74 OPPROTO(x86emuOp_inc_BP
);
75 OPPROTO(x86emuOp_inc_SI
);
76 OPPROTO(x86emuOp_inc_DI
);
77 OPPROTO(x86emuOp_dec_AX
);
78 OPPROTO(x86emuOp_dec_CX
);
79 OPPROTO(x86emuOp_dec_DX
);
80 OPPROTO(x86emuOp_dec_BX
);
81 OPPROTO(x86emuOp_dec_SP
);
82 OPPROTO(x86emuOp_dec_BP
);
83 OPPROTO(x86emuOp_dec_SI
);
84 OPPROTO(x86emuOp_dec_DI
);
85 OPPROTO(x86emuOp_push_AX
);
86 OPPROTO(x86emuOp_push_CX
);
87 OPPROTO(x86emuOp_push_DX
);
88 OPPROTO(x86emuOp_push_BX
);
89 OPPROTO(x86emuOp_push_SP
);
90 OPPROTO(x86emuOp_push_BP
);
91 OPPROTO(x86emuOp_push_SI
);
92 OPPROTO(x86emuOp_push_DI
);
93 OPPROTO(x86emuOp_pop_AX
);
94 OPPROTO(x86emuOp_pop_CX
);
95 OPPROTO(x86emuOp_pop_DX
);
96 OPPROTO(x86emuOp_pop_BX
);
97 OPPROTO(x86emuOp_pop_SP
);
98 OPPROTO(x86emuOp_pop_BP
);
99 OPPROTO(x86emuOp_pop_SI
);
100 OPPROTO(x86emuOp_pop_DI
);
101 OPPROTO(x86emuOp_push_all
);
102 OPPROTO(x86emuOp_pop_all
);
103 OPPROTO(x86emuOp_segovr_FS
);
104 OPPROTO(x86emuOp_segovr_GS
);
105 OPPROTO(x86emuOp_prefix_data
);
106 OPPROTO(x86emuOp_prefix_addr
);
107 OPPROTO(x86emuOp_push_word_IMM
);
108 OPPROTO(x86emuOp_imul_word_IMM
);
109 OPPROTO(x86emuOp_push_byte_IMM
);
110 OPPROTO(x86emuOp_imul_byte_IMM
);
111 OPPROTO(x86emuOp_ins_byte
);
112 OPPROTO(x86emuOp_ins_word
);
113 OPPROTO(x86emuOp_outs_byte
);
114 OPPROTO(x86emuOp_outs_word
);
115 OPPROTO(x86emuOp_jump_near_O
);
116 OPPROTO(x86emuOp_jump_near_NO
);
117 OPPROTO(x86emuOp_jump_near_B
);
118 OPPROTO(x86emuOp_jump_near_NB
);
119 OPPROTO(x86emuOp_jump_near_Z
);
120 OPPROTO(x86emuOp_jump_near_NZ
);
121 OPPROTO(x86emuOp_jump_near_BE
);
122 OPPROTO(x86emuOp_jump_near_NBE
);
123 OPPROTO(x86emuOp_jump_near_S
);
124 OPPROTO(x86emuOp_jump_near_NS
);
125 OPPROTO(x86emuOp_jump_near_P
);
126 OPPROTO(x86emuOp_jump_near_NP
);
127 OPPROTO(x86emuOp_jump_near_L
);
128 OPPROTO(x86emuOp_jump_near_NL
);
129 OPPROTO(x86emuOp_jump_near_LE
);
130 OPPROTO(x86emuOp_jump_near_NLE
);
131 OPPROTO(x86emuOp_opc80_byte_RM_IMM
);
132 OPPROTO(x86emuOp_opc81_word_RM_IMM
);
133 OPPROTO(x86emuOp_opc82_byte_RM_IMM
);
134 OPPROTO(x86emuOp_opc83_word_RM_IMM
);
135 OPPROTO(x86emuOp_test_byte_RM_R
);
136 OPPROTO(x86emuOp_test_word_RM_R
);
137 OPPROTO(x86emuOp_xchg_byte_RM_R
);
138 OPPROTO(x86emuOp_xchg_word_RM_R
);
139 OPPROTO(x86emuOp_mov_byte_RM_R
);
140 OPPROTO(x86emuOp_mov_word_RM_R
);
141 OPPROTO(x86emuOp_mov_byte_R_RM
);
142 OPPROTO(x86emuOp_mov_word_R_RM
);
143 OPPROTO(x86emuOp_mov_word_RM_SR
);
144 OPPROTO(x86emuOp_lea_word_R_M
);
145 OPPROTO(x86emuOp_mov_word_SR_RM
);
146 OPPROTO(x86emuOp_pop_RM
);
147 OPPROTO(x86emuOp_nop
);
148 OPPROTO(x86emuOp_xchg_word_AX_CX
);
149 OPPROTO(x86emuOp_xchg_word_AX_DX
);
150 OPPROTO(x86emuOp_xchg_word_AX_BX
);
151 OPPROTO(x86emuOp_xchg_word_AX_SP
);
152 OPPROTO(x86emuOp_xchg_word_AX_BP
);
153 OPPROTO(x86emuOp_xchg_word_AX_SI
);
154 OPPROTO(x86emuOp_xchg_word_AX_DI
);
155 OPPROTO(x86emuOp_cbw
);
156 OPPROTO(x86emuOp_cwd
);
157 OPPROTO(x86emuOp_call_far_IMM
);
158 OPPROTO(x86emuOp_wait
);
159 OPPROTO(x86emuOp_pushf_word
);
160 OPPROTO(x86emuOp_popf_word
);
161 OPPROTO(x86emuOp_sahf
);
162 OPPROTO(x86emuOp_lahf
);
163 OPPROTO(x86emuOp_mov_AL_M_IMM
);
164 OPPROTO(x86emuOp_mov_AX_M_IMM
);
165 OPPROTO(x86emuOp_mov_M_AL_IMM
);
166 OPPROTO(x86emuOp_mov_M_AX_IMM
);
167 OPPROTO(x86emuOp_movs_byte
);
168 OPPROTO(x86emuOp_movs_word
);
169 OPPROTO(x86emuOp_cmps_byte
);
170 OPPROTO(x86emuOp_cmps_word
);
171 OPPROTO(x86emuOp_test_AL_IMM
);
172 OPPROTO(x86emuOp_test_AX_IMM
);
173 OPPROTO(x86emuOp_stos_byte
);
174 OPPROTO(x86emuOp_stos_word
);
175 OPPROTO(x86emuOp_lods_byte
);
176 OPPROTO(x86emuOp_lods_word
);
177 OPPROTO(x86emuOp_scas_byte
);
178 OPPROTO(x86emuOp_scas_word
);
179 OPPROTO(x86emuOp_mov_byte_AL_IMM
);
180 OPPROTO(x86emuOp_mov_byte_CL_IMM
);
181 OPPROTO(x86emuOp_mov_byte_DL_IMM
);
182 OPPROTO(x86emuOp_mov_byte_BL_IMM
);
183 OPPROTO(x86emuOp_mov_byte_AH_IMM
);
184 OPPROTO(x86emuOp_mov_byte_CH_IMM
);
185 OPPROTO(x86emuOp_mov_byte_DH_IMM
);
186 OPPROTO(x86emuOp_mov_byte_BH_IMM
);
187 OPPROTO(x86emuOp_mov_word_AX_IMM
);
188 OPPROTO(x86emuOp_mov_word_CX_IMM
);
189 OPPROTO(x86emuOp_mov_word_DX_IMM
);
190 OPPROTO(x86emuOp_mov_word_BX_IMM
);
191 OPPROTO(x86emuOp_mov_word_SP_IMM
);
192 OPPROTO(x86emuOp_mov_word_BP_IMM
);
193 OPPROTO(x86emuOp_mov_word_SI_IMM
);
194 OPPROTO(x86emuOp_mov_word_DI_IMM
);
195 OPPROTO(x86emuOp_opcC0_byte_RM_MEM
);
196 OPPROTO(x86emuOp_opcC1_word_RM_MEM
);
197 OPPROTO(x86emuOp_ret_near_IMM
);
198 OPPROTO(x86emuOp_ret_near
);
199 OPPROTO(x86emuOp_les_R_IMM
);
200 OPPROTO(x86emuOp_lds_R_IMM
);
201 OPPROTO(x86emuOp_mov_byte_RM_IMM
);
202 OPPROTO(x86emuOp_mov_word_RM_IMM
);
203 OPPROTO(x86emuOp_enter
);
204 OPPROTO(x86emuOp_leave
);
205 OPPROTO(x86emuOp_ret_far_IMM
);
206 OPPROTO(x86emuOp_ret_far
);
207 OPPROTO(x86emuOp_int3
);
208 OPPROTO(x86emuOp_int_IMM
);
209 OPPROTO(x86emuOp_into
);
210 OPPROTO(x86emuOp_iret
);
211 OPPROTO(x86emuOp_opcD0_byte_RM_1
);
212 OPPROTO(x86emuOp_opcD1_word_RM_1
);
213 OPPROTO(x86emuOp_opcD2_byte_RM_CL
);
214 OPPROTO(x86emuOp_opcD3_word_RM_CL
);
215 OPPROTO(x86emuOp_aam
);
216 OPPROTO(x86emuOp_aad
);
217 OPPROTO(x86emuOp_xlat
);
218 OPPROTO(x86emuOp_loopne
);
219 OPPROTO(x86emuOp_loope
);
220 OPPROTO(x86emuOp_loop
);
221 OPPROTO(x86emuOp_jcxz
);
222 OPPROTO(x86emuOp_in_byte_AL_IMM
);
223 OPPROTO(x86emuOp_in_word_AX_IMM
);
224 OPPROTO(x86emuOp_out_byte_IMM_AL
);
225 OPPROTO(x86emuOp_out_word_IMM_AX
);
226 OPPROTO(x86emuOp_call_near_IMM
);
227 OPPROTO(x86emuOp_jump_near_IMM
);
228 OPPROTO(x86emuOp_jump_far_IMM
);
229 OPPROTO(x86emuOp_jump_byte_IMM
);
230 OPPROTO(x86emuOp_in_byte_AL_DX
);
231 OPPROTO(x86emuOp_in_word_AX_DX
);
232 OPPROTO(x86emuOp_out_byte_DX_AL
);
233 OPPROTO(x86emuOp_out_word_DX_AX
);
234 OPPROTO(x86emuOp_lock
);
235 OPPROTO(x86emuOp_repne
);
236 OPPROTO(x86emuOp_repe
);
237 OPPROTO(x86emuOp_halt
);
238 OPPROTO(x86emuOp_cmc
);
239 OPPROTO(x86emuOp_opcF6_byte_RM
);
240 OPPROTO(x86emuOp_opcF7_word_RM
);
241 OPPROTO(x86emuOp_clc
);
242 OPPROTO(x86emuOp_stc
);
243 OPPROTO(x86emuOp_cli
);
244 OPPROTO(x86emuOp_sti
);
245 OPPROTO(x86emuOp_cld
);
246 OPPROTO(x86emuOp_std
);
247 OPPROTO(x86emuOp_opcFE_byte_RM
);
248 OPPROTO(x86emuOp_opcFF_word_RM
);
251 OPPROTO(x86emuOp2_illegal_op
);
252 OPPROTO(x86emuOp2_long_jump
);
253 OPPROTO(x86emuOp2_set_byte
);
254 OPPROTO(x86emuOp2_push_FS
);
255 OPPROTO(x86emuOp2_pop_FS
);
256 OPPROTO(x86emuOp2_bt_R
);
257 OPPROTO(x86emuOp2_shld_IMM
);
258 OPPROTO(x86emuOp2_shld_CL
);
259 OPPROTO(x86emuOp2_push_GS
);
260 OPPROTO(x86emuOp2_pop_GS
);
261 OPPROTO(x86emuOp2_bts_R
);
262 OPPROTO(x86emuOp2_shrd_IMM
);
263 OPPROTO(x86emuOp2_shrd_CL
);
264 OPPROTO(x86emuOp2_imul_R_RM
);
265 OPPROTO(x86emuOp2_lss_R_IMM
);
266 OPPROTO(x86emuOp2_btr_R
);
267 OPPROTO(x86emuOp2_lfs_R_IMM
);
268 OPPROTO(x86emuOp2_lgs_R_IMM
);
269 OPPROTO(x86emuOp2_movzx_byte_R_RM
);
270 OPPROTO(x86emuOp2_movzx_word_R_RM
);
271 OPPROTO(x86emuOp2_btX_I
);
272 OPPROTO(x86emuOp2_btc_R
);
273 OPPROTO(x86emuOp2_bsf
);
274 OPPROTO(x86emuOp2_bsr
);
275 OPPROTO(x86emuOp2_movsx_byte_R_RM
);
276 OPPROTO(x86emuOp2_movsx_word_R_R
);
277 OPPROTO(x86emuOp2_movsx_word_R_RM
);