summaryrefslogtreecommitdiffstats
path: root/cfe/cfe/x86emu/x86emu/ops_protos.h
blob: 8787c5a0c1a74ccd01af5835268a46f0dda3951d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
#define OPPROTO(x) void x(u8)

OPPROTO(x86emuOp_illegal_op);
OPPROTO(x86emuOp_add_byte_RM_R);
OPPROTO(x86emuOp_add_word_RM_R);
OPPROTO(x86emuOp_add_byte_R_RM);
OPPROTO(x86emuOp_add_word_R_RM);
OPPROTO(x86emuOp_add_byte_AL_IMM);
OPPROTO(x86emuOp_add_word_AX_IMM);
OPPROTO(x86emuOp_push_ES);
OPPROTO(x86emuOp_pop_ES);
OPPROTO(x86emuOp_or_byte_RM_R);
OPPROTO(x86emuOp_or_word_RM_R);
OPPROTO(x86emuOp_or_byte_R_RM);
OPPROTO(x86emuOp_or_word_R_RM);
OPPROTO(x86emuOp_or_byte_AL_IMM);
OPPROTO(x86emuOp_or_word_AX_IMM);
OPPROTO(x86emuOp_push_CS);
OPPROTO(x86emuOp_two_byte);
OPPROTO(x86emuOp_adc_byte_RM_R);
OPPROTO(x86emuOp_adc_word_RM_R);
OPPROTO(x86emuOp_adc_byte_R_RM);
OPPROTO(x86emuOp_adc_word_R_RM);
OPPROTO(x86emuOp_adc_byte_AL_IMM);
OPPROTO(x86emuOp_adc_word_AX_IMM);
OPPROTO(x86emuOp_push_SS);
OPPROTO(x86emuOp_pop_SS);
OPPROTO(x86emuOp_sbb_byte_RM_R);
OPPROTO(x86emuOp_sbb_word_RM_R);
OPPROTO(x86emuOp_sbb_byte_R_RM);
OPPROTO(x86emuOp_sbb_word_R_RM);
OPPROTO(x86emuOp_sbb_byte_AL_IMM);
OPPROTO(x86emuOp_sbb_word_AX_IMM);
OPPROTO(x86emuOp_push_DS);
OPPROTO(x86emuOp_pop_DS);
OPPROTO(x86emuOp_and_byte_RM_R);
OPPROTO(x86emuOp_and_word_RM_R);
OPPROTO(x86emuOp_and_byte_R_RM);
OPPROTO(x86emuOp_and_word_R_RM);
OPPROTO(x86emuOp_and_byte_AL_IMM);
OPPROTO(x86emuOp_and_word_AX_IMM);
OPPROTO(x86emuOp_segovr_ES);
OPPROTO(x86emuOp_daa);
OPPROTO(x86emuOp_sub_byte_RM_R);
OPPROTO(x86emuOp_sub_word_RM_R);
OPPROTO(x86emuOp_sub_byte_R_RM);
OPPROTO(x86emuOp_sub_word_R_RM);
OPPROTO(x86emuOp_sub_byte_AL_IMM);
OPPROTO(x86emuOp_sub_word_AX_IMM);
OPPROTO(x86emuOp_segovr_CS);
OPPROTO(x86emuOp_das);
OPPROTO(x86emuOp_xor_byte_RM_R);
OPPROTO(x86emuOp_xor_word_RM_R);
OPPROTO(x86emuOp_xor_byte_R_RM);
OPPROTO(x86emuOp_xor_word_R_RM);
OPPROTO(x86emuOp_xor_byte_AL_IMM);
OPPROTO(x86emuOp_xor_word_AX_IMM);
OPPROTO(x86emuOp_segovr_SS);
OPPROTO(x86emuOp_aaa);
OPPROTO(x86emuOp_cmp_byte_RM_R);
OPPROTO(x86emuOp_cmp_word_RM_R);
OPPROTO(x86emuOp_cmp_byte_R_RM);
OPPROTO(x86emuOp_cmp_word_R_RM);
OPPROTO(x86emuOp_cmp_byte_AL_IMM);
OPPROTO(x86emuOp_cmp_word_AX_IMM);
OPPROTO(x86emuOp_segovr_DS);
OPPROTO(x86emuOp_aas);
OPPROTO(x86emuOp_inc_AX);
OPPROTO(x86emuOp_inc_CX);
OPPROTO(x86emuOp_inc_DX);
OPPROTO(x86emuOp_inc_BX);
OPPROTO(x86emuOp_inc_SP);
OPPROTO(x86emuOp_inc_BP);
OPPROTO(x86emuOp_inc_SI);
OPPROTO(x86emuOp_inc_DI);
OPPROTO(x86emuOp_dec_AX);
OPPROTO(x86emuOp_dec_CX);
OPPROTO(x86emuOp_dec_DX);
OPPROTO(x86emuOp_dec_BX);
OPPROTO(x86emuOp_dec_SP);
OPPROTO(x86emuOp_dec_BP);
OPPROTO(x86emuOp_dec_SI);
OPPROTO(x86emuOp_dec_DI);
OPPROTO(x86emuOp_push_AX);
OPPROTO(x86emuOp_push_CX);
OPPROTO(x86emuOp_push_DX);
OPPROTO(x86emuOp_push_BX);
OPPROTO(x86emuOp_push_SP);
OPPROTO(x86emuOp_push_BP);
OPPROTO(x86emuOp_push_SI);
OPPROTO(x86emuOp_push_DI);
OPPROTO(x86emuOp_pop_AX);
OPPROTO(x86emuOp_pop_CX);
OPPROTO(x86emuOp_pop_DX);
OPPROTO(x86emuOp_pop_BX);
OPPROTO(x86emuOp_pop_SP);
OPPROTO(x86emuOp_pop_BP);
OPPROTO(x86emuOp_pop_SI);
OPPROTO(x86emuOp_pop_DI);
OPPROTO(x86emuOp_push_all);
OPPROTO(x86emuOp_pop_all);
OPPROTO(x86emuOp_segovr_FS);
OPPROTO(x86emuOp_segovr_GS);
OPPROTO(x86emuOp_prefix_data);
OPPROTO(x86emuOp_prefix_addr);
OPPROTO(x86emuOp_push_word_IMM);
OPPROTO(x86emuOp_imul_word_IMM);
OPPROTO(x86emuOp_push_byte_IMM);
OPPROTO(x86emuOp_imul_byte_IMM);
OPPROTO(x86emuOp_ins_byte);
OPPROTO(x86emuOp_ins_word);
OPPROTO(x86emuOp_outs_byte);
OPPROTO(x86emuOp_outs_word);
OPPROTO(x86emuOp_jump_near_O);
OPPROTO(x86emuOp_jump_near_NO);
OPPROTO(x86emuOp_jump_near_B);
OPPROTO(x86emuOp_jump_near_NB);
OPPROTO(x86emuOp_jump_near_Z);
OPPROTO(x86emuOp_jump_near_NZ);
OPPROTO(x86emuOp_jump_near_BE);
OPPROTO(x86emuOp_jump_near_NBE);
OPPROTO(x86emuOp_jump_near_S);
OPPROTO(x86emuOp_jump_near_NS);
OPPROTO(x86emuOp_jump_near_P);
OPPROTO(x86emuOp_jump_near_NP);
OPPROTO(x86emuOp_jump_near_L);
OPPROTO(x86emuOp_jump_near_NL);
OPPROTO(x86emuOp_jump_near_LE);
OPPROTO(x86emuOp_jump_near_NLE);
OPPROTO(x86emuOp_opc80_byte_RM_IMM);
OPPROTO(x86emuOp_opc81_word_RM_IMM);
OPPROTO(x86emuOp_opc82_byte_RM_IMM);
OPPROTO(x86emuOp_opc83_word_RM_IMM);
OPPROTO(x86emuOp_test_byte_RM_R);
OPPROTO(x86emuOp_test_word_RM_R);
OPPROTO(x86emuOp_xchg_byte_RM_R);
OPPROTO(x86emuOp_xchg_word_RM_R);
OPPROTO(x86emuOp_mov_byte_RM_R);
OPPROTO(x86emuOp_mov_word_RM_R);
OPPROTO(x86emuOp_mov_byte_R_RM);
OPPROTO(x86emuOp_mov_word_R_RM);
OPPROTO(x86emuOp_mov_word_RM_SR);
OPPROTO(x86emuOp_lea_word_R_M);
OPPROTO(x86emuOp_mov_word_SR_RM);
OPPROTO(x86emuOp_pop_RM);
OPPROTO(x86emuOp_nop);
OPPROTO(x86emuOp_xchg_word_AX_CX);
OPPROTO(x86emuOp_xchg_word_AX_DX);
OPPROTO(x86emuOp_xchg_word_AX_BX);
OPPROTO(x86emuOp_xchg_word_AX_SP);
OPPROTO(x86emuOp_xchg_word_AX_BP);
OPPROTO(x86emuOp_xchg_word_AX_SI);
OPPROTO(x86emuOp_xchg_word_AX_DI);
OPPROTO(x86emuOp_cbw);
OPPROTO(x86emuOp_cwd);
OPPROTO(x86emuOp_call_far_IMM);
OPPROTO(x86emuOp_wait);
OPPROTO(x86emuOp_pushf_word);
OPPROTO(x86emuOp_popf_word);
OPPROTO(x86emuOp_sahf);
OPPROTO(x86emuOp_lahf);
OPPROTO(x86emuOp_mov_AL_M_IMM);
OPPROTO(x86emuOp_mov_AX_M_IMM);
OPPROTO(x86emuOp_mov_M_AL_IMM);
OPPROTO(x86emuOp_mov_M_AX_IMM);
OPPROTO(x86emuOp_movs_byte);
OPPROTO(x86emuOp_movs_word);
OPPROTO(x86emuOp_cmps_byte);
OPPROTO(x86emuOp_cmps_word);
OPPROTO(x86emuOp_test_AL_IMM);
OPPROTO(x86emuOp_test_AX_IMM);
OPPROTO(x86emuOp_stos_byte);
OPPROTO(x86emuOp_stos_word);
OPPROTO(x86emuOp_lods_byte);
OPPROTO(x86emuOp_lods_word);
OPPROTO(x86emuOp_scas_byte);
OPPROTO(x86emuOp_scas_word);
OPPROTO(x86emuOp_mov_byte_AL_IMM);
OPPROTO(x86emuOp_mov_byte_CL_IMM);
OPPROTO(x86emuOp_mov_byte_DL_IMM);
OPPROTO(x86emuOp_mov_byte_BL_IMM);
OPPROTO(x86emuOp_mov_byte_AH_IMM);
OPPROTO(x86emuOp_mov_byte_CH_IMM);
OPPROTO(x86emuOp_mov_byte_DH_IMM);
OPPROTO(x86emuOp_mov_byte_BH_IMM);
OPPROTO(x86emuOp_mov_word_AX_IMM);
OPPROTO(x86emuOp_mov_word_CX_IMM);
OPPROTO(x86emuOp_mov_word_DX_IMM);
OPPROTO(x86emuOp_mov_word_BX_IMM);
OPPROTO(x86emuOp_mov_word_SP_IMM);
OPPROTO(x86emuOp_mov_word_BP_IMM);
OPPROTO(x86emuOp_mov_word_SI_IMM);
OPPROTO(x86emuOp_mov_word_DI_IMM);
OPPROTO(x86emuOp_opcC0_byte_RM_MEM);
OPPROTO(x86emuOp_opcC1_word_RM_MEM);
OPPROTO(x86emuOp_ret_near_IMM);
OPPROTO(x86emuOp_ret_near);
OPPROTO(x86emuOp_les_R_IMM);
OPPROTO(x86emuOp_lds_R_IMM);
OPPROTO(x86emuOp_mov_byte_RM_IMM);
OPPROTO(x86emuOp_mov_word_RM_IMM);
OPPROTO(x86emuOp_enter);
OPPROTO(x86emuOp_leave);
OPPROTO(x86emuOp_ret_far_IMM);
OPPROTO(x86emuOp_ret_far);
OPPROTO(x86emuOp_int3);
OPPROTO(x86emuOp_int_IMM);
OPPROTO(x86emuOp_into);
OPPROTO(x86emuOp_iret);
OPPROTO(x86emuOp_opcD0_byte_RM_1);
OPPROTO(x86emuOp_opcD1_word_RM_1);
OPPROTO(x86emuOp_opcD2_byte_RM_CL);
OPPROTO(x86emuOp_opcD3_word_RM_CL);
OPPROTO(x86emuOp_aam);
OPPROTO(x86emuOp_aad);
OPPROTO(x86emuOp_xlat);
OPPROTO(x86emuOp_loopne);
OPPROTO(x86emuOp_loope);
OPPROTO(x86emuOp_loop);
OPPROTO(x86emuOp_jcxz);
OPPROTO(x86emuOp_in_byte_AL_IMM);
OPPROTO(x86emuOp_in_word_AX_IMM);
OPPROTO(x86emuOp_out_byte_IMM_AL);
OPPROTO(x86emuOp_out_word_IMM_AX);
OPPROTO(x86emuOp_call_near_IMM);
OPPROTO(x86emuOp_jump_near_IMM);
OPPROTO(x86emuOp_jump_far_IMM);
OPPROTO(x86emuOp_jump_byte_IMM);
OPPROTO(x86emuOp_in_byte_AL_DX);
OPPROTO(x86emuOp_in_word_AX_DX);
OPPROTO(x86emuOp_out_byte_DX_AL);
OPPROTO(x86emuOp_out_word_DX_AX);
OPPROTO(x86emuOp_lock);
OPPROTO(x86emuOp_repne);
OPPROTO(x86emuOp_repe);
OPPROTO(x86emuOp_halt);
OPPROTO(x86emuOp_cmc);
OPPROTO(x86emuOp_opcF6_byte_RM);
OPPROTO(x86emuOp_opcF7_word_RM);
OPPROTO(x86emuOp_clc);
OPPROTO(x86emuOp_stc);
OPPROTO(x86emuOp_cli);
OPPROTO(x86emuOp_sti);
OPPROTO(x86emuOp_cld);
OPPROTO(x86emuOp_std);
OPPROTO(x86emuOp_opcFE_byte_RM);
OPPROTO(x86emuOp_opcFF_word_RM);


OPPROTO(x86emuOp2_illegal_op);
OPPROTO(x86emuOp2_long_jump);
OPPROTO(x86emuOp2_set_byte);
OPPROTO(x86emuOp2_push_FS);
OPPROTO(x86emuOp2_pop_FS);
OPPROTO(x86emuOp2_bt_R);
OPPROTO(x86emuOp2_shld_IMM);
OPPROTO(x86emuOp2_shld_CL);
OPPROTO(x86emuOp2_push_GS);
OPPROTO(x86emuOp2_pop_GS);
OPPROTO(x86emuOp2_bts_R);
OPPROTO(x86emuOp2_shrd_IMM);
OPPROTO(x86emuOp2_shrd_CL);
OPPROTO(x86emuOp2_imul_R_RM);
OPPROTO(x86emuOp2_lss_R_IMM);
OPPROTO(x86emuOp2_btr_R);
OPPROTO(x86emuOp2_lfs_R_IMM);
OPPROTO(x86emuOp2_lgs_R_IMM);
OPPROTO(x86emuOp2_movzx_byte_R_RM);
OPPROTO(x86emuOp2_movzx_word_R_RM);
OPPROTO(x86emuOp2_btX_I);
OPPROTO(x86emuOp2_btc_R);
OPPROTO(x86emuOp2_bsf);
OPPROTO(x86emuOp2_bsr);
OPPROTO(x86emuOp2_movsx_byte_R_RM);
OPPROTO(x86emuOp2_movsx_word_R_R);
OPPROTO(x86emuOp2_movsx_word_R_RM);