summaryrefslogtreecommitdiff
path: root/lib/AsmJit/DefsX86X64.cpp
blob: 072d96b916f2ab9d25f6eb32e1cf51b5e2669d1f (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
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
// AsmJit - Complete JIT Assembler for C++ Language.

// Copyright (c) 2008-2010, Petr Kobalicek <kobalicek.petr@gmail.com>
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.

// [Dependencies]
#include "Defs.h"

// [Api-Begin]
#include "ApiBegin.h"

namespace AsmJit {

// ============================================================================
// [AsmJit::ConditionToInstruction]
// ============================================================================

const uint32_t ConditionToInstruction::_jcctable[16] =
{
  INST_JO,
  INST_JNO,
  INST_JB,
  INST_JAE,
  INST_JE,
  INST_JNE,
  INST_JBE,
  INST_JA,
  INST_JS,
  INST_JNS,
  INST_JPE,
  INST_JPO,
  INST_JL,
  INST_JGE,
  INST_JLE,
  INST_JG
};

const uint32_t ConditionToInstruction::_cmovcctable[16] =
{
  INST_CMOVO,
  INST_CMOVNO,
  INST_CMOVB,
  INST_CMOVAE,
  INST_CMOVE,
  INST_CMOVNE,
  INST_CMOVBE,
  INST_CMOVA,
  INST_CMOVS,
  INST_CMOVNS,
  INST_CMOVPE,
  INST_CMOVPO,
  INST_CMOVL,
  INST_CMOVGE,
  INST_CMOVLE,
  INST_CMOVG
};

const uint32_t ConditionToInstruction::_setcctable[16] =
{
  INST_SETO,
  INST_SETNO,
  INST_SETB,
  INST_SETAE,
  INST_SETE,
  INST_SETNE,
  INST_SETBE,
  INST_SETA,
  INST_SETS,
  INST_SETNS,
  INST_SETPE,
  INST_SETPO,
  INST_SETL,
  INST_SETGE,
  INST_SETLE,
  INST_SETG
};

// ============================================================================
// [AsmJit::Instruction Name]
// ============================================================================

// Following {DATA SECTION} is auto-generated using InstructionDescription data.
//
// ${INSTRUCTION_DATA_BEGIN}
const char instructionName[] =
  "adc\0"
  "add\0"
  "addpd\0"
  "addps\0"
  "addsd\0"
  "addss\0"
  "addsubpd\0"
  "addsubps\0"
  "amd_prefetch\0"
  "amd_prefetchw\0"
  "and\0"
  "andnpd\0"
  "andnps\0"
  "andpd\0"
  "andps\0"
  "blendpd\0"
  "blendps\0"
  "blendvpd\0"
  "blendvps\0"
  "bsf\0"
  "bsr\0"
  "bswap\0"
  "bt\0"
  "btc\0"
  "btr\0"
  "bts\0"
  "call\0"
  "cbw\0"
  "cdqe\0"
  "clc\0"
  "cld\0"
  "clflush\0"
  "cmc\0"
  "cmova\0"
  "cmovae\0"
  "cmovb\0"
  "cmovbe\0"
  "cmovc\0"
  "cmove\0"
  "cmovg\0"
  "cmovge\0"
  "cmovl\0"
  "cmovle\0"
  "cmovna\0"
  "cmovnae\0"
  "cmovnb\0"
  "cmovnbe\0"
  "cmovnc\0"
  "cmovne\0"
  "cmovng\0"
  "cmovnge\0"
  "cmovnl\0"
  "cmovnle\0"
  "cmovno\0"
  "cmovnp\0"
  "cmovns\0"
  "cmovnz\0"
  "cmovo\0"
  "cmovp\0"
  "cmovpe\0"
  "cmovpo\0"
  "cmovs\0"
  "cmovz\0"
  "cmp\0"
  "cmppd\0"
  "cmpps\0"
  "cmpsd\0"
  "cmpss\0"
  "cmpxchg\0"
  "cmpxchg16b\0"
  "cmpxchg8b\0"
  "comisd\0"
  "comiss\0"
  "cpuid\0"
  "crc32\0"
  "cvtdq2pd\0"
  "cvtdq2ps\0"
  "cvtpd2dq\0"
  "cvtpd2pi\0"
  "cvtpd2ps\0"
  "cvtpi2pd\0"
  "cvtpi2ps\0"
  "cvtps2dq\0"
  "cvtps2pd\0"
  "cvtps2pi\0"
  "cvtsd2si\0"
  "cvtsd2ss\0"
  "cvtsi2sd\0"
  "cvtsi2ss\0"
  "cvtss2sd\0"
  "cvtss2si\0"
  "cvttpd2dq\0"
  "cvttpd2pi\0"
  "cvttps2dq\0"
  "cvttps2pi\0"
  "cvttsd2si\0"
  "cvttss2si\0"
  "cwde\0"
  "daa\0"
  "das\0"
  "dec\0"
  "div\0"
  "divpd\0"
  "divps\0"
  "divsd\0"
  "divss\0"
  "dppd\0"
  "dpps\0"
  "emms\0"
  "enter\0"
  "extractps\0"
  "f2xm1\0"
  "fabs\0"
  "fadd\0"
  "faddp\0"
  "fbld\0"
  "fbstp\0"
  "fchs\0"
  "fclex\0"
  "fcmovb\0"
  "fcmovbe\0"
  "fcmove\0"
  "fcmovnb\0"
  "fcmovnbe\0"
  "fcmovne\0"
  "fcmovnu\0"
  "fcmovu\0"
  "fcom\0"
  "fcomi\0"
  "fcomip\0"
  "fcomp\0"
  "fcompp\0"
  "fcos\0"
  "fdecstp\0"
  "fdiv\0"
  "fdivp\0"
  "fdivr\0"
  "fdivrp\0"
  "femms\0"
  "ffree\0"
  "fiadd\0"
  "ficom\0"
  "ficomp\0"
  "fidiv\0"
  "fidivr\0"
  "fild\0"
  "fimul\0"
  "fincstp\0"
  "finit\0"
  "fist\0"
  "fistp\0"
  "fisttp\0"
  "fisub\0"
  "fisubr\0"
  "fld\0"
  "fld1\0"
  "fldcw\0"
  "fldenv\0"
  "fldl2e\0"
  "fldl2t\0"
  "fldlg2\0"
  "fldln2\0"
  "fldpi\0"
  "fldz\0"
  "fmul\0"
  "fmulp\0"
  "fnclex\0"
  "fninit\0"
  "fnop\0"
  "fnsave\0"
  "fnstcw\0"
  "fnstenv\0"
  "fnstsw\0"
  "fpatan\0"
  "fprem\0"
  "fprem1\0"
  "fptan\0"
  "frndint\0"
  "frstor\0"
  "fsave\0"
  "fscale\0"
  "fsin\0"
  "fsincos\0"
  "fsqrt\0"
  "fst\0"
  "fstcw\0"
  "fstenv\0"
  "fstp\0"
  "fstsw\0"
  "fsub\0"
  "fsubp\0"
  "fsubr\0"
  "fsubrp\0"
  "ftst\0"
  "fucom\0"
  "fucomi\0"
  "fucomip\0"
  "fucomp\0"
  "fucompp\0"
  "fwait\0"
  "fxam\0"
  "fxch\0"
  "fxrstor\0"
  "fxsave\0"
  "fxtract\0"
  "fyl2x\0"
  "fyl2xp1\0"
  "haddpd\0"
  "haddps\0"
  "hsubpd\0"
  "hsubps\0"
  "idiv\0"
  "imul\0"
  "inc\0"
  "int3\0"
  "ja\0"
  "jae\0"
  "jb\0"
  "jbe\0"
  "jc\0"
  "je\0"
  "jg\0"
  "jge\0"
  "jl\0"
  "jle\0"
  "jna\0"
  "jnae\0"
  "jnb\0"
  "jnbe\0"
  "jnc\0"
  "jne\0"
  "jng\0"
  "jnge\0"
  "jnl\0"
  "jnle\0"
  "jno\0"
  "jnp\0"
  "jns\0"
  "jnz\0"
  "jo\0"
  "jp\0"
  "jpe\0"
  "jpo\0"
  "js\0"
  "jz\0"
  "jmp\0"
  "lddqu\0"
  "ldmxcsr\0"
  "lahf\0"
  "lea\0"
  "leave\0"
  "lfence\0"
  "maskmovdqu\0"
  "maskmovq\0"
  "maxpd\0"
  "maxps\0"
  "maxsd\0"
  "maxss\0"
  "mfence\0"
  "minpd\0"
  "minps\0"
  "minsd\0"
  "minss\0"
  "monitor\0"
  "mov\0"
  "movapd\0"
  "movaps\0"
  "movbe\0"
  "movd\0"
  "movddup\0"
  "movdq2q\0"
  "movdqa\0"
  "movdqu\0"
  "movhlps\0"
  "movhpd\0"
  "movhps\0"
  "movlhps\0"
  "movlpd\0"
  "movlps\0"
  "movmskpd\0"
  "movmskps\0"
  "movntdq\0"
  "movntdqa\0"
  "movnti\0"
  "movntpd\0"
  "movntps\0"
  "movntq\0"
  "movq\0"
  "movq2dq\0"
  "movsd\0"
  "movshdup\0"
  "movsldup\0"
  "movss\0"
  "movsx\0"
  "movsxd\0"
  "movupd\0"
  "movups\0"
  "movzx\0"
  "mov_ptr\0"
  "mpsadbw\0"
  "mul\0"
  "mulpd\0"
  "mulps\0"
  "mulsd\0"
  "mulss\0"
  "mwait\0"
  "neg\0"
  "nop\0"
  "not\0"
  "or\0"
  "orpd\0"
  "orps\0"
  "pabsb\0"
  "pabsd\0"
  "pabsw\0"
  "packssdw\0"
  "packsswb\0"
  "packusdw\0"
  "packuswb\0"
  "paddb\0"
  "paddd\0"
  "paddq\0"
  "paddsb\0"
  "paddsw\0"
  "paddusb\0"
  "paddusw\0"
  "paddw\0"
  "palignr\0"
  "pand\0"
  "pandn\0"
  "pause\0"
  "pavgb\0"
  "pavgw\0"
  "pblendvb\0"
  "pblendw\0"
  "pcmpeqb\0"
  "pcmpeqd\0"
  "pcmpeqq\0"
  "pcmpeqw\0"
  "pcmpestri\0"
  "pcmpestrm\0"
  "pcmpgtb\0"
  "pcmpgtd\0"
  "pcmpgtq\0"
  "pcmpgtw\0"
  "pcmpistri\0"
  "pcmpistrm\0"
  "pextrb\0"
  "pextrd\0"
  "pextrq\0"
  "pextrw\0"
  "pf2id\0"
  "pf2iw\0"
  "pfacc\0"
  "pfadd\0"
  "pfcmpeq\0"
  "pfcmpge\0"
  "pfcmpgt\0"
  "pfmax\0"
  "pfmin\0"
  "pfmul\0"
  "pfnacc\0"
  "pfpnacc\0"
  "pfrcp\0"
  "pfrcpit1\0"
  "pfrcpit2\0"
  "pfrsqit1\0"
  "pfrsqrt\0"
  "pfsub\0"
  "pfsubr\0"
  "phaddd\0"
  "phaddsw\0"
  "phaddw\0"
  "phminposuw\0"
  "phsubd\0"
  "phsubsw\0"
  "phsubw\0"
  "pi2fd\0"
  "pi2fw\0"
  "pinsrb\0"
  "pinsrd\0"
  "pinsrq\0"
  "pinsrw\0"
  "pmaddubsw\0"
  "pmaddwd\0"
  "pmaxsb\0"
  "pmaxsd\0"
  "pmaxsw\0"
  "pmaxub\0"
  "pmaxud\0"
  "pmaxuw\0"
  "pminsb\0"
  "pminsd\0"
  "pminsw\0"
  "pminub\0"
  "pminud\0"
  "pminuw\0"
  "pmovmskb\0"
  "pmovsxbd\0"
  "pmovsxbq\0"
  "pmovsxbw\0"
  "pmovsxdq\0"
  "pmovsxwd\0"
  "pmovsxwq\0"
  "pmovzxbd\0"
  "pmovzxbq\0"
  "pmovzxbw\0"
  "pmovzxdq\0"
  "pmovzxwd\0"
  "pmovzxwq\0"
  "pmuldq\0"
  "pmulhrsw\0"
  "pmulhuw\0"
  "pmulhw\0"
  "pmulld\0"
  "pmullw\0"
  "pmuludq\0"
  "pop\0"
  "popad\0"
  "popcnt\0"
  "popfd\0"
  "popfq\0"
  "por\0"
  "prefetch\0"
  "psadbw\0"
  "pshufb\0"
  "pshufd\0"
  "pshufw\0"
  "pshufhw\0"
  "pshuflw\0"
  "psignb\0"
  "psignd\0"
  "psignw\0"
  "pslld\0"
  "pslldq\0"
  "psllq\0"
  "psllw\0"
  "psrad\0"
  "psraw\0"
  "psrld\0"
  "psrldq\0"
  "psrlq\0"
  "psrlw\0"
  "psubb\0"
  "psubd\0"
  "psubq\0"
  "psubsb\0"
  "psubsw\0"
  "psubusb\0"
  "psubusw\0"
  "psubw\0"
  "pswapd\0"
  "ptest\0"
  "punpckhbw\0"
  "punpckhdq\0"
  "punpckhqdq\0"
  "punpckhwd\0"
  "punpcklbw\0"
  "punpckldq\0"
  "punpcklqdq\0"
  "punpcklwd\0"
  "push\0"
  "pushad\0"
  "pushfd\0"
  "pushfq\0"
  "pxor\0"
  "rcl\0"
  "rcpps\0"
  "rcpss\0"
  "rcr\0"
  "rdtsc\0"
  "rdtscp\0"
  "rep lodsb\0"
  "rep lodsd\0"
  "rep lodsq\0"
  "rep lodsw\0"
  "rep movsb\0"
  "rep movsd\0"
  "rep movsq\0"
  "rep movsw\0"
  "rep stosb\0"
  "rep stosd\0"
  "rep stosq\0"
  "rep stosw\0"
  "repe cmpsb\0"
  "repe cmpsd\0"
  "repe cmpsq\0"
  "repe cmpsw\0"
  "repe scasb\0"
  "repe scasd\0"
  "repe scasq\0"
  "repe scasw\0"
  "repne cmpsb\0"
  "repne cmpsd\0"
  "repne cmpsq\0"
  "repne cmpsw\0"
  "repne scasb\0"
  "repne scasd\0"
  "repne scasq\0"
  "repne scasw\0"
  "ret\0"
  "rol\0"
  "ror\0"
  "roundpd\0"
  "roundps\0"
  "roundsd\0"
  "roundss\0"
  "rsqrtps\0"
  "rsqrtss\0"
  "sahf\0"
  "sal\0"
  "sar\0"
  "sbb\0"
  "seta\0"
  "setae\0"
  "setb\0"
  "setbe\0"
  "setc\0"
  "sete\0"
  "setg\0"
  "setge\0"
  "setl\0"
  "setle\0"
  "setna\0"
  "setnae\0"
  "setnb\0"
  "setnbe\0"
  "setnc\0"
  "setne\0"
  "setng\0"
  "setnge\0"
  "setnl\0"
  "setnle\0"
  "setno\0"
  "setnp\0"
  "setns\0"
  "setnz\0"
  "seto\0"
  "setp\0"
  "setpe\0"
  "setpo\0"
  "sets\0"
  "setz\0"
  "sfence\0"
  "shl\0"
  "shld\0"
  "shr\0"
  "shrd\0"
  "shufpd\0"
  "shufps\0"
  "sqrtpd\0"
  "sqrtps\0"
  "sqrtsd\0"
  "sqrtss\0"
  "stc\0"
  "std\0"
  "stmxcsr\0"
  "sub\0"
  "subpd\0"
  "subps\0"
  "subsd\0"
  "subss\0"
  "test\0"
  "ucomisd\0"
  "ucomiss\0"
  "ud2\0"
  "unpckhpd\0"
  "unpckhps\0"
  "unpcklpd\0"
  "unpcklps\0"
  "xadd\0"
  "xchg\0"
  "xor\0"
  "xorpd\0"
  "xorps\0"
  ;

#define INST_ADC_INDEX 0
#define INST_ADD_INDEX 4
#define INST_ADDPD_INDEX 8
#define INST_ADDPS_INDEX 14
#define INST_ADDSD_INDEX 20
#define INST_ADDSS_INDEX 26
#define INST_ADDSUBPD_INDEX 32
#define INST_ADDSUBPS_INDEX 41
#define INST_AMD_PREFETCH_INDEX 50
#define INST_AMD_PREFETCHW_INDEX 63
#define INST_AND_INDEX 77
#define INST_ANDNPD_INDEX 81
#define INST_ANDNPS_INDEX 88
#define INST_ANDPD_INDEX 95
#define INST_ANDPS_INDEX 101
#define INST_BLENDPD_INDEX 107
#define INST_BLENDPS_INDEX 115
#define INST_BLENDVPD_INDEX 123
#define INST_BLENDVPS_INDEX 132
#define INST_BSF_INDEX 141
#define INST_BSR_INDEX 145
#define INST_BSWAP_INDEX 149
#define INST_BT_INDEX 155
#define INST_BTC_INDEX 158
#define INST_BTR_INDEX 162
#define INST_BTS_INDEX 166
#define INST_CALL_INDEX 170
#define INST_CBW_INDEX 175
#define INST_CDQE_INDEX 179
#define INST_CLC_INDEX 184
#define INST_CLD_INDEX 188
#define INST_CLFLUSH_INDEX 192
#define INST_CMC_INDEX 200
#define INST_CMOVA_INDEX 204
#define INST_CMOVAE_INDEX 210
#define INST_CMOVB_INDEX 217
#define INST_CMOVBE_INDEX 223
#define INST_CMOVC_INDEX 230
#define INST_CMOVE_INDEX 236
#define INST_CMOVG_INDEX 242
#define INST_CMOVGE_INDEX 248
#define INST_CMOVL_INDEX 255
#define INST_CMOVLE_INDEX 261
#define INST_CMOVNA_INDEX 268
#define INST_CMOVNAE_INDEX 275
#define INST_CMOVNB_INDEX 283
#define INST_CMOVNBE_INDEX 290
#define INST_CMOVNC_INDEX 298
#define INST_CMOVNE_INDEX 305
#define INST_CMOVNG_INDEX 312
#define INST_CMOVNGE_INDEX 319
#define INST_CMOVNL_INDEX 327
#define INST_CMOVNLE_INDEX 334
#define INST_CMOVNO_INDEX 342
#define INST_CMOVNP_INDEX 349
#define INST_CMOVNS_INDEX 356
#define INST_CMOVNZ_INDEX 363
#define INST_CMOVO_INDEX 370
#define INST_CMOVP_INDEX 376
#define INST_CMOVPE_INDEX 382
#define INST_CMOVPO_INDEX 389
#define INST_CMOVS_INDEX 396
#define INST_CMOVZ_INDEX 402
#define INST_CMP_INDEX 408
#define INST_CMPPD_INDEX 412
#define INST_CMPPS_INDEX 418
#define INST_CMPSD_INDEX 424
#define INST_CMPSS_INDEX 430
#define INST_CMPXCHG_INDEX 436
#define INST_CMPXCHG16B_INDEX 444
#define INST_CMPXCHG8B_INDEX 455
#define INST_COMISD_INDEX 465
#define INST_COMISS_INDEX 472
#define INST_CPUID_INDEX 479
#define INST_CRC32_INDEX 485
#define INST_CVTDQ2PD_INDEX 491
#define INST_CVTDQ2PS_INDEX 500
#define INST_CVTPD2DQ_INDEX 509
#define INST_CVTPD2PI_INDEX 518
#define INST_CVTPD2PS_INDEX 527
#define INST_CVTPI2PD_INDEX 536
#define INST_CVTPI2PS_INDEX 545
#define INST_CVTPS2DQ_INDEX 554
#define INST_CVTPS2PD_INDEX 563
#define INST_CVTPS2PI_INDEX 572
#define INST_CVTSD2SI_INDEX 581
#define INST_CVTSD2SS_INDEX 590
#define INST_CVTSI2SD_INDEX 599
#define INST_CVTSI2SS_INDEX 608
#define INST_CVTSS2SD_INDEX 617
#define INST_CVTSS2SI_INDEX 626
#define INST_CVTTPD2DQ_INDEX 635
#define INST_CVTTPD2PI_INDEX 645
#define INST_CVTTPS2DQ_INDEX 655
#define INST_CVTTPS2PI_INDEX 665
#define INST_CVTTSD2SI_INDEX 675
#define INST_CVTTSS2SI_INDEX 685
#define INST_CWDE_INDEX 695
#define INST_DAA_INDEX 700
#define INST_DAS_INDEX 704
#define INST_DEC_INDEX 708
#define INST_DIV_INDEX 712
#define INST_DIVPD_INDEX 716
#define INST_DIVPS_INDEX 722
#define INST_DIVSD_INDEX 728
#define INST_DIVSS_INDEX 734
#define INST_DPPD_INDEX 740
#define INST_DPPS_INDEX 745
#define INST_EMMS_INDEX 750
#define INST_ENTER_INDEX 755
#define INST_EXTRACTPS_INDEX 761
#define INST_F2XM1_INDEX 771
#define INST_FABS_INDEX 777
#define INST_FADD_INDEX 782
#define INST_FADDP_INDEX 787
#define INST_FBLD_INDEX 793
#define INST_FBSTP_INDEX 798
#define INST_FCHS_INDEX 804
#define INST_FCLEX_INDEX 809
#define INST_FCMOVB_INDEX 815
#define INST_FCMOVBE_INDEX 822
#define INST_FCMOVE_INDEX 830
#define INST_FCMOVNB_INDEX 837
#define INST_FCMOVNBE_INDEX 845
#define INST_FCMOVNE_INDEX 854
#define INST_FCMOVNU_INDEX 862
#define INST_FCMOVU_INDEX 870
#define INST_FCOM_INDEX 877
#define INST_FCOMI_INDEX 882
#define INST_FCOMIP_INDEX 888
#define INST_FCOMP_INDEX 895
#define INST_FCOMPP_INDEX 901
#define INST_FCOS_INDEX 908
#define INST_FDECSTP_INDEX 913
#define INST_FDIV_INDEX 921
#define INST_FDIVP_INDEX 926
#define INST_FDIVR_INDEX 932
#define INST_FDIVRP_INDEX 938
#define INST_FEMMS_INDEX 945
#define INST_FFREE_INDEX 951
#define INST_FIADD_INDEX 957
#define INST_FICOM_INDEX 963
#define INST_FICOMP_INDEX 969
#define INST_FIDIV_INDEX 976
#define INST_FIDIVR_INDEX 982
#define INST_FILD_INDEX 989
#define INST_FIMUL_INDEX 994
#define INST_FINCSTP_INDEX 1000
#define INST_FINIT_INDEX 1008
#define INST_FIST_INDEX 1014
#define INST_FISTP_INDEX 1019
#define INST_FISTTP_INDEX 1025
#define INST_FISUB_INDEX 1032
#define INST_FISUBR_INDEX 1038
#define INST_FLD_INDEX 1045
#define INST_FLD1_INDEX 1049
#define INST_FLDCW_INDEX 1054
#define INST_FLDENV_INDEX 1060
#define INST_FLDL2E_INDEX 1067
#define INST_FLDL2T_INDEX 1074
#define INST_FLDLG2_INDEX 1081
#define INST_FLDLN2_INDEX 1088
#define INST_FLDPI_INDEX 1095
#define INST_FLDZ_INDEX 1101
#define INST_FMUL_INDEX 1106
#define INST_FMULP_INDEX 1111
#define INST_FNCLEX_INDEX 1117
#define INST_FNINIT_INDEX 1124
#define INST_FNOP_INDEX 1131
#define INST_FNSAVE_INDEX 1136
#define INST_FNSTCW_INDEX 1143
#define INST_FNSTENV_INDEX 1150
#define INST_FNSTSW_INDEX 1158
#define INST_FPATAN_INDEX 1165
#define INST_FPREM_INDEX 1172
#define INST_FPREM1_INDEX 1178
#define INST_FPTAN_INDEX 1185
#define INST_FRNDINT_INDEX 1191
#define INST_FRSTOR_INDEX 1199
#define INST_FSAVE_INDEX 1206
#define INST_FSCALE_INDEX 1212
#define INST_FSIN_INDEX 1219
#define INST_FSINCOS_INDEX 1224
#define INST_FSQRT_INDEX 1232
#define INST_FST_INDEX 1238
#define INST_FSTCW_INDEX 1242
#define INST_FSTENV_INDEX 1248
#define INST_FSTP_INDEX 1255
#define INST_FSTSW_INDEX 1260
#define INST_FSUB_INDEX 1266
#define INST_FSUBP_INDEX 1271
#define INST_FSUBR_INDEX 1277
#define INST_FSUBRP_INDEX 1283
#define INST_FTST_INDEX 1290
#define INST_FUCOM_INDEX 1295
#define INST_FUCOMI_INDEX 1301
#define INST_FUCOMIP_INDEX 1308
#define INST_FUCOMP_INDEX 1316
#define INST_FUCOMPP_INDEX 1323
#define INST_FWAIT_INDEX 1331
#define INST_FXAM_INDEX 1337
#define INST_FXCH_INDEX 1342
#define INST_FXRSTOR_INDEX 1347
#define INST_FXSAVE_INDEX 1355
#define INST_FXTRACT_INDEX 1362
#define INST_FYL2X_INDEX 1370
#define INST_FYL2XP1_INDEX 1376
#define INST_HADDPD_INDEX 1384
#define INST_HADDPS_INDEX 1391
#define INST_HSUBPD_INDEX 1398
#define INST_HSUBPS_INDEX 1405
#define INST_IDIV_INDEX 1412
#define INST_IMUL_INDEX 1417
#define INST_INC_INDEX 1422
#define INST_INT3_INDEX 1426
#define INST_JA_INDEX 1431
#define INST_JAE_INDEX 1434
#define INST_JB_INDEX 1438
#define INST_JBE_INDEX 1441
#define INST_JC_INDEX 1445
#define INST_JE_INDEX 1448
#define INST_JG_INDEX 1451
#define INST_JGE_INDEX 1454
#define INST_JL_INDEX 1458
#define INST_JLE_INDEX 1461
#define INST_JNA_INDEX 1465
#define INST_JNAE_INDEX 1469
#define INST_JNB_INDEX 1474
#define INST_JNBE_INDEX 1478
#define INST_JNC_INDEX 1483
#define INST_JNE_INDEX 1487
#define INST_JNG_INDEX 1491
#define INST_JNGE_INDEX 1495
#define INST_JNL_INDEX 1500
#define INST_JNLE_INDEX 1504
#define INST_JNO_INDEX 1509
#define INST_JNP_INDEX 1513
#define INST_JNS_INDEX 1517
#define INST_JNZ_INDEX 1521
#define INST_JO_INDEX 1525
#define INST_JP_INDEX 1528
#define INST_JPE_INDEX 1531
#define INST_JPO_INDEX 1535
#define INST_JS_INDEX 1539
#define INST_JZ_INDEX 1542
#define INST_JMP_INDEX 1545
#define INST_LDDQU_INDEX 1549
#define INST_LDMXCSR_INDEX 1555
#define INST_LAHF_INDEX 1563
#define INST_LEA_INDEX 1568
#define INST_LEAVE_INDEX 1572
#define INST_LFENCE_INDEX 1578
#define INST_MASKMOVDQU_INDEX 1585
#define INST_MASKMOVQ_INDEX 1596
#define INST_MAXPD_INDEX 1605
#define INST_MAXPS_INDEX 1611
#define INST_MAXSD_INDEX 1617
#define INST_MAXSS_INDEX 1623
#define INST_MFENCE_INDEX 1629
#define INST_MINPD_INDEX 1636
#define INST_MINPS_INDEX 1642
#define INST_MINSD_INDEX 1648
#define INST_MINSS_INDEX 1654
#define INST_MONITOR_INDEX 1660
#define INST_MOV_INDEX 1668
#define INST_MOVAPD_INDEX 1672
#define INST_MOVAPS_INDEX 1679
#define INST_MOVBE_INDEX 1686
#define INST_MOVD_INDEX 1692
#define INST_MOVDDUP_INDEX 1697
#define INST_MOVDQ2Q_INDEX 1705
#define INST_MOVDQA_INDEX 1713
#define INST_MOVDQU_INDEX 1720
#define INST_MOVHLPS_INDEX 1727
#define INST_MOVHPD_INDEX 1735
#define INST_MOVHPS_INDEX 1742
#define INST_MOVLHPS_INDEX 1749
#define INST_MOVLPD_INDEX 1757
#define INST_MOVLPS_INDEX 1764
#define INST_MOVMSKPD_INDEX 1771
#define INST_MOVMSKPS_INDEX 1780
#define INST_MOVNTDQ_INDEX 1789
#define INST_MOVNTDQA_INDEX 1797
#define INST_MOVNTI_INDEX 1806
#define INST_MOVNTPD_INDEX 1813
#define INST_MOVNTPS_INDEX 1821
#define INST_MOVNTQ_INDEX 1829
#define INST_MOVQ_INDEX 1836
#define INST_MOVQ2DQ_INDEX 1841
#define INST_MOVSD_INDEX 1849
#define INST_MOVSHDUP_INDEX 1855
#define INST_MOVSLDUP_INDEX 1864
#define INST_MOVSS_INDEX 1873
#define INST_MOVSX_INDEX 1879
#define INST_MOVSXD_INDEX 1885
#define INST_MOVUPD_INDEX 1892
#define INST_MOVUPS_INDEX 1899
#define INST_MOVZX_INDEX 1906
#define INST_MOV_PTR_INDEX 1912
#define INST_MPSADBW_INDEX 1920
#define INST_MUL_INDEX 1928
#define INST_MULPD_INDEX 1932
#define INST_MULPS_INDEX 1938
#define INST_MULSD_INDEX 1944
#define INST_MULSS_INDEX 1950
#define INST_MWAIT_INDEX 1956
#define INST_NEG_INDEX 1962
#define INST_NOP_INDEX 1966
#define INST_NOT_INDEX 1970
#define INST_OR_INDEX 1974
#define INST_ORPD_INDEX 1977
#define INST_ORPS_INDEX 1982
#define INST_PABSB_INDEX 1987
#define INST_PABSD_INDEX 1993
#define INST_PABSW_INDEX 1999
#define INST_PACKSSDW_INDEX 2005
#define INST_PACKSSWB_INDEX 2014
#define INST_PACKUSDW_INDEX 2023
#define INST_PACKUSWB_INDEX 2032
#define INST_PADDB_INDEX 2041
#define INST_PADDD_INDEX 2047
#define INST_PADDQ_INDEX 2053
#define INST_PADDSB_INDEX 2059
#define INST_PADDSW_INDEX 2066
#define INST_PADDUSB_INDEX 2073
#define INST_PADDUSW_INDEX 2081
#define INST_PADDW_INDEX 2089
#define INST_PALIGNR_INDEX 2095
#define INST_PAND_INDEX 2103
#define INST_PANDN_INDEX 2108
#define INST_PAUSE_INDEX 2114
#define INST_PAVGB_INDEX 2120
#define INST_PAVGW_INDEX 2126
#define INST_PBLENDVB_INDEX 2132
#define INST_PBLENDW_INDEX 2141
#define INST_PCMPEQB_INDEX 2149
#define INST_PCMPEQD_INDEX 2157
#define INST_PCMPEQQ_INDEX 2165
#define INST_PCMPEQW_INDEX 2173
#define INST_PCMPESTRI_INDEX 2181
#define INST_PCMPESTRM_INDEX 2191
#define INST_PCMPGTB_INDEX 2201
#define INST_PCMPGTD_INDEX 2209
#define INST_PCMPGTQ_INDEX 2217
#define INST_PCMPGTW_INDEX 2225
#define INST_PCMPISTRI_INDEX 2233
#define INST_PCMPISTRM_INDEX 2243
#define INST_PEXTRB_INDEX 2253
#define INST_PEXTRD_INDEX 2260
#define INST_PEXTRQ_INDEX 2267
#define INST_PEXTRW_INDEX 2274
#define INST_PF2ID_INDEX 2281
#define INST_PF2IW_INDEX 2287
#define INST_PFACC_INDEX 2293
#define INST_PFADD_INDEX 2299
#define INST_PFCMPEQ_INDEX 2305
#define INST_PFCMPGE_INDEX 2313
#define INST_PFCMPGT_INDEX 2321
#define INST_PFMAX_INDEX 2329
#define INST_PFMIN_INDEX 2335
#define INST_PFMUL_INDEX 2341
#define INST_PFNACC_INDEX 2347
#define INST_PFPNACC_INDEX 2354
#define INST_PFRCP_INDEX 2362
#define INST_PFRCPIT1_INDEX 2368
#define INST_PFRCPIT2_INDEX 2377
#define INST_PFRSQIT1_INDEX 2386
#define INST_PFRSQRT_INDEX 2395
#define INST_PFSUB_INDEX 2403
#define INST_PFSUBR_INDEX 2409
#define INST_PHADDD_INDEX 2416
#define INST_PHADDSW_INDEX 2423
#define INST_PHADDW_INDEX 2431
#define INST_PHMINPOSUW_INDEX 2438
#define INST_PHSUBD_INDEX 2449
#define INST_PHSUBSW_INDEX 2456
#define INST_PHSUBW_INDEX 2464
#define INST_PI2FD_INDEX 2471
#define INST_PI2FW_INDEX 2477
#define INST_PINSRB_INDEX 2483
#define INST_PINSRD_INDEX 2490
#define INST_PINSRQ_INDEX 2497
#define INST_PINSRW_INDEX 2504
#define INST_PMADDUBSW_INDEX 2511
#define INST_PMADDWD_INDEX 2521
#define INST_PMAXSB_INDEX 2529
#define INST_PMAXSD_INDEX 2536
#define INST_PMAXSW_INDEX 2543
#define INST_PMAXUB_INDEX 2550
#define INST_PMAXUD_INDEX 2557
#define INST_PMAXUW_INDEX 2564
#define INST_PMINSB_INDEX 2571
#define INST_PMINSD_INDEX 2578
#define INST_PMINSW_INDEX 2585
#define INST_PMINUB_INDEX 2592
#define INST_PMINUD_INDEX 2599
#define INST_PMINUW_INDEX 2606
#define INST_PMOVMSKB_INDEX 2613
#define INST_PMOVSXBD_INDEX 2622
#define INST_PMOVSXBQ_INDEX 2631
#define INST_PMOVSXBW_INDEX 2640
#define INST_PMOVSXDQ_INDEX 2649
#define INST_PMOVSXWD_INDEX 2658
#define INST_PMOVSXWQ_INDEX 2667
#define INST_PMOVZXBD_INDEX 2676
#define INST_PMOVZXBQ_INDEX 2685
#define INST_PMOVZXBW_INDEX 2694
#define INST_PMOVZXDQ_INDEX 2703
#define INST_PMOVZXWD_INDEX 2712
#define INST_PMOVZXWQ_INDEX 2721
#define INST_PMULDQ_INDEX 2730
#define INST_PMULHRSW_INDEX 2737
#define INST_PMULHUW_INDEX 2746
#define INST_PMULHW_INDEX 2754
#define INST_PMULLD_INDEX 2761
#define INST_PMULLW_INDEX 2768
#define INST_PMULUDQ_INDEX 2775
#define INST_POP_INDEX 2783
#define INST_POPAD_INDEX 2787
#define INST_POPCNT_INDEX 2793
#define INST_POPFD_INDEX 2800
#define INST_POPFQ_INDEX 2806
#define INST_POR_INDEX 2812
#define INST_PREFETCH_INDEX 2816
#define INST_PSADBW_INDEX 2825
#define INST_PSHUFB_INDEX 2832
#define INST_PSHUFD_INDEX 2839
#define INST_PSHUFW_INDEX 2846
#define INST_PSHUFHW_INDEX 2853
#define INST_PSHUFLW_INDEX 2861
#define INST_PSIGNB_INDEX 2869
#define INST_PSIGND_INDEX 2876
#define INST_PSIGNW_INDEX 2883
#define INST_PSLLD_INDEX 2890
#define INST_PSLLDQ_INDEX 2896
#define INST_PSLLQ_INDEX 2903
#define INST_PSLLW_INDEX 2909
#define INST_PSRAD_INDEX 2915
#define INST_PSRAW_INDEX 2921
#define INST_PSRLD_INDEX 2927
#define INST_PSRLDQ_INDEX 2933
#define INST_PSRLQ_INDEX 2940
#define INST_PSRLW_INDEX 2946
#define INST_PSUBB_INDEX 2952
#define INST_PSUBD_INDEX 2958
#define INST_PSUBQ_INDEX 2964
#define INST_PSUBSB_INDEX 2970
#define INST_PSUBSW_INDEX 2977
#define INST_PSUBUSB_INDEX 2984
#define INST_PSUBUSW_INDEX 2992
#define INST_PSUBW_INDEX 3000
#define INST_PSWAPD_INDEX 3006
#define INST_PTEST_INDEX 3013
#define INST_PUNPCKHBW_INDEX 3019
#define INST_PUNPCKHDQ_INDEX 3029
#define INST_PUNPCKHQDQ_INDEX 3039
#define INST_PUNPCKHWD_INDEX 3050
#define INST_PUNPCKLBW_INDEX 3060
#define INST_PUNPCKLDQ_INDEX 3070
#define INST_PUNPCKLQDQ_INDEX 3080
#define INST_PUNPCKLWD_INDEX 3091
#define INST_PUSH_INDEX 3101
#define INST_PUSHAD_INDEX 3106
#define INST_PUSHFD_INDEX 3113
#define INST_PUSHFQ_INDEX 3120
#define INST_PXOR_INDEX 3127
#define INST_RCL_INDEX 3132
#define INST_RCPPS_INDEX 3136
#define INST_RCPSS_INDEX 3142
#define INST_RCR_INDEX 3148
#define INST_RDTSC_INDEX 3152
#define INST_RDTSCP_INDEX 3158
#define INST_REP_LODSB_INDEX 3165
#define INST_REP_LODSD_INDEX 3175
#define INST_REP_LODSQ_INDEX 3185
#define INST_REP_LODSW_INDEX 3195
#define INST_REP_MOVSB_INDEX 3205
#define INST_REP_MOVSD_INDEX 3215
#define INST_REP_MOVSQ_INDEX 3225
#define INST_REP_MOVSW_INDEX 3235
#define INST_REP_STOSB_INDEX 3245
#define INST_REP_STOSD_INDEX 3255
#define INST_REP_STOSQ_INDEX 3265
#define INST_REP_STOSW_INDEX 3275
#define INST_REPE_CMPSB_INDEX 3285
#define INST_REPE_CMPSD_INDEX 3296
#define INST_REPE_CMPSQ_INDEX 3307
#define INST_REPE_CMPSW_INDEX 3318
#define INST_REPE_SCASB_INDEX 3329
#define INST_REPE_SCASD_INDEX 3340
#define INST_REPE_SCASQ_INDEX 3351
#define INST_REPE_SCASW_INDEX 3362
#define INST_REPNE_CMPSB_INDEX 3373
#define INST_REPNE_CMPSD_INDEX 3385
#define INST_REPNE_CMPSQ_INDEX 3397
#define INST_REPNE_CMPSW_INDEX 3409
#define INST_REPNE_SCASB_INDEX 3421
#define INST_REPNE_SCASD_INDEX 3433
#define INST_REPNE_SCASQ_INDEX 3445
#define INST_REPNE_SCASW_INDEX 3457
#define INST_RET_INDEX 3469
#define INST_ROL_INDEX 3473
#define INST_ROR_INDEX 3477
#define INST_ROUNDPD_INDEX 3481
#define INST_ROUNDPS_INDEX 3489
#define INST_ROUNDSD_INDEX 3497
#define INST_ROUNDSS_INDEX 3505
#define INST_RSQRTPS_INDEX 3513
#define INST_RSQRTSS_INDEX 3521
#define INST_SAHF_INDEX 3529
#define INST_SAL_INDEX 3534
#define INST_SAR_INDEX 3538
#define INST_SBB_INDEX 3542
#define INST_SETA_INDEX 3546
#define INST_SETAE_INDEX 3551
#define INST_SETB_INDEX 3557
#define INST_SETBE_INDEX 3562
#define INST_SETC_INDEX 3568
#define INST_SETE_INDEX 3573
#define INST_SETG_INDEX 3578
#define INST_SETGE_INDEX 3583
#define INST_SETL_INDEX 3589
#define INST_SETLE_INDEX 3594
#define INST_SETNA_INDEX 3600
#define INST_SETNAE_INDEX 3606
#define INST_SETNB_INDEX 3613
#define INST_SETNBE_INDEX 3619
#define INST_SETNC_INDEX 3626
#define INST_SETNE_INDEX 3632
#define INST_SETNG_INDEX 3638
#define INST_SETNGE_INDEX 3644
#define INST_SETNL_INDEX 3651
#define INST_SETNLE_INDEX 3657
#define INST_SETNO_INDEX 3664
#define INST_SETNP_INDEX 3670
#define INST_SETNS_INDEX 3676
#define INST_SETNZ_INDEX 3682
#define INST_SETO_INDEX 3688
#define INST_SETP_INDEX 3693
#define INST_SETPE_INDEX 3698
#define INST_SETPO_INDEX 3704
#define INST_SETS_INDEX 3710
#define INST_SETZ_INDEX 3715
#define INST_SFENCE_INDEX 3720
#define INST_SHL_INDEX 3727
#define INST_SHLD_INDEX 3731
#define INST_SHR_INDEX 3736
#define INST_SHRD_INDEX 3740
#define INST_SHUFPD_INDEX 3745
#define INST_SHUFPS_INDEX 3752
#define INST_SQRTPD_INDEX 3759
#define INST_SQRTPS_INDEX 3766
#define INST_SQRTSD_INDEX 3773
#define INST_SQRTSS_INDEX 3780
#define INST_STC_INDEX 3787
#define INST_STD_INDEX 3791
#define INST_STMXCSR_INDEX 3795
#define INST_SUB_INDEX 3803
#define INST_SUBPD_INDEX 3807
#define INST_SUBPS_INDEX 3813
#define INST_SUBSD_INDEX 3819
#define INST_SUBSS_INDEX 3825
#define INST_TEST_INDEX 3831
#define INST_UCOMISD_INDEX 3836
#define INST_UCOMISS_INDEX 3844
#define INST_UD2_INDEX 3852
#define INST_UNPCKHPD_INDEX 3856
#define INST_UNPCKHPS_INDEX 3865
#define INST_UNPCKLPD_INDEX 3874
#define INST_UNPCKLPS_INDEX 3883
#define INST_XADD_INDEX 3892
#define INST_XCHG_INDEX 3897
#define INST_XOR_INDEX 3902
#define INST_XORPD_INDEX 3906
#define INST_XORPS_INDEX 3912
// ${INSTRUCTION_DATA_END}

// ============================================================================
// [AsmJit::Instruction Description]
// ============================================================================

#define MAKE_INST(code, name, group, flags, oflags0, oflags1, opReg, opCode0, opCode1) \
  { code, code##_INDEX, group, flags, { oflags0, oflags1 }, opReg, { opCode0, opCode1 } }

#define G(g) InstructionDescription::G_##g
#define F(f) InstructionDescription::F_##f
#define O(o) InstructionDescription::O_##o

const InstructionDescription instructionDescription[] =
{
  // Instruction code (enum)      | instruction name   | instruction group| instruction flags| oflags[0]           | oflags[1]           | r| opCode[0] | opcode[1]
  MAKE_INST(INST_ADC              , "adc"              , G(ALU)           , F(LOCKABLE)      , O(GQDWB_MEM)        , O(GQDWB_MEM)|O(IMM) , 2, 0x00000010, 0x00000080),
  MAKE_INST(INST_ADD              , "add"              , G(ALU)           , F(LOCKABLE)      , O(GQDWB_MEM)        , O(GQDWB_MEM)|O(IMM) , 0, 0x00000000, 0x00000080),
  MAKE_INST(INST_ADDPD            , "addpd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F58, 0),
  MAKE_INST(INST_ADDPS            , "addps"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F58, 0),
  MAKE_INST(INST_ADDSD            , "addsd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F58, 0),
  MAKE_INST(INST_ADDSS            , "addss"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F58, 0),
  MAKE_INST(INST_ADDSUBPD         , "addsubpd"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000FD0, 0),
  MAKE_INST(INST_ADDSUBPS         , "addsubps"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000FD0, 0),
  MAKE_INST(INST_AMD_PREFETCH     , "amd_prefetch"     , G(M)             , F(NONE)          , O(MEM)              , 0                   , 0, 0x00000F0D, 0),
  MAKE_INST(INST_AMD_PREFETCHW    , "amd_prefetchw"    , G(M)             , F(NONE)          , O(MEM)              , 0                   , 1, 0x00000F0D, 0),
  MAKE_INST(INST_AND              , "and"              , G(ALU)           , F(LOCKABLE)      , O(GQDWB_MEM)        , O(GQDWB_MEM)|O(IMM) , 4, 0x00000020, 0x00000080),
  MAKE_INST(INST_ANDNPD           , "andnpd"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F55, 0),
  MAKE_INST(INST_ANDNPS           , "andnps"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F55, 0),
  MAKE_INST(INST_ANDPD            , "andpd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F54, 0),
  MAKE_INST(INST_ANDPS            , "andps"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F54, 0),
  MAKE_INST(INST_BLENDPD          , "blendpd"          , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A0D, 0),
  MAKE_INST(INST_BLENDPS          , "blendps"          , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A0C, 0),
  MAKE_INST(INST_BLENDVPD         , "blendvpd"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3815, 0),
  MAKE_INST(INST_BLENDVPS         , "blendvps"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3814, 0),
  MAKE_INST(INST_BSF              , "bsf"              , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000FBC, 0),
  MAKE_INST(INST_BSR              , "bsr"              , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000FBD, 0),
  MAKE_INST(INST_BSWAP            , "bswap"            , G(BSWAP)         , F(NONE)          , O(GQD)              , 0                   , 0, 0         , 0),
  MAKE_INST(INST_BT               , "bt"               , G(BT)            , F(NONE)          , O(GQDW)|O(MEM)      , O(GQDW)|O(IMM)      , 4, 0x00000FA3, 0x00000FBA),
  MAKE_INST(INST_BTC              , "btc"              , G(BT)            , F(LOCKABLE)      , O(GQDW)|O(MEM)      , O(GQDW)|O(IMM)      , 7, 0x00000FBB, 0x00000FBA),
  MAKE_INST(INST_BTR              , "btr"              , G(BT)            , F(LOCKABLE)      , O(GQDW)|O(MEM)      , O(GQDW)|O(IMM)      , 6, 0x00000FB3, 0x00000FBA),
  MAKE_INST(INST_BTS              , "bts"              , G(BT)            , F(LOCKABLE)      , O(GQDW)|O(MEM)      , O(GQDW)|O(IMM)      , 5, 0x00000FAB, 0x00000FBA),
  MAKE_INST(INST_CALL             , "call"             , G(CALL)          , F(JUMP)          , O(GQD)|O(MEM)       , 0                   , 0, 0         , 0),
  MAKE_INST(INST_CBW              , "cbw"              , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x66000099, 0),
  MAKE_INST(INST_CDQE             , "cdqe"             , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x48000099, 0),
  MAKE_INST(INST_CLC              , "clc"              , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x000000F8, 0),
  MAKE_INST(INST_CLD              , "cld"              , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x000000FC, 0),
  MAKE_INST(INST_CLFLUSH          , "clflush"          , G(M)             , F(NONE)          , O(MEM)              , 0                   , 7, 0x00000FAE, 0),
  MAKE_INST(INST_CMC              , "cmc"              , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x000000F5, 0),
  MAKE_INST(INST_CMOVA            , "cmova"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F47, 0),
  MAKE_INST(INST_CMOVAE           , "cmovae"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F43, 0),
  MAKE_INST(INST_CMOVB            , "cmovb"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F42, 0),
  MAKE_INST(INST_CMOVBE           , "cmovbe"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F46, 0),
  MAKE_INST(INST_CMOVC            , "cmovc"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F42, 0),
  MAKE_INST(INST_CMOVE            , "cmove"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F44, 0),
  MAKE_INST(INST_CMOVG            , "cmovg"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4F, 0),
  MAKE_INST(INST_CMOVGE           , "cmovge"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4D, 0),
  MAKE_INST(INST_CMOVL            , "cmovl"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4C, 0),
  MAKE_INST(INST_CMOVLE           , "cmovle"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4E, 0),
  MAKE_INST(INST_CMOVNA           , "cmovna"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F46, 0),
  MAKE_INST(INST_CMOVNAE          , "cmovnae"          , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F42, 0),
  MAKE_INST(INST_CMOVNB           , "cmovnb"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F43, 0),
  MAKE_INST(INST_CMOVNBE          , "cmovnbe"          , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F47, 0),
  MAKE_INST(INST_CMOVNC           , "cmovnc"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F43, 0),
  MAKE_INST(INST_CMOVNE           , "cmovne"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F45, 0),
  MAKE_INST(INST_CMOVNG           , "cmovng"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4E, 0),
  MAKE_INST(INST_CMOVNGE          , "cmovnge"          , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4C, 0),
  MAKE_INST(INST_CMOVNL           , "cmovnl"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4D, 0),
  MAKE_INST(INST_CMOVNLE          , "cmovnle"          , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4F, 0),
  MAKE_INST(INST_CMOVNO           , "cmovno"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F41, 0),
  MAKE_INST(INST_CMOVNP           , "cmovnp"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4B, 0),
  MAKE_INST(INST_CMOVNS           , "cmovns"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F49, 0),
  MAKE_INST(INST_CMOVNZ           , "cmovnz"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F45, 0),
  MAKE_INST(INST_CMOVO            , "cmovo"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F40, 0),
  MAKE_INST(INST_CMOVP            , "cmovp"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4A, 0),
  MAKE_INST(INST_CMOVPE           , "cmovpe"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4A, 0),
  MAKE_INST(INST_CMOVPO           , "cmovpo"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F4B, 0),
  MAKE_INST(INST_CMOVS            , "cmovs"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F48, 0),
  MAKE_INST(INST_CMOVZ            , "cmovz"            , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0x00000F44, 0),
  MAKE_INST(INST_CMP              , "cmp"              , G(ALU)           , F(NONE)          , O(GQDWB_MEM)        , O(GQDWB_MEM)|O(IMM) , 7, 0x00000038, 0x00000080),
  MAKE_INST(INST_CMPPD            , "cmppd"            , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000FC2, 0),
  MAKE_INST(INST_CMPPS            , "cmpps"            , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000FC2, 0),
  MAKE_INST(INST_CMPSD            , "cmpsd"            , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000FC2, 0),
  MAKE_INST(INST_CMPSS            , "cmpss"            , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000FC2, 0),
  MAKE_INST(INST_CMPXCHG          , "cmpxchg"          , G(RM_R)          , F(SPECIAL)|F(LOCKABLE), 0              , 0                   , 0, 0x00000FB0, 0),
  MAKE_INST(INST_CMPXCHG16B       , "cmpxchg16b"       , G(M)             , F(SPECIAL)       , O(MEM)              , 0                   , 1, 0x00000FC7, 1 /* RexW */),
  MAKE_INST(INST_CMPXCHG8B        , "cmpxchg8b"        , G(M)             , F(SPECIAL)       , O(MEM)              , 0                   , 1, 0x00000FC7, 0),
  MAKE_INST(INST_COMISD           , "comisd"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F2F, 0),
  MAKE_INST(INST_COMISS           , "comiss"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F2F, 0),
  MAKE_INST(INST_CPUID            , "cpuid"            , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x00000FA2, 0),
  MAKE_INST(INST_CRC32            , "crc32"            , G(CRC32)         , F(NONE)          , O(GQD)              , O(GQDWB_MEM)        , 0, 0xF20F38F0, 0),
  MAKE_INST(INST_CVTDQ2PD         , "cvtdq2pd"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000FE6, 0),
  MAKE_INST(INST_CVTDQ2PS         , "cvtdq2ps"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F5B, 0),
  MAKE_INST(INST_CVTPD2DQ         , "cvtpd2dq"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000FE6, 0),
  MAKE_INST(INST_CVTPD2PI         , "cvtpd2pi"         , G(MMU_RMI)       , F(NONE)          , O(MM)               , O(XMM_MEM)          , 0, 0x66000F2D, 0),
  MAKE_INST(INST_CVTPD2PS         , "cvtpd2ps"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F5A, 0),
  MAKE_INST(INST_CVTPI2PD         , "cvtpi2pd"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(MM_MEM)           , 0, 0x66000F2A, 0),
  MAKE_INST(INST_CVTPI2PS         , "cvtpi2ps"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(MM_MEM)           , 0, 0x00000F2A, 0),
  MAKE_INST(INST_CVTPS2DQ         , "cvtps2dq"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F5B, 0),
  MAKE_INST(INST_CVTPS2PD         , "cvtps2pd"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F5A, 0),
  MAKE_INST(INST_CVTPS2PI         , "cvtps2pi"         , G(MMU_RMI)       , F(NONE)          , O(MM)               , O(XMM_MEM)          , 0, 0x00000F2D, 0),
  MAKE_INST(INST_CVTSD2SI         , "cvtsd2si"         , G(MMU_RMI)       , F(NONE)          , O(GQD)              , O(XMM_MEM)          , 0, 0xF2000F2D, 0),
  MAKE_INST(INST_CVTSD2SS         , "cvtsd2ss"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F5A, 0),
  MAKE_INST(INST_CVTSI2SD         , "cvtsi2sd"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(GQD)|O(MEM)       , 0, 0xF2000F2A, 0),
  MAKE_INST(INST_CVTSI2SS         , "cvtsi2ss"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(GQD)|O(MEM)       , 0, 0xF3000F2A, 0),
  MAKE_INST(INST_CVTSS2SD         , "cvtss2sd"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F5A, 0),
  MAKE_INST(INST_CVTSS2SI         , "cvtss2si"         , G(MMU_RMI)       , F(NONE)          , O(GQD)              , O(XMM_MEM)          , 0, 0xF3000F2D, 0),
  MAKE_INST(INST_CVTTPD2DQ        , "cvttpd2dq"        , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000FE6, 0),
  MAKE_INST(INST_CVTTPD2PI        , "cvttpd2pi"        , G(MMU_RMI)       , F(NONE)          , O(MM)               , O(XMM_MEM)          , 0, 0x66000F2C, 0),
  MAKE_INST(INST_CVTTPS2DQ        , "cvttps2dq"        , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F5B, 0),
  MAKE_INST(INST_CVTTPS2PI        , "cvttps2pi"        , G(MMU_RMI)       , F(NONE)          , O(MM)               , O(XMM_MEM)          , 0, 0x00000F2C, 0),
  MAKE_INST(INST_CVTTSD2SI        , "cvttsd2si"        , G(MMU_RMI)       , F(NONE)          , O(GQD)              , O(XMM_MEM)          , 0, 0xF2000F2C, 0),
  MAKE_INST(INST_CVTTSS2SI        , "cvttss2si"        , G(MMU_RMI)       , F(NONE)          , O(GQD)              , O(XMM_MEM)          , 0, 0xF3000F2C, 0),
  MAKE_INST(INST_CWDE             , "cwde"             , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x00000099, 0),
  MAKE_INST(INST_DAA              , "daa"              , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x00000027, 0),
  MAKE_INST(INST_DAS              , "das"              , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x0000002F, 0),
  MAKE_INST(INST_DEC              , "dec"              , G(INC_DEC)       , F(LOCKABLE)      , O(GQDWB_MEM)        , 0                   , 1, 0x00000048, 0x000000FE),
  MAKE_INST(INST_DIV              , "div"              , G(RM)            , F(SPECIAL)       , 0                   , 0                   , 6, 0x000000F6, 0),
  MAKE_INST(INST_DIVPD            , "divpd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F5E, 0),
  MAKE_INST(INST_DIVPS            , "divps"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F5E, 0),
  MAKE_INST(INST_DIVSD            , "divsd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F5E, 0),
  MAKE_INST(INST_DIVSS            , "divss"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F5E, 0),
  MAKE_INST(INST_DPPD             , "dppd"             , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A41, 0),
  MAKE_INST(INST_DPPS             , "dpps"             , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A40, 0),
  MAKE_INST(INST_EMMS             , "emms"             , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x00000F77, 0),
  MAKE_INST(INST_ENTER            , "enter"            , G(ENTER)         , F(SPECIAL)       , 0                   , 0                   , 0, 0x000000C8, 0),
  MAKE_INST(INST_EXTRACTPS        , "extractps"        , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A17, 0),
  MAKE_INST(INST_F2XM1            , "f2xm1"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F0, 0),
  MAKE_INST(INST_FABS             , "fabs"             , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9E1, 0),
  MAKE_INST(INST_FADD             , "fadd"             , G(X87_FPU)       , F(FPU)           , 0                   , 0                   , 0, 0xD8DCC0C0, 0),
  MAKE_INST(INST_FADDP            , "faddp"            , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DEC0, 0),
  MAKE_INST(INST_FBLD             , "fbld"             , G(M)             , F(FPU)           , O(MEM)              , 0                   , 4, 0x000000DF, 0),
  MAKE_INST(INST_FBSTP            , "fbstp"            , G(M)             , F(FPU)           , O(MEM)              , 0                   , 6, 0x000000DF, 0),
  MAKE_INST(INST_FCHS             , "fchs"             , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9E0, 0),
  MAKE_INST(INST_FCLEX            , "fclex"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x9B00DBE2, 0),
  MAKE_INST(INST_FCMOVB           , "fcmovb"           , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DAC0, 0),
  MAKE_INST(INST_FCMOVBE          , "fcmovbe"          , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DAD0, 0),
  MAKE_INST(INST_FCMOVE           , "fcmove"           , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DAC8, 0),
  MAKE_INST(INST_FCMOVNB          , "fcmovnb"          , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DBC0, 0),
  MAKE_INST(INST_FCMOVNBE         , "fcmovnbe"         , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DBD0, 0),
  MAKE_INST(INST_FCMOVNE          , "fcmovne"          , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DBC8, 0),
  MAKE_INST(INST_FCMOVNU          , "fcmovnu"          , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DBD8, 0),
  MAKE_INST(INST_FCMOVU           , "fcmovu"           , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DAD8, 0),
  MAKE_INST(INST_FCOM             , "fcom"             , G(X87_FPU)       , F(FPU)           , 0                   , 0                   , 2, 0xD8DCD0D0, 0),
  MAKE_INST(INST_FCOMI            , "fcomi"            , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DBF0, 0),
  MAKE_INST(INST_FCOMIP           , "fcomip"           , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DFF0, 0),
  MAKE_INST(INST_FCOMP            , "fcomp"            , G(X87_FPU)       , F(FPU)           , 0                   , 0                   , 3, 0xD8DCD8D8, 0),
  MAKE_INST(INST_FCOMPP           , "fcompp"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000DED9, 0),
  MAKE_INST(INST_FCOS             , "fcos"             , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9FF, 0),
  MAKE_INST(INST_FDECSTP          , "fdecstp"          , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F6, 0),
  MAKE_INST(INST_FDIV             , "fdiv"             , G(X87_FPU)       , F(FPU)           , 0                   , 0                   , 6, 0xD8DCF0F8, 0),
  MAKE_INST(INST_FDIVP            , "fdivp"            , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DEF8, 0),
  MAKE_INST(INST_FDIVR            , "fdivr"            , G(X87_FPU)       , F(FPU)           , 0                   , 0                   , 7, 0xD8DCF8F0, 0),
  MAKE_INST(INST_FDIVRP           , "fdivrp"           , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DEF0, 0),
  MAKE_INST(INST_FEMMS            , "femms"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x00000F0E, 0),
  MAKE_INST(INST_FFREE            , "ffree"            , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DDC0, 0),
  MAKE_INST(INST_FIADD            , "fiadd"            , G(X87_MEM)       , F(FPU)           , O(FM_2_4)           , 0                   , 0, 0xDEDA0000, 0),
  MAKE_INST(INST_FICOM            , "ficom"            , G(X87_MEM)       , F(FPU)           , O(FM_2_4)           , 0                   , 2, 0xDEDA0000, 0),
  MAKE_INST(INST_FICOMP           , "ficomp"           , G(X87_MEM)       , F(FPU)           , O(FM_2_4)           , 0                   , 3, 0xDEDA0000, 0),
  MAKE_INST(INST_FIDIV            , "fidiv"            , G(X87_MEM)       , F(FPU)           , O(FM_2_4)           , 0                   , 6, 0xDEDA0000, 0),
  MAKE_INST(INST_FIDIVR           , "fidivr"           , G(X87_MEM)       , F(FPU)           , O(FM_2_4)           , 0                   , 7, 0xDEDA0000, 0),
  MAKE_INST(INST_FILD             , "fild"             , G(X87_MEM)       , F(FPU)           , O(FM_2_4_8)         , 0                   , 0, 0xDFDBDF05, 0),
  MAKE_INST(INST_FIMUL            , "fimul"            , G(X87_MEM)       , F(FPU)           , O(FM_2_4)           , 0                   , 1, 0xDEDA0000, 0),
  MAKE_INST(INST_FINCSTP          , "fincstp"          , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F7, 0),
  MAKE_INST(INST_FINIT            , "finit"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x9B00DBE3, 0),
  MAKE_INST(INST_FIST             , "fist"             , G(X87_MEM)       , F(FPU)           , O(FM_2_4)           , 0                   , 2, 0xDFDB0000, 0),
  MAKE_INST(INST_FISTP            , "fistp"            , G(X87_MEM)       , F(FPU)           , O(FM_2_4_8)         , 0                   , 3, 0xDFDBDF07, 0),
  MAKE_INST(INST_FISTTP           , "fisttp"           , G(X87_MEM)       , F(FPU)           , O(FM_2_4_8)         , 0                   , 1, 0xDFDBDD01, 0),
  MAKE_INST(INST_FISUB            , "fisub"            , G(X87_MEM)       , F(FPU)           , O(FM_2_4)           , 0                   , 4, 0xDEDA0000, 0),
  MAKE_INST(INST_FISUBR           , "fisubr"           , G(X87_MEM)       , F(FPU)           , O(FM_2_4)           , 0                   , 5, 0xDEDA0000, 0),
  MAKE_INST(INST_FLD              , "fld"              , G(X87_MEM_STI)   , F(FPU)           , O(FM_4_8_10)        , 0                   , 0, 0x00D9DD00, 0xD9C0DB05),
  MAKE_INST(INST_FLD1             , "fld1"             , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9E8, 0),
  MAKE_INST(INST_FLDCW            , "fldcw"            , G(M)             , F(FPU)           , O(MEM)              , 0                   , 5, 0x000000D9, 0),
  MAKE_INST(INST_FLDENV           , "fldenv"           , G(M)             , F(FPU)           , O(MEM)              , 0                   , 4, 0x000000D9, 0),
  MAKE_INST(INST_FLDL2E           , "fldl2e"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9EA, 0),
  MAKE_INST(INST_FLDL2T           , "fldl2t"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9E9, 0),
  MAKE_INST(INST_FLDLG2           , "fldlg2"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9EC, 0),
  MAKE_INST(INST_FLDLN2           , "fldln2"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9ED, 0),
  MAKE_INST(INST_FLDPI            , "fldpi"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9EB, 0),
  MAKE_INST(INST_FLDZ             , "fldz"             , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9EE, 0),
  MAKE_INST(INST_FMUL             , "fmul"             , G(X87_FPU)       , F(FPU)           , 0                   , 0                   , 1, 0xD8DCC8C8, 0),
  MAKE_INST(INST_FMULP            , "fmulp"            , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DEC8, 0),
  MAKE_INST(INST_FNCLEX           , "fnclex"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000DBE2, 0),
  MAKE_INST(INST_FNINIT           , "fninit"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000DBE3, 0),
  MAKE_INST(INST_FNOP             , "fnop"             , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9D0, 0),
  MAKE_INST(INST_FNSAVE           , "fnsave"           , G(M)             , F(FPU)           , O(MEM)              , 0                   , 6, 0x000000DD, 0),
  MAKE_INST(INST_FNSTCW           , "fnstcw"           , G(M)             , F(FPU)           , O(MEM)              , 0                   , 7, 0x000000D9, 0),
  MAKE_INST(INST_FNSTENV          , "fnstenv"          , G(M)             , F(FPU)           , O(MEM)              , 0                   , 6, 0x000000D9, 0),
  MAKE_INST(INST_FNSTSW           , "fnstsw"           , G(X87_FSTSW)     , F(FPU)           , O(MEM)              , 0                   , 7, 0x000000DD, 0x0000DFE0),
  MAKE_INST(INST_FPATAN           , "fpatan"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F3, 0),
  MAKE_INST(INST_FPREM            , "fprem"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F8, 0),
  MAKE_INST(INST_FPREM1           , "fprem1"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F5, 0),
  MAKE_INST(INST_FPTAN            , "fptan"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F2, 0),
  MAKE_INST(INST_FRNDINT          , "frndint"          , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9FC, 0),
  MAKE_INST(INST_FRSTOR           , "frstor"           , G(M)             , F(FPU)           , O(MEM)              , 0                   , 4, 0x000000DD, 0),
  MAKE_INST(INST_FSAVE            , "fsave"            , G(M)             , F(FPU)           , O(MEM)              , 0                   , 6, 0x9B0000DD, 0),
  MAKE_INST(INST_FSCALE           , "fscale"           , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9FD, 0),
  MAKE_INST(INST_FSIN             , "fsin"             , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9FE, 0),
  MAKE_INST(INST_FSINCOS          , "fsincos"          , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9FB, 0),
  MAKE_INST(INST_FSQRT            , "fsqrt"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9FA, 0),
  MAKE_INST(INST_FST              , "fst"              , G(X87_MEM_STI)   , F(FPU)           , O(FM_4_8)           , 0                   , 2, 0x00D9DD02, 0xDDD00000),
  MAKE_INST(INST_FSTCW            , "fstcw"            , G(M)             , F(FPU)           , O(MEM)              , 0                   , 7, 0x9B0000D9, 0),
  MAKE_INST(INST_FSTENV           , "fstenv"           , G(M)             , F(FPU)           , O(MEM)              , 0                   , 6, 0x9B0000D9, 0),
  MAKE_INST(INST_FSTP             , "fstp"             , G(X87_MEM_STI)   , F(FPU)           , O(FM_4_8_10)        , 0                   , 3, 0x00D9DD03, 0xDDD8DB07),
  MAKE_INST(INST_FSTSW            , "fstsw"            , G(X87_FSTSW)     , F(FPU)           , O(MEM)              , 0                   , 7, 0x9B0000DD, 0x9B00DFE0),
  MAKE_INST(INST_FSUB             , "fsub"             , G(X87_FPU)       , F(FPU)           , 0                   , 0                   , 4, 0xD8DCE0E8, 0),
  MAKE_INST(INST_FSUBP            , "fsubp"            , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DEE8, 0),
  MAKE_INST(INST_FSUBR            , "fsubr"            , G(X87_FPU)       , F(FPU)           , 0                   , 0                   , 5, 0xD8DCE8E0, 0),
  MAKE_INST(INST_FSUBRP           , "fsubrp"           , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DEE0, 0),
  MAKE_INST(INST_FTST             , "ftst"             , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9E4, 0),
  MAKE_INST(INST_FUCOM            , "fucom"            , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DDE0, 0),
  MAKE_INST(INST_FUCOMI           , "fucomi"           , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DBE8, 0),
  MAKE_INST(INST_FUCOMIP          , "fucomip"          , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DFE8, 0),
  MAKE_INST(INST_FUCOMP           , "fucomp"           , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000DDE8, 0),
  MAKE_INST(INST_FUCOMPP          , "fucompp"          , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000DAE9, 0),
  MAKE_INST(INST_FWAIT            , "fwait"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x000000DB, 0),
  MAKE_INST(INST_FXAM             , "fxam"             , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9E5, 0),
  MAKE_INST(INST_FXCH             , "fxch"             , G(X87_STI)       , F(FPU)           , 0                   , 0                   , 0, 0x0000D9C8, 0),
  MAKE_INST(INST_FXRSTOR          , "fxrstor"          , G(M)             , F(FPU)           , 0                   , 0                   , 1, 0x00000FAE, 0),
  MAKE_INST(INST_FXSAVE           , "fxsave"           , G(M)             , F(FPU)           , 0                   , 0                   , 0, 0x00000FAE, 0),
  MAKE_INST(INST_FXTRACT          , "fxtract"          , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F4, 0),
  MAKE_INST(INST_FYL2X            , "fyl2x"            , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F1, 0),
  MAKE_INST(INST_FYL2XP1          , "fyl2xp1"          , G(EMIT)          , F(FPU)           , 0                   , 0                   , 0, 0x0000D9F9, 0),
  MAKE_INST(INST_HADDPD           , "haddpd"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F7C, 0),
  MAKE_INST(INST_HADDPS           , "haddps"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F7C, 0),
  MAKE_INST(INST_HSUBPD           , "hsubpd"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F7D, 0),
  MAKE_INST(INST_HSUBPS           , "hsubps"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F7D, 0),
  MAKE_INST(INST_IDIV             , "idiv"             , G(RM)            , F(SPECIAL)       , 0                   , 0                   , 7, 0x000000F6, 0),
  MAKE_INST(INST_IMUL             , "imul"             , G(IMUL)          , F(SPECIAL)       , 0                   , 0                   , 0, 0         , 0),
  MAKE_INST(INST_INC              , "inc"              , G(INC_DEC)       , F(LOCKABLE)      , O(GQDWB_MEM)        , 0                   , 0, 0x00000040, 0x000000FE),
  MAKE_INST(INST_INT3             , "int3"             , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x000000CC, 0),
  MAKE_INST(INST_JA               , "ja"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x7       , 0),
  MAKE_INST(INST_JAE              , "jae"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x3       , 0),
  MAKE_INST(INST_JB               , "jb"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x2       , 0),
  MAKE_INST(INST_JBE              , "jbe"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x6       , 0),
  MAKE_INST(INST_JC               , "jc"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x2       , 0),
  MAKE_INST(INST_JE               , "je"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x4       , 0),
  MAKE_INST(INST_JG               , "jg"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xF       , 0),
  MAKE_INST(INST_JGE              , "jge"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xD       , 0),
  MAKE_INST(INST_JL               , "jl"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xC       , 0),
  MAKE_INST(INST_JLE              , "jle"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xE       , 0),
  MAKE_INST(INST_JNA              , "jna"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x6       , 0),
  MAKE_INST(INST_JNAE             , "jnae"             , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x2       , 0),
  MAKE_INST(INST_JNB              , "jnb"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x3       , 0),
  MAKE_INST(INST_JNBE             , "jnbe"             , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x7       , 0),
  MAKE_INST(INST_JNC              , "jnc"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x3       , 0),
  MAKE_INST(INST_JNE              , "jne"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x5       , 0),
  MAKE_INST(INST_JNG              , "jng"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xE       , 0),
  MAKE_INST(INST_JNGE             , "jnge"             , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xC       , 0),
  MAKE_INST(INST_JNL              , "jnl"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xD       , 0),
  MAKE_INST(INST_JNLE             , "jnle"             , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xF       , 0),
  MAKE_INST(INST_JNO              , "jno"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x1       , 0),
  MAKE_INST(INST_JNP              , "jnp"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xB       , 0),
  MAKE_INST(INST_JNS              , "jns"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x9       , 0),
  MAKE_INST(INST_JNZ              , "jnz"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x5       , 0),
  MAKE_INST(INST_JO               , "jo"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x0       , 0),
  MAKE_INST(INST_JP               , "jp"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xA       , 0),
  MAKE_INST(INST_JPE              , "jpe"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xA       , 0),
  MAKE_INST(INST_JPO              , "jpo"              , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0xB       , 0),
  MAKE_INST(INST_JS               , "js"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x8       , 0),
  MAKE_INST(INST_JZ               , "jz"               , G(J)             , F(JUMP)          , 0                   , 0                   , 0, 0x4       , 0),
  MAKE_INST(INST_JMP              , "jmp"              , G(JMP)           , F(JUMP)          , 0                   , 0                   , 0, 0         , 0),
  MAKE_INST(INST_LDDQU            , "lddqu"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(MEM)              , 0, 0xF2000FF0, 0),
  MAKE_INST(INST_LDMXCSR          , "ldmxcsr"          , G(M)             , F(NONE)          , O(MEM)              , 0                   , 2, 0x00000FAE, 0),
  MAKE_INST(INST_LEA              , "lahf"             , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x0000009F, 0),
  MAKE_INST(INST_LEA              , "lea"              , G(LEA)           , F(NONE)          , O(GQD)              , O(MEM)              , 0, 0         , 0),
  MAKE_INST(INST_LEAVE            , "leave"            , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x000000C9, 0),
  MAKE_INST(INST_LFENCE           , "lfence"           , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x000FAEE8, 0),
  MAKE_INST(INST_MASKMOVDQU       , "maskmovdqu"       , G(MMU_RMI)       , F(SPECIAL)       , O(XMM)              , O(XMM)              , 0, 0x66000F57, 0),
  MAKE_INST(INST_MASKMOVQ         , "maskmovq"         , G(MMU_RMI)       , F(SPECIAL)       , O(MM)               , O(MM)               , 0, 0x00000FF7, 0),
  MAKE_INST(INST_MAXPD            , "maxpd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F5F, 0),
  MAKE_INST(INST_MAXPS            , "maxps"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F5F, 0),
  MAKE_INST(INST_MAXSD            , "maxsd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F5F, 0),
  MAKE_INST(INST_MAXSS            , "maxss"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F5F, 0),
  MAKE_INST(INST_MFENCE           , "mfence"           , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x000FAEF0, 0),
  MAKE_INST(INST_MINPD            , "minpd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F5D, 0),
  MAKE_INST(INST_MINPS            , "minps"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F5D, 0),
  MAKE_INST(INST_MINSD            , "minsd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F5D, 0),
  MAKE_INST(INST_MINSS            , "minss"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F5D, 0),
  MAKE_INST(INST_MONITOR          , "monitor"          , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x000F01C8, 0),
  MAKE_INST(INST_MOV              , "mov"              , G(MOV)           , F(MOV)           , O(GQDWB_MEM)        , O(GQDWB_MEM)|O(IMM) , 0, 0         , 0),
  MAKE_INST(INST_MOVAPD           , "movapd"           , G(MMU_MOV)       , F(MOV)           , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0x66000F28, 0x66000F29),
  MAKE_INST(INST_MOVAPS           , "movaps"           , G(MMU_MOV)       , F(MOV)           , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0x00000F28, 0x00000F29),
  MAKE_INST(INST_MOVBE            , "movbe"            , G(MOVBE)         , F(MOV)           , O(GQDW)|O(MEM)      , O(GQDW)|O(MEM)      , 0, 0x000F38F0, 0x000F38F1),
  MAKE_INST(INST_MOVD             , "movd"             , G(MMU_MOVD)      , F(MOV)           , O(GD)|O(MM_XMM_MEM) , O(GD)|O(MM_XMM_MEM) , 0, 0         , 0),
  MAKE_INST(INST_MOVDDUP          , "movddup"          , G(MMU_MOV)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F12, 0),
  MAKE_INST(INST_MOVDQ2Q          , "movdq2q"          , G(MMU_MOV)       , F(MOV)           , O(MM)               , O(XMM)              , 0, 0xF2000FD6, 0),
  MAKE_INST(INST_MOVDQA           , "movdqa"           , G(MMU_MOV)       , F(MOV)           , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0x66000F6F, 0x66000F7F),
  MAKE_INST(INST_MOVDQU           , "movdqu"           , G(MMU_MOV)       , F(MOV)           , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0xF3000F6F, 0xF3000F7F),
  MAKE_INST(INST_MOVHLPS          , "movhlps"          , G(MMU_MOV)       , F(NONE)          , O(XMM)              , O(XMM)              , 0, 0x00000F12, 0),
  MAKE_INST(INST_MOVHPD           , "movhpd"           , G(MMU_MOV)       , F(NONE)          , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0x66000F16, 0x66000F17),
  MAKE_INST(INST_MOVHPS           , "movhps"           , G(MMU_MOV)       , F(NONE)          , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0x00000F16, 0x00000F17),
  MAKE_INST(INST_MOVLHPS          , "movlhps"          , G(MMU_MOV)       , F(NONE)          , O(XMM)              , O(XMM)              , 0, 0x00000F16, 0),
  MAKE_INST(INST_MOVLPD           , "movlpd"           , G(MMU_MOV)       , F(NONE)          , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0x66000F12, 0x66000F13),
  MAKE_INST(INST_MOVLPS           , "movlps"           , G(MMU_MOV)       , F(NONE)          , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0x00000F12, 0x00000F13),
  MAKE_INST(INST_MOVMSKPD         , "movmskpd"         , G(MMU_MOV)       , F(MOV)           , O(GQD)|O(NOREX)     , O(XMM)              , 0, 0x66000F50, 0),
  MAKE_INST(INST_MOVMSKPS         , "movmskps"         , G(MMU_MOV)       , F(MOV)           , O(GQD)|O(NOREX)     , O(XMM)              , 0, 0x00000F50, 0),
  MAKE_INST(INST_MOVNTDQ          , "movntdq"          , G(MMU_MOV)       , F(NONE)          , O(MEM)              , O(XMM)              , 0, 0         , 0x66000FE7),
  MAKE_INST(INST_MOVNTDQA         , "movntdqa"         , G(MMU_MOV)       , F(MOV)           , O(XMM)              , O(MEM)              , 0, 0x660F382A, 0),
  MAKE_INST(INST_MOVNTI           , "movnti"           , G(MMU_MOV)       , F(MOV)           , O(MEM)              , O(GQD)              , 0, 0         , 0x00000FC3),
  MAKE_INST(INST_MOVNTPD          , "movntpd"          , G(MMU_MOV)       , F(NONE)          , O(MEM)              , O(XMM)              , 0, 0         , 0x66000F2B),
  MAKE_INST(INST_MOVNTPS          , "movntps"          , G(MMU_MOV)       , F(NONE)          , O(MEM)              , O(XMM)              , 0, 0         , 0x00000F2B),
  MAKE_INST(INST_MOVNTQ           , "movntq"           , G(MMU_MOV)       , F(NONE)          , O(MEM)              , O(MM)               , 0, 0         , 0x00000FE7),
  MAKE_INST(INST_MOVQ             , "movq"             , G(MMU_MOVQ)      , F(MOV)           , O(GQ)|O(MM_XMM_MEM) , O(GQ)|O(MM_XMM_MEM) , 0, 0         , 0),
  MAKE_INST(INST_MOVQ2DQ          , "movq2dq"          , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(MM)               , 0, 0xF3000FD6, 0),
  MAKE_INST(INST_MOVSD            , "movsd"            , G(MMU_MOV)       , F(NONE)          , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0xF2000F10, 0xF2000F11),
  MAKE_INST(INST_MOVSHDUP         , "movshdup"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F16, 0),
  MAKE_INST(INST_MOVSLDUP         , "movsldup"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F12, 0),
  MAKE_INST(INST_MOVSS            , "movss"            , G(MMU_MOV)       , F(NONE)          , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0xF3000F10, 0xF3000F11),
  MAKE_INST(INST_MOVSX            , "movsx"            , G(MOVSX_MOVZX)   , F(NONE)          , O(GQDW)             , O(GWB_MEM)          , 0, 0x00000FBE, 0),
  MAKE_INST(INST_MOVSXD           , "movsxd"           , G(MOVSXD)        , F(NONE)          , O(GQ)               , O(GD_MEM)           , 0, 0         , 0),
  MAKE_INST(INST_MOVUPD           , "movupd"           , G(MMU_MOV)       , F(MOV)           , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0x66000F10, 0x66000F11),
  MAKE_INST(INST_MOVUPS           , "movups"           , G(MMU_MOV)       , F(MOV)           , O(XMM_MEM)          , O(XMM_MEM)          , 0, 0x00000F10, 0x00000F11),
  MAKE_INST(INST_MOVZX            , "movzx"            , G(MOVSX_MOVZX)   , F(MOV)           , O(GQDW)             , O(GWB_MEM)          , 0, 0x00000FB6, 0),
  MAKE_INST(INST_MOV_PTR          , "mov_ptr"          , G(MOV_PTR)       , F(MOV)|F(SPECIAL), O(GQDWB)            , O(IMM)              , 0, 0         , 0),
  MAKE_INST(INST_MPSADBW          , "mpsadbw"          , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A42, 0),
  MAKE_INST(INST_MUL              , "mul"              , G(RM)            , F(SPECIAL)       , 0                   , 0                   , 4, 0x000000F6, 0),
  MAKE_INST(INST_MULPD            , "mulpd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F59, 0),
  MAKE_INST(INST_MULPS            , "mulps"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F59, 0),
  MAKE_INST(INST_MULSD            , "mulsd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F59, 0),
  MAKE_INST(INST_MULSS            , "mulss"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F59, 0),
  MAKE_INST(INST_MWAIT            , "mwait"            , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x000F01C9, 0),
  MAKE_INST(INST_NEG              , "neg"              , G(RM)            , F(LOCKABLE)      , O(GQDWB_MEM)        , 0                   , 3, 0x000000F6, 0),
  MAKE_INST(INST_NOP              , "nop"              , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x00000090, 0),
  MAKE_INST(INST_NOT              , "not"              , G(RM)            , F(LOCKABLE)      , O(GQDWB_MEM)        , 0                   , 2, 0x000000F6, 0),
  MAKE_INST(INST_OR               , "or"               , G(ALU)           , F(LOCKABLE)      , O(GQDWB_MEM)        , O(GQDWB_MEM)|O(IMM) , 1, 0x00000008, 0x00000080),
  MAKE_INST(INST_ORPD             , "orpd"             , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F56, 0),
  MAKE_INST(INST_ORPS             , "orps"             , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F56, 0),
  MAKE_INST(INST_PABSB            , "pabsb"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F381C, 0),
  MAKE_INST(INST_PABSD            , "pabsd"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F381E, 0),
  MAKE_INST(INST_PABSW            , "pabsw"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F381D, 0),
  MAKE_INST(INST_PACKSSDW         , "packssdw"         , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F6B, 0),
  MAKE_INST(INST_PACKSSWB         , "packsswb"         , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F63, 0),
  MAKE_INST(INST_PACKUSDW         , "packusdw"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F382B, 0),
  MAKE_INST(INST_PACKUSWB         , "packuswb"         , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F67, 0),
  MAKE_INST(INST_PADDB            , "paddb"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FFC, 0),
  MAKE_INST(INST_PADDD            , "paddd"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FFE, 0),
  MAKE_INST(INST_PADDQ            , "paddq"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FD4, 0),
  MAKE_INST(INST_PADDSB           , "paddsb"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FEC, 0),
  MAKE_INST(INST_PADDSW           , "paddsw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FED, 0),
  MAKE_INST(INST_PADDUSB          , "paddusb"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FDC, 0),
  MAKE_INST(INST_PADDUSW          , "paddusw"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FDD, 0),
  MAKE_INST(INST_PADDW            , "paddw"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FFD, 0),
  MAKE_INST(INST_PALIGNR          , "palignr"          , G(MMU_RM_IMM8)   , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3A0F, 0),
  MAKE_INST(INST_PAND             , "pand"             , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FDB, 0),
  MAKE_INST(INST_PANDN            , "pandn"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FDF, 0),
  MAKE_INST(INST_PAUSE            , "pause"            , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0xF3000090, 0),
  MAKE_INST(INST_PAVGB            , "pavgb"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FE0, 0),
  MAKE_INST(INST_PAVGW            , "pavgw"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FE3, 0),
  MAKE_INST(INST_PBLENDVB         , "pblendvb"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3810, 0),
  MAKE_INST(INST_PBLENDW          , "pblendw"          , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A0E, 0),
  MAKE_INST(INST_PCMPEQB          , "pcmpeqb"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F74, 0),
  MAKE_INST(INST_PCMPEQD          , "pcmpeqd"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F76, 0),
  MAKE_INST(INST_PCMPEQQ          , "pcmpeqq"          , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3829, 0),
  MAKE_INST(INST_PCMPEQW          , "pcmpeqw"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F75, 0),
  MAKE_INST(INST_PCMPESTRI        , "pcmpestri"        , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A61, 0),
  MAKE_INST(INST_PCMPESTRM        , "pcmpestrm"        , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A60, 0),
  MAKE_INST(INST_PCMPGTB          , "pcmpgtb"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F64, 0),
  MAKE_INST(INST_PCMPGTD          , "pcmpgtd"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F66, 0),
  MAKE_INST(INST_PCMPGTQ          , "pcmpgtq"          , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3837, 0),
  MAKE_INST(INST_PCMPGTW          , "pcmpgtw"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F65, 0),
  MAKE_INST(INST_PCMPISTRI        , "pcmpistri"        , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A63, 0),
  MAKE_INST(INST_PCMPISTRM        , "pcmpistrm"        , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A62, 0),
  MAKE_INST(INST_PEXTRB           , "pextrb"           , G(MMU_PEXTR)     , F(NONE)          , O(GD)|O(GB)|O(MEM)  , O(XMM)              , 0, 0x000F3A14, 0),
  MAKE_INST(INST_PEXTRD           , "pextrd"           , G(MMU_PEXTR)     , F(NONE)          , O(GD)      |O(MEM)  , O(XMM)              , 0, 0x000F3A16, 0),
  MAKE_INST(INST_PEXTRQ           , "pextrq"           , G(MMU_PEXTR)     , F(NONE)          , O(GQD)     |O(MEM)  , O(XMM)              , 1, 0x000F3A16, 0),
  MAKE_INST(INST_PEXTRW           , "pextrw"           , G(MMU_PEXTR)     , F(NONE)          , O(GD)      |O(MEM)  , O(XMM) | O(MM)      , 0, 0x000F3A16, 0),
  MAKE_INST(INST_PF2ID            , "pf2id"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x1D),
  MAKE_INST(INST_PF2IW            , "pf2iw"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x1C),
  MAKE_INST(INST_PFACC            , "pfacc"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xAE),
  MAKE_INST(INST_PFADD            , "pfadd"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x9E),
  MAKE_INST(INST_PFCMPEQ          , "pfcmpeq"          , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xB0),
  MAKE_INST(INST_PFCMPGE          , "pfcmpge"          , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x90),
  MAKE_INST(INST_PFCMPGT          , "pfcmpgt"          , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xA0),
  MAKE_INST(INST_PFMAX            , "pfmax"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xA4),
  MAKE_INST(INST_PFMIN            , "pfmin"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x94),
  MAKE_INST(INST_PFMUL            , "pfmul"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xB4),
  MAKE_INST(INST_PFNACC           , "pfnacc"           , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x8A),
  MAKE_INST(INST_PFPNACC          , "pfpnacc"          , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x8E),
  MAKE_INST(INST_PFRCP            , "pfrcp"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x96),
  MAKE_INST(INST_PFRCPIT1         , "pfrcpit1"         , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xA6),
  MAKE_INST(INST_PFRCPIT2         , "pfrcpit2"         , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xB6),
  MAKE_INST(INST_PFRSQIT1         , "pfrsqit1"         , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xA7),
  MAKE_INST(INST_PFRSQRT          , "pfrsqrt"          , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x97),
  MAKE_INST(INST_PFSUB            , "pfsub"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x9A),
  MAKE_INST(INST_PFSUBR           , "pfsubr"           , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xAA),
  MAKE_INST(INST_PHADDD           , "phaddd"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3802, 0),
  MAKE_INST(INST_PHADDSW          , "phaddsw"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3803, 0),
  MAKE_INST(INST_PHADDW           , "phaddw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3801, 0),
  MAKE_INST(INST_PHMINPOSUW       , "phminposuw"       , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3841, 0),
  MAKE_INST(INST_PHSUBD           , "phsubd"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3806, 0),
  MAKE_INST(INST_PHSUBSW          , "phsubsw"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3807, 0),
  MAKE_INST(INST_PHSUBW           , "phsubw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3805, 0),
  MAKE_INST(INST_PI2FD            , "pi2fd"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x0D),
  MAKE_INST(INST_PI2FW            , "pi2fw"            , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0x0C),
  MAKE_INST(INST_PINSRB           , "pinsrb"           , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(GD) | O(MEM)      , 0, 0x660F3A20, 0),
  MAKE_INST(INST_PINSRD           , "pinsrd"           , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(GD) | O(MEM)      , 0, 0x660F3A22, 0),
  MAKE_INST(INST_PINSRQ           , "pinsrq"           , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(GQ) | O(MEM)      , 0, 0x660F3A22, 0),
  MAKE_INST(INST_PINSRW           , "pinsrw"           , G(MMU_RM_IMM8)   , F(NONE)          , O(MM_XMM)           , O(GD) | O(MEM)      , 0, 0x00000FC4, 0),
  MAKE_INST(INST_PMADDUBSW        , "pmaddubsw"        , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3804, 0),
  MAKE_INST(INST_PMADDWD          , "pmaddwd"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FF5, 0),
  MAKE_INST(INST_PMAXSB           , "pmaxsb"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F383C, 0),
  MAKE_INST(INST_PMAXSD           , "pmaxsd"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F383D, 0),
  MAKE_INST(INST_PMAXSW           , "pmaxsw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FEE, 0),
  MAKE_INST(INST_PMAXUB           , "pmaxub"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FDE, 0),
  MAKE_INST(INST_PMAXUD           , "pmaxud"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F383F, 0),
  MAKE_INST(INST_PMAXUW           , "pmaxuw"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F383E, 0),
  MAKE_INST(INST_PMINSB           , "pminsb"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3838, 0),
  MAKE_INST(INST_PMINSD           , "pminsd"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3839, 0),
  MAKE_INST(INST_PMINSW           , "pminsw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FEA, 0),
  MAKE_INST(INST_PMINUB           , "pminub"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FDA, 0),
  MAKE_INST(INST_PMINUD           , "pminud"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F383B, 0),
  MAKE_INST(INST_PMINUW           , "pminuw"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F383A, 0),
  MAKE_INST(INST_PMOVMSKB         , "pmovmskb"         , G(MMU_RMI)       , F(MOV)           , O(GQD)              , O(MM_XMM)           , 0, 0x00000FD7, 0),
  MAKE_INST(INST_PMOVSXBD         , "pmovsxbd"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3821, 0),
  MAKE_INST(INST_PMOVSXBQ         , "pmovsxbq"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3822, 0),
  MAKE_INST(INST_PMOVSXBW         , "pmovsxbw"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3820, 0),
  MAKE_INST(INST_PMOVSXDQ         , "pmovsxdq"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3825, 0),
  MAKE_INST(INST_PMOVSXWD         , "pmovsxwd"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3823, 0),
  MAKE_INST(INST_PMOVSXWQ         , "pmovsxwq"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3824, 0),
  MAKE_INST(INST_PMOVZXBD         , "pmovzxbd"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3831, 0),
  MAKE_INST(INST_PMOVZXBQ         , "pmovzxbq"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3832, 0),
  MAKE_INST(INST_PMOVZXBW         , "pmovzxbw"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3830, 0),
  MAKE_INST(INST_PMOVZXDQ         , "pmovzxdq"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3835, 0),
  MAKE_INST(INST_PMOVZXWD         , "pmovzxwd"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3833, 0),
  MAKE_INST(INST_PMOVZXWQ         , "pmovzxwq"         , G(MMU_RMI)       , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3834, 0),
  MAKE_INST(INST_PMULDQ           , "pmuldq"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3828, 0),
  MAKE_INST(INST_PMULHRSW         , "pmulhrsw"         , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F380B, 0),
  MAKE_INST(INST_PMULHUW          , "pmulhuw"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FE4, 0),
  MAKE_INST(INST_PMULHW           , "pmulhw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FE5, 0),
  MAKE_INST(INST_PMULLD           , "pmulld"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3840, 0),
  MAKE_INST(INST_PMULLW           , "pmullw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FD5, 0),
  MAKE_INST(INST_PMULUDQ          , "pmuludq"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FF4, 0),
  MAKE_INST(INST_POP              , "pop"              , G(POP)           , F(SPECIAL)       , 0                   , 0                   , 0, 0x00000058, 0x0000008F),
  MAKE_INST(INST_POPAD            , "popad"            , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x00000061, 0),
  MAKE_INST(INST_POPCNT           , "popcnt"           , G(R_RM)          , F(NONE)          , O(GQDW)             , O(GQDW_MEM)         , 0, 0xF3000FB8, 0),
  MAKE_INST(INST_POPFD            , "popfd"            , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x0000009D, 0),
  MAKE_INST(INST_POPFQ            , "popfq"            , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x0000009D, 0),
  MAKE_INST(INST_POR              , "por"              , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FEB, 0),
  MAKE_INST(INST_PREFETCH         , "prefetch"         , G(MMU_PREFETCH)  , F(NONE)          , O(MEM)              , O(IMM)              , 0, 0         , 0),
  MAKE_INST(INST_PSADBW           , "psadbw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FF6, 0),
  MAKE_INST(INST_PSHUFB           , "pshufb"           , G(MMU_RMI)       , F(MOV)           , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3800, 0),
  MAKE_INST(INST_PSHUFD           , "pshufd"           , G(MMU_RM_IMM8)   , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F70, 0),
  MAKE_INST(INST_PSHUFW           , "pshufw"           , G(MMU_RM_IMM8)   , F(MOV)           , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F70, 0),
  MAKE_INST(INST_PSHUFHW          , "pshufhw"          , G(MMU_RM_IMM8)   , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F70, 0),
  MAKE_INST(INST_PSHUFLW          , "pshuflw"          , G(MMU_RM_IMM8)   , F(MOV)           , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F70, 0),
  MAKE_INST(INST_PSIGNB           , "psignb"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3808, 0),
  MAKE_INST(INST_PSIGND           , "psignd"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F380A, 0),
  MAKE_INST(INST_PSIGNW           , "psignw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x000F3809, 0),
  MAKE_INST(INST_PSLLD            , "pslld"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)|O(IMM), 6, 0x00000FF2, 0x00000F72),
  MAKE_INST(INST_PSLLDQ           , "pslldq"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(IMM)              , 7, 0         , 0x66000F73),
  MAKE_INST(INST_PSLLQ            , "psllq"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)|O(IMM), 6, 0x00000FF3, 0x00000F73),
  MAKE_INST(INST_PSLLW            , "psllw"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)|O(IMM), 6, 0x00000FF1, 0x00000F71),
  MAKE_INST(INST_PSRAD            , "psrad"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)|O(IMM), 4, 0x00000FE2, 0x00000F72),
  MAKE_INST(INST_PSRAW            , "psraw"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)|O(IMM), 4, 0x00000FE1, 0x00000F71),
  MAKE_INST(INST_PSRLD            , "psrld"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)|O(IMM), 2, 0x00000FD2, 0x00000F72),
  MAKE_INST(INST_PSRLDQ           , "psrldq"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(IMM)              , 3, 0         , 0x66000F73),
  MAKE_INST(INST_PSRLQ            , "psrlq"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)|O(IMM), 2, 0x00000FD3, 0x00000F73),
  MAKE_INST(INST_PSRLW            , "psrlw"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)|O(IMM), 2, 0x00000FD1, 0x00000F71),
  MAKE_INST(INST_PSUBB            , "psubb"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FF8, 0),
  MAKE_INST(INST_PSUBD            , "psubd"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FFA, 0),
  MAKE_INST(INST_PSUBQ            , "psubq"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FFB, 0),
  MAKE_INST(INST_PSUBSB           , "psubsb"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FE8, 0),
  MAKE_INST(INST_PSUBSW           , "psubsw"           , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FE9, 0),
  MAKE_INST(INST_PSUBUSB          , "psubusb"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FD8, 0),
  MAKE_INST(INST_PSUBUSW          , "psubusw"          , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FD9, 0),
  MAKE_INST(INST_PSUBW            , "psubw"            , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FF9, 0),
  MAKE_INST(INST_PSWAPD           , "pswapd"           , G(MMU_RM_3DNOW)  , F(NONE)          , O(MM)               , O(MM_MEM)           , 0, 0x00000F0F, 0xBB),
  MAKE_INST(INST_PTEST            , "ptest"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3817, 0),
  MAKE_INST(INST_PUNPCKHBW        , "punpckhbw"        , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F68, 0),
  MAKE_INST(INST_PUNPCKHDQ        , "punpckhdq"        , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F6A, 0),
  MAKE_INST(INST_PUNPCKHQDQ       , "punpckhqdq"       , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F6D, 0),
  MAKE_INST(INST_PUNPCKHWD        , "punpckhwd"        , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F69, 0),
  MAKE_INST(INST_PUNPCKLBW        , "punpcklbw"        , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F60, 0),
  MAKE_INST(INST_PUNPCKLDQ        , "punpckldq"        , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F62, 0),
  MAKE_INST(INST_PUNPCKLQDQ       , "punpcklqdq"       , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F6C, 0),
  MAKE_INST(INST_PUNPCKLWD        , "punpcklwd"        , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000F61, 0),
  MAKE_INST(INST_PUSH             , "push"             , G(PUSH)          , F(SPECIAL)       , 0                   , 0                   , 6, 0x00000050, 0x000000FF),
  MAKE_INST(INST_PUSHAD           , "pushad"           , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x00000060, 0),
  MAKE_INST(INST_PUSHFD           , "pushfd"           , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x0000009C, 0),
  MAKE_INST(INST_PUSHFQ           , "pushfq"           , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x0000009C, 0),
  MAKE_INST(INST_PXOR             , "pxor"             , G(MMU_RMI)       , F(NONE)          , O(MM_XMM)           , O(MM_XMM_MEM)       , 0, 0x00000FEF, 0),
  MAKE_INST(INST_RCL              , "rcl"              , G(ROT)           , F(SPECIAL)       , O(GQDWB_MEM)        , O(GB)|O(IMM)        , 2, 0         , 0),
  MAKE_INST(INST_RCPPS            , "rcpps"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F53, 0),
  MAKE_INST(INST_RCPSS            , "rcpss"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F53, 0),
  MAKE_INST(INST_RCR              , "rcr"              , G(ROT)           , F(SPECIAL)       , O(GQDWB_MEM)        , O(GB)|O(IMM)        , 3, 0         , 0),
  MAKE_INST(INST_RDTSC            , "rdtsc"            , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x00000F31, 0),
  MAKE_INST(INST_RDTSCP           , "rdtscp"           , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x000F01F9, 0),
  MAKE_INST(INST_REP_LODSB        , "rep lodsb"        , G(REP)           , F(SPECIAL)       , O(MEM)              , 0                   , 0, 0xF30000AC, 1 /* Size of mem */),
  MAKE_INST(INST_REP_LODSD        , "rep lodsd"        , G(REP)           , F(SPECIAL)       , O(MEM)              , 0                   , 0, 0xF30000AC, 4 /* Size of mem */),
  MAKE_INST(INST_REP_LODSQ        , "rep lodsq"        , G(REP)           , F(SPECIAL)       , O(MEM)              , 0                   , 0, 0xF30000AC, 8 /* Size of mem */),
  MAKE_INST(INST_REP_LODSW        , "rep lodsw"        , G(REP)           , F(SPECIAL)       , O(MEM)              , 0                   , 0, 0xF30000AC, 2 /* Size of mem */),
  MAKE_INST(INST_REP_MOVSB        , "rep movsb"        , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000A4, 1 /* Size of mem */),
  MAKE_INST(INST_REP_MOVSD        , "rep movsd"        , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000A4, 4 /* Size of mem */),
  MAKE_INST(INST_REP_MOVSQ        , "rep movsq"        , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000A4, 8 /* Size of mem */),
  MAKE_INST(INST_REP_MOVSW        , "rep movsw"        , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000A4, 2 /* Size of mem */),
  MAKE_INST(INST_REP_STOSB        , "rep stosb"        , G(REP)           , F(SPECIAL)       , O(MEM)              , 0                   , 0, 0xF30000AA, 1 /* Size of mem */),
  MAKE_INST(INST_REP_STOSD        , "rep stosd"        , G(REP)           , F(SPECIAL)       , O(MEM)              , 0                   , 0, 0xF30000AA, 4 /* Size of mem */),
  MAKE_INST(INST_REP_STOSQ        , "rep stosq"        , G(REP)           , F(SPECIAL)       , O(MEM)              , 0                   , 0, 0xF30000AA, 8 /* Size of mem */),
  MAKE_INST(INST_REP_STOSW        , "rep stosw"        , G(REP)           , F(SPECIAL)       , O(MEM)              , 0                   , 0, 0xF30000AA, 2 /* Size of mem */),
  MAKE_INST(INST_REPE_CMPSB       , "repe cmpsb"       , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000A6, 1 /* Size of mem */),
  MAKE_INST(INST_REPE_CMPSD       , "repe cmpsd"       , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000A6, 4 /* Size of mem */),
  MAKE_INST(INST_REPE_CMPSQ       , "repe cmpsq"       , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000A6, 8 /* Size of mem */),
  MAKE_INST(INST_REPE_CMPSW       , "repe cmpsw"       , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000A6, 2 /* Size of mem */),
  MAKE_INST(INST_REPE_SCASB       , "repe scasb"       , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000AE, 1 /* Size of mem */),
  MAKE_INST(INST_REPE_SCASD       , "repe scasd"       , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000AE, 4 /* Size of mem */),
  MAKE_INST(INST_REPE_SCASQ       , "repe scasq"       , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000AE, 8 /* Size of mem */),
  MAKE_INST(INST_REPE_SCASW       , "repe scasw"       , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF30000AE, 2 /* Size of mem */),
  MAKE_INST(INST_REPNE_CMPSB      , "repne cmpsb"      , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF20000A6, 1 /* Size of mem */),
  MAKE_INST(INST_REPNE_CMPSD      , "repne cmpsd"      , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF20000A6, 4 /* Size of mem */),
  MAKE_INST(INST_REPNE_CMPSQ      , "repne cmpsq"      , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF20000A6, 8 /* Size of mem */),
  MAKE_INST(INST_REPNE_CMPSW      , "repne cmpsw"      , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF20000A6, 2 /* Size of mem */),
  MAKE_INST(INST_REPNE_SCASB      , "repne scasb"      , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF20000AE, 1 /* Size of mem */),
  MAKE_INST(INST_REPNE_SCASD      , "repne scasd"      , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF20000AE, 4 /* Size of mem */),
  MAKE_INST(INST_REPNE_SCASQ      , "repne scasq"      , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF20000AE, 8 /* Size of mem */),
  MAKE_INST(INST_REPNE_SCASW      , "repne scasw"      , G(REP)           , F(SPECIAL)       , O(MEM)              , O(MEM)              , 0, 0xF20000AE, 2 /* Size of mem */),
  MAKE_INST(INST_RET              , "ret"              , G(RET)           , F(SPECIAL)       , 0                   , 0                   , 0, 0         , 0),
  MAKE_INST(INST_ROL              , "rol"              , G(ROT)           , F(SPECIAL)       , O(GQDWB_MEM)        , O(GB)|O(IMM)        , 0, 0         , 0),
  MAKE_INST(INST_ROR              , "ror"              , G(ROT)           , F(SPECIAL)       , O(GQDWB_MEM)        , O(GB)|O(IMM)        , 1, 0         , 0),
  MAKE_INST(INST_ROUNDPD          , "roundpd"          , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A09, 0),
  MAKE_INST(INST_ROUNDPS          , "roundps"          , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A08, 0),
  MAKE_INST(INST_ROUNDSD          , "roundsd"          , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A0B, 0),
  MAKE_INST(INST_ROUNDSS          , "roundss"          , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x660F3A0A, 0),
  MAKE_INST(INST_RSQRTPS          , "rsqrtps"          , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F52, 0),
  MAKE_INST(INST_RSQRTSS          , "rsqrtss"          , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F52, 0),
  MAKE_INST(INST_SAHF             , "sahf"             , G(EMIT)          , F(SPECIAL)       , 0                   , 0                   , 0, 0x0000009E, 0),
  MAKE_INST(INST_SAL              , "sal"              , G(ROT)           , F(SPECIAL)       , O(GQDWB_MEM)        , O(GB)|O(IMM)        , 4, 0         , 0),
  MAKE_INST(INST_SAR              , "sar"              , G(ROT)           , F(SPECIAL)       , O(GQDWB_MEM)        , O(GB)|O(IMM)        , 7, 0         , 0),
  MAKE_INST(INST_SBB              , "sbb"              , G(ALU)           , F(LOCKABLE)      , O(GQDWB_MEM)        , O(GQDWB_MEM)|O(IMM) , 3, 0x00000018, 0x00000080),
  MAKE_INST(INST_SETA             , "seta"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F97, 0),
  MAKE_INST(INST_SETAE            , "setae"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F93, 0),
  MAKE_INST(INST_SETB             , "setb"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F92, 0),
  MAKE_INST(INST_SETBE            , "setbe"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F96, 0),
  MAKE_INST(INST_SETC             , "setc"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F92, 0),
  MAKE_INST(INST_SETE             , "sete"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F94, 0),
  MAKE_INST(INST_SETG             , "setg"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9F, 0),
  MAKE_INST(INST_SETGE            , "setge"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9D, 0),
  MAKE_INST(INST_SETL             , "setl"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9C, 0),
  MAKE_INST(INST_SETLE            , "setle"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9E, 0),
  MAKE_INST(INST_SETNA            , "setna"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F96, 0),
  MAKE_INST(INST_SETNAE           , "setnae"           , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F92, 0),
  MAKE_INST(INST_SETNB            , "setnb"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F93, 0),
  MAKE_INST(INST_SETNBE           , "setnbe"           , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F97, 0),
  MAKE_INST(INST_SETNC            , "setnc"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F93, 0),
  MAKE_INST(INST_SETNE            , "setne"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F95, 0),
  MAKE_INST(INST_SETNG            , "setng"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9E, 0),
  MAKE_INST(INST_SETNGE           , "setnge"           , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9C, 0),
  MAKE_INST(INST_SETNL            , "setnl"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9D, 0),
  MAKE_INST(INST_SETNLE           , "setnle"           , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9F, 0),
  MAKE_INST(INST_SETNO            , "setno"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F91, 0),
  MAKE_INST(INST_SETNP            , "setnp"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9B, 0),
  MAKE_INST(INST_SETNS            , "setns"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F99, 0),
  MAKE_INST(INST_SETNZ            , "setnz"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F95, 0),
  MAKE_INST(INST_SETO             , "seto"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F90, 0),
  MAKE_INST(INST_SETP             , "setp"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9A, 0),
  MAKE_INST(INST_SETPE            , "setpe"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9A, 0),
  MAKE_INST(INST_SETPO            , "setpo"            , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F9B, 0),
  MAKE_INST(INST_SETS             , "sets"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F98, 0),
  MAKE_INST(INST_SETZ             , "setz"             , G(RM_B)          , F(NONE)          , O(GB_MEM)           , 0                   , 0, 0x00000F94, 0),
  MAKE_INST(INST_SFENCE           , "sfence"           , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x000FAEF8, 0),
  MAKE_INST(INST_SHL              , "shl"              , G(ROT)           , F(SPECIAL)       , O(GQDWB_MEM)        , O(GB)|O(IMM)        , 4, 0         , 0),
  MAKE_INST(INST_SHLD             , "shld"             , G(SHLD_SHRD)     , F(SPECIAL)       , O(GQDWB_MEM)        , O(GB)               , 0, 0x00000FA4, 0),
  MAKE_INST(INST_SHR              , "shr"              , G(ROT)           , F(SPECIAL)       , O(GQDWB_MEM)        , O(GB)|O(IMM)        , 5, 0         , 0),
  MAKE_INST(INST_SHRD             , "shrd"             , G(SHLD_SHRD)     , F(SPECIAL)       , O(GQDWB_MEM)        , O(GQDWB)            , 0, 0x00000FAC, 0),
  MAKE_INST(INST_SHUFPD           , "shufpd"           , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000FC6, 0),
  MAKE_INST(INST_SHUFPS           , "shufps"           , G(MMU_RM_IMM8)   , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000FC6, 0),
  MAKE_INST(INST_SQRTPD           , "sqrtpd"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F51, 0),
  MAKE_INST(INST_SQRTPS           , "sqrtps"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F51, 0),
  MAKE_INST(INST_SQRTSD           , "sqrtsd"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F51, 0),
  MAKE_INST(INST_SQRTSS           , "sqrtss"           , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F51, 0),
  MAKE_INST(INST_STC              , "stc"              , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x000000F9, 0),
  MAKE_INST(INST_STD              , "std"              , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x000000FD, 0),
  MAKE_INST(INST_STMXCSR          , "stmxcsr"          , G(M)             , F(NONE)          , O(MEM)              , 0                   , 3, 0x00000FAE, 0),
  MAKE_INST(INST_SUB              , "sub"              , G(ALU)           , F(LOCKABLE)      , O(GQDWB_MEM)        , O(GQDWB_MEM)|O(IMM) , 5, 0x00000028, 0x00000080),
  MAKE_INST(INST_SUBPD            , "subpd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F5C, 0),
  MAKE_INST(INST_SUBPS            , "subps"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F5C, 0),
  MAKE_INST(INST_SUBSD            , "subsd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF2000F5C, 0),
  MAKE_INST(INST_SUBSS            , "subss"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0xF3000F5C, 0),
  MAKE_INST(INST_TEST             , "test"             , G(TEST)          , F(NONE)          , O(GQDWB_MEM)        , O(GQDWB)|O(IMM)     , 0, 0         , 0),
  MAKE_INST(INST_UCOMISD          , "ucomisd"          , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F2E, 0),
  MAKE_INST(INST_UCOMISS          , "ucomiss"          , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F2E, 0),
  MAKE_INST(INST_UD2              , "ud2"              , G(EMIT)          , F(NONE)          , 0                   , 0                   , 0, 0x00000F0B, 0),
  MAKE_INST(INST_UNPCKHPD         , "unpckhpd"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F15, 0),
  MAKE_INST(INST_UNPCKHPS         , "unpckhps"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F15, 0),
  MAKE_INST(INST_UNPCKLPD         , "unpcklpd"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F14, 0),
  MAKE_INST(INST_UNPCKLPS         , "unpcklps"         , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F14, 0),
  MAKE_INST(INST_XADD             , "xadd"             , G(RM_R)          , F(LOCKABLE)      , O(GQDWB_MEM)        , O(GQDWB)            , 0, 0x00000FC0, 0),
  MAKE_INST(INST_XCHG             , "xchg"             , G(XCHG)          , F(LOCKABLE)      , O(GQDWB_MEM)        , O(GQDWB)            , 0, 0         , 0),
  MAKE_INST(INST_XOR              , "xor"              , G(ALU)           , F(LOCKABLE)      , O(GQDWB_MEM)        , O(GQDWB_MEM)|O(IMM) , 6, 0x00000030, 0x00000080),
  MAKE_INST(INST_XORPD            , "xorpd"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x66000F57, 0),
  MAKE_INST(INST_XORPS            , "xorps"            , G(MMU_RMI)       , F(NONE)          , O(XMM)              , O(XMM_MEM)          , 0, 0x00000F57, 0)
};

#undef G
#undef F
#undef O

#undef MAKE_INST

} // AsmJit namespace

#include "ApiEnd.h"