1 static void (*const PREFIX86(_instruction)[256])(i8086_state *cpustate) =
\r
3 PREFIX86(_add_br8), /* 0x00 */
\r
4 PREFIX86(_add_wr16), /* 0x01 */
\r
5 PREFIX86(_add_r8b), /* 0x02 */
\r
6 PREFIX86(_add_r16w), /* 0x03 */
\r
7 PREFIX86(_add_ald8), /* 0x04 */
\r
8 PREFIX86(_add_axd16), /* 0x05 */
\r
9 PREFIX86(_push_es), /* 0x06 */
\r
10 PREFIX86(_pop_es), /* 0x07 */
\r
11 PREFIX86(_or_br8), /* 0x08 */
\r
12 PREFIX86(_or_wr16), /* 0x09 */
\r
13 PREFIX86(_or_r8b), /* 0x0a */
\r
14 PREFIX86(_or_r16w), /* 0x0b */
\r
15 PREFIX86(_or_ald8), /* 0x0c */
\r
16 PREFIX86(_or_axd16), /* 0x0d */
\r
17 PREFIX86(_push_cs), /* 0x0e */
\r
18 PREFIX86(_pop_cs), /* 0x0f */
\r
19 PREFIX86(_adc_br8), /* 0x10 */
\r
20 PREFIX86(_adc_wr16), /* 0x11 */
\r
21 PREFIX86(_adc_r8b), /* 0x12 */
\r
22 PREFIX86(_adc_r16w), /* 0x13 */
\r
23 PREFIX86(_adc_ald8), /* 0x14 */
\r
24 PREFIX86(_adc_axd16), /* 0x15 */
\r
25 PREFIX86(_push_ss), /* 0x16 */
\r
26 PREFIX86(_pop_ss), /* 0x17 */
\r
27 PREFIX86(_sbb_br8), /* 0x18 */
\r
28 PREFIX86(_sbb_wr16), /* 0x19 */
\r
29 PREFIX86(_sbb_r8b), /* 0x1a */
\r
30 PREFIX86(_sbb_r16w), /* 0x1b */
\r
31 PREFIX86(_sbb_ald8), /* 0x1c */
\r
32 PREFIX86(_sbb_axd16), /* 0x1d */
\r
33 PREFIX86(_push_ds), /* 0x1e */
\r
34 PREFIX86(_pop_ds), /* 0x1f */
\r
35 PREFIX86(_and_br8), /* 0x20 */
\r
36 PREFIX86(_and_wr16), /* 0x21 */
\r
37 PREFIX86(_and_r8b), /* 0x22 */
\r
38 PREFIX86(_and_r16w), /* 0x23 */
\r
39 PREFIX86(_and_ald8), /* 0x24 */
\r
40 PREFIX86(_and_axd16), /* 0x25 */
\r
41 PREFIX86(_es), /* 0x26 */
\r
42 PREFIX86(_daa), /* 0x27 */
\r
43 PREFIX86(_sub_br8), /* 0x28 */
\r
44 PREFIX86(_sub_wr16), /* 0x29 */
\r
45 PREFIX86(_sub_r8b), /* 0x2a */
\r
46 PREFIX86(_sub_r16w), /* 0x2b */
\r
47 PREFIX86(_sub_ald8), /* 0x2c */
\r
48 PREFIX86(_sub_axd16), /* 0x2d */
\r
49 PREFIX86(_cs), /* 0x2e */
\r
50 PREFIX86(_das), /* 0x2f */
\r
51 PREFIX86(_xor_br8), /* 0x30 */
\r
52 PREFIX86(_xor_wr16), /* 0x31 */
\r
53 PREFIX86(_xor_r8b), /* 0x32 */
\r
54 PREFIX86(_xor_r16w), /* 0x33 */
\r
55 PREFIX86(_xor_ald8), /* 0x34 */
\r
56 PREFIX86(_xor_axd16), /* 0x35 */
\r
57 PREFIX86(_ss), /* 0x36 */
\r
58 PREFIX86(_aaa), /* 0x37 */
\r
59 PREFIX86(_cmp_br8), /* 0x38 */
\r
60 PREFIX86(_cmp_wr16), /* 0x39 */
\r
61 PREFIX86(_cmp_r8b), /* 0x3a */
\r
62 PREFIX86(_cmp_r16w), /* 0x3b */
\r
63 PREFIX86(_cmp_ald8), /* 0x3c */
\r
64 PREFIX86(_cmp_axd16), /* 0x3d */
\r
65 PREFIX86(_ds), /* 0x3e */
\r
66 PREFIX86(_aas), /* 0x3f */
\r
67 PREFIX86(_inc_ax), /* 0x40 */
\r
68 PREFIX86(_inc_cx), /* 0x41 */
\r
69 PREFIX86(_inc_dx), /* 0x42 */
\r
70 PREFIX86(_inc_bx), /* 0x43 */
\r
71 PREFIX86(_inc_sp), /* 0x44 */
\r
72 PREFIX86(_inc_bp), /* 0x45 */
\r
73 PREFIX86(_inc_si), /* 0x46 */
\r
74 PREFIX86(_inc_di), /* 0x47 */
\r
75 PREFIX86(_dec_ax), /* 0x48 */
\r
76 PREFIX86(_dec_cx), /* 0x49 */
\r
77 PREFIX86(_dec_dx), /* 0x4a */
\r
78 PREFIX86(_dec_bx), /* 0x4b */
\r
79 PREFIX86(_dec_sp), /* 0x4c */
\r
80 PREFIX86(_dec_bp), /* 0x4d */
\r
81 PREFIX86(_dec_si), /* 0x4e */
\r
82 PREFIX86(_dec_di), /* 0x4f */
\r
83 PREFIX86(_push_ax), /* 0x50 */
\r
84 PREFIX86(_push_cx), /* 0x51 */
\r
85 PREFIX86(_push_dx), /* 0x52 */
\r
86 PREFIX86(_push_bx), /* 0x53 */
\r
87 PREFIX86(_push_sp), /* 0x54 */
\r
88 PREFIX86(_push_bp), /* 0x55 */
\r
89 PREFIX86(_push_si), /* 0x56 */
\r
90 PREFIX86(_push_di), /* 0x57 */
\r
91 PREFIX86(_pop_ax), /* 0x58 */
\r
92 PREFIX86(_pop_cx), /* 0x59 */
\r
93 PREFIX86(_pop_dx), /* 0x5a */
\r
94 PREFIX86(_pop_bx), /* 0x5b */
\r
95 PREFIX86(_pop_sp), /* 0x5c */
\r
96 PREFIX86(_pop_bp), /* 0x5d */
\r
97 PREFIX86(_pop_si), /* 0x5e */
\r
98 PREFIX86(_pop_di), /* 0x5f */
\r
99 PREFIX86(_invalid_2b), // PREFIX86(_pusha), /* 0x60 */
\r
100 PREFIX86(_invalid_2b), // PREFIX86(_popa), /* 0x61 */
\r
101 PREFIX86(_invalid_2b), // PREFIX86(_bound), /* 0x62 */
\r
102 PREFIX86(_invalid_2b),
\r
103 PREFIX86(_invalid_2b),
\r
104 PREFIX86(_invalid_2b),
\r
105 PREFIX86(_invalid_2b),
\r
106 PREFIX86(_invalid_2b),
\r
107 PREFIX86(_invalid_2b), //i_push_d16), /* 0x68 */
\r
108 PREFIX86(_invalid_2b), //i_imul_d16), /* 0x69 */
\r
109 PREFIX86(_invalid_2b), //i_push_d8), /* 0x6a */
\r
110 PREFIX86(_invalid_2b), //i_imul_d8), /* 0x6b */
\r
111 PREFIX86(_invalid_2b), //i_insb), /* 0x6c */
\r
112 PREFIX86(_invalid_2b), //i_insw), /* 0x6d */
\r
113 PREFIX86(_invalid_2b), //i_outsb), /* 0x6e */
\r
114 PREFIX86(_invalid_2b), //i_outsw), /* 0x6f */
\r
115 PREFIX86(_jo), /* 0x70 */
\r
116 PREFIX86(_jno), /* 0x71 */
\r
117 PREFIX86(_jb), /* 0x72 */
\r
118 PREFIX86(_jnb), /* 0x73 */
\r
119 PREFIX86(_jz), /* 0x74 */
\r
120 PREFIX86(_jnz), /* 0x75 */
\r
121 PREFIX86(_jbe), /* 0x76 */
\r
122 PREFIX86(_jnbe), /* 0x77 */
\r
123 PREFIX86(_js), /* 0x78 */
\r
124 PREFIX86(_jns), /* 0x79 */
\r
125 PREFIX86(_jp), /* 0x7a */
\r
126 PREFIX86(_jnp), /* 0x7b */
\r
127 PREFIX86(_jl), /* 0x7c */
\r
128 PREFIX86(_jnl), /* 0x7d */
\r
129 PREFIX86(_jle), /* 0x7e */
\r
130 PREFIX86(_jnle), /* 0x7f */
\r
131 PREFIX86(_80pre), /* 0x80 */
\r
132 PREFIX86(_81pre), /* 0x81 */
\r
133 PREFIX86(_82pre), /* 0x82 */
\r
134 PREFIX86(_83pre), /* 0x83 */
\r
135 PREFIX86(_test_br8), /* 0x84 */
\r
136 PREFIX86(_test_wr16), /* 0x85 */
\r
137 PREFIX86(_xchg_br8), /* 0x86 */
\r
138 PREFIX86(_xchg_wr16), /* 0x87 */
\r
139 PREFIX86(_mov_br8), /* 0x88 */
\r
140 PREFIX86(_mov_wr16), /* 0x89 */
\r
141 PREFIX86(_mov_r8b), /* 0x8a */
\r
142 PREFIX86(_mov_r16w), /* 0x8b */
\r
143 PREFIX86(_mov_wsreg), /* 0x8c */
\r
144 PREFIX86(_lea), /* 0x8d */
\r
145 PREFIX86(_mov_sregw), /* 0x8e */
\r
146 PREFIX86(_popw), /* 0x8f */
\r
147 PREFIX86(_nop), /* 0x90 */
\r
148 PREFIX86(_xchg_axcx), /* 0x91 */
\r
149 PREFIX86(_xchg_axdx), /* 0x92 */
\r
150 PREFIX86(_xchg_axbx), /* 0x93 */
\r
151 PREFIX86(_xchg_axsp), /* 0x94 */
\r
152 PREFIX86(_xchg_axbp), /* 0x95 */
\r
153 PREFIX86(_xchg_axsi), /* 0x97 */
\r
154 PREFIX86(_xchg_axdi), /* 0x97 */
\r
155 PREFIX86(_cbw), /* 0x98 */
\r
156 PREFIX86(_cwd), /* 0x99 */
\r
157 PREFIX86(_call_far), /* 0x9a */
\r
158 PREFIX86(_wait), /* 0x9b */
\r
159 PREFIX86(_pushf), /* 0x9c */
\r
160 PREFIX86(_popf), /* 0x9d */
\r
161 PREFIX86(_sahf), /* 0x9e */
\r
162 PREFIX86(_lahf), /* 0x9f */
\r
163 PREFIX86(_mov_aldisp), /* 0xa0 */
\r
164 PREFIX86(_mov_axdisp), /* 0xa1 */
\r
165 PREFIX86(_mov_dispal), /* 0xa2 */
\r
166 PREFIX86(_mov_dispax), /* 0xa3 */
\r
167 PREFIX86(_movsb), /* 0xa4 */
\r
168 PREFIX86(_movsw), /* 0xa5 */
\r
169 PREFIX86(_cmpsb), /* 0xa6 */
\r
170 PREFIX86(_cmpsw), /* 0xa7 */
\r
171 PREFIX86(_test_ald8), /* 0xa8 */
\r
172 PREFIX86(_test_axd16), /* 0xa9 */
\r
173 PREFIX86(_stosb), /* 0xaa */
\r
174 PREFIX86(_stosw), /* 0xab */
\r
175 PREFIX86(_lodsb), /* 0xac */
\r
176 PREFIX86(_lodsw), /* 0xad */
\r
177 PREFIX86(_scasb), /* 0xae */
\r
178 PREFIX86(_scasw), /* 0xaf */
\r
179 PREFIX86(_mov_ald8), /* 0xb0 */
\r
180 PREFIX86(_mov_cld8), /* 0xb1 */
\r
181 PREFIX86(_mov_dld8), /* 0xb2 */
\r
182 PREFIX86(_mov_bld8), /* 0xb3 */
\r
183 PREFIX86(_mov_ahd8), /* 0xb4 */
\r
184 PREFIX86(_mov_chd8), /* 0xb5 */
\r
185 PREFIX86(_mov_dhd8), /* 0xb6 */
\r
186 PREFIX86(_mov_bhd8), /* 0xb7 */
\r
187 PREFIX86(_mov_axd16), /* 0xb8 */
\r
188 PREFIX86(_mov_cxd16), /* 0xb9 */
\r
189 PREFIX86(_mov_dxd16), /* 0xba */
\r
190 PREFIX86(_mov_bxd16), /* 0xbb */
\r
191 PREFIX86(_mov_spd16), /* 0xbc */
\r
192 PREFIX86(_mov_bpd16), /* 0xbd */
\r
193 PREFIX86(_mov_sid16), /* 0xbe */
\r
194 PREFIX86(_mov_did16), /* 0xbf */
\r
195 PREFIX86(_invalid), // PREFIX86(_rotshft_bd8), /* 0xc0 */
\r
196 PREFIX86(_invalid), // PREFIX86(_rotshft_wd8), /* 0xc1 */
\r
197 PREFIX86(_ret_d16), /* 0xc2 */
\r
198 PREFIX86(_ret), /* 0xc3 */
\r
199 PREFIX86(_les_dw), /* 0xc4 */
\r
200 PREFIX86(_lds_dw), /* 0xc5 */
\r
201 PREFIX86(_mov_bd8), /* 0xc6 */
\r
202 PREFIX86(_mov_wd16), /* 0xc7 */
\r
203 PREFIX86(_invalid), //i_enter), /* 0xc8 */
\r
204 PREFIX86(_invalid), //leave), /* 0xc9 */
\r
205 PREFIX86(_retf_d16), /* 0xca */
\r
206 PREFIX86(_retf), /* 0xcb */
\r
207 PREFIX86(_int3), /* 0xcc */
\r
208 PREFIX86(_int), /* 0xcd */
\r
209 PREFIX86(_into), /* 0xce */
\r
210 PREFIX86(_iret), /* 0xcf */
\r
211 PREFIX86(_rotshft_b), /* 0xd0 */
\r
212 PREFIX86(_rotshft_w), /* 0xd1 */
\r
213 PREFIX86(_rotshft_bcl), /* 0xd2 */
\r
214 PREFIX86(_rotshft_wcl), /* 0xd3 */
\r
215 PREFIX86(_aam), /* 0xd4 */
\r
216 PREFIX86(_aad), /* 0xd5 */
\r
217 PREFIX86(_invalid),
\r
218 PREFIX86(_xlat), /* 0xd7 */
\r
219 PREFIX86(_escape), /* 0xd8 */
\r
220 PREFIX86(_escape), /* 0xd9 */
\r
221 PREFIX86(_escape), /* 0xda */
\r
222 PREFIX86(_escape), /* 0xdb */
\r
223 PREFIX86(_escape), /* 0xdc */
\r
224 PREFIX86(_escape), /* 0xdd */
\r
225 PREFIX86(_escape), /* 0xde */
\r
226 PREFIX86(_escape), /* 0xdf */
\r
227 PREFIX86(_loopne), /* 0xe0 */
\r
228 PREFIX86(_loope), /* 0xe1 */
\r
229 PREFIX86(_loop), /* 0xe2 */
\r
230 PREFIX86(_jcxz), /* 0xe3 */
\r
231 PREFIX86(_inal), /* 0xe4 */
\r
232 PREFIX86(_inax), /* 0xe5 */
\r
233 PREFIX86(_outal), /* 0xe6 */
\r
234 PREFIX86(_outax), /* 0xe7 */
\r
235 PREFIX86(_call_d16), /* 0xe8 */
\r
236 PREFIX86(_jmp_d16), /* 0xe9 */
\r
237 PREFIX86(_jmp_far), /* 0xea */
\r
238 PREFIX86(_jmp_d8), /* 0xeb */
\r
239 PREFIX86(_inaldx), /* 0xec */
\r
240 PREFIX86(_inaxdx), /* 0xed */
\r
241 PREFIX86(_outdxal), /* 0xee */
\r
242 PREFIX86(_outdxax), /* 0xef */
\r
243 PREFIX86(_lock), /* 0xf0 */
\r
244 PREFIX86(_invalid), /* 0xf1 */
\r
245 PREFIX86(_repne), /* 0xf2 */
\r
246 PREFIX86(_repe), /* 0xf3 */
\r
247 PREFIX86(_hlt), /* 0xf4 */
\r
248 PREFIX86(_cmc), /* 0xf5 */
\r
249 PREFIX86(_f6pre), /* 0xf6 */
\r
250 PREFIX86(_f7pre), /* 0xf7 */
\r
251 PREFIX86(_clc), /* 0xf8 */
\r
252 PREFIX86(_stc), /* 0xf9 */
\r
253 PREFIX86(_cli), /* 0xfa */
\r
254 PREFIX86(_sti), /* 0xfb */
\r
255 PREFIX86(_cld), /* 0xfc */
\r
256 PREFIX86(_std), /* 0xfd */
\r
257 PREFIX86(_fepre), /* 0xfe */
\r
258 PREFIX86(_ffpre) /* 0xff */
\r
261 #if defined(BIGCASE) && !defined(RS6000)
\r
262 /* Some compilers cannot handle large case statements */
\r
266 case 0x00: PREFIX86(_add_br8)(cpustate); break;\
\r
267 case 0x01: PREFIX86(_add_wr16)(cpustate); break;\
\r
268 case 0x02: PREFIX86(_add_r8b)(cpustate); break;\
\r
269 case 0x03: PREFIX86(_add_r16w)(cpustate); break;\
\r
270 case 0x04: PREFIX86(_add_ald8)(cpustate); break;\
\r
271 case 0x05: PREFIX86(_add_axd16)(cpustate); break;\
\r
272 case 0x06: PREFIX86(_push_es)(cpustate); break;\
\r
273 case 0x07: PREFIX86(_pop_es)(cpustate); break;\
\r
274 case 0x08: PREFIX86(_or_br8)(cpustate); break;\
\r
275 case 0x09: PREFIX86(_or_wr16)(cpustate); break;\
\r
276 case 0x0a: PREFIX86(_or_r8b)(cpustate); break;\
\r
277 case 0x0b: PREFIX86(_or_r16w)(cpustate); break;\
\r
278 case 0x0c: PREFIX86(_or_ald8)(cpustate); break;\
\r
279 case 0x0d: PREFIX86(_or_axd16)(cpustate); break;\
\r
280 case 0x0e: PREFIX86(_push_cs)(cpustate); break;\
\r
281 case 0x0f: PREFIX86(_invalid)(cpustate); break;\
\r
282 case 0x10: PREFIX86(_adc_br8)(cpustate); break;\
\r
283 case 0x11: PREFIX86(_adc_wr16)(cpustate); break;\
\r
284 case 0x12: PREFIX86(_adc_r8b)(cpustate); break;\
\r
285 case 0x13: PREFIX86(_adc_r16w)(cpustate); break;\
\r
286 case 0x14: PREFIX86(_adc_ald8)(cpustate); break;\
\r
287 case 0x15: PREFIX86(_adc_axd16)(cpustate); break;\
\r
288 case 0x16: PREFIX86(_push_ss)(cpustate); break;\
\r
289 case 0x17: PREFIX86(_pop_ss)(cpustate); break;\
\r
290 case 0x18: PREFIX86(_sbb_br8)(cpustate); break;\
\r
291 case 0x19: PREFIX86(_sbb_wr16)(cpustate); break;\
\r
292 case 0x1a: PREFIX86(_sbb_r8b)(cpustate); break;\
\r
293 case 0x1b: PREFIX86(_sbb_r16w)(cpustate); break;\
\r
294 case 0x1c: PREFIX86(_sbb_ald8)(cpustate); break;\
\r
295 case 0x1d: PREFIX86(_sbb_axd16)(cpustate); break;\
\r
296 case 0x1e: PREFIX86(_push_ds)(cpustate); break;\
\r
297 case 0x1f: PREFIX86(_pop_ds)(cpustate); break;\
\r
298 case 0x20: PREFIX86(_and_br8)(cpustate); break;\
\r
299 case 0x21: PREFIX86(_and_wr16)(cpustate); break;\
\r
300 case 0x22: PREFIX86(_and_r8b)(cpustate); break;\
\r
301 case 0x23: PREFIX86(_and_r16w)(cpustate); break;\
\r
302 case 0x24: PREFIX86(_and_ald8)(cpustate); break;\
\r
303 case 0x25: PREFIX86(_and_axd16)(cpustate); break;\
\r
304 case 0x26: PREFIX86(_es)(cpustate); break;\
\r
305 case 0x27: PREFIX86(_daa)(cpustate); break;\
\r
306 case 0x28: PREFIX86(_sub_br8)(cpustate); break;\
\r
307 case 0x29: PREFIX86(_sub_wr16)(cpustate); break;\
\r
308 case 0x2a: PREFIX86(_sub_r8b)(cpustate); break;\
\r
309 case 0x2b: PREFIX86(_sub_r16w)(cpustate); break;\
\r
310 case 0x2c: PREFIX86(_sub_ald8)(cpustate); break;\
\r
311 case 0x2d: PREFIX86(_sub_axd16)(cpustate); break;\
\r
312 case 0x2e: PREFIX86(_cs)(cpustate); break;\
\r
313 case 0x2f: PREFIX86(_das)(cpustate); break;\
\r
314 case 0x30: PREFIX86(_xor_br8)(cpustate); break;\
\r
315 case 0x31: PREFIX86(_xor_wr16)(cpustate); break;\
\r
316 case 0x32: PREFIX86(_xor_r8b)(cpustate); break;\
\r
317 case 0x33: PREFIX86(_xor_r16w)(cpustate); break;\
\r
318 case 0x34: PREFIX86(_xor_ald8)(cpustate); break;\
\r
319 case 0x35: PREFIX86(_xor_axd16)(cpustate); break;\
\r
320 case 0x36: PREFIX86(_ss)(cpustate); break;\
\r
321 case 0x37: PREFIX86(_aaa)(cpustate); break;\
\r
322 case 0x38: PREFIX86(_cmp_br8)(cpustate); break;\
\r
323 case 0x39: PREFIX86(_cmp_wr16)(cpustate); break;\
\r
324 case 0x3a: PREFIX86(_cmp_r8b)(cpustate); break;\
\r
325 case 0x3b: PREFIX86(_cmp_r16w)(cpustate); break;\
\r
326 case 0x3c: PREFIX86(_cmp_ald8)(cpustate); break;\
\r
327 case 0x3d: PREFIX86(_cmp_axd16)(cpustate); break;\
\r
328 case 0x3e: PREFIX86(_ds)(cpustate); break;\
\r
329 case 0x3f: PREFIX86(_aas)(cpustate); break;\
\r
330 case 0x40: PREFIX86(_inc_ax)(cpustate); break;\
\r
331 case 0x41: PREFIX86(_inc_cx)(cpustate); break;\
\r
332 case 0x42: PREFIX86(_inc_dx)(cpustate); break;\
\r
333 case 0x43: PREFIX86(_inc_bx)(cpustate); break;\
\r
334 case 0x44: PREFIX86(_inc_sp)(cpustate); break;\
\r
335 case 0x45: PREFIX86(_inc_bp)(cpustate); break;\
\r
336 case 0x46: PREFIX86(_inc_si)(cpustate); break;\
\r
337 case 0x47: PREFIX86(_inc_di)(cpustate); break;\
\r
338 case 0x48: PREFIX86(_dec_ax)(cpustate); break;\
\r
339 case 0x49: PREFIX86(_dec_cx)(cpustate); break;\
\r
340 case 0x4a: PREFIX86(_dec_dx)(cpustate); break;\
\r
341 case 0x4b: PREFIX86(_dec_bx)(cpustate); break;\
\r
342 case 0x4c: PREFIX86(_dec_sp)(cpustate); break;\
\r
343 case 0x4d: PREFIX86(_dec_bp)(cpustate); break;\
\r
344 case 0x4e: PREFIX86(_dec_si)(cpustate); break;\
\r
345 case 0x4f: PREFIX86(_dec_di)(cpustate); break;\
\r
346 case 0x50: PREFIX86(_push_ax)(cpustate); break;\
\r
347 case 0x51: PREFIX86(_push_cx)(cpustate); break;\
\r
348 case 0x52: PREFIX86(_push_dx)(cpustate); break;\
\r
349 case 0x53: PREFIX86(_push_bx)(cpustate); break;\
\r
350 case 0x54: PREFIX86(_push_sp)(cpustate); break;\
\r
351 case 0x55: PREFIX86(_push_bp)(cpustate); break;\
\r
352 case 0x56: PREFIX86(_push_si)(cpustate); break;\
\r
353 case 0x57: PREFIX86(_push_di)(cpustate); break;\
\r
354 case 0x58: PREFIX86(_pop_ax)(cpustate); break;\
\r
355 case 0x59: PREFIX86(_pop_cx)(cpustate); break;\
\r
356 case 0x5a: PREFIX86(_pop_dx)(cpustate); break;\
\r
357 case 0x5b: PREFIX86(_pop_bx)(cpustate); break;\
\r
358 case 0x5c: PREFIX86(_pop_sp)(cpustate); break;\
\r
359 case 0x5d: PREFIX86(_pop_bp)(cpustate); break;\
\r
360 case 0x5e: PREFIX86(_pop_si)(cpustate); break;\
\r
361 case 0x5f: PREFIX86(_pop_di)(cpustate); break;\
\r
362 case 0x60: PREFIX86(_invalid_2b)(cpustate); break;\
\r
363 case 0x61: PREFIX86(_invalid_2b)(cpustate); break;\
\r
364 case 0x62: PREFIX86(_invalid_2b)(cpustate); break;\
\r
365 case 0x63: PREFIX86(_invalid_2b)(cpustate); break;\
\r
366 case 0x64: PREFIX86(_invalid_2b)(cpustate); break;\
\r
367 case 0x65: PREFIX86(_invalid_2b)(cpustate); break;\
\r
368 case 0x66: PREFIX86(_invalid_2b)(cpustate); break;\
\r
369 case 0x67: PREFIX86(_invalid_2b)(cpustate); break;\
\r
370 case 0x68: PREFIX86(_invalid_2b)(cpustate); break;\
\r
371 case 0x69: PREFIX86(_invalid_2b)(cpustate); break;\
\r
372 case 0x6a: PREFIX86(_invalid_2b)(cpustate); break;\
\r
373 case 0x6b: PREFIX86(_invalid_2b)(cpustate); break;\
\r
374 case 0x6c: PREFIX86(_invalid_2b)(cpustate); break;\
\r
375 case 0x6d: PREFIX86(_invalid_2b)(cpustate); break;\
\r
376 case 0x6e: PREFIX86(_invalid_2b)(cpustate); break;\
\r
377 case 0x6f: PREFIX86(_invalid_2b)(cpustate); break;\
\r
378 case 0x70: PREFIX86(_jo)(cpustate); break;\
\r
379 case 0x71: PREFIX86(_jno)(cpustate); break;\
\r
380 case 0x72: PREFIX86(_jb)(cpustate); break;\
\r
381 case 0x73: PREFIX86(_jnb)(cpustate); break;\
\r
382 case 0x74: PREFIX86(_jz)(cpustate); break;\
\r
383 case 0x75: PREFIX86(_jnz)(cpustate); break;\
\r
384 case 0x76: PREFIX86(_jbe)(cpustate); break;\
\r
385 case 0x77: PREFIX86(_jnbe)(cpustate); break;\
\r
386 case 0x78: PREFIX86(_js)(cpustate); break;\
\r
387 case 0x79: PREFIX86(_jns)(cpustate); break;\
\r
388 case 0x7a: PREFIX86(_jp)(cpustate); break;\
\r
389 case 0x7b: PREFIX86(_jnp)(cpustate); break;\
\r
390 case 0x7c: PREFIX86(_jl)(cpustate); break;\
\r
391 case 0x7d: PREFIX86(_jnl)(cpustate); break;\
\r
392 case 0x7e: PREFIX86(_jle)(cpustate); break;\
\r
393 case 0x7f: PREFIX86(_jnle)(cpustate); break;\
\r
394 case 0x80: PREFIX86(_80pre)(cpustate); break;\
\r
395 case 0x81: PREFIX86(_81pre)(cpustate); break;\
\r
396 case 0x82: PREFIX86(_82pre)(cpustate); break;\
\r
397 case 0x83: PREFIX86(_83pre)(cpustate); break;\
\r
398 case 0x84: PREFIX86(_test_br8)(cpustate); break;\
\r
399 case 0x85: PREFIX86(_test_wr16)(cpustate); break;\
\r
400 case 0x86: PREFIX86(_xchg_br8)(cpustate); break;\
\r
401 case 0x87: PREFIX86(_xchg_wr16)(cpustate); break;\
\r
402 case 0x88: PREFIX86(_mov_br8)(cpustate); break;\
\r
403 case 0x89: PREFIX86(_mov_wr16)(cpustate); break;\
\r
404 case 0x8a: PREFIX86(_mov_r8b)(cpustate); break;\
\r
405 case 0x8b: PREFIX86(_mov_r16w)(cpustate); break;\
\r
406 case 0x8c: PREFIX86(_mov_wsreg)(cpustate); break;\
\r
407 case 0x8d: PREFIX86(_lea)(cpustate); break;\
\r
408 case 0x8e: PREFIX86(_mov_sregw)(cpustate); break;\
\r
409 case 0x8f: PREFIX86(_popw)(cpustate); break;\
\r
410 case 0x90: PREFIX86(_nop)(cpustate); break;\
\r
411 case 0x91: PREFIX86(_xchg_axcx)(cpustate); break;\
\r
412 case 0x92: PREFIX86(_xchg_axdx)(cpustate); break;\
\r
413 case 0x93: PREFIX86(_xchg_axbx)(cpustate); break;\
\r
414 case 0x94: PREFIX86(_xchg_axsp)(cpustate); break;\
\r
415 case 0x95: PREFIX86(_xchg_axbp)(cpustate); break;\
\r
416 case 0x96: PREFIX86(_xchg_axsi)(cpustate); break;\
\r
417 case 0x97: PREFIX86(_xchg_axdi)(cpustate); break;\
\r
418 case 0x98: PREFIX86(_cbw)(cpustate); break;\
\r
419 case 0x99: PREFIX86(_cwd)(cpustate); break;\
\r
420 case 0x9a: PREFIX86(_call_far)(cpustate); break;\
\r
421 case 0x9b: PREFIX86(_wait)(cpustate); break;\
\r
422 case 0x9c: PREFIX86(_pushf)(cpustate); break;\
\r
423 case 0x9d: PREFIX86(_popf)(cpustate); break;\
\r
424 case 0x9e: PREFIX86(_sahf)(cpustate); break;\
\r
425 case 0x9f: PREFIX86(_lahf)(cpustate); break;\
\r
426 case 0xa0: PREFIX86(_mov_aldisp)(cpustate); break;\
\r
427 case 0xa1: PREFIX86(_mov_axdisp)(cpustate); break;\
\r
428 case 0xa2: PREFIX86(_mov_dispal)(cpustate); break;\
\r
429 case 0xa3: PREFIX86(_mov_dispax)(cpustate); break;\
\r
430 case 0xa4: PREFIX86(_movsb)(cpustate); break;\
\r
431 case 0xa5: PREFIX86(_movsw)(cpustate); break;\
\r
432 case 0xa6: PREFIX86(_cmpsb)(cpustate); break;\
\r
433 case 0xa7: PREFIX86(_cmpsw)(cpustate); break;\
\r
434 case 0xa8: PREFIX86(_test_ald8)(cpustate); break;\
\r
435 case 0xa9: PREFIX86(_test_axd16)(cpustate); break;\
\r
436 case 0xaa: PREFIX86(_stosb)(cpustate); break;\
\r
437 case 0xab: PREFIX86(_stosw)(cpustate); break;\
\r
438 case 0xac: PREFIX86(_lodsb)(cpustate); break;\
\r
439 case 0xad: PREFIX86(_lodsw)(cpustate); break;\
\r
440 case 0xae: PREFIX86(_scasb)(cpustate); break;\
\r
441 case 0xaf: PREFIX86(_scasw)(cpustate); break;\
\r
442 case 0xb0: PREFIX86(_mov_ald8)(cpustate); break;\
\r
443 case 0xb1: PREFIX86(_mov_cld8)(cpustate); break;\
\r
444 case 0xb2: PREFIX86(_mov_dld8)(cpustate); break;\
\r
445 case 0xb3: PREFIX86(_mov_bld8)(cpustate); break;\
\r
446 case 0xb4: PREFIX86(_mov_ahd8)(cpustate); break;\
\r
447 case 0xb5: PREFIX86(_mov_chd8)(cpustate); break;\
\r
448 case 0xb6: PREFIX86(_mov_dhd8)(cpustate); break;\
\r
449 case 0xb7: PREFIX86(_mov_bhd8)(cpustate); break;\
\r
450 case 0xb8: PREFIX86(_mov_axd16)(cpustate); break;\
\r
451 case 0xb9: PREFIX86(_mov_cxd16)(cpustate); break;\
\r
452 case 0xba: PREFIX86(_mov_dxd16)(cpustate); break;\
\r
453 case 0xbb: PREFIX86(_mov_bxd16)(cpustate); break;\
\r
454 case 0xbc: PREFIX86(_mov_spd16)(cpustate); break;\
\r
455 case 0xbd: PREFIX86(_mov_bpd16)(cpustate); break;\
\r
456 case 0xbe: PREFIX86(_mov_sid16)(cpustate); break;\
\r
457 case 0xbf: PREFIX86(_mov_did16)(cpustate); break;\
\r
458 case 0xc0: PREFIX86(_invalid)(cpustate); break;\
\r
459 case 0xc1: PREFIX86(_invalid)(cpustate); break;\
\r
460 case 0xc2: PREFIX86(_ret_d16)(cpustate); break;\
\r
461 case 0xc3: PREFIX86(_ret)(cpustate); break;\
\r
462 case 0xc4: PREFIX86(_les_dw)(cpustate); break;\
\r
463 case 0xc5: PREFIX86(_lds_dw)(cpustate); break;\
\r
464 case 0xc6: PREFIX86(_mov_bd8)(cpustate); break;\
\r
465 case 0xc7: PREFIX86(_mov_wd16)(cpustate); break;\
\r
466 case 0xc8: PREFIX86(_invalid)(cpustate); break;\
\r
467 case 0xc9: PREFIX86(_invalid)(cpustate); break;\
\r
468 case 0xca: PREFIX86(_retf_d16)(cpustate); break;\
\r
469 case 0xcb: PREFIX86(_retf)(cpustate); break;\
\r
470 case 0xcc: PREFIX86(_int3)(cpustate); break;\
\r
471 case 0xcd: PREFIX86(_int)(cpustate); break;\
\r
472 case 0xce: PREFIX86(_into)(cpustate); break;\
\r
473 case 0xcf: PREFIX86(_iret)(cpustate); break;\
\r
474 case 0xd0: PREFIX86(_rotshft_b)(cpustate); break;\
\r
475 case 0xd1: PREFIX86(_rotshft_w)(cpustate); break;\
\r
476 case 0xd2: PREFIX86(_rotshft_bcl)(cpustate); break;\
\r
477 case 0xd3: PREFIX86(_rotshft_wcl)(cpustate); break;\
\r
478 case 0xd4: PREFIX86(_aam)(cpustate); break;\
\r
479 case 0xd5: PREFIX86(_aad)(cpustate); break;\
\r
480 case 0xd6: PREFIX86(_invalid)(cpustate); break;\
\r
481 case 0xd7: PREFIX86(_xlat)(cpustate); break;\
\r
482 case 0xd8: PREFIX86(_escape)(cpustate); break;\
\r
483 case 0xd9: PREFIX86(_escape)(cpustate); break;\
\r
484 case 0xda: PREFIX86(_escape)(cpustate); break;\
\r
485 case 0xdb: PREFIX86(_escape)(cpustate); break;\
\r
486 case 0xdc: PREFIX86(_escape)(cpustate); break;\
\r
487 case 0xdd: PREFIX86(_escape)(cpustate); break;\
\r
488 case 0xde: PREFIX86(_escape)(cpustate); break;\
\r
489 case 0xdf: PREFIX86(_escape)(cpustate); break;\
\r
490 case 0xe0: PREFIX86(_loopne)(cpustate); break;\
\r
491 case 0xe1: PREFIX86(_loope)(cpustate); break;\
\r
492 case 0xe2: PREFIX86(_loop)(cpustate); break;\
\r
493 case 0xe3: PREFIX86(_jcxz)(cpustate); break;\
\r
494 case 0xe4: PREFIX86(_inal)(cpustate); break;\
\r
495 case 0xe5: PREFIX86(_inax)(cpustate); break;\
\r
496 case 0xe6: PREFIX86(_outal)(cpustate); break;\
\r
497 case 0xe7: PREFIX86(_outax)(cpustate); break;\
\r
498 case 0xe8: PREFIX86(_call_d16)(cpustate); break;\
\r
499 case 0xe9: PREFIX86(_jmp_d16)(cpustate); break;\
\r
500 case 0xea: PREFIX86(_jmp_far)(cpustate); break;\
\r
501 case 0xeb: PREFIX86(_jmp_d8)(cpustate); break;\
\r
502 case 0xec: PREFIX86(_inaldx)(cpustate); break;\
\r
503 case 0xed: PREFIX86(_inaxdx)(cpustate); break;\
\r
504 case 0xee: PREFIX86(_outdxal)(cpustate); break;\
\r
505 case 0xef: PREFIX86(_outdxax)(cpustate); break;\
\r
506 case 0xf0: PREFIX86(_lock)(cpustate); break;\
\r
507 case 0xf1: PREFIX86(_invalid)(cpustate); break;\
\r
508 case 0xf2: PREFIX86(_repne)(cpustate); break;\
\r
509 case 0xf3: PREFIX86(_repe)(cpustate); break;\
\r
510 case 0xf4: PREFIX86(_hlt)(cpustate); break;\
\r
511 case 0xf5: PREFIX86(_cmc)(cpustate); break;\
\r
512 case 0xf6: PREFIX86(_f6pre)(cpustate); break;\
\r
513 case 0xf7: PREFIX86(_f7pre)(cpustate); break;\
\r
514 case 0xf8: PREFIX86(_clc)(cpustate); break;\
\r
515 case 0xf9: PREFIX86(_stc)(cpustate); break;\
\r
516 case 0xfa: PREFIX86(_cli)(cpustate); break;\
\r
517 case 0xfb: PREFIX86(_sti)(cpustate); break;\
\r
518 case 0xfc: PREFIX86(_cld)(cpustate); break;\
\r
519 case 0xfd: PREFIX86(_std)(cpustate); break;\
\r
520 case 0xfe: PREFIX86(_fepre)(cpustate); break;\
\r
521 case 0xff: PREFIX86(_ffpre)(cpustate); break;\
\r
524 #define TABLE86 PREFIX86(_instruction)[FETCHOP](cpustate);
\r