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