xref: /plan9-contrib/sys/src/cmd/6l/optab.c (revision 40d015479ed36701ae6dcfd8814f849fc6285e8d)
1 #include	"l.h"
2 
3 uchar	ynone[] =
4 {
5 	Ynone,	Ynone,	Zlit,	1,
6 	0
7 };
8 uchar	ytext[] =
9 {
10 	Ymb,	Yi32,	Zpseudo,1,
11 	0
12 };
13 uchar	ynop[] =
14 {
15 	Ynone,	Ynone,	Zpseudo,1,
16 	Ynone,	Yml,	Zpseudo,1,
17 	Ynone,	Yrf,	Zpseudo,1,
18 	Ynone,	Yxyr,	Zpseudo,1,
19 	Yml,	Ynone,	Zpseudo,1,
20 	Yrf,	Ynone,	Zpseudo,1,
21 	Yxyr,	Ynone,	Zpseudo,1,
22 	0
23 };
24 uchar	yxorb[] =
25 {
26 	Yi32,	Yal,	Zib_,	1,
27 	Yi32,	Ymb,	Zibo_m,	2,
28 	Yrb,	Ymb,	Zr_m,	1,
29 	Ymb,	Yrb,	Zm_r,	1,
30 	0
31 };
32 uchar	yxorl[] =
33 {
34 	Yi8,	Yml,	Zibo_m,	2,
35 	Yi32,	Yax,	Zil_,	1,
36 	Yi32,	Yml,	Zilo_m,	2,
37 	Yrl,	Yml,	Zr_m,	1,
38 	Yml,	Yrl,	Zm_r,	1,
39 	0
40 };
41 uchar	yaddl[] =
42 {
43 	Yi8,	Yml,	Zibo_m,	2,
44 	Yi32,	Yax,	Zil_,	1,
45 	Yi32,	Yml,	Zilo_m,	2,
46 	Yrl,	Yml,	Zr_m,	1,
47 	Yml,	Yrl,	Zm_r,	1,
48 	0
49 };
50 uchar	yincb[] =
51 {
52 	Ynone,	Ymb,	Zo_m,	2,
53 	0
54 };
55 uchar	yincw[] =
56 {
57 	Ynone,	Yml,	Zo_m,	2,
58 	0
59 };
60 uchar	yincl[] =
61 {
62 	/* 32-bit one-byte version is rex prefix (48) in 64-bit mode */
63 	Ynone,	Yml,	Zo_m,	2,
64 	0
65 };
66 uchar	ycmpb[] =
67 {
68 	Yal,	Yi32,	Z_ib,	1,
69 	Ymb,	Yi32,	Zm_ibo,	2,
70 	Ymb,	Yrb,	Zm_r,	1,
71 	Yrb,	Ymb,	Zr_m,	1,
72 	0
73 };
74 uchar	ycmpl[] =
75 {
76 	Yml,	Yi8,	Zm_ibo,	2,
77 	Yax,	Yi32,	Z_il,	1,
78 	Yml,	Yi32,	Zm_ilo,	2,
79 	Yml,	Yrl,	Zm_r,	1,
80 	Yrl,	Yml,	Zr_m,	1,
81 	0
82 };
83 uchar	yshb[] =
84 {
85 	Yi1,	Ymb,	Zo_m,	2,
86 	Yi32,	Ymb,	Zibo_m,	2,
87 	Ycx,	Ymb,	Zo_m,	2,
88 	0
89 };
90 uchar	yshl[] =
91 {
92 	Yi1,	Yml,	Zo_m,	2,
93 	Yi32,	Yml,	Zibo_m,	2,
94 	Ycl,	Yml,	Zo_m,	2,
95 	Ycx,	Yml,	Zo_m,	2,
96 	0
97 };
98 uchar	ytestb[] =
99 {
100 	Yi32,	Yal,	Zib_,	1,
101 	Yi32,	Ymb,	Zibo_m,	2,
102 	Yrb,	Ymb,	Zr_m,	1,
103 	Ymb,	Yrb,	Zm_r,	1,
104 	0
105 };
106 uchar	ytestl[] =
107 {
108 	Yi32,	Yax,	Zil_,	1,
109 	Yi32,	Yml,	Zilo_m,	2,
110 	Yrl,	Yml,	Zr_m,	1,
111 	Yml,	Yrl,	Zm_r,	1,
112 	0
113 };
114 uchar	ymovb[] =
115 {
116 	Yrb,	Ymb,	Zr_m,	1,
117 	Ymb,	Yrb,	Zm_r,	1,
118 	Yi32,	Yrb,	Zib_rp,	1,
119 	Yi32,	Ymb,	Zibo_m,	2,
120 	0
121 };
122 uchar	ymbs[] =
123 {
124 	Ymb,	Ynone,	Zm_o,	2,
125 	0
126 };
127 uchar	ybtl[] =
128 {
129 	Yi8,	Yml,	Zibo_m,	2,
130 	Yrl,	Yml,	Zr_m,	1,
131 	0
132 };
133 uchar	ymovw[] =
134 {
135 	Yrl,	Yml,	Zr_m,	1,
136 	Yml,	Yrl,	Zm_r,	1,
137 	Yi0,	Yrl,	Zclr,	1,
138 	Yi32,	Yrl,	Zil_rp,	1,
139 	Yi32,	Yml,	Zilo_m,	2,
140 	Yiauto,	Yrl,	Zaut_r,	2,
141 	0
142 };
143 uchar	ymovl[] =
144 {
145 	Yrl,	Yml,	Zr_m,	1,
146 	Yml,	Yrl,	Zm_r,	1,
147 	Yi0,	Yrl,	Zclr,	1,
148 	Yi32,	Yrl,	Zil_rp,	1,
149 	Yi32,	Yml,	Zilo_m,	2,
150 	Yml,	Ymr,	Zm_r_xm,	1,	// MMX MOVD
151 	Ymr,	Yml,	Zr_m_xm,	1,	// MMX MOVD
152 	Yml,	Yxr,	Zm_r_xm,	2,	// XMM MOVD (32 bit)
153 	Yxr,	Yml,	Zr_m_xm,	2,	// XMM MOVD (32 bit)
154 	Yiauto,	Yrl,	Zaut_r,	2,
155 	0
156 };
157 uchar	yret[] =
158 {
159 	Ynone,	Ynone,	Zo_iw,	1,
160 	Yi32,	Ynone,	Zo_iw,	1,
161 	0
162 };
163 uchar	ymovq[] =
164 {
165 	Yrl,	Yml,	Zr_m,	1,	// 0x89
166 	Yml,	Yrl,	Zm_r,	1,	// 0x8b
167 	Yi0,	Yrl,	Zclr,	1,	// 0x31
168 	Ys32,	Yrl,	Zilo_m,	2,	// 32 bit signed 0xc7,(0)
169 	Yi64,	Yrl,	Ziq_rp,	1,	// 0xb8 -- 32/64 bit immediate
170 	Yi32,	Yml,	Zilo_m,	2,	// 0xc7,(0)
171 	Ym,	Ymr,	Zm_r_xm_nr,	1,	// MMX MOVQ (shorter encoding)
172 	Ymr,	Ym,	Zr_m_xm_nr,	1,	// MMX MOVQ
173 	Ymm,	Ymr,	Zm_r_xm,	1,	// MMX MOVD
174 	Ymr,	Ymm,	Zr_m_xm,	1,	// MMX MOVD
175 	Yxr,	Ymr,	Zm_r_xm_nr,	2,	// MOVDQ2Q
176 	Yxr,	Ym,	Zr_m_xm_nr,	2,	// MOVQ xmm store
177 	Yml,	Yxr,	Zm_r_xm,	2,	// MOVD xmm load
178 	Yxr,	Yml,	Zr_m_xm,	2,	// MOVD xmm store
179 	Yiauto,	Yrl,	Zaut_r,	2,	// built-in LEAQ
180 	0
181 };
182 uchar	ymovqq[] =
183 {
184 	Yxm,	Yyr,	Zm_r_xm,	2,	// MOVQQx ymm load
185 	Yyr,	Ym,	Zr_m_xm_nr,	2,	// MOVQQx ymm store
186 	0
187 };
188 uchar	ym_rl[] =
189 {
190 	Ym,	Yrl,	Zm_r,	1,
191 	0
192 };
193 uchar	yrl_m[] =
194 {
195 	Yrl,	Ym,	Zr_m,	1,
196 	0
197 };
198 uchar	ymb_rl[] =
199 {
200 	Ymb,	Yrl,	Zmb_r,	1,
201 	0
202 };
203 uchar	yml_rl[] =
204 {
205 	Yml,	Yrl,	Zm_r,	1,
206 	0
207 };
208 uchar	ycrc[] =
209 {
210 	Yml,	Yrl,	Zm_r_xm,	3,
211 	0
212 };
213 uchar	ycrcb[] =
214 {
215 	Ymb,	Yrb,	Zm_r_xm,	3,
216 	0
217 };
218 uchar	yrl_ml[] =
219 {
220 	Yrl,	Yml,	Zr_m,	1,
221 	0
222 };
223 uchar	yml_mb[] =
224 {
225 	Yrb,	Ymb,	Zr_m,	1,
226 	Ymb,	Yrb,	Zm_r,	1,
227 	0
228 };
229 uchar	yrb_mb[] =
230 {
231 	Yrb,	Ymb,	Zr_m,	1,
232 	0
233 };
234 uchar	yml_ml[] =
235 {
236 	Yrl,	Yml,	Zr_m,	1,
237 	Yml,	Yrl,	Zm_r,	1,
238 	0
239 };
240 uchar	ydivl[] =
241 {
242 	Yml,	Ynone,	Zm_o,	2,
243 	0
244 };
245 uchar	ydivb[] =
246 {
247 	Ymb,	Ynone,	Zm_o,	2,
248 	0
249 };
250 uchar	yimul[] =
251 {
252 	Yml,	Ynone,	Zm_o,	2,
253 	Yi8,	Yrl,	Zib_rr,	1,
254 	Yi32,	Yrl,	Zil_rr,	1,
255 	Yml,	Yrl,	Zm_r,	2,
256 	0
257 };
258 uchar	ybyte[] =
259 {
260 	Yi64,	Ynone,	Zbyte,	1,
261 	0
262 };
263 uchar	yin[] =
264 {
265 	Yi32,	Ynone,	Zib_,	1,
266 	Ynone,	Ynone,	Zlit,	1,
267 	0
268 };
269 uchar	yint[] =
270 {
271 	Yi32,	Ynone,	Zib_,	1,
272 	0
273 };
274 uchar	ypushl[] =
275 {
276 	Yrl,	Ynone,	Zrp_,	1,
277 	Ym,	Ynone,	Zm_o,	2,
278 	Yi8,	Ynone,	Zib_,	1,
279 	Yi32,	Ynone,	Zil_,	1,
280 	0
281 };
282 uchar	ypopl[] =
283 {
284 	Ynone,	Yrl,	Z_rp,	1,
285 	Ynone,	Ym,	Zo_m,	2,
286 	0
287 };
288 uchar	ybswap[] =
289 {
290 	Ynone,	Yrl,	Z_rp,	2,
291 	0,
292 };
293 uchar	yscond[] =
294 {
295 	Ynone,	Ymb,	Zo_m,	2,
296 	0
297 };
298 uchar	yjcond[] =
299 {
300 	Ynone,	Ybr,	Zbr,	1,
301 	0
302 };
303 uchar	yloop[] =
304 {
305 	Ynone,	Ybr,	Zloop,	1,
306 	0
307 };
308 uchar	ycall[] =
309 {
310 	Ynone,	Yml,	Zo_m64,	2,
311 	Ynone,	Ybr,	Zcall,	1,
312 	0
313 };
314 uchar	yjmp[] =
315 {
316 	Ynone,	Yml,	Zo_m64,	2,
317 	Ynone,	Ybr,	Zjmp,	1,
318 	0
319 };
320 
321 uchar	yfmvd[] =
322 {
323 	Ym,	Yf0,	Zm_o,	2,
324 	Yf0,	Ym,	Zo_m,	2,
325 	Yrf,	Yf0,	Zm_o,	2,
326 	Yf0,	Yrf,	Zo_m,	2,
327 	0
328 };
329 uchar	yfmvdp[] =
330 {
331 	Yf0,	Ym,	Zo_m,	2,
332 	Yf0,	Yrf,	Zo_m,	2,
333 	0
334 };
335 uchar	yfmvf[] =
336 {
337 	Ym,	Yf0,	Zm_o,	2,
338 	Yf0,	Ym,	Zo_m,	2,
339 	0
340 };
341 uchar	yfmvx[] =
342 {
343 	Ym,	Yf0,	Zm_o,	2,
344 	0
345 };
346 uchar	yfmvp[] =
347 {
348 	Yf0,	Ym,	Zo_m,	2,
349 	0
350 };
351 uchar	yfadd[] =
352 {
353 	Ym,	Yf0,	Zm_o,	2,
354 	Yrf,	Yf0,	Zm_o,	2,
355 	Yf0,	Yrf,	Zo_m,	2,
356 	0
357 };
358 uchar	yfaddp[] =
359 {
360 	Yf0,	Yrf,	Zo_m,	2,
361 	0
362 };
363 uchar	yfxch[] =
364 {
365 	Yf0,	Yrf,	Zo_m,	2,
366 	Yrf,	Yf0,	Zm_o,	2,
367 	0
368 };
369 uchar	ycompp[] =
370 {
371 	Yf0,	Yrf,	Zo_m,	2,	/* botch is really f0,f1 */
372 	0
373 };
374 uchar	ystsw[] =
375 {
376 	Ynone,	Ym,	Zo_m,	2,
377 	Ynone,	Yax,	Zlit,	1,
378 	0
379 };
380 uchar	ystcw[] =
381 {
382 	Ynone,	Ym,	Zo_m,	2,
383 	Ym,	Ynone,	Zm_o,	2,
384 	0
385 };
386 uchar	ysvrs[] =
387 {
388 	Ynone,	Ym,	Zo_m,	2,
389 	Ym,	Ynone,	Zm_o,	2,
390 	0
391 };
392 uchar	ymm[] =
393 {
394 	Ymm,	Ymr,	Zm_r_xm,	1,
395 	Yxm,	Yxyr,	Zm_r_xm,	2,
396 	0
397 };
398 uchar	yxm[] =
399 {
400 	Yxm,	Yxr,	Zm_r_xm,	1,
401 	0
402 };
403 uchar	yxcvm1[] =
404 {
405 	Yxm,	Yxr,	Zm_r_xm,	2,
406 	Yxm,	Ymr,	Zm_r_xm,	2,
407 	0
408 };
409 uchar	yxcvm2[] =
410 {
411 	Yxm,	Yxr,	Zm_r_xm,	2,
412 	Ymm,	Yxr,	Zm_r_xm,	2,
413 	0
414 };
415 uchar	yxmq[] =
416 {
417 	Yxm,	Yxr,	Zm_r_xm,	2,
418 	0
419 };
420 uchar	yxr[] =
421 {
422 	Yxr,	Yxr,	Zm_r_xm,	1,
423 	0
424 };
425 uchar	yxr_ml[] =
426 {
427 	Yxr,	Yml,	Zr_m_xm,	1,
428 	0
429 };
430 uchar	ymr[] =
431 {
432 	Ymr,	Ymr,	Zm_r,	1,
433 	0
434 };
435 uchar	ymr_ml[] =
436 {
437 	Ymr,	Yml,	Zr_m_xm,	1,
438 	0
439 };
440 uchar	yxcmp[] =
441 {
442 	Yxm,	Yxr, Zm_r_xm,	1,
443 	0
444 };
445 uchar	yxcmpi[] =
446 {
447 	Yxm,	Yxr, Zm_r_i_xm,	2,
448 	0
449 };
450 uchar	yxmov[] =
451 {
452 	Yxm,	Yxr,	Zm_r_xm,	1,
453 	Yxr,	Yxm,	Zr_m_xm,	1,
454 	0
455 };
456 uchar	yxcvfl[] =
457 {
458 	Yxm,	Yrl,	Zm_r_xm,	1,
459 	0
460 };
461 uchar	yxcvlf[] =
462 {
463 	Yml,	Yxr,	Zm_r_xm,	1,
464 	0
465 };
466 uchar	yxcvfq[] =
467 {
468 	Yxm,	Yrl,	Zm_r_xm,	2,
469 	0
470 };
471 uchar	yxcvqf[] =
472 {
473 	Yml,	Yxr,	Zm_r_xm,	2,
474 	0
475 };
476 uchar	yps[] =
477 {
478 	Ymm,	Ymr,	Zm_r_xm,	1,
479 	Yi8,	Ymr,	Zibo_m_xm,	2,
480 	Yxm,	Yxr,	Zm_r_xm,	2,
481 	Yi8,	Yxr,	Zibo_m_xm,	3,
482 	0
483 };
484 uchar	yxrrl[] =
485 {
486 	Yxr,	Yrl,	Zm_r,	1,
487 	0
488 };
489 uchar	ymfp[] =
490 {
491 	Ymm,	Ymr,	Zm_r_3d,	1,
492 	0,
493 };
494 uchar	ymrxr[] =
495 {
496 	Yxm,	Yxyr,	Zm_r_xm,	2,
497 	0
498 };
499 uchar	ymrxrmv[] =
500 {
501 	Ymr,	Yxr,	Zm_r,	1,
502 	Yxm,	Yxyr,	Zm_r_xm,	1,
503 	0
504 };
505 uchar	ymshuf[] =
506 {
507 	Ymm,	Ymr,	Zibm_r,	1,
508 	0
509 };
510 uchar	yxshuf[] =
511 {
512 	Yxm,	Yxyr,	Zibm_r,	1,
513 	0
514 };
515 uchar	yxshuf2[] =
516 {
517 	Yxm,	Yxyr,	Zm_r_i_xm,	2,
518 	0
519 };
520 uchar	yextrw[] =
521 {
522 	Yxr,	Yrl,	Zibm_r,	1,
523 	0
524 };
525 uchar	ypsdq[] =
526 {
527 	Yi8,	Yxyr,	Zibo_m,	2,
528 	0
529 };
530 uchar	ymskb[] =
531 {
532 	Yxyr,	Yrl,	Zm_r_xm,	2,
533 	Ymr,	Yrl,	Zm_r_xm,	1,
534 	0
535 };
536 uchar	yaes[] = {
537 	Yi8,	Yxyr,	Zr_m_i_xm,	3,
538 	0
539 };
540 
541 Optab optab[] =
542 /*	as, ytab, andproto, opcode */
543 {
544 	{ AXXX },
545 	{ AAAA,		ynone,	P32, 0x37 },
546 	{ AAAD,		ynone,	P32, 0xd5,0x0a },
547 	{ AAAM,		ynone,	P32, 0xd4,0x0a },
548 	{ AAAS,		ynone,	P32, 0x3f },
549 	{ AADCB,	yxorb,	Pb, 0x14,0x80,(02),0x10,0x10 },
550 	{ AADCL,	yxorl,	Px, 0x83,(02),0x15,0x81,(02),0x11,0x13 },
551 	{ AADCQ,	yxorl,	Pw, 0x83,(02),0x15,0x81,(02),0x11,0x13 },
552 	{ AADCW,	yxorl,	Pe, 0x83,(02),0x15,0x81,(02),0x11,0x13 },
553 	{ AADDB,	yxorb,	Pb, 0x04,0x80,(00),0x00,0x02 },
554 	{ AADDL,	yaddl,	Px, 0x83,(00),0x05,0x81,(00),0x01,0x03 },
555 	{ AADDPD,	yxm,	Pq, 0x58 },
556 	{ AADDPS,	yxm,	Pm, 0x58 },
557 	{ AADDQ,	yaddl,	Pw, 0x83,(00),0x05,0x81,(00),0x01,0x03 },
558 	{ AADDSD,	yxm,	Pf2, 0x58 },
559 	{ AADDSS,	yxm,	Pf3, 0x58 },
560 	{ AADDW,	yaddl,	Pe, 0x83,(00),0x05,0x81,(00),0x01,0x03 },
561 	{ AADJSP },
562 	{ AANDB,	yxorb,	Pb, 0x24,0x80,(04),0x20,0x22 },
563 	{ AANDL,	yxorl,	Px, 0x83,(04),0x25,0x81,(04),0x21,0x23 },
564 	{ AANDNPD,	yxm,	Pq, 0x55 },
565 	{ AANDNPS,	yxm,	Pm, 0x55 },
566 	{ AANDPD,	yxm,	Pq, 0x54 },
567 	{ AANDPS,	yxm,	Pq, 0x54 },
568 	{ AANDQ,	yxorl,	Pw, 0x83,(04),0x25,0x81,(04),0x21,0x23 },
569 	{ AANDW,	yxorl,	Pe, 0x83,(04),0x25,0x81,(04),0x21,0x23 },
570 	{ AARPL,	yrl_ml,	P32, 0x63 },
571 	{ ABOUNDL,	yrl_m,	P32, 0x62 },
572 	{ ABOUNDW,	yrl_m,	Pe, 0x62 },
573 	{ ABSFL,	yml_rl,	Pm, 0xbc },
574 	{ ABSFQ,	yml_rl,	Pw, 0x0f,0xbc },
575 	{ ABSFW,	yml_rl,	Pq, 0xbc },
576 	{ ABSRL,	yml_rl,	Pm, 0xbd },
577 	{ ABSRQ,	yml_rl,	Pw, 0x0f,0xbd },
578 	{ ABSRW,	yml_rl,	Pq, 0xbd },
579 	{ ABSWAPL,	ybswap,	Px, 0x0f,0xc8 },
580 	{ ABSWAPQ,	ybswap,	Pw, 0x0f,0xc8 },
581 	{ ABTCL,	ybtl,	Pm, 0xba,(07),0xbb },
582 	{ ABTCQ,	ybtl,	Pw, 0x0f,0xba,(07),0x0f,0xbb },
583 	{ ABTCW,	ybtl,	Pq, 0xba,(07),0xbb },
584 	{ ABTL,		ybtl,	Pm, 0xba,(04),0xa3 },
585 	{ ABTQ,		ybtl,	Pw, 0x0f,0xba,(04),0x0f,0xa3},
586 	{ ABTRL,	ybtl,	Pm, 0xba,(06),0xb3 },
587 	{ ABTRQ,	ybtl,	Pw, 0x0f,0xba,(06),0x0f,0xb3 },
588 	{ ABTRW,	ybtl,	Pq, 0xba,(06),0xb3 },
589 	{ ABTSL,	ybtl,	Pm, 0xba,(05),0xab  },
590 	{ ABTSQ,	ybtl,	Pw, 0x0f,0xba,(05),0x0f,0xab },
591 	{ ABTSW,	ybtl,	Pq, 0xba,(05),0xab  },
592 	{ ABTW,		ybtl,	Pq, 0xba,(04),0xa3 },
593 	{ ABYTE,	ybyte,	Px, 1 },
594 	{ ACALL,	ycall,	Px, 0xff,(02),0xe8 },
595 	{ ACDQ,		ynone,	Px, 0x99 },
596 	{ ACLC,		ynone,	Px, 0xf8 },
597 	{ ACLD,		ynone,	Px, 0xfc },
598 	{ ACLI,		ynone,	Px, 0xfa },
599 	{ ACLTS,	ynone,	Pm, 0x06 },
600 	{ ACMC,		ynone,	Px, 0xf5 },
601 	{ ACMOVLCC,	yml_rl,	Pm, 0x43 },
602 	{ ACMOVLCS,	yml_rl,	Pm, 0x42 },
603 	{ ACMOVLEQ,	yml_rl,	Pm, 0x44 },
604 	{ ACMOVLGE,	yml_rl,	Pm, 0x4d },
605 	{ ACMOVLGT,	yml_rl,	Pm, 0x4f },
606 	{ ACMOVLHI,	yml_rl,	Pm, 0x47 },
607 	{ ACMOVLLE,	yml_rl,	Pm, 0x4e },
608 	{ ACMOVLLS,	yml_rl,	Pm, 0x46 },
609 	{ ACMOVLLT,	yml_rl,	Pm, 0x4c },
610 	{ ACMOVLMI,	yml_rl,	Pm, 0x48 },
611 	{ ACMOVLNE,	yml_rl,	Pm, 0x45 },
612 	{ ACMOVLOC,	yml_rl,	Pm, 0x41 },
613 	{ ACMOVLOS,	yml_rl,	Pm, 0x40 },
614 	{ ACMOVLPC,	yml_rl,	Pm, 0x4b },
615 	{ ACMOVLPL,	yml_rl,	Pm, 0x49 },
616 	{ ACMOVLPS,	yml_rl,	Pm, 0x4a },
617 	{ ACMOVQCC,	yml_rl,	Pw, 0x0f,0x43 },
618 	{ ACMOVQCS,	yml_rl,	Pw, 0x0f,0x42 },
619 	{ ACMOVQEQ,	yml_rl,	Pw, 0x0f,0x44 },
620 	{ ACMOVQGE,	yml_rl,	Pw, 0x0f,0x4d },
621 	{ ACMOVQGT,	yml_rl,	Pw, 0x0f,0x4f },
622 	{ ACMOVQHI,	yml_rl,	Pw, 0x0f,0x47 },
623 	{ ACMOVQLE,	yml_rl,	Pw, 0x0f,0x4e },
624 	{ ACMOVQLS,	yml_rl,	Pw, 0x0f,0x46 },
625 	{ ACMOVQLT,	yml_rl,	Pw, 0x0f,0x4c },
626 	{ ACMOVQMI,	yml_rl,	Pw, 0x0f,0x48 },
627 	{ ACMOVQNE,	yml_rl,	Pw, 0x0f,0x45 },
628 	{ ACMOVQOC,	yml_rl,	Pw, 0x0f,0x41 },
629 	{ ACMOVQOS,	yml_rl,	Pw, 0x0f,0x40 },
630 	{ ACMOVQPC,	yml_rl,	Pw, 0x0f,0x4b },
631 	{ ACMOVQPL,	yml_rl,	Pw, 0x0f,0x49 },
632 	{ ACMOVQPS,	yml_rl,	Pw, 0x0f,0x4a },
633 	{ ACMOVWCC,	yml_rl,	Pq, 0x43 },
634 	{ ACMOVWCS,	yml_rl,	Pq, 0x42 },
635 	{ ACMOVWEQ,	yml_rl,	Pq, 0x44 },
636 	{ ACMOVWGE,	yml_rl,	Pq, 0x4d },
637 	{ ACMOVWGT,	yml_rl,	Pq, 0x4f },
638 	{ ACMOVWHI,	yml_rl,	Pq, 0x47 },
639 	{ ACMOVWLE,	yml_rl,	Pq, 0x4e },
640 	{ ACMOVWLS,	yml_rl,	Pq, 0x46 },
641 	{ ACMOVWLT,	yml_rl,	Pq, 0x4c },
642 	{ ACMOVWMI,	yml_rl,	Pq, 0x48 },
643 	{ ACMOVWNE,	yml_rl,	Pq, 0x45 },
644 	{ ACMOVWOC,	yml_rl,	Pq, 0x41 },
645 	{ ACMOVWOS,	yml_rl,	Pq, 0x40 },
646 	{ ACMOVWPC,	yml_rl,	Pq, 0x4b },
647 	{ ACMOVWPL,	yml_rl,	Pq, 0x49 },
648 	{ ACMOVWPS,	yml_rl,	Pq, 0x4a },
649 	{ ACMPB,	ycmpb,	Pb, 0x3c,0x80,(07),0x38,0x3a },
650 	{ ACMPL,	ycmpl,	Px, 0x83,(07),0x3d,0x81,(07),0x39,0x3b },
651 	{ ACMPPD,	yxcmpi,	Px, Pe,0xc2 },
652 	{ ACMPPS,	yxcmpi,	Pm, 0xc2,0 },
653 	{ ACMPQ,	ycmpl,	Pw, 0x83,(07),0x3d,0x81,(07),0x39,0x3b },
654 	{ ACMPSB,	ynone,	Pb, 0xa6 },
655 	{ ACMPSD,	yxcmpi,	Px, Pf2,0xc2 },
656 	{ ACMPSL,	ynone,	Px, 0xa7 },
657 	{ ACMPSQ,	ynone,	Pw, 0xa7 },
658 	{ ACMPSS,	yxcmpi,	Px, Pf3,0xc2 },
659 	{ ACMPSW,	ynone,	Pe, 0xa7 },
660 	{ ACMPW,	ycmpl,	Pe, 0x83,(07),0x3d,0x81,(07),0x39,0x3b },
661 	{ ACOMISD,	yxcmp,	Pe, 0x2f },
662 	{ ACOMISS,	yxcmp,	Pm, 0x2f },
663 	{ ACPUID,	ynone,	Pm, 0xa2 },
664 	{ ACVTPL2PD,	yxcvm2,	Px, Pf3,0xe6,Pe,0x2a },
665 	{ ACVTPL2PS,	yxcvm2,	Pm, 0x5b,0,0x2a,0, },
666 	{ ACVTPD2PL,	yxcvm1,	Px, Pf2,0xe6,Pe,0x2d },
667 	{ ACVTPD2PS,	yxm,	Pe, 0x5a },
668 	{ ACVTPS2PL,	yxcvm1, Px, Pe,0x5b,Pm,0x2d },
669 	{ ACVTPS2PD,	yxm,	Pm, 0x5a },
670 	{ API2FW,	ymfp,	Px, 0x0c },
671 	{ ACVTSD2SL,	yxcvfl, Pf2, 0x2d },
672 	{ ACVTSD2SQ,	yxcvfq, Pw, Pf2,0x2d },
673 	{ ACVTSD2SS,	yxm,	Pf2, 0x5a },
674 	{ ACVTSL2SD,	yxcvlf, Pf2, 0x2a },
675 	{ ACVTSQ2SD,	yxcvqf, Pw, Pf2,0x2a },
676 	{ ACVTSL2SS,	yxcvlf, Pf3, 0x2a },
677 	{ ACVTSQ2SS,	yxcvqf, Pw, Pf3,0x2a },
678 	{ ACVTSS2SD,	yxm,	Pf3, 0x5a },
679 	{ ACVTSS2SL,	yxcvfl, Pf3, 0x2d },
680 	{ ACVTSS2SQ,	yxcvfq, Pw, Pf3,0x2d },
681 	{ ACVTTPD2PL,	yxcvm1,	Px, Pe,0xe6,Pe,0x2c },
682 	{ ACVTTPS2PL,	yxcvm1,	Px, Pf3,0x5b,Pm,0x2c },
683 	{ ACVTTSD2SL,	yxcvfl, Pf2, 0x2c },
684 	{ ACVTTSD2SQ,	yxcvfq, Pw, Pf2,0x2c },
685 	{ ACVTTSS2SL,	yxcvfl,	Pf3, 0x2c },
686 	{ ACVTTSS2SQ,	yxcvfq, Pw, Pf3,0x2c },
687 	{ ACWD,		ynone,	Pe, 0x99 },
688 	{ ACQO,		ynone,	Pw, 0x99 },
689 	{ ADAA,		ynone,	P32, 0x27 },
690 	{ ADAS,		ynone,	P32, 0x2f },
691 	{ ADATA },
692 	{ ADECB,	yincb,	Pb, 0xfe,(01) },
693 	{ ADECL,	yincl,	Px, 0xff,(01) },
694 	{ ADECQ,	yincl,	Pw, 0xff,(01) },
695 	{ ADECW,	yincw,	Pe, 0xff,(01) },
696 	{ ADIVB,	ydivb,	Pb, 0xf6,(06) },
697 	{ ADIVL,	ydivl,	Px, 0xf7,(06) },
698 	{ ADIVPD,	yxm,	Pe, 0x5e },
699 	{ ADIVPS,	yxm,	Pm, 0x5e },
700 	{ ADIVQ,	ydivl,	Pw, 0xf7,(06) },
701 	{ ADIVSD,	yxm,	Pf2, 0x5e },
702 	{ ADIVSS,	yxm,	Pf3, 0x5e },
703 	{ ADIVW,	ydivl,	Pe, 0xf7,(06) },
704 	{ AEMMS,	ynone,	Pm, 0x77 },
705 	{ AENTER },				/* botch */
706 	{ AFXRSTOR,	ysvrs,	Pm, 0xae,(01),0xae,(01) },
707 	{ AFXSAVE,	ysvrs,	Pm, 0xae,(00),0xae,(00) },
708 	{ AFXRSTOR64,	ysvrs,	Pw, 0x0f,0xae,(01),0x0f,0xae,(01) },
709 	{ AFXSAVE64,	ysvrs,	Pw, 0x0f,0xae,(00),0x0f,0xae,(00) },
710 	{ AGLOBL },
711 	{ AGOK },
712 	{ AHISTORY },
713 	{ AHLT,		ynone,	Px, 0xf4 },
714 	{ AIDIVB,	ydivb,	Pb, 0xf6,(07) },
715 	{ AIDIVL,	ydivl,	Px, 0xf7,(07) },
716 	{ AIDIVQ,	ydivl,	Pw, 0xf7,(07) },
717 	{ AIDIVW,	ydivl,	Pe, 0xf7,(07) },
718 	{ AIMULB,	ydivb,	Pb, 0xf6,(05) },
719 	{ AIMULL,	yimul,	Px, 0xf7,(05),0x6b,0x69,Pm,0xaf },
720 	{ AIMULQ,	yimul,	Pw, 0xf7,(05),0x6b,0x69,Pm,0xaf },
721 	{ AIMULW,	yimul,	Pe, 0xf7,(05),0x6b,0x69,Pm,0xaf },
722 	{ AINB,		yin,	Pb, 0xe4,0xec },
723 	{ AINCB,	yincb,	Pb, 0xfe,(00) },
724 	{ AINCL,	yincl,	Px, 0xff,(00) },
725 	{ AINCQ,	yincl,	Pw, 0xff,(00) },
726 	{ AINCW,	yincw,	Pe, 0xff,(00) },
727 	{ AINL,		yin,	Px, 0xe5,0xed },
728 	{ AINSB,	ynone,	Pb, 0x6c },
729 	{ AINSL,	ynone,	Px, 0x6d },
730 	{ AINSW,	ynone,	Pe, 0x6d },
731 	{ AINT,		yint,	Px, 0xcd },
732 	{ AINTO,	ynone,	P32, 0xce },
733 	{ AINW,		yin,	Pe, 0xe5,0xed },
734 	{ AIRETL,	ynone,	Px, 0xcf },
735 	{ AIRETQ,	ynone,	Pw, 0xcf },
736 	{ AIRETW,	ynone,	Pe, 0xcf },
737 	{ AJCC,		yjcond,	Px, 0x73,0x83,(00) },
738 	{ AJCS,		yjcond,	Px, 0x72,0x82 },
739 	{ AJCXZ,	yloop,	Px, 0xe3 },
740 	{ AJEQ,		yjcond,	Px, 0x74,0x84 },
741 	{ AJGE,		yjcond,	Px, 0x7d,0x8d },
742 	{ AJGT,		yjcond,	Px, 0x7f,0x8f },
743 	{ AJHI,		yjcond,	Px, 0x77,0x87 },
744 	{ AJLE,		yjcond,	Px, 0x7e,0x8e },
745 	{ AJLS,		yjcond,	Px, 0x76,0x86 },
746 	{ AJLT,		yjcond,	Px, 0x7c,0x8c },
747 	{ AJMI,		yjcond,	Px, 0x78,0x88 },
748 	{ AJMP,		yjmp,	Px, 0xff,(04),0xeb,0xe9 },
749 	{ AJNE,		yjcond,	Px, 0x75,0x85 },
750 	{ AJOC,		yjcond,	Px, 0x71,0x81,(00) },
751 	{ AJOS,		yjcond,	Px, 0x70,0x80,(00) },
752 	{ AJPC,		yjcond,	Px, 0x7b,0x8b },
753 	{ AJPL,		yjcond,	Px, 0x79,0x89 },
754 	{ AJPS,		yjcond,	Px, 0x7a,0x8a },
755 	{ ALAHF,	ynone,	Px, 0x9f },
756 	{ ALARL,	yml_rl,	Pm, 0x02 },
757 	{ ALARW,	yml_rl,	Pq, 0x02 },
758 	{ ALDMXCSR,	ysvrs,	Pm, 0xae,(02),0xae,(02) },
759 	{ ALEAL,	ym_rl,	Px, 0x8d },
760 	{ ALEAQ,	ym_rl,	Pw, 0x8d },
761 	{ ALEAVEL,	ynone,	P32, 0xc9 },
762 	{ ALEAVEQ,	ynone,	Py, 0xc9 },
763 	{ ALEAVEW,	ynone,	Pe, 0xc9 },
764 	{ ALEAW,	ym_rl,	Pe, 0x8d },
765 	{ ALOCK,	ynone,	Px, 0xf0 },
766 	{ ALODSB,	ynone,	Pb, 0xac },
767 	{ ALODSL,	ynone,	Px, 0xad },
768 	{ ALODSQ,	ynone,	Pw, 0xad },
769 	{ ALODSW,	ynone,	Pe, 0xad },
770 	{ ALONG,	ybyte,	Px, 4 },
771 	{ ALOOP,	yloop,	Px, 0xe2 },
772 	{ ALOOPEQ,	yloop,	Px, 0xe1 },
773 	{ ALOOPNE,	yloop,	Px, 0xe0 },
774 	{ ALSLL,	yml_rl,	Pm, 0x03  },
775 	{ ALSLW,	yml_rl,	Pq, 0x03  },
776 	{ AMASKMOVDQU,	yxr,	Pe, 0xf7 },
777 	{ AMASKMOVQ,	ymr,	Pm, 0xf7 },
778 	{ AMAXPD,	yxm,	Pe, 0x5f },
779 	{ AMAXPS,	yxm,	Pm, 0x5f },
780 	{ AMAXSD,	yxm,	Pf2, 0x5f },
781 	{ AMAXSS,	yxm,	Pf3, 0x5f },
782 	{ AMINPD,	yxm,	Pe, 0x5d },
783 	{ AMINPS,	yxm,	Pm, 0x5d },
784 	{ AMINSD,	yxm,	Pf2, 0x5d },
785 	{ AMINSS,	yxm,	Pf3, 0x5d },
786 	{ AMOVAPD,	yxmov,	Pe|P2, 0x28,0x29 },
787 	{ AMOVAPS,	yxmov,	Pm|P2, 0x28,0x29 },
788 	{ AMOVB,	ymovb,	Pb, 0x88,0x8a,0xb0,0xc6,(00) },
789 	{ AMOVBLSX,	ymb_rl,	Pm, 0xbe },
790 	{ AMOVBLZX,	ymb_rl,	Pm, 0xb6 },
791 	{ AMOVBQSX,	ymb_rl,	Pw, 0x0f,0xbe },
792 	{ AMOVBQZX,	ymb_rl,	Pw, 0x0f,0xb6 },
793 	{ AMOVBWSX,	ymb_rl,	Pq, 0xbe },
794 	{ AMOVBWZX,	ymb_rl,	Pq, 0xb6 },
795 	{ AMOVO,	yxmov,	Pe, 0x6f,0x7f },
796 	{ AMOVDQA,	yxmov,	Pe|P2, 0x6f,0x7f },
797 	{ AMOVDQU,	yxmov,	Pf3|P2, 0x6f,0x7f },
798 	{ AMOVHLPS,	yxr,	Pm, 0x12 },
799 	{ AMOVHPD,	yxmov,	Pe|P2, 0x16,0x17 },
800 	{ AMOVHPS,	yxmov,	Pm|P2, 0x16,0x17 },
801 	{ AMOVL,	ymovl,	Px, 0x89,0x8b,0x31,0xb8,0xc7,(00),0x6e,0x7e,Pe,0x6e,Pe,0x7e },
802 	{ AMOVLHPS,	yxr,	Pm, 0x16 },
803 	{ AMOVLPD,	yxmov,	Pe|P2, 0x12,0x13 },
804 	{ AMOVLPS,	yxmov,	Pm|P2, 0x12,0x13 },
805 	{ AMOVLQSX,	yml_rl,	Pw, 0x63 },
806 	{ AMOVLQZX,	yml_rl,	Px, 0x8b },
807 	{ AMOVMSKPD,	yxrrl,	Pq, 0x50 },
808 	{ AMOVMSKPS,	yxrrl,	Pm, 0x50 },
809 	{ AMOVNTDQ,	yxr_ml,	Pe, 0xe7 },
810 	{ AMOVNTPD,	yxr_ml,	Pe, 0x2b },
811 	{ AMOVNTPS,	yxr_ml,	Pm, 0x2b },
812 	{ AMOVNTQ,	ymr_ml,	Pm, 0xe7 },
813 	{ AMOVQ,	ymovq,	Pw|P2, 0x89,0x8b,0x31,0xc7,(00),0xb8,0xc7,(00),0x6f,0x7f,0x6e,0x7e,Pf2,0xd6,Pe,0xd6,Pe,0x6e,Pe,0x7e },
814 	{ AMOVQL,	yrl_ml,	Px,	0x89 },
815 	{ AMOVQQA,	ymovqq,	P2, Pe,0x6f,Pe,0x7f },
816 	{ AMOVQQU,	ymovqq,	P2, Pf3,0x6f,Pf3,0x7f },
817 	{ AMOVQOZX,	ymrxrmv,	Pf3, 0xd6,0x7e },
818 	{ AMOVSB,	ynone,	Pb, 0xa4 },
819 	{ AMOVSD,	yxmov,	Pf2|P2, 0x10,0x11 },
820 	{ AMOVSL,	ynone,	Px, 0xa5 },
821 	{ AMOVSQ,	ynone,	Pw, 0xa5 },
822 	{ AMOVSS,	yxmov,	Pf3|P2, 0x10,0x11 },
823 	{ AMOVSW,	ynone,	Pe, 0xa5 },
824 	{ AMOVUPD,	yxmov,	Pe|P2, 0x10,0x11 },
825 	{ AMOVUPS,	yxmov,	Pm|P2, 0x10,0x11 },
826 	{ AMOVW,	ymovw,	Pe, 0x89,0x8b,0x31,0xb8,0xc7,(00) },
827 	{ AMOVWLSX,	yml_rl,	Pm, 0xbf },
828 	{ AMOVWLZX,	yml_rl,	Pm, 0xb7 },
829 	{ AMOVWQSX,	yml_rl,	Pw, 0x0f,0xbf },
830 	{ AMOVWQZX,	yml_rl,	Pw, 0x0f,0xb7 },
831 	{ AMULB,	ydivb,	Pb, 0xf6,(04) },
832 	{ AMULL,	ydivl,	Px, 0xf7,(04) },
833 	{ AMULPD,	yxm,	Pe, 0x59 },
834 	{ AMULPS,	yxm,	Ym, 0x59 },
835 	{ AMULQ,	ydivl,	Pw, 0xf7,(04) },
836 	{ AMULSD,	yxm,	Pf2, 0x59 },
837 	{ AMULSS,	yxm,	Pf3, 0x59 },
838 	{ AMULW,	ydivl,	Pe, 0xf7,(04) },
839 	{ ANAME },
840 	{ ANEGB,	yscond,	Pb, 0xf6,(03) },
841 	{ ANEGL,	yscond,	Px, 0xf7,(03) },
842 	{ ANEGQ,	yscond,	Pw, 0xf7,(03) },
843 	{ ANEGW,	yscond,	Pe, 0xf7,(03) },
844 	{ ANOP,		ynop,	Px, 0,0 },
845 	{ ANOTB,	yscond,	Pb, 0xf6,(02) },
846 	{ ANOTL,	yscond,	Px, 0xf7,(02) },
847 	{ ANOTQ,	yscond,	Pw, 0xf7,(02) },
848 	{ ANOTW,	yscond,	Pe, 0xf7,(02) },
849 	{ AORB,		yxorb,	Pb, 0x0c,0x80,(01),0x08,0x0a },
850 	{ AORL,		yxorl,	Px, 0x83,(01),0x0d,0x81,(01),0x09,0x0b },
851 	{ AORPD,	yxm,	Pq, 0x56 },
852 	{ AORPS,	yxm,	Pm, 0x56 },
853 	{ AORQ,		yxorl,	Pw, 0x83,(01),0x0d,0x81,(01),0x09,0x0b },
854 	{ AORW,		yxorl,	Pe, 0x83,(01),0x0d,0x81,(01),0x09,0x0b },
855 	{ AOUTB,	yin,	Pb, 0xe6,0xee },
856 	{ AOUTL,	yin,	Px, 0xe7,0xef },
857 	{ AOUTSB,	ynone,	Pb, 0x6e },
858 	{ AOUTSL,	ynone,	Px, 0x6f },
859 	{ AOUTSW,	ynone,	Pe, 0x6f },
860 	{ AOUTW,	yin,	Pe, 0xe7,0xef },
861 	{ APABSB,	ymrxr,	Pe, Pm38,0x1c },
862 	{ APABSL,	ymrxr,	Pe, Pm38,0x1e },
863 	{ APABSW,	ymrxr,	Pe, Pm38,0x1d },
864 	{ APACKSSLW,	ymm,	Py, 0x6b,Pe,0x6b },
865 	{ APACKSSWB,	ymm,	Py, 0x63,Pe,0x63 },
866 	{ APACKUSDW,	ymrxr,	Pe, Pm38,0x2b },
867 	{ APACKUSWB,	ymm,	Py, 0x67,Pe,0x67 },
868 	{ APADDB,	ymm,	Py, 0xfc,Pe,0xfc },
869 	{ APADDL,	ymm,	Py, 0xfe,Pe,0xfe },
870 	{ APADDQ,	yxm,	Pe, 0xd4 },
871 	{ APADDSB,	ymm,	Py, 0xec,Pe,0xec },
872 	{ APADDSW,	ymm,	Py, 0xed,Pe,0xed },
873 	{ APADDUSB,	ymm,	Py, 0xdc,Pe,0xdc },
874 	{ APADDUSW,	ymm,	Py, 0xdd,Pe,0xdd },
875 	{ APADDW,	ymm,	Py, 0xfd,Pe,0xfd },
876 	{ APAND,	ymm,	Py, 0xdb,Pe,0xdb },
877 	{ APANDN,	ymm,	Py, 0xdf,Pe,0xdf },
878 	{ APAVGB,	ymm,	Py, 0xe0,Pe,0xe0 },
879 	{ APAVGW,	ymm,	Py, 0xe3,Pe,0xe3 },
880 	{ APCMPEQB,	ymm,	Py, 0x74,Pe,0x74 },
881 	{ APCMPEQL,	ymm,	Py, 0x76,Pe,0x76 },
882 	{ APCMPEQQ,	ymrxr,	Pe, Pm38,0x29 },
883 	{ APCMPGTQ,	ymrxr,	Pe, Pm38,0x37 },
884 	{ APCMPEQW,	ymm,	Py, 0x75,Pe,0x75 },
885 	{ APCMPGTB,	ymm,	Py, 0x64,Pe,0x64 },
886 	{ APCMPGTL,	ymm,	Py, 0x66,Pe,0x66 },
887 	{ APCMPGTW,	ymm,	Py, 0x65,Pe,0x65 },
888 	{ APEXTRW,	yextrw,	Pq, 0xc5 },
889 	{ APF2IL,	ymfp,	Px, 0x1d },
890 	{ APF2IW,	ymfp,	Px, 0x1c },
891 	{ API2FL,	ymfp,	Px, 0x0d },
892 	{ APFACC,	ymfp,	Px, 0xae },
893 	{ APFADD,	ymfp,	Px, 0x9e },
894 	{ APFCMPEQ,	ymfp,	Px, 0xb0 },
895 	{ APFCMPGE,	ymfp,	Px, 0x90 },
896 	{ APFCMPGT,	ymfp,	Px, 0xa0 },
897 	{ APFMAX,	ymfp,	Px, 0xa4 },
898 	{ APFMIN,	ymfp,	Px, 0x94 },
899 	{ APFMUL,	ymfp,	Px, 0xb4 },
900 	{ APFNACC,	ymfp,	Px, 0x8a },
901 	{ APFPNACC,	ymfp,	Px, 0x8e },
902 	{ APFRCP,	ymfp,	Px, 0x96 },
903 	{ APFRCPIT1,	ymfp,	Px, 0xa6 },
904 	{ APFRCPI2T,	ymfp,	Px, 0xb6 },
905 	{ APFRSQIT1,	ymfp,	Px, 0xa7 },
906 	{ APFRSQRT,	ymfp,	Px, 0x97 },
907 	{ APFSUB,	ymfp,	Px, 0x9a },
908 	{ APFSUBR,	ymfp,	Px, 0xaa },
909 	{ APHADDL,	ymrxr,	Pe, Pm38,0x02 },
910 	{ APHADDSW,	ymrxr,	Pe, Pm38,0x03 },
911 	{ APHADDW,	ymrxr,	Pe, Pm38,0x01 },
912 	{ APHMINPOSUW,	ymrxr,	Pe, Pm38,0x41 },
913 	{ APHSUBL,	ymrxr,	Pe, Pm38,0x06 },
914 	{ APHSUBSW,	ymrxr,	Pe, Pm38,0x07 },
915 	{ APHSUBW,	ymrxr,	Pe, Pm38,0x05 },
916 	{ APINSRW,	yextrw,	Pq, 0xc4 },
917 	{ APMADDUBSW,	ymrxr,	Pe, Pm38,0x04 },
918 	{ APMADDWL,	ymm,	Py, 0xf5,Pe,0xf5 },
919 	{ APMAXSB,	ymrxr,	Pe, Pm38,0x3c },
920 	{ APMAXSL,	ymrxr,	Pe, Pm38,0x3d },
921 	{ APMAXSW,	yxm,	Pe, 0xee },
922 	{ APMAXUB,	yxm,	Pe, 0xde },
923 	{ APMAXUL,	ymrxr,	Pe, Pm38,0x3f },
924 	{ APMAXUW,	ymrxr,	Pe, Pm38,0x3e },
925 	{ APMINSB,	ymrxr,	Pe,	Pm38,0x38 },
926 	{ APMINSL,	ymrxr,	Pe, Pm38,0x39 },
927 	{ APMINUL,	ymrxr,	Pe, Pm38,0x3b },
928 	{ APMINUW,	ymrxr,	Pe, Pm38,0x3a },
929 	{ APMINSW,	yxm,	Pe, 0xea },
930 	{ APMINUB,	yxm,	Pe, 0xda },
931 	{ APMOVMSKB,	ymskb,	Px|P2, Pe,0xd7,0xd7 },
932 	{ APMOVSXBL,	ymrxr,	Pe, Pm38,0x21 },
933 	{ APMOVSXBQ,	ymrxr,	Pe, Pm38,0x22 },
934 	{ APMOVSXBW,	ymrxr,	Pe, Pm38,0x20 },
935 	{ APMOVSXLQ,	ymrxr,	Pe, Pm38,0x25 },
936 	{ APMOVSXWL,	ymrxr,	Pe, Pm38,0x23 },
937 	{ APMOVSXWQ,	ymrxr,	Pe, Pm38,0x24 },
938 	{ APMOVZXBL,	ymrxr,	Pe, Pm38,0x31 },
939 	{ APMOVZXBQ,	ymrxr,	Pe, Pm38,0x32 },
940 	{ APMOVZXBW,	ymrxr,	Pe, Pm38,0x30 },
941 	{ APMOVZXLQ,	ymrxr,	Pe, Pm38,0x35 },
942 	{ APMOVZXWL,	ymrxr,	Pe, Pm38,0x33 },
943 	{ APMOVZXWQ,	ymrxr,	Pe, Pm38,0x34 },
944 	{ APMULLL,	ymrxr,	Pe, Pm38,0x40 },
945 	{ APMULLQ,	ymrxr,	Pe, Pm38,0x28 },
946 	{ APMULHRSW,	ymrxr,	Pe, Pm38,0x0b },
947 	{ APMULHRW,	ymfp,	Px, 0xb7 },
948 	{ APMULHUW,	ymm,	Py, 0xe4,Pe,0xe4 },
949 	{ APMULHW,	ymm,	Py, 0xe5,Pe,0xe5 },
950 	{ APMULLW,	ymm,	Py, 0xd5,Pe,0xd5 },
951 	{ APMULULQ,	ymm,	Py, 0xf4,Pe,0xf4 },
952 	{ APOPAL,	ynone,	P32, 0x61 },
953 	{ APOPAW,	ynone,	Pe, 0x61 },
954 	{ APOPFL,	ynone,	P32, 0x9d },
955 	{ APOPFQ,	ynone,	Py, 0x9d },
956 	{ APOPFW,	ynone,	Pe, 0x9d },
957 	{ APOPL,	ypopl,	P32, 0x58,0x8f,(00) },
958 	{ APOPQ,	ypopl,	Py, 0x58,0x8f,(00) },
959 	{ APOPW,	ypopl,	Pe, 0x58,0x8f,(00) },
960 	{ APOR,		ymm,	Py, 0xeb,Pe,0xeb },
961 	{ APSADBW,	yxm,	Pq, 0xf6 },
962 	{ APSHUFB,	ymrxr,	Pe, Pm38,0x00 },
963 	{ APSHUFHW,	yxshuf,	Pf3, 0x70 },
964 	{ APSHUFL,	yxshuf,	Pq, 0x70 },
965 	{ APSHUFLW,	yxshuf,	Pf2, 0x70 },
966 	{ APSHUFW,	ymshuf,	Pm, 0x70 },
967 	{ APSIGNB,	ymrxr,	Pe, Pm38,0x08 },
968 	{ APSIGNL,	ymrxr,	Pe, Pm38,0x0a },
969 	{ APSIGNW,	ymrxr,	Pe, Pm38,0x09 },
970 	{ APSLLDQ,	ypsdq,	Pq, 0x73,(07) },
971 	{ APSLLL,	yps,	Py, 0xf2, 0x72,(06), Pe,0xf2, Pe,0x72,(06) },
972 	{ APSLLQ,	yps,	Py, 0xf3, 0x73,(06), Pe,0xf3, Pe,0x7e,(06) },
973 	{ APSLLW,	yps,	Py, 0xf1, 0x71,(06), Pe,0xf1, Pe,0x71,(06) },
974 	{ APSRAL,	yps,	Py, 0xe2, 0x72,(04), Pe,0xe2, Pe,0x72,(04) },
975 	{ APSRAW,	yps,	Py, 0xe1, 0x71,(04), Pe,0xe1, Pe,0x71,(04) },
976 	{ APSRLDQ,	ypsdq,	Pq, 0x73,(03) },
977 	{ APSRLL,	yps,	Py, 0xd2, 0x72,(02), Pe,0xd2, Pe,0x72,(02) },
978 	{ APSRLQ,	yps,	Py, 0xd3, 0x73,(02), Pe,0xd3, Pe,0x73,(02) },
979 	{ APSRLW,	yps,	Py, 0xd1, 0x71,(02), Pe,0xe1, Pe,0x71,(02) },
980 	{ APSUBB,	yxm,	Pe, 0xf8 },
981 	{ APSUBL,	yxm,	Pe, 0xfa },
982 	{ APSUBQ,	yxm,	Pe, 0xfb },
983 	{ APSUBSB,	yxm,	Pe, 0xe8 },
984 	{ APSUBSW,	yxm,	Pe, 0xe9 },
985 	{ APSUBUSB,	yxm,	Pe, 0xd8 },
986 	{ APSUBUSW,	yxm,	Pe, 0xd9 },
987 	{ APSUBW,	yxm,	Pe, 0xf9 },
988 	{ APSWAPL,	ymfp,	Px, 0xbb },
989 	{ APTEST,	ymrxr,	Pe, Pm38,0x17 },
990 	{ APUNPCKHBW,	ymm,	Py, 0x68,Pe,0x68 },
991 	{ APUNPCKHLQ,	ymm,	Py, 0x6a,Pe,0x6a },
992 	{ APUNPCKHQDQ,	yxm,	Pe, 0x6d },
993 	{ APUNPCKHWL,	ymm,	Py, 0x69,Pe,0x69 },
994 	{ APUNPCKLBW,	ymm,	Py, 0x60,Pe,0x60 },
995 	{ APUNPCKLLQ,	ymm,	Py, 0x62,Pe,0x62 },
996 	{ APUNPCKLQDQ,	yxm,	Pe, 0x6c },
997 	{ APUNPCKLWL,	ymm,	Py, 0x61,Pe,0x61 },
998 	{ APUSHAL,	ynone,	P32, 0x60 },
999 	{ APUSHAW,	ynone,	Pe, 0x60 },
1000 	{ APUSHFL,	ynone,	P32, 0x9c },
1001 	{ APUSHFQ,	ynone,	Py, 0x9c },
1002 	{ APUSHFW,	ynone,	Pe, 0x9c },
1003 	{ APUSHL,	ypushl,	P32, 0x50,0xff,(06),0x6a,0x68 },
1004 	{ APUSHQ,	ypushl,	Py, 0x50,0xff,(06),0x6a,0x68 },
1005 	{ APUSHW,	ypushl,	Pe, 0x50,0xff,(06),0x6a,0x68 },
1006 	{ APXOR,	ymm,	Py, 0xef,Pe,0xef },
1007 	{ AQUAD,	ybyte,	Px, 8 },
1008 	{ ARCLB,	yshb,	Pb, 0xd0,(02),0xc0,(02),0xd2,(02) },
1009 	{ ARCLL,	yshl,	Px, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) },
1010 	{ ARCLQ,	yshl,	Pw, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) },
1011 	{ ARCLW,	yshl,	Pe, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) },
1012 	{ ARCPPS,	yxm,	Pm|P2, 0x53 },
1013 	{ ARCPSS,	yxm,	Pf3|P2, 0x53 },
1014 	{ ARCRB,	yshb,	Pb, 0xd0,(03),0xc0,(03),0xd2,(03) },
1015 	{ ARCRL,	yshl,	Px, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) },
1016 	{ ARCRQ,	yshl,	Pw, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) },
1017 	{ ARCRW,	yshl,	Pe, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) },
1018 	{ AREP,		ynone,	Px, 0xf3 },
1019 	{ AREPN,	ynone,	Px, 0xf2 },
1020 	{ ARET,		ynone,	Px, 0xc3 },
1021 	{ ARETFW,	yret,	Pe, 0xcb,0xca },
1022 	{ ARETFL,	yret,	Px, 0xcb,0xca },
1023 	{ ARETFQ,	yret,	Pw, 0xcb,0xca },
1024 	{ AROLB,	yshb,	Pb, 0xd0,(00),0xc0,(00),0xd2,(00) },
1025 	{ AROLL,	yshl,	Px, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) },
1026 	{ AROLQ,	yshl,	Pw, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) },
1027 	{ AROLW,	yshl,	Pe, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) },
1028 	{ ARORB,	yshb,	Pb, 0xd0,(01),0xc0,(01),0xd2,(01) },
1029 	{ ARORL,	yshl,	Px, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) },
1030 	{ ARORQ,	yshl,	Pw, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) },
1031 	{ ARORW,	yshl,	Pe, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) },
1032 	{ ARSQRTPS,	yxm,	Pm|P2, 0x52 },
1033 	{ ARSQRTSS,	yxm,	Pf3|P2, 0x52 },
1034 	{ ASAHF,	ynone,	Px, 0x86,0xe0,0x50,0x9d },	/* XCHGB AH,AL; PUSH AX; POPFL */
1035 	{ ASALB,	yshb,	Pb, 0xd0,(04),0xc0,(04),0xd2,(04) },
1036 	{ ASALL,	yshl,	Px, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
1037 	{ ASALQ,	yshl,	Pw, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
1038 	{ ASALW,	yshl,	Pe, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
1039 	{ ASARB,	yshb,	Pb, 0xd0,(07),0xc0,(07),0xd2,(07) },
1040 	{ ASARL,	yshl,	Px, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) },
1041 	{ ASARQ,	yshl,	Pw, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) },
1042 	{ ASARW,	yshl,	Pe, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) },
1043 	{ ASBBB,	yxorb,	Pb, 0x1c,0x80,(03),0x18,0x1a },
1044 	{ ASBBL,	yxorl,	Px, 0x83,(03),0x1d,0x81,(03),0x19,0x1b },
1045 	{ ASBBQ,	yxorl,	Pw, 0x83,(03),0x1d,0x81,(03),0x19,0x1b },
1046 	{ ASBBW,	yxorl,	Pe, 0x83,(03),0x1d,0x81,(03),0x19,0x1b },
1047 	{ ASCASB,	ynone,	Pb, 0xae },
1048 	{ ASCASL,	ynone,	Px, 0xaf },
1049 	{ ASCASQ,	ynone,	Pw, 0xaf },
1050 	{ ASCASW,	ynone,	Pe, 0xaf },
1051 	{ ASETCC,	yscond,	Pm, 0x93,(00) },
1052 	{ ASETCS,	yscond,	Pm, 0x92,(00) },
1053 	{ ASETEQ,	yscond,	Pm, 0x94,(00) },
1054 	{ ASETGE,	yscond,	Pm, 0x9d,(00) },
1055 	{ ASETGT,	yscond,	Pm, 0x9f,(00) },
1056 	{ ASETHI,	yscond,	Pm, 0x97,(00) },
1057 	{ ASETLE,	yscond,	Pm, 0x9e,(00) },
1058 	{ ASETLS,	yscond,	Pm, 0x96,(00) },
1059 	{ ASETLT,	yscond,	Pm, 0x9c,(00) },
1060 	{ ASETMI,	yscond,	Pm, 0x98,(00) },
1061 	{ ASETNE,	yscond,	Pm, 0x95,(00) },
1062 	{ ASETOC,	yscond,	Pm, 0x91,(00) },
1063 	{ ASETOS,	yscond,	Pm, 0x90,(00) },
1064 	{ ASETPC,	yscond,	Pm, 0x96,(00) },
1065 	{ ASETPL,	yscond,	Pm, 0x99,(00) },
1066 	{ ASETPS,	yscond,	Pm, 0x9a,(00) },
1067 	{ ASHLB,	yshb,	Pb, 0xd0,(04),0xc0,(04),0xd2,(04) },
1068 	{ ASHLL,	yshl,	Px, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
1069 	{ ASHLQ,	yshl,	Pw, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
1070 	{ ASHLW,	yshl,	Pe, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) },
1071 	{ ASHRB,	yshb,	Pb, 0xd0,(05),0xc0,(05),0xd2,(05) },
1072 	{ ASHRL,	yshl,	Px, 0xd1,(05),0xc1,(05),0xd3,(05),0xd3,(05) },
1073 	{ ASHRQ,	yshl,	Pw, 0xd1,(05),0xc1,(05),0xd3,(05),0xd3,(05) },
1074 	{ ASHRW,	yshl,	Pe, 0xd1,(05),0xc1,(05),0xd3,(05),0xd3,(05) },
1075 	{ ASHUFPD,	yxshuf,	Pq, 0xc6 },
1076 	{ ASHUFPS,	yxshuf,	Pm, 0xc6 },
1077 	{ ASQRTPD,	yxm,	Pe|P2, 0x51 },
1078 	{ ASQRTPS,	yxm,	Pm|P2, 0x51 },
1079 	{ ASQRTSD,	yxm,	Pf2|P2, 0x51 },
1080 	{ ASQRTSS,	yxm,	Pf3|P2, 0x51 },
1081 	{ ASTC,		ynone,	Px, 0xf9 },
1082 	{ ASTD,		ynone,	Px, 0xfd },
1083 	{ ASTI,		ynone,	Px, 0xfb },
1084 	{ ASTMXCSR,	ysvrs,	Pm, 0xae,(03),0xae,(03) },
1085 	{ ASTOSB,	ynone,	Pb, 0xaa },
1086 	{ ASTOSL,	ynone,	Px, 0xab },
1087 	{ ASTOSQ,	ynone,	Pw, 0xab },
1088 	{ ASTOSW,	ynone,	Pe, 0xab },
1089 	{ ASUBB,	yxorb,	Pb, 0x2c,0x80,(05),0x28,0x2a },
1090 	{ ASUBL,	yaddl,	Px, 0x83,(05),0x2d,0x81,(05),0x29,0x2b },
1091 	{ ASUBPD,	yxm,	Pe, 0x5c },
1092 	{ ASUBPS,	yxm,	Pm, 0x5c },
1093 	{ ASUBQ,	yaddl,	Pw, 0x83,(05),0x2d,0x81,(05),0x29,0x2b },
1094 	{ ASUBSD,	yxm,	Pf2, 0x5c },
1095 	{ ASUBSS,	yxm,	Pf3, 0x5c },
1096 	{ ASUBW,	yaddl,	Pe, 0x83,(05),0x2d,0x81,(05),0x29,0x2b },
1097 	{ ASWAPGS,	ynone,	Pm, 0x01,0xf8 },
1098 	{ ASYSCALL,	ynone,	Px, 0x0f,0x05 },	/* fast syscall */
1099 	{ ATESTB,	ytestb,	Pb, 0xa8,0xf6,(00),0x84,0x84 },
1100 	{ ATESTL,	ytestl,	Px, 0xa9,0xf7,(00),0x85,0x85 },
1101 	{ ATESTQ,	ytestl,	Pw, 0xa9,0xf7,(00),0x85,0x85 },
1102 	{ ATESTW,	ytestl,	Pe, 0xa9,0xf7,(00),0x85,0x85 },
1103 	{ ATEXT,	ytext,	Px },
1104 	{ AUCOMISD,	yxcmp,	Pe, 0x2e },
1105 	{ AUCOMISS,	yxcmp,	Pm, 0x2e },
1106 	{ AUNPCKHPD,	yxm,	Pe, 0x15 },
1107 	{ AUNPCKHPS,	yxm,	Pm, 0x15 },
1108 	{ AUNPCKLPD,	yxm,	Pe, 0x14 },
1109 	{ AUNPCKLPS,	yxm,	Pm, 0x14 },
1110 	{ AVERR,	ydivl,	Pm, 0x00,(04) },
1111 	{ AVERW,	ydivl,	Pm, 0x00,(05) },
1112 	{ AWAIT,	ynone,	Px, 0x9b },
1113 	{ AWORD,	ybyte,	Px, 2 },
1114 	{ AXCHGB,	yml_mb,	Pb, 0x86,0x86 },
1115 	{ AXCHGL,	yml_ml,	Px, 0x87,0x87 },
1116 	{ AXCHGQ,	yml_ml,	Pw, 0x87,0x87 },
1117 	{ AXCHGW,	yml_ml,	Pe, 0x87,0x87 },
1118 	{ AXLAT,	ynone,	Px, 0xd7 },
1119 	{ AXORB,	yxorb,	Pb, 0x34,0x80,(06),0x30,0x32 },
1120 	{ AXORL,	yxorl,	Px, 0x83,(06),0x35,0x81,(06),0x31,0x33 },
1121 	{ AXORPD,	yxm,	Pe, 0x57 },
1122 	{ AXORPS,	yxm,	Pm, 0x57 },
1123 	{ AXORQ,	yxorl,	Pw, 0x83,(06),0x35,0x81,(06),0x31,0x33 },
1124 	{ AXORW,	yxorl,	Pe, 0x83,(06),0x35,0x81,(06),0x31,0x33 },
1125 
1126 	{ AFMOVB,	yfmvx,	Px, 0xdf,(04) },
1127 	{ AFMOVBP,	yfmvp,	Px, 0xdf,(06) },
1128 	{ AFMOVD,	yfmvd,	Px, 0xdd,(00),0xdd,(02),0xd9,(00),0xdd,(02) },
1129 	{ AFMOVDP,	yfmvdp,	Px, 0xdd,(03),0xdd,(03) },
1130 	{ AFMOVF,	yfmvf,	Px, 0xd9,(00),0xd9,(02) },
1131 	{ AFMOVFP,	yfmvp,	Px, 0xd9,(03) },
1132 	{ AFMOVL,	yfmvf,	Px, 0xdb,(00),0xdb,(02) },
1133 	{ AFMOVLP,	yfmvp,	Px, 0xdb,(03) },
1134 	{ AFMOVV,	yfmvx,	Px, 0xdf,(05) },
1135 	{ AFMOVVP,	yfmvp,	Px, 0xdf,(07) },
1136 	{ AFMOVW,	yfmvf,	Px, 0xdf,(00),0xdf,(02) },
1137 	{ AFMOVWP,	yfmvp,	Px, 0xdf,(03) },
1138 	{ AFMOVX,	yfmvx,	Px, 0xdb,(05) },
1139 	{ AFMOVXP,	yfmvp,	Px, 0xdb,(07) },
1140 
1141 	{ AFCOMB },
1142 	{ AFCOMBP },
1143 	{ AFCOMD,	yfadd,	Px, 0xdc,(02),0xd8,(02),0xdc,(02) },	/* botch */
1144 	{ AFCOMDP,	yfadd,	Px, 0xdc,(03),0xd8,(03),0xdc,(03) },	/* botch */
1145 	{ AFCOMDPP,	ycompp,	Px, 0xde,(03) },
1146 	{ AFCOMF,	yfmvx,	Px, 0xd8,(02) },
1147 	{ AFCOMFP,	yfmvx,	Px, 0xd8,(03) },
1148 	{ AFCOML,	yfmvx,	Px, 0xda,(02) },
1149 	{ AFCOMLP,	yfmvx,	Px, 0xda,(03) },
1150 	{ AFCOMW,	yfmvx,	Px, 0xde,(02) },
1151 	{ AFCOMWP,	yfmvx,	Px, 0xde,(03) },
1152 
1153 	{ AFUCOM,	ycompp,	Px, 0xdd,(04) },
1154 	{ AFUCOMP,	ycompp, Px, 0xdd,(05) },
1155 	{ AFUCOMPP,	ycompp,	Px, 0xda,(13) },
1156 
1157 	{ AFADDDP,	yfaddp,	Px, 0xde,(00) },
1158 	{ AFADDW,	yfmvx,	Px, 0xde,(00) },
1159 	{ AFADDL,	yfmvx,	Px, 0xda,(00) },
1160 	{ AFADDF,	yfmvx,	Px, 0xd8,(00) },
1161 	{ AFADDD,	yfadd,	Px, 0xdc,(00),0xd8,(00),0xdc,(00) },
1162 
1163 	{ AFMULDP,	yfaddp,	Px, 0xde,(01) },
1164 	{ AFMULW,	yfmvx,	Px, 0xde,(01) },
1165 	{ AFMULL,	yfmvx,	Px, 0xda,(01) },
1166 	{ AFMULF,	yfmvx,	Px, 0xd8,(01) },
1167 	{ AFMULD,	yfadd,	Px, 0xdc,(01),0xd8,(01),0xdc,(01) },
1168 
1169 	{ AFSUBDP,	yfaddp,	Px, 0xde,(05) },
1170 	{ AFSUBW,	yfmvx,	Px, 0xde,(04) },
1171 	{ AFSUBL,	yfmvx,	Px, 0xda,(04) },
1172 	{ AFSUBF,	yfmvx,	Px, 0xd8,(04) },
1173 	{ AFSUBD,	yfadd,	Px, 0xdc,(04),0xd8,(04),0xdc,(05) },
1174 
1175 	{ AFSUBRDP,	yfaddp,	Px, 0xde,(04) },
1176 	{ AFSUBRW,	yfmvx,	Px, 0xde,(05) },
1177 	{ AFSUBRL,	yfmvx,	Px, 0xda,(05) },
1178 	{ AFSUBRF,	yfmvx,	Px, 0xd8,(05) },
1179 	{ AFSUBRD,	yfadd,	Px, 0xdc,(05),0xd8,(05),0xdc,(04) },
1180 
1181 	{ AFDIVDP,	yfaddp,	Px, 0xde,(07) },
1182 	{ AFDIVW,	yfmvx,	Px, 0xde,(06) },
1183 	{ AFDIVL,	yfmvx,	Px, 0xda,(06) },
1184 	{ AFDIVF,	yfmvx,	Px, 0xd8,(06) },
1185 	{ AFDIVD,	yfadd,	Px, 0xdc,(06),0xd8,(06),0xdc,(07) },
1186 
1187 	{ AFDIVRDP,	yfaddp,	Px, 0xde,(06) },
1188 	{ AFDIVRW,	yfmvx,	Px, 0xde,(07) },
1189 	{ AFDIVRL,	yfmvx,	Px, 0xda,(07) },
1190 	{ AFDIVRF,	yfmvx,	Px, 0xd8,(07) },
1191 	{ AFDIVRD,	yfadd,	Px, 0xdc,(07),0xd8,(07),0xdc,(06) },
1192 
1193 	{ AFXCHD,	yfxch,	Px, 0xd9,(01),0xd9,(01) },
1194 	{ AFFREE },
1195 	{ AFLDCW,	ystcw,	Px, 0xd9,(05),0xd9,(05) },
1196 	{ AFLDENV,	ystcw,	Px, 0xd9,(04),0xd9,(04) },
1197 	{ AFRSTOR,	ysvrs,	Px, 0xdd,(04),0xdd,(04) },
1198 	{ AFSAVE,	ysvrs,	Px, 0xdd,(06),0xdd,(06) },
1199 	{ AFSTCW,	ystcw,	Px, 0xd9,(07),0xd9,(07) },
1200 	{ AFSTENV,	ystcw,	Px, 0xd9,(06),0xd9,(06) },
1201 	{ AFSTSW,	ystsw,	Px, 0xdd,(07),0xdf,0xe0 },
1202 	{ AF2XM1,	ynone,	Px, 0xd9, 0xf0 },
1203 	{ AFABS,	ynone,	Px, 0xd9, 0xe1 },
1204 	{ AFCHS,	ynone,	Px, 0xd9, 0xe0 },
1205 	{ AFCLEX,	ynone,	Px, 0xdb, 0xe2 },
1206 	{ AFCOS,	ynone,	Px, 0xd9, 0xff },
1207 	{ AFDECSTP,	ynone,	Px, 0xd9, 0xf6 },
1208 	{ AFINCSTP,	ynone,	Px, 0xd9, 0xf7 },
1209 	{ AFINIT,	ynone,	Px, 0xdb, 0xe3 },
1210 	{ AFLD1,	ynone,	Px, 0xd9, 0xe8 },
1211 	{ AFLDL2E,	ynone,	Px, 0xd9, 0xea },
1212 	{ AFLDL2T,	ynone,	Px, 0xd9, 0xe9 },
1213 	{ AFLDLG2,	ynone,	Px, 0xd9, 0xec },
1214 	{ AFLDLN2,	ynone,	Px, 0xd9, 0xed },
1215 	{ AFLDPI,	ynone,	Px, 0xd9, 0xeb },
1216 	{ AFLDZ,	ynone,	Px, 0xd9, 0xee },
1217 	{ AFNOP,	ynone,	Px, 0xd9, 0xd0 },
1218 	{ AFPATAN,	ynone,	Px, 0xd9, 0xf3 },
1219 	{ AFPREM,	ynone,	Px, 0xd9, 0xf8 },
1220 	{ AFPREM1,	ynone,	Px, 0xd9, 0xf5 },
1221 	{ AFPTAN,	ynone,	Px, 0xd9, 0xf2 },
1222 	{ AFRNDINT,	ynone,	Px, 0xd9, 0xfc },
1223 	{ AFSCALE,	ynone,	Px, 0xd9, 0xfd },
1224 	{ AFSIN,	ynone,	Px, 0xd9, 0xfe },
1225 	{ AFSINCOS,	ynone,	Px, 0xd9, 0xfb },
1226 	{ AFSQRT,	ynone,	Px, 0xd9, 0xfa },
1227 	{ AFTST,	ynone,	Px, 0xd9, 0xe4 },
1228 	{ AFXAM,	ynone,	Px, 0xd9, 0xe5 },
1229 	{ AFXTRACT,	ynone,	Px, 0xd9, 0xf4 },
1230 	{ AFYL2X,	ynone,	Px, 0xd9, 0xf1 },
1231 	{ AFYL2XP1,	ynone,	Px, 0xd9, 0xf9 },
1232 
1233 	{ ACMPXCHGB,	yrb_mb,	Pb, 0x0f,0xb0 },
1234 	{ ACMPXCHGL,	yrl_ml,	Px, 0x0f,0xb1 },
1235 	{ ACMPXCHGW,	yrl_ml,	Pe, 0x0f,0xb1 },
1236 	{ ACMPXCHGQ,	yrl_ml,	Pw, 0x0f,0xb1 },
1237 	{ ACMPXCHG16B,	yscond,	Pw, 0x0f,0xc7,(01) },
1238 	{ ACMPXCHG8B,	yscond,	Pm, 0xc7,(01) },
1239 	{ AINVD,	ynone,	Pm, 0x08 },
1240 	{ AINVLPG,	ymbs,	Pm, 0x01,(07) },
1241 	{ ALFENCE,	ynone,	Pm, 0xae,0xe8 },
1242 	{ AMFENCE,	ynone,	Pm, 0xae,0xf0 },
1243 	{ AMOVNTIL,	yrl_ml,	Pm, 0xc3 },
1244 	{ AMOVNTIQ,	yrl_ml, Pw, 0x0f,0xc3 },
1245 	{ ARDMSR,	ynone,	Pm, 0x32 },
1246 	{ ARDPMC,	ynone,	Pm, 0x33 },
1247 	{ ARDTSC,	ynone,	Pm, 0x31 },
1248 	{ ARSM,		ynone,	Pm, 0xaa },
1249 	{ ASFENCE,	ynone,	Pm, 0xae,0xf8 },
1250 	{ ASYSRET,	ynone,	Pm, 0x07 },
1251 	{ AWBINVD,	ynone,	Pm, 0x09 },
1252 	{ AWRMSR,	ynone,	Pm, 0x30 },
1253 
1254 	{ AXADDB,	yrb_mb,	Pb, 0x0f,0xc0 },
1255 	{ AXADDL,	yrl_ml,	Px, 0x0f,0xc1 },
1256 	{ AXADDQ,	yrl_ml,	Pw, 0x0f,0xc1 },
1257 	{ AXADDW,	yrl_ml,	Pe, 0x0f,0xc1 },
1258 
1259 	{ APALIGNR,		yxshuf2,	Pe, Pm3a,0x0f },
1260 
1261 	{ AXSAVE,		ysvrs,		Pm,	0xae,(04),0xae,(04) },
1262 	{ AXSAVEOPT,	ysvrs,		Pm, 0xae,(06),0xae,(06) },
1263 	{ AXRSTOR,		ysvrs,		Pm,	0xae,(05),0xae,(05) },
1264 
1265 	{ ACRC32L,		ycrc,		Px, Pf2,0x38,0xf1 },
1266 	{ ACRC32W,		ycrc,		Pe, Pf2,0x38,0xf1 },
1267 	{ ACRC32B,		ycrcb,	Pb, Pf2,0x38,0xf0 },
1268 	{ ACRC32Q,		ycrc,		Pw, Pf2,0x38,0xf1 },
1269 	{ APAUSE,	ynone,	Px, 0xf3,0x90 },
1270 
1271 	{ AAESIMC,	yxm,	Pe, Pm38, 0xdb },
1272 	{ AAESENC,	yxm,	Pe, Pm38, 0xdc },
1273 	{ AAESENCLAST,	yxm,	Pe, Pm38, 0xdd },
1274 	{ AAESDEC,	yxm,	Pe, Pm38, 0xde },
1275 	{ AAESDECLAST,	yxm,	Pe, Pm38, 0xdf },
1276 	{ AAESKEYGENASSIST,	yaes,	Pe, Pm3a, 0xdf },
1277 	{ APCLMULQDQ,	yaes,	Pe, Pm3a, 0x44 },
1278 
1279 	{ ABLENDPS,	yaes,	Pe, Pm3a, 0xdc },
1280 	{ ABLENDPD,	yaes,	Pe, Pm3a, 0x0d },
1281 
1282 	{ AEND },
1283 	0
1284 };
1285 
1286 Optab*	opindex[ALAST+1];
1287