File: ia_opcodes.def

package info (click to toggle)
bochs 3.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 25,244 kB
  • sloc: cpp: 270,331; ansic: 25,334; sh: 8,371; makefile: 5,512; yacc: 1,485; asm: 395; perl: 359; lex: 318; csh: 3
file content (2882 lines) | stat: -rw-r--r-- 379,200 bytes parent folder | download
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
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
/////////////////////////////////////////////////////////////////////////
// $Id$
/////////////////////////////////////////////////////////////////////////
//
//   Copyright (c) 2008-2024 Stanislav Shwartsman
//          Written by Stanislav Shwartsman [sshwarts at sourceforge net]
//
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of the GNU Lesser General Public
//  License as published by the Free Software Foundation; either
//  version 2 of the License, or (at your option) any later version.
//
//  This library is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//  Lesser General Public License for more details.
//
//  You should have received a copy of the GNU Lesser General Public
//  License along with this library; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA B 02110-1301 USA
//
/////////////////////////////////////////////////////////////////////////

/* bx_define_opcode is a macro with the following fields:
 *   - Opcode name
 *   - Opcode execution function (/m form)
 *   - Opcode execution function (/r form)
 *   - x86 ISA extensions that enable this instruction
 *   - source for instruction destination register
 *   - source for instruction src1 register
 *   - source for instruction src2 register
 *   - source for instruction src3 register
 *   - special attributes (PREPARE_SSE, PREPARE_AVX and etc)
 *
 * in case of complex /m form instruction (load+op) /m form execution function
 * directly calls the /r form.
 */

/* Codes for Addressing Method:
 * ---------------------------
 * A  - Direct address. The instruction has no ModR/M byte; the address
 *      of the operand is encoded in the instruction; and no base register,
 *      index register, or scaling factor can be applied.
 * C  - The reg field of the ModR/M byte selects a control register.
 * D  - The reg field of the ModR/M byte selects a debug register.
 * E  - A ModR/M byte follows the opcode and specifies the operand. The
 *      operand is either a general-purpose register or a memory address.
 *      In case of the register operand, the R/M field of the ModR/M byte
 *      selects a general register.
 * F  - Flags Register.
 * G  - The reg field of the ModR/M byte selects a general register.
 * I  - Immediate data. The operand value is encoded in subsequent bytes of
 *      the instruction.
 * J  - The instruction contains a relative offset to be added to the
 *      instruction pointer register.
 * M  - The ModR/M byte may refer only to memory.
 * N  - The R/M field of the ModR/M byte selects a packed-quadword MMX
        technology register.
 * O  - The instruction has no ModR/M byte; the offset of the operand is
 *      coded as a word, double word or quad word (depending on address
 *      size attribute) in the instruction. No base register, index
 *      register, or scaling factor can be applied.
 * P  - The reg field of the ModR/M byte selects a packed quadword MMX
 *      technology register.
 * Q  - A ModR/M byte follows the opcode and specifies the operand. The
 *      operand is either an MMX technology register or a memory address.
 *      If it is a memory address, the address is computed from a segment
 *      register and any of the following values: a base register, an
 *      index register, a scaling factor, and a displacement.
 * R  - The mod field of the ModR/M byte may refer only to a general register.
 * S  - The reg field of the ModR/M byte selects a segment register.
 * U  - The R/M field of the ModR/M byte selects a 128-bit XMM/256-bit YMM register.
 * V  - The reg field of the ModR/M byte selects a 128-bit XMM/256-bit YMM register.
 * W  - A ModR/M byte follows the opcode and specifies the operand. The
 *      operand is either a 128-bit XMM/256-bit YMM register or a memory address.
 *      If it is a memory address, the address is computed from a segment
 *      register and any of the following values: a base register, an
 *      index register, a scaling factor, and a displacement.
 * X  - Memory addressed by the DS:rSI register pair.
 * Y  - Memory addressed by the ES:rDI register pair.
 */

/*
 * Codes for Operand Type:
 * ----------------------
 * b  - Byte, regardless of operand-size attribute.
 * w  - Word, regardless of operand-size attribute.
 * d  - Doubleword, regardless of operand-size attribute.
 * dq - Double-quadword, regardless of operand-size attribute.
 * p  - 32-bit or 48-bit pointer, depending on operand-size attribute.
 * pd - 128-bit/256-bit packed double-precision floating-point data.
 * pi - Quadword MMX technology register (packed integer)
 * ps - 128-bit/256-bit packed single-precision floating-point data.
 * q  - Quadword, regardless of operand-size attribute.
 * s  - 6-byte or 10-byte pseudo-descriptor.
 * si - Doubleword integer register (scalar integer)
 * ss - Scalar element of a packed single-precision floating data.
 * sd - Scalar element of a packed double-precision floating data.
 * v  - Word, doubleword or quadword, depending on operand-size attribute.
 */

bx_define_opcode(BX_IA_ERROR, "error", "error", &BX_CPU_C::BxError, &BX_CPU_C::BxError, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#if BX_SUPPORT_HANDLERS_CHAINING_SPEEDUPS
bx_define_opcode(BX_INSERTED_OPCODE, "error", "error", &BX_CPU_C::BxError, &BX_CPU_C::BxError, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
#endif

bx_define_opcode(BX_IA_AAA, "aaa", "aaa", NULL, &BX_CPU_C::AAA, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AAD, "aad", "aad", NULL, &BX_CPU_C::AAD, 0, OP_Ib, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AAM, "aam", "aam", NULL, &BX_CPU_C::AAM, 0, OP_Ib, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AAS, "aas", "aas", NULL, &BX_CPU_C::AAS, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DAA, "daa", "daa", NULL, &BX_CPU_C::DAA, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DAS, "das", "das", NULL, &BX_CPU_C::DAS, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_EbGb, "adc", "adcb", &BX_CPU_C::ADC_EbGbM, &BX_CPU_C::ADC_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EbGb, "and", "andb", &BX_CPU_C::AND_EbGbM, &BX_CPU_C::AND_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADD_EbGb, "add", "addb", &BX_CPU_C::ADD_EbGbM, &BX_CPU_C::ADD_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMP_EbGb, "cmp", "cmpb", &BX_CPU_C::CMP_EbGbM, &BX_CPU_C::CMP_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_EbGb, "or", "orb", &BX_CPU_C::OR_EbGbM, &BX_CPU_C::OR_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EbGb, "sbb", "sbbb", &BX_CPU_C::SBB_EbGbM, &BX_CPU_C::SBB_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EbGb, "sub", "subb", &BX_CPU_C::SUB_EbGbM, &BX_CPU_C::SUB_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EbGb, "test", "testb", &BX_CPU_C::TEST_EbGbM, &BX_CPU_C::TEST_EbGbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EbGb, "xor", "xorb", &BX_CPU_C::XOR_EbGbM, &BX_CPU_C::XOR_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ADC_EwGw, "adc", "adcw", &BX_CPU_C::ADC_EwGwM, &BX_CPU_C::ADC_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADD_EwGw, "add", "addw", &BX_CPU_C::ADD_EwGwM, &BX_CPU_C::ADD_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EwGw, "and", "andw", &BX_CPU_C::AND_EwGwM, &BX_CPU_C::AND_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMP_EwGw, "cmp", "cmpw", &BX_CPU_C::CMP_EwGwM, &BX_CPU_C::CMP_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_EwGw, "or", "orw", &BX_CPU_C::OR_EwGwM, &BX_CPU_C::OR_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EwGw, "sbb", "sbbw", &BX_CPU_C::SBB_EwGwM, &BX_CPU_C::SBB_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EwGw, "sub", "subw", &BX_CPU_C::SUB_EwGwM, &BX_CPU_C::SUB_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EwGw, "test", "testw", &BX_CPU_C::TEST_EwGwM, &BX_CPU_C::TEST_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EwGw, "xor", "xorw", &BX_CPU_C::XOR_EwGwM, &BX_CPU_C::XOR_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ADC_EdGd, "adc", "adcl", &BX_CPU_C::ADC_EdGdM, &BX_CPU_C::ADC_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADD_EdGd, "add", "addl", &BX_CPU_C::ADD_EdGdM, &BX_CPU_C::ADD_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EdGd, "and", "andl", &BX_CPU_C::AND_EdGdM, &BX_CPU_C::AND_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMP_EdGd, "cmp", "cmpl", &BX_CPU_C::CMP_EdGdM, &BX_CPU_C::CMP_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_EdGd, "or", "orl", &BX_CPU_C::OR_EdGdM, &BX_CPU_C::OR_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EdGd, "sbb", "sbbl", &BX_CPU_C::SBB_EdGdM, &BX_CPU_C::SBB_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EdGd, "sub", "subl", &BX_CPU_C::SUB_EdGdM, &BX_CPU_C::SUB_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EdGd, "test", "testl", &BX_CPU_C::TEST_EdGdM, &BX_CPU_C::TEST_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EdGd, "xor", "xorl", &BX_CPU_C::XOR_EdGdM, &BX_CPU_C::XOR_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ADC_ALIb, "adc", "adcb", NULL, &BX_CPU_C::ADC_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_ALIb, "add", "addb", NULL, &BX_CPU_C::ADD_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_ALIb, "and", "andb", NULL, &BX_CPU_C::AND_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_ALIb, "cmp", "cmpb", NULL, &BX_CPU_C::CMP_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_ALIb, "or", "orb", NULL, &BX_CPU_C::OR_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_ALIb, "sbb", "sbbb", NULL, &BX_CPU_C::SBB_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_ALIb, "sub", "subb", NULL, &BX_CPU_C::SUB_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TEST_ALIb, "test", "testb", NULL, &BX_CPU_C::TEST_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_ALIb, "xor", "xorb", NULL, &BX_CPU_C::XOR_EbIbR, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_AXIw, "adc", "adcw", NULL, &BX_CPU_C::ADC_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_AXIw, "add", "addw", NULL, &BX_CPU_C::ADD_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_AXIw, "and", "andw", NULL, &BX_CPU_C::AND_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_AXIw, "cmp", "cmpw", NULL, &BX_CPU_C::CMP_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_AXIw, "or", "orw", NULL, &BX_CPU_C::OR_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_AXIw, "sbb", "sbbw", NULL, &BX_CPU_C::SBB_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_AXIw, "sub", "subw", NULL, &BX_CPU_C::SUB_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TEST_AXIw, "test", "testw", NULL, &BX_CPU_C::TEST_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_AXIw, "xor", "xorw", NULL, &BX_CPU_C::XOR_EwIwR, 0, OP_AXReg, OP_Iw, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_EAXId, "adc", "adcl", NULL, &BX_CPU_C::ADC_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_EAXId, "add", "addl", NULL, &BX_CPU_C::ADD_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_EAXId, "and", "andl", NULL, &BX_CPU_C::AND_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EAXId, "cmp", "cmpl", NULL, &BX_CPU_C::CMP_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_EAXId, "or", "orl", NULL, &BX_CPU_C::OR_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_EAXId, "sbb", "sbbl", NULL, &BX_CPU_C::SBB_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_EAXId, "sub", "subl", NULL, &BX_CPU_C::SUB_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TEST_EAXId, "test", "testl", NULL, &BX_CPU_C::TEST_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EAXId, "xor", "xorl", NULL, &BX_CPU_C::XOR_EdIdR, 0, OP_EAXReg, OP_Id, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EbIb, "add", "addb", &BX_CPU_C::ADD_EbIbM, &BX_CPU_C::ADD_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EbIb, "or", "orb", &BX_CPU_C::OR_EbIbM, &BX_CPU_C::OR_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EbIb, "adc", "adcb", &BX_CPU_C::ADC_EbIbM, &BX_CPU_C::ADC_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EbIb, "sbb", "sbbb", &BX_CPU_C::SBB_EbIbM, &BX_CPU_C::SBB_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EbIb, "and", "andb", &BX_CPU_C::AND_EbIbM, &BX_CPU_C::AND_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EbIb, "sub", "subb", &BX_CPU_C::SUB_EbIbM, &BX_CPU_C::SUB_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EbIb, "xor", "xorb", &BX_CPU_C::XOR_EbIbM, &BX_CPU_C::XOR_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EbIb, "test", "testb", &BX_CPU_C::TEST_EbIbM, &BX_CPU_C::TEST_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EbIb, "cmp", "cmpb", &BX_CPU_C::CMP_EbIbM, &BX_CPU_C::CMP_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EwIw, "add", "addw", &BX_CPU_C::ADD_EwIwM, &BX_CPU_C::ADD_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EwIw, "or", "orw", &BX_CPU_C::OR_EwIwM, &BX_CPU_C::OR_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EwIw, "adc", "adcw", &BX_CPU_C::ADC_EwIwM, &BX_CPU_C::ADC_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EwIw, "sbb", "sbbw", &BX_CPU_C::SBB_EwIwM, &BX_CPU_C::SBB_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EwIw, "and", "andw", &BX_CPU_C::AND_EwIwM, &BX_CPU_C::AND_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EwIw, "sub", "subw", &BX_CPU_C::SUB_EwIwM, &BX_CPU_C::SUB_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EwIw, "xor", "xorw", &BX_CPU_C::XOR_EwIwM, &BX_CPU_C::XOR_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EwIw, "test", "testw", &BX_CPU_C::TEST_EwIwM, &BX_CPU_C::TEST_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EwIw, "cmp", "cmpw", &BX_CPU_C::CMP_EwIwM, &BX_CPU_C::CMP_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EwsIb, "add", "addw", &BX_CPU_C::ADD_EwIwM, &BX_CPU_C::ADD_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EwsIb, "or", "orw", &BX_CPU_C::OR_EwIwM, &BX_CPU_C::OR_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EwsIb, "adc", "adcw", &BX_CPU_C::ADC_EwIwM, &BX_CPU_C::ADC_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EwsIb, "sbb", "sbbw", &BX_CPU_C::SBB_EwIwM, &BX_CPU_C::SBB_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EwsIb, "and", "andw", &BX_CPU_C::AND_EwIwM, &BX_CPU_C::AND_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EwsIb, "sub", "subw", &BX_CPU_C::SUB_EwIwM, &BX_CPU_C::SUB_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EwsIb, "xor", "xorw", &BX_CPU_C::XOR_EwIwM, &BX_CPU_C::XOR_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EwsIb, "test", "testw", &BX_CPU_C::TEST_EwIwM, &BX_CPU_C::TEST_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EwsIb, "cmp", "cmpw", &BX_CPU_C::CMP_EwIwM, &BX_CPU_C::CMP_EwIwR, 0, OP_Ew, OP_sIbw, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EdId, "add", "addl", &BX_CPU_C::ADD_EdIdM, &BX_CPU_C::ADD_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EdId, "or", "orl", &BX_CPU_C::OR_EdIdM, &BX_CPU_C::OR_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EdId, "adc", "adcl", &BX_CPU_C::ADC_EdIdM, &BX_CPU_C::ADC_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EdId, "sbb", "sbbl", &BX_CPU_C::SBB_EdIdM, &BX_CPU_C::SBB_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EdId, "and", "andl", &BX_CPU_C::AND_EdIdM, &BX_CPU_C::AND_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EdId, "sub", "subl", &BX_CPU_C::SUB_EdIdM, &BX_CPU_C::SUB_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EdId, "xor", "xorl", &BX_CPU_C::XOR_EdIdM, &BX_CPU_C::XOR_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EdId, "test", "testl", &BX_CPU_C::TEST_EdIdM, &BX_CPU_C::TEST_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EdId, "cmp", "cmpl", &BX_CPU_C::CMP_EdIdM, &BX_CPU_C::CMP_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EdsIb, "add", "addl", &BX_CPU_C::ADD_EdIdM, &BX_CPU_C::ADD_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EdsIb, "or", "orl", &BX_CPU_C::OR_EdIdM, &BX_CPU_C::OR_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EdsIb, "adc", "adcl", &BX_CPU_C::ADC_EdIdM, &BX_CPU_C::ADC_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EdsIb, "sbb", "sbbl", &BX_CPU_C::SBB_EdIdM, &BX_CPU_C::SBB_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EdsIb, "and", "andl", &BX_CPU_C::AND_EdIdM, &BX_CPU_C::AND_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EdsIb, "sub", "subl", &BX_CPU_C::SUB_EdIdM, &BX_CPU_C::SUB_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EdsIb, "xor", "xorl", &BX_CPU_C::XOR_EdIdM, &BX_CPU_C::XOR_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EdsIb, "test", "testl", &BX_CPU_C::TEST_EdIdM, &BX_CPU_C::TEST_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EdsIb, "cmp", "cmpl", &BX_CPU_C::CMP_EdIdM, &BX_CPU_C::CMP_EdIdR, 0, OP_Ed, OP_sIbd, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_XOR_EwGw_ZERO_IDIOM, "xor", "xorw", NULL, &BX_CPU_C::ZERO_IDIOM_GwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GwEw_ZERO_IDIOM, "xor", "xorw", NULL, &BX_CPU_C::ZERO_IDIOM_GwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_EdGd_ZERO_IDIOM, "xor", "xorl", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GdEd_ZERO_IDIOM, "xor", "xorl", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_EwGw_ZERO_IDIOM, "sub", "subw", NULL, &BX_CPU_C::ZERO_IDIOM_GwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GwEw_ZERO_IDIOM, "sub", "subw", NULL, &BX_CPU_C::ZERO_IDIOM_GwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_EdGd_ZERO_IDIOM, "sub", "subl", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GdEd_ZERO_IDIOM, "sub", "subl", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_GbEb, "add", "addb", &BX_CPU_C::ADD_GbEbM, &BX_CPU_C::ADD_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_GbEb, "or", "orb", &BX_CPU_C::OR_GbEbM, &BX_CPU_C::OR_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADC_GbEb, "adc", "adcb", &BX_CPU_C::ADC_GbEbM, &BX_CPU_C::ADC_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_GbEb, "sbb", "sbbb", &BX_CPU_C::SBB_GbEbM, &BX_CPU_C::SBB_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_GbEb, "and", "andb", &BX_CPU_C::AND_GbEbM, &BX_CPU_C::AND_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GbEb, "sub", "subb", &BX_CPU_C::SUB_GbEbM, &BX_CPU_C::SUB_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GbEb, "xor", "xorb", &BX_CPU_C::XOR_GbEbM, &BX_CPU_C::XOR_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_GbEb, "cmp", "cmpb", &BX_CPU_C::CMP_GbEbM, &BX_CPU_C::CMP_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_GwEw, "adc", "adcw", &BX_CPU_C::ADC_GwEwM, &BX_CPU_C::ADC_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_GwEw, "add", "addw", &BX_CPU_C::ADD_GwEwM, &BX_CPU_C::ADD_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_GwEw, "and", "andw", &BX_CPU_C::AND_GwEwM, &BX_CPU_C::AND_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_GwEw, "cmp", "cmpw", &BX_CPU_C::CMP_GwEwM, &BX_CPU_C::CMP_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_GwEw, "or", "orw", &BX_CPU_C::OR_GwEwM, &BX_CPU_C::OR_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_GwEw, "sbb", "sbbw", &BX_CPU_C::SBB_GwEwM, &BX_CPU_C::SBB_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GwEw, "sub", "subw", &BX_CPU_C::SUB_GwEwM, &BX_CPU_C::SUB_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GwEw, "xor", "xorw", &BX_CPU_C::XOR_GwEwM, &BX_CPU_C::XOR_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADC_GdEd, "adc", "adcl", &BX_CPU_C::ADC_GdEdM, &BX_CPU_C::ADC_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADD_GdEd, "add", "addl", &BX_CPU_C::ADD_GdEdM, &BX_CPU_C::ADD_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_GdEd, "and", "andl", &BX_CPU_C::AND_GdEdM, &BX_CPU_C::AND_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_GdEd, "cmp", "cmpl", &BX_CPU_C::CMP_GdEdM, &BX_CPU_C::CMP_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_GdEd, "or", "orl", &BX_CPU_C::OR_GdEdM, &BX_CPU_C::OR_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_GdEd, "sbb", "sbbl", &BX_CPU_C::SBB_GdEdM, &BX_CPU_C::SBB_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GdEd, "sub", "subl", &BX_CPU_C::SUB_GdEdM, &BX_CPU_C::SUB_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GdEd, "xor", "xorl", &BX_CPU_C::XOR_GdEdM, &BX_CPU_C::XOR_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_INC_Eb, "inc", "incb", &BX_CPU_C::INC_EbM, &BX_CPU_C::INC_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_INC_Ew, "inc", "incw", &BX_CPU_C::INC_EwM, &BX_CPU_C::INC_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_INC_Ed, "inc", "incl", &BX_CPU_C::INC_EdM, &BX_CPU_C::INC_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_DEC_Eb, "dec", "decb", &BX_CPU_C::DEC_EbM, &BX_CPU_C::DEC_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_DEC_Ew, "dec", "decw", &BX_CPU_C::DEC_EwM, &BX_CPU_C::DEC_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_DEC_Ed, "dec", "decl", &BX_CPU_C::DEC_EdM, &BX_CPU_C::DEC_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BSF_GwEw, "bsf", "bsfw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::BSF_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSR_GwEw, "bsr", "bsrw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::BSR_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSF_GdEd, "bsf", "bsfl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BSF_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSR_GdEd, "bsr", "bsrl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BSR_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_BTC_EwGw, "btc", "btcw", &BX_CPU_C::BTC_EwGwM, &BX_CPU_C::BTC_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EwGw, "btr", "btrw", &BX_CPU_C::BTR_EwGwM, &BX_CPU_C::BTR_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTS_EwGw, "bts", "btsw", &BX_CPU_C::BTS_EwGwM, &BX_CPU_C::BTS_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BTC_EdGd, "btc", "btcl", &BX_CPU_C::BTC_EdGdM, &BX_CPU_C::BTC_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EdGd, "btr", "btrl", &BX_CPU_C::BTR_EdGdM, &BX_CPU_C::BTR_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTS_EdGd, "bts", "btsl", &BX_CPU_C::BTS_EdGdM, &BX_CPU_C::BTS_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BTC_EwIb, "btc", "btcw", &BX_CPU_C::BTC_EwIbM, &BX_CPU_C::BTC_EwIbR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EwIb, "btr", "btrw", &BX_CPU_C::BTR_EwIbM, &BX_CPU_C::BTR_EwIbR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTS_EwIb, "bts", "btsw", &BX_CPU_C::BTS_EwIbM, &BX_CPU_C::BTS_EwIbR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BTC_EdIb, "btc", "btcl", &BX_CPU_C::BTC_EdIbM, &BX_CPU_C::BTC_EdIbR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EdIb, "btr", "btrl", &BX_CPU_C::BTR_EdIbM, &BX_CPU_C::BTR_EdIbR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTS_EdIb, "bts", "btsl", &BX_CPU_C::BTS_EdIbM, &BX_CPU_C::BTS_EdIbR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BT_EwIb, "bt", "btw", &BX_CPU_C::BT_EwIbM, &BX_CPU_C::BT_EwIbR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BT_EdIb, "bt", "btl", &BX_CPU_C::BT_EdIbM, &BX_CPU_C::BT_EdIbR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BT_EwGw, "bt", "btw", &BX_CPU_C::BT_EwGwM, &BX_CPU_C::BT_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BT_EdGd, "bt", "btl", &BX_CPU_C::BT_EdGdM, &BX_CPU_C::BT_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_BOUND_GwMa, "bound", "boundw", &BX_CPU_C::BOUND_GwMa, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BOUND_GdMa, "bound", "boundl", &BX_CPU_C::BOUND_GdMa, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ARPL_EwGw, "arpl", "arpl", &BX_CPU_C::ARPL_EwGw, &BX_CPU_C::ARPL_EwGw, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_CALL_Ed, "call", "call", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CALL_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALL_Ew, "call", "call", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CALL_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALL_Jd, "call", "call", NULL, &BX_CPU_C::CALL_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALL_Jw, "call", "call", NULL, &BX_CPU_C::CALL_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op16_Ap, "callf", "lcall", NULL, &BX_CPU_C::CALL16_Ap, 0, OP_Ap, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op32_Ap, "callf", "lcall", NULL, &BX_CPU_C::CALL32_Ap, 0, OP_Ap, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op16_Ep, "callf", "lcall", &BX_CPU_C::CALL16_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op32_Ep, "callf", "lcall", &BX_CPU_C::CALL32_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_CBW, "cbw", "cbtw", NULL, &BX_CPU_C::CBW, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CDQ, "cdq", "cltd", NULL, &BX_CPU_C::CDQ, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CWD, "cwd", "cwtd", NULL, &BX_CPU_C::CWD, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CWDE, "cwde", "cwtl", NULL, &BX_CPU_C::CWDE, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_CLC, "clc", "clc", NULL, &BX_CPU_C::CLC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLD, "cld", "cld", NULL, &BX_CPU_C::CLD, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLI, "cli", "cli", NULL, &BX_CPU_C::CLI, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLTS, "clts", "clts", NULL, &BX_CPU_C::CLTS, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CMC, "cmc", "cmc", NULL, &BX_CPU_C::CMC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_HLT, "hlt", "hlt", NULL, &BX_CPU_C::HLT, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_CLFLUSH, "clflush", "clflush", &BX_CPU_C::CLFLUSH, &BX_CPU_C::BxError, BX_ISA_CLFLUSH, OP_Mb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLFLUSHOPT, "clflushopt", "clflushopt", &BX_CPU_C::CLFLUSH, &BX_CPU_C::BxError, BX_ISA_CLFLUSHOPT, OP_Mb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLWB, "clwb", "clwb", &BX_CPU_C::CLFLUSH, &BX_CPU_C::BxError, BX_ISA_CLWB, OP_Mb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLZERO, "clzero", "clzero", &BX_CPU_C::BxError, &BX_CPU_C::CLZERO, BX_ISA_CLZERO, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ENTER_Op16_IwIb, "enter", "enter", NULL, &BX_CPU_C::ENTER16_IwIb, 0, OP_Iw, OP_Ib2, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ENTER_Op32_IwIb, "enter", "enter", NULL, &BX_CPU_C::ENTER32_IwIb, 0, OP_Iw, OP_Ib2, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEAVE_Op16, "leave", "leave", NULL, &BX_CPU_C::LEAVE16, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEAVE_Op32, "leave", "leave", NULL, &BX_CPU_C::LEAVE32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_IMUL_GdEd, "imul", "imull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GdEdId, "imul", "imull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdIdR, 0, OP_Gd, OP_Ed, OP_Id, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GdEdsIb, "imul", "imull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdIdR, 0, OP_Gd, OP_Ed, OP_sIbd, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GwEw, "imul", "imulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GwEwIw, "imul", "imulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwIwR, 0, OP_Gw, OP_Ew, OP_Iw, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GwEwsIb, "imul", "imulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwIwR, 0, OP_Gw, OP_Ew, OP_sIbw, OP_NONE, 0)

bx_define_opcode(BX_IA_IN_ALDX, "in", "inb", NULL, &BX_CPU_C::IN_ALDX, 0, OP_ALReg, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_ALIb, "in", "inb", NULL, &BX_CPU_C::IN_ALIb, 0, OP_ALReg, OP_Ib, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_AXDX, "in", "inw", NULL, &BX_CPU_C::IN_AXDX, 0, OP_AXReg, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_AXIb, "in", "inw", NULL, &BX_CPU_C::IN_AXIb, 0, OP_AXReg, OP_Ib, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_EAXDX, "in", "inl", NULL, &BX_CPU_C::IN_EAXDX, 0, OP_EAXReg, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IN_EAXIb, "in", "inl", NULL, &BX_CPU_C::IN_EAXIb, 0, OP_EAXReg, OP_Ib, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_OUT_DXAL, "out", "outb", NULL, &BX_CPU_C::OUT_DXAL, 0, OP_DXReg, OP_ALReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_DXAX, "out", "outw", NULL, &BX_CPU_C::OUT_DXAX, 0, OP_DXReg, OP_AXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_DXEAX, "out", "outl", NULL, &BX_CPU_C::OUT_DXEAX, 0, OP_DXReg, OP_EAXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_IbAL, "out", "outb", NULL, &BX_CPU_C::OUT_IbAL, 0, OP_Ib, OP_ALReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_IbAX, "out", "outw", NULL, &BX_CPU_C::OUT_IbAX, 0, OP_Ib, OP_AXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_OUT_IbEAX, "out", "outl", NULL, &BX_CPU_C::OUT_IbEAX, 0, OP_Ib, OP_EAXReg, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_INT_Ib, "int", "int", NULL, &BX_CPU_C::INT_Ib, 0, OP_Ib, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INT1, "int1", "int1", NULL, &BX_CPU_C::INT1, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INT3, "int3", "int3", NULL, &BX_CPU_C::INT3, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INTO, "into", "into", NULL, &BX_CPU_C::INTO, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IRET_Op16, "iret", "iretw", NULL, &BX_CPU_C::IRET16, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_IRET_Op32, "iret", "iretd", NULL, &BX_CPU_C::IRET32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JMP_Ed, "jmp", "jmp", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::JMP_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Ew, "jmp", "jmp", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::JMP_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jw, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jbw, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jd, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jbd, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JMPF_Ap, "jmpf", "ljmp", NULL, &BX_CPU_C::JMP_Ap, 0, OP_Ap, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMPF_Op16_Ep, "jmpf", "ljmp", &BX_CPU_C::JMP16_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMPF_Op32_Ep, "jmpf", "ljmp", &BX_CPU_C::JMP32_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JCXZ_Jbw, "jcxz", "jcxz", NULL, &BX_CPU_C::JCXZ_Jb, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JECXZ_Jbd, "jecxz", "jecxz", NULL, &BX_CPU_C::JECXZ_Jb, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOP_Jbw, "loop", "loop", NULL, &BX_CPU_C::LOOP16_Jb, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPE_Jbw, "loope", "loope", NULL, &BX_CPU_C::LOOPE16_Jb, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPNE_Jbw, "loopne", "loopne", NULL, &BX_CPU_C::LOOPNE16_Jb, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOP_Jbd, "loop", "loop", NULL, &BX_CPU_C::LOOP32_Jb, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPE_Jbd, "loope", "loope", NULL, &BX_CPU_C::LOOPE32_Jb, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPNE_Jbd, "loopne", "loopne", NULL, &BX_CPU_C::LOOPNE32_Jb, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JB_Jw, "jb", "jb", NULL, &BX_CPU_C::JB_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jw, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jw, "jl", "jl", NULL, &BX_CPU_C::JL_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jw, "jle", "jle", NULL, &BX_CPU_C::JLE_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jw, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jw, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jw, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jw, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jw, "jno", "jno", NULL, &BX_CPU_C::JNO_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jw, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jw, "jns", "jns", NULL, &BX_CPU_C::JNS_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jw, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JO_Jw, "jo", "jo", NULL, &BX_CPU_C::JO_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jw, "jp", "jp", NULL, &BX_CPU_C::JP_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jw, "js", "js", NULL, &BX_CPU_C::JS_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jw, "jz", "jz", NULL, &BX_CPU_C::JZ_Jw, 0, OP_Jw, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_JB_Jbw, "jb", "jb", NULL, &BX_CPU_C::JB_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jbw, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jbw, "jl", "jl", NULL, &BX_CPU_C::JL_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jbw, "jle", "jle", NULL, &BX_CPU_C::JLE_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jbw, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jbw, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jbw, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jbw, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jbw, "jno", "jno", NULL, &BX_CPU_C::JNO_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jbw, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jbw, "jns", "jns", NULL, &BX_CPU_C::JNS_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jbw, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JO_Jbw, "jo", "jo", NULL, &BX_CPU_C::JO_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jbw, "jp", "jp", NULL, &BX_CPU_C::JP_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jbw, "js", "js", NULL, &BX_CPU_C::JS_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jbw, "jz", "jz", NULL, &BX_CPU_C::JZ_Jw, 0, OP_Jbw, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_JB_Jd, "jb", "jb", NULL, &BX_CPU_C::JB_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jd, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jd, "jl", "jl", NULL, &BX_CPU_C::JL_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jd, "jle", "jle", NULL, &BX_CPU_C::JLE_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jd, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jd, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jd, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jd, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jd, "jno", "jno", NULL, &BX_CPU_C::JNO_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jd, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jd, "jns", "jns", NULL, &BX_CPU_C::JNS_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jd, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JO_Jd, "jo", "jo", NULL, &BX_CPU_C::JO_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jd, "jp", "jp", NULL, &BX_CPU_C::JP_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jd, "js", "js", NULL, &BX_CPU_C::JS_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jd, "jz", "jz", NULL, &BX_CPU_C::JZ_Jd, 0, OP_Jd, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_JB_Jbd, "jb", "jb", NULL, &BX_CPU_C::JB_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jbd, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jbd, "jl", "jl", NULL, &BX_CPU_C::JL_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jbd, "jle", "jle", NULL, &BX_CPU_C::JLE_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jbd, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jbd, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jbd, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jbd, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jbd, "jno", "jno", NULL, &BX_CPU_C::JNO_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jbd, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jbd, "jns", "jns", NULL, &BX_CPU_C::JNS_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jbd, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JO_Jbd, "jo", "jo", NULL, &BX_CPU_C::JO_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jbd, "jp", "jp", NULL, &BX_CPU_C::JP_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jbd, "js", "js", NULL, &BX_CPU_C::JS_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jbd, "jz", "jz", NULL, &BX_CPU_C::JZ_Jd, 0, OP_Jbd, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SAHF, "sahf", "sahf", NULL, &BX_CPU_C::SAHF, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LAHF, "lahf", "lahf", NULL, &BX_CPU_C::LAHF, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_LDS_GdMp, "lds", "ldsl", &BX_CPU_C::LDS_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LDS_GwMp, "lds", "ldsw", &BX_CPU_C::LDS_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LES_GdMp, "les", "lesl", &BX_CPU_C::LES_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LES_GwMp, "les", "lesw", &BX_CPU_C::LES_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LFS_GdMp, "lfs", "lfsl", &BX_CPU_C::LFS_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LFS_GwMp, "lfs", "lfsw", &BX_CPU_C::LFS_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LSS_GdMp, "lss", "lssl", &BX_CPU_C::LSS_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LSS_GwMp, "lss", "lssw", &BX_CPU_C::LSS_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGS_GdMp, "lgs", "lgsl", &BX_CPU_C::LGS_GdMp, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGS_GwMp, "lgs", "lgsw", &BX_CPU_C::LGS_GwMp, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_LAR_GwEw, "lar", "larw", &BX_CPU_C::LAR_GvEw, &BX_CPU_C::LAR_GvEw, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LSL_GwEw, "lsl", "lslw", &BX_CPU_C::LSL_GvEw, &BX_CPU_C::LSL_GvEw, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LAR_GdEw, "lar", "larl", &BX_CPU_C::LAR_GvEw, &BX_CPU_C::LAR_GvEw, 0, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LSL_GdEw, "lsl", "lsll", &BX_CPU_C::LSL_GvEw, &BX_CPU_C::LSL_GvEw, 0, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEA_GdM, "lea", "leal", &BX_CPU_C::LEA_GdM, &BX_CPU_C::BxError, 0, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEA_GwM, "lea", "leaw", &BX_CPU_C::LEA_GwM, &BX_CPU_C::BxError, 0, OP_Gw, OP_M, OP_NONE, OP_NONE, 0)

// IDT/GDT/LDTR/TR access - keep NNN for VMX
bx_define_opcode(BX_IA_SIDT_Ms, "sidt", "sidt", &BX_CPU_C::SIDT_Ms, &BX_CPU_C::BxError, 0, OP_M, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LIDT_Ms, "lidt", "lidt", &BX_CPU_C::LIDT_Ms, &BX_CPU_C::BxError, 0, BX_SRC_NNN, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SGDT_Ms, "sgdt", "sgdt", &BX_CPU_C::SGDT_Ms, &BX_CPU_C::BxError, 0, OP_M, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGDT_Ms, "lgdt", "lgdt", &BX_CPU_C::LGDT_Ms, &BX_CPU_C::BxError, 0, BX_SRC_NNN, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SLDT_Ew, "sldt", "sldt", &BX_CPU_C::SLDT_Ew, &BX_CPU_C::SLDT_Ew, 0, OP_Ew, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LLDT_Ew, "lldt", "lldt", &BX_CPU_C::LLDT_Ew, &BX_CPU_C::LLDT_Ew, 0, BX_SRC_NNN, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STR_Ew, "str", "str", &BX_CPU_C::STR_Ew, &BX_CPU_C::STR_Ew, 0, OP_Ew, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LTR_Ew, "ltr", "ltr", &BX_CPU_C::LTR_Ew, &BX_CPU_C::LTR_Ew, 0, BX_SRC_NNN, OP_Ew, OP_NONE, OP_NONE, 0)
// IDT/GDT/LDTR/TR access - keep NNN for VMX

bx_define_opcode(BX_IA_SMSW_Ew, "smsw", "smsw", &BX_CPU_C::SMSW_EwM, &BX_CPU_C::SMSW_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LMSW_Ew, "lmsw", "lmsw", &BX_CPU_C::LMSW_Ew, &BX_CPU_C::LMSW_Ew, 0, OP_NONE, OP_Ew, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR0Rd, "mov", "movl", NULL, &BX_CPU_C::MOV_CR0Rd, 0, OP_Cd, OP_Ed, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR2Rd, "mov", "movl", NULL, &BX_CPU_C::MOV_CR2Rd, 0, OP_Cd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_CR3Rd, "mov", "movl", NULL, &BX_CPU_C::MOV_CR3Rd, 0, OP_Cd, OP_Ed, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR4Rd, "mov", "movl", NULL, &BX_CPU_C::MOV_CR4Rd, BX_ISA_PENTIUM, OP_Cd, OP_Ed, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_RdCR0, "mov", "movl", NULL, &BX_CPU_C::MOV_RdCR0, 0, OP_Ed, OP_Cd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RdCR2, "mov", "movl", NULL, &BX_CPU_C::MOV_RdCR2, 0, OP_Ed, OP_Cd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RdCR3, "mov", "movl", NULL, &BX_CPU_C::MOV_RdCR3, 0, OP_Ed, OP_Cd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RdCR4, "mov", "movl", NULL, &BX_CPU_C::MOV_RdCR4, BX_ISA_PENTIUM, OP_Ed, OP_Cd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RdDd, "mov", "movl", NULL, &BX_CPU_C::MOV_RdDd, 0, OP_Ed, OP_Dd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_DdRd, "mov", "movl", NULL, &BX_CPU_C::MOV_DdRd, 0, OP_Dd, OP_Ed, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_MOV_EbIb, "mov", "movb", &BX_CPU_C::MOV_EbIbM, &BX_CPU_C::MOV_EbIbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EdId, "mov", "movl", &BX_CPU_C::MOV_EdIdM, &BX_CPU_C::MOV_EdIdR, 0, OP_Ed, OP_Id, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EwIw, "mov", "movw", &BX_CPU_C::MOV_EwIwM, &BX_CPU_C::MOV_EwIwR, 0, OP_Ew, OP_Iw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_GbEb, "mov", "movb", &BX_CPU_C::MOV_GbEbM, &BX_CPU_C::MOV_GbEbR, 0, OP_Gb, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EbGb, "mov", "movb", &BX_CPU_C::MOV_EbGbM, &BX_CPU_C::MOV_GbEbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_GwEw, "mov", "movw", &BX_CPU_C::MOV_GwEwM, &BX_CPU_C::MOV_GwEwR, 0, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EwGw, "mov", "movw", &BX_CPU_C::MOV_EwGwM, &BX_CPU_C::MOV_GwEwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_Op32_GdEd, "mov", "movl", &BX_CPU_C::MOV32_GdEdM, &BX_CPU_C::MOV_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_Op32_EdGd, "mov", "movl", &BX_CPU_C::MOV32_EdGdM, &BX_CPU_C::MOV_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EwSw, "mov", "movw", &BX_CPU_C::MOV_EwSwM, &BX_CPU_C::MOV_EwSwR, 0, OP_Ew, OP_Sw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_SwEw, "mov", "movw", &BX_CPU_C::MOV_SwEw, &BX_CPU_C::MOV_SwEw, 0, OP_Sw, OP_Ew, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MOV_ALOd, "mov", "movb", NULL, &BX_CPU_C::MOV_ALOd, 0, OP_ALReg, OP_Ob, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_AXOd, "mov", "movw", NULL, &BX_CPU_C::MOV_AXOd, 0, OP_AXReg, OP_Ow, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EAXOd, "mov", "movl", NULL, &BX_CPU_C::MOV_EAXOd, 0, OP_EAXReg, OP_Od, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OdAL, "mov", "movb", NULL, &BX_CPU_C::MOV_OdAL, 0, OP_Ob, OP_ALReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OdAX, "mov", "movw", NULL, &BX_CPU_C::MOV_OdAX, 0, OP_Ow, OP_AXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OdEAX, "mov", "movl", NULL, &BX_CPU_C::MOV_OdEAX, 0, OP_Od, OP_EAXReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MOVSX_GdEb, "movsx", "movbl", &BX_CPU_C::MOVSX_GdEbM, &BX_CPU_C::MOVSX_GdEbR, 0, OP_Gd, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSX_GdEw, "movsx", "movwl", &BX_CPU_C::MOVSX_GdEwM, &BX_CPU_C::MOVSX_GdEwR, 0, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSX_GwEb, "movsx", "movbw", &BX_CPU_C::MOVSX_GwEbM, &BX_CPU_C::MOVSX_GwEbR, 0, OP_Gw, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GdEb, "movzx", "movbl", &BX_CPU_C::MOVZX_GdEbM, &BX_CPU_C::MOVZX_GdEbR, 0, OP_Gd, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GdEw, "movzx", "movwl", &BX_CPU_C::MOVZX_GdEwM, &BX_CPU_C::MOVZX_GdEwR, 0, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GwEb, "movzx", "movbw", &BX_CPU_C::MOVZX_GwEbM, &BX_CPU_C::MOVZX_GwEbR, 0, OP_Gw, OP_Eb, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_NOP, "nop", "nop", &BX_CPU_C::NOP, &BX_CPU_C::NOP, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PAUSE, "pause", "pause", NULL, &BX_CPU_C::PAUSE, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_POP_Ew, "pop", "popw", &BX_CPU_C::POP_EwM, &BX_CPU_C::POP_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POP_Ed, "pop", "popl", &BX_CPU_C::POP_EdM, &BX_CPU_C::POP_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_POP_Op16_Sw, "pop", "popw", NULL, &BX_CPU_C::POP16_Sw, 0, OP_Sw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POP_Op32_Sw, "pop", "popl", NULL, &BX_CPU_C::POP32_Sw, 0, OP_Sw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPA_Op16, "popa", "popaw", NULL, &BX_CPU_C::POPA16, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPA_Op32, "popa", "popal", NULL, &BX_CPU_C::POPA32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPF_Fw, "popf", "popfw", NULL, &BX_CPU_C::POPF_Fw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_POPF_Fd, "popf", "popfl", NULL, &BX_CPU_C::POPF_Fd, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_PUSH_Ew, "push", "pushw", &BX_CPU_C::PUSH_EwM, &BX_CPU_C::PUSH_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Ed, "push", "pushl", &BX_CPU_C::PUSH_EdM, &BX_CPU_C::PUSH_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_PUSH_Id, "push", "pushl", NULL, &BX_CPU_C::PUSH_Id, 0, OP_Id, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_sIb32, "push", "pushl", NULL, &BX_CPU_C::PUSH_Id, 0, OP_sIbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Iw, "push", "pushw", NULL, &BX_CPU_C::PUSH_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_sIb16, "push", "pushw", NULL, &BX_CPU_C::PUSH_Iw, 0, OP_sIbw, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op16_Sw, "push", "pushw", NULL, &BX_CPU_C::PUSH16_Sw, 0, OP_NONE, OP_Sw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op32_Sw, "push", "pushl", NULL, &BX_CPU_C::PUSH32_Sw, 0, OP_NONE, OP_Sw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSHA_Op16, "pusha", "pushaw", NULL, &BX_CPU_C::PUSHA16, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSHA_Op32, "pusha", "pushal", NULL, &BX_CPU_C::PUSHA32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSHF_Fw, "pushf", "pushfw", NULL, &BX_CPU_C::PUSHF_Fw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSHF_Fd, "pushf", "pushfl", NULL, &BX_CPU_C::PUSHF_Fd, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_REP_CMPSB_XbYb, "cmpsb", "cmpsb", NULL, &BX_CPU_C::REP_CMPSB_XbYb, 0, OP_Xb, OP_Yb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_CMPSD_XdYd, "cmpsd", "cmpsl", NULL, &BX_CPU_C::REP_CMPSD_XdYd, 0, OP_Xd, OP_Yd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_CMPSW_XwYw, "cmpsw", "cmpsw", NULL, &BX_CPU_C::REP_CMPSW_XwYw, 0, OP_Xw, OP_Yw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_INSB_YbDX, "insb", "insb", NULL, &BX_CPU_C::REP_INSB_YbDX, 0, OP_Yb, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_INSD_YdDX, "insd", "insl", NULL, &BX_CPU_C::REP_INSD_YdDX, 0, OP_Yd, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_INSW_YwDX, "insw", "insw", NULL, &BX_CPU_C::REP_INSW_YwDX, 0, OP_Yw, OP_DXReg, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_LODSB_ALXb, "lodsb", "lodsb", NULL, &BX_CPU_C::REP_LODSB_ALXb, 0, OP_ALReg, OP_Xb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_LODSD_EAXXd, "lodsd", "lodsl", NULL, &BX_CPU_C::REP_LODSD_EAXXd, 0, OP_EAXReg, OP_Xd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_LODSW_AXXw, "lodsw", "lodsw", NULL, &BX_CPU_C::REP_LODSW_AXXw, 0, OP_AXReg, OP_Xw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_MOVSB_YbXb, "movsb", "movsb", NULL, &BX_CPU_C::REP_MOVSB_YbXb, 0, OP_Yb, OP_Xb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_MOVSD_YdXd, "movsd", "movsl", NULL, &BX_CPU_C::REP_MOVSD_YdXd, 0, OP_Yd, OP_Xd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_MOVSW_YwXw, "movsw", "movsw", NULL, &BX_CPU_C::REP_MOVSW_YwXw, 0, OP_Yw, OP_Xw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_OUTSB_DXXb, "outsb", "outsb", NULL, &BX_CPU_C::REP_OUTSB_DXXb, 0, OP_DXReg, OP_Xb, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_OUTSD_DXXd, "outsd", "outsl", NULL, &BX_CPU_C::REP_OUTSD_DXXd, 0, OP_DXReg, OP_Xd, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_OUTSW_DXXw, "outsw", "outsw", NULL, &BX_CPU_C::REP_OUTSW_DXXw, 0, OP_DXReg, OP_Xw, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_REP_SCASB_ALYb, "scasb", "scasb", NULL, &BX_CPU_C::REP_SCASB_ALYb, 0, OP_ALReg, OP_Yb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_SCASD_EAXYd, "scasd", "scasl", NULL, &BX_CPU_C::REP_SCASD_EAXYd, 0, OP_EAXReg, OP_Yd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_SCASW_AXYw, "scasw", "scasw", NULL, &BX_CPU_C::REP_SCASW_AXYw, 0, OP_AXReg, OP_Yw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_STOSB_YbAL, "stosb", "stosb", NULL, &BX_CPU_C::REP_STOSB_YbAL, 0, OP_Yb, OP_ALReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_STOSD_YdEAX, "stosd", "stosl", NULL, &BX_CPU_C::REP_STOSD_YdEAX, 0, OP_Yd, OP_EAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_STOSW_YwAX, "stosw", "stosw", NULL, &BX_CPU_C::REP_STOSW_YwAX, 0, OP_Yw, OP_AXReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_RETF_Op16, "retf", "lretw", NULL, &BX_CPU_C::RETfar16_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op16_Iw, "retf", "lretw", NULL, &BX_CPU_C::RETfar16_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op32, "retf", "lretl", NULL, &BX_CPU_C::RETfar32_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op32_Iw, "retf", "lretl", NULL, &BX_CPU_C::RETfar32_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_RET_Op16, "ret", "ret", NULL, &BX_CPU_C::RETnear16_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RET_Op16_Iw, "ret", "ret", NULL, &BX_CPU_C::RETnear16_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RET_Op32, "ret", "ret", NULL, &BX_CPU_C::RETnear32_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RET_Op32_Iw, "ret", "ret", NULL, &BX_CPU_C::RETnear32_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_NOT_Eb, "not", "notb", &BX_CPU_C::NOT_EbM, &BX_CPU_C::NOT_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NEG_Eb, "neg", "negb", &BX_CPU_C::NEG_EbM, &BX_CPU_C::NEG_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NOT_Ew, "not", "notb", &BX_CPU_C::NOT_EwM, &BX_CPU_C::NOT_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NEG_Ew, "neg", "negb", &BX_CPU_C::NEG_EwM, &BX_CPU_C::NEG_EwR, 0, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NOT_Ed, "not", "notb", &BX_CPU_C::NOT_EdM, &BX_CPU_C::NOT_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NEG_Ed, "neg", "negb", &BX_CPU_C::NEG_EdM, &BX_CPU_C::NEG_EdR, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ROL_Eb, "rol", "rolb", &BX_CPU_C::ROL_EbM, &BX_CPU_C::ROL_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_Eb, "ror", "rorb", &BX_CPU_C::ROR_EbM, &BX_CPU_C::ROR_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_Eb, "rcl", "rclb", &BX_CPU_C::RCL_EbM, &BX_CPU_C::RCL_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_Eb, "rcr", "rcrb", &BX_CPU_C::RCR_EbM, &BX_CPU_C::RCR_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_Eb, "shl", "shlb", &BX_CPU_C::SHL_EbM, &BX_CPU_C::SHL_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_Eb, "shr", "shrb", &BX_CPU_C::SHR_EbM, &BX_CPU_C::SHR_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_Eb, "sar", "sarb", &BX_CPU_C::SAR_EbM, &BX_CPU_C::SAR_EbR, 0, OP_Eb, OP_CLReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_Ew, "rol", "rolw", &BX_CPU_C::ROL_EwM, &BX_CPU_C::ROL_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_Ew, "ror", "rorw", &BX_CPU_C::ROR_EwM, &BX_CPU_C::ROR_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_Ew, "rcl", "rclw", &BX_CPU_C::RCL_EwM, &BX_CPU_C::RCL_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_Ew, "rcr", "rcrw", &BX_CPU_C::RCR_EwM, &BX_CPU_C::RCR_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_Ew, "shl", "shlw", &BX_CPU_C::SHL_EwM, &BX_CPU_C::SHL_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_Ew, "shr", "shrw", &BX_CPU_C::SHR_EwM, &BX_CPU_C::SHR_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_Ew, "sar", "sarw", &BX_CPU_C::SAR_EwM, &BX_CPU_C::SAR_EwR, 0, OP_Ew, OP_CLReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_Ed, "rol", "roll", &BX_CPU_C::ROL_EdM, &BX_CPU_C::ROL_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_Ed, "ror", "rorl", &BX_CPU_C::ROR_EdM, &BX_CPU_C::ROR_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_Ed, "rcl", "rcll", &BX_CPU_C::RCL_EdM, &BX_CPU_C::RCL_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_Ed, "rcr", "rcrl", &BX_CPU_C::RCR_EdM, &BX_CPU_C::RCR_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_Ed, "shl", "shll", &BX_CPU_C::SHL_EdM, &BX_CPU_C::SHL_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_Ed, "shr", "shrl", &BX_CPU_C::SHR_EdM, &BX_CPU_C::SHR_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_Ed, "sar", "sarl", &BX_CPU_C::SAR_EdM, &BX_CPU_C::SAR_EdR, 0, OP_Ed, OP_CLReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EbIb, "rol", "rolb", &BX_CPU_C::ROL_EbM, &BX_CPU_C::ROL_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EbIb, "ror", "rorb", &BX_CPU_C::ROR_EbM, &BX_CPU_C::ROR_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EbIb, "rcl", "rclb", &BX_CPU_C::RCL_EbM, &BX_CPU_C::RCL_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EbIb, "rcr", "rcrb", &BX_CPU_C::RCR_EbM, &BX_CPU_C::RCR_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EbIb, "shl", "shlb", &BX_CPU_C::SHL_EbM, &BX_CPU_C::SHL_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EbIb, "shr", "shrb", &BX_CPU_C::SHR_EbM, &BX_CPU_C::SHR_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EbIb, "sar", "sarb", &BX_CPU_C::SAR_EbM, &BX_CPU_C::SAR_EbR, 0, OP_Eb, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EwIb, "rol", "rolw", &BX_CPU_C::ROL_EwM, &BX_CPU_C::ROL_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EwIb, "ror", "rorw", &BX_CPU_C::ROR_EwM, &BX_CPU_C::ROR_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EwIb, "rcl", "rclw", &BX_CPU_C::RCL_EwM, &BX_CPU_C::RCL_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EwIb, "rcr", "rcrw", &BX_CPU_C::RCR_EwM, &BX_CPU_C::RCR_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EwIb, "shl", "shlw", &BX_CPU_C::SHL_EwM, &BX_CPU_C::SHL_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EwIb, "shr", "shrw", &BX_CPU_C::SHR_EwM, &BX_CPU_C::SHR_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EwIb, "sar", "sarw", &BX_CPU_C::SAR_EwM, &BX_CPU_C::SAR_EwR, 0, OP_Ew, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EdIb, "rol", "roll", &BX_CPU_C::ROL_EdM, &BX_CPU_C::ROL_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EdIb, "ror", "rorl", &BX_CPU_C::ROR_EdM, &BX_CPU_C::ROR_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EdIb, "rcl", "rcll", &BX_CPU_C::RCL_EdM, &BX_CPU_C::RCL_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EdIb, "rcr", "rcrl", &BX_CPU_C::RCR_EdM, &BX_CPU_C::RCR_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EdIb, "shl", "shll", &BX_CPU_C::SHL_EdM, &BX_CPU_C::SHL_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EdIb, "shr", "shrl", &BX_CPU_C::SHR_EdM, &BX_CPU_C::SHR_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EdIb, "sar", "sarl", &BX_CPU_C::SAR_EdM, &BX_CPU_C::SAR_EdR, 0, OP_Ed, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EbI1, "rol", "rolb", &BX_CPU_C::ROL_EbM, &BX_CPU_C::ROL_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EbI1, "ror", "rorb", &BX_CPU_C::ROR_EbM, &BX_CPU_C::ROR_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EbI1, "rcl", "rclb", &BX_CPU_C::RCL_EbM, &BX_CPU_C::RCL_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EbI1, "rcr", "rcrb", &BX_CPU_C::RCR_EbM, &BX_CPU_C::RCR_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EbI1, "shl", "shlb", &BX_CPU_C::SHL_EbM, &BX_CPU_C::SHL_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EbI1, "shr", "shrb", &BX_CPU_C::SHR_EbM, &BX_CPU_C::SHR_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EbI1, "sar", "sarb", &BX_CPU_C::SAR_EbM, &BX_CPU_C::SAR_EbR, 0, OP_Eb, OP_I1, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EwI1, "rol", "rolw", &BX_CPU_C::ROL_EwM, &BX_CPU_C::ROL_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EwI1, "ror", "rorw", &BX_CPU_C::ROR_EwM, &BX_CPU_C::ROR_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EwI1, "rcl", "rclw", &BX_CPU_C::RCL_EwM, &BX_CPU_C::RCL_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EwI1, "rcr", "rcrw", &BX_CPU_C::RCR_EwM, &BX_CPU_C::RCR_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EwI1, "shl", "shlw", &BX_CPU_C::SHL_EwM, &BX_CPU_C::SHL_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EwI1, "shr", "shrw", &BX_CPU_C::SHR_EwM, &BX_CPU_C::SHR_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EwI1, "sar", "sarw", &BX_CPU_C::SAR_EwM, &BX_CPU_C::SAR_EwR, 0, OP_Ew, OP_I1, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EdI1, "rol", "roll", &BX_CPU_C::ROL_EdM, &BX_CPU_C::ROL_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EdI1, "ror", "rorl", &BX_CPU_C::ROR_EdM, &BX_CPU_C::ROR_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EdI1, "rcl", "rcll", &BX_CPU_C::RCL_EdM, &BX_CPU_C::RCL_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EdI1, "rcr", "rcrl", &BX_CPU_C::RCR_EdM, &BX_CPU_C::RCR_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EdI1, "shl", "shll", &BX_CPU_C::SHL_EdM, &BX_CPU_C::SHL_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EdI1, "shr", "shrl", &BX_CPU_C::SHR_EdM, &BX_CPU_C::SHR_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EdI1, "sar", "sarl", &BX_CPU_C::SAR_EdM, &BX_CPU_C::SAR_EdR, 0, OP_Ed, OP_I1, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SETB_Eb, "setb", "setb", &BX_CPU_C::SETB_EbM, &BX_CPU_C::SETB_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETBE_Eb, "setbe", "setbe", &BX_CPU_C::SETBE_EbM, &BX_CPU_C::SETBE_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETL_Eb, "setl", "setl", &BX_CPU_C::SETL_EbM, &BX_CPU_C::SETL_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETLE_Eb, "setle", "setle", &BX_CPU_C::SETLE_EbM, &BX_CPU_C::SETLE_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNB_Eb, "setnb", "setnb", &BX_CPU_C::SETNB_EbM, &BX_CPU_C::SETNB_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNBE_Eb, "setnbe", "setnbe", &BX_CPU_C::SETNBE_EbM, &BX_CPU_C::SETNBE_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNL_Eb, "setnl", "setnl", &BX_CPU_C::SETNL_EbM, &BX_CPU_C::SETNL_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNLE_Eb, "setnle", "setnle", &BX_CPU_C::SETNLE_EbM, &BX_CPU_C::SETNLE_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNO_Eb, "setno", "setno", &BX_CPU_C::SETNO_EbM, &BX_CPU_C::SETNO_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNP_Eb, "setnp", "setnp", &BX_CPU_C::SETNP_EbM, &BX_CPU_C::SETNP_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNS_Eb, "setns", "setns", &BX_CPU_C::SETNS_EbM, &BX_CPU_C::SETNS_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETNZ_Eb, "setnz", "setnz", &BX_CPU_C::SETNZ_EbM, &BX_CPU_C::SETNZ_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETO_Eb, "seto", "seto", &BX_CPU_C::SETO_EbM, &BX_CPU_C::SETO_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETP_Eb, "setp", "setp", &BX_CPU_C::SETP_EbM, &BX_CPU_C::SETP_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETS_Eb, "sets", "sets", &BX_CPU_C::SETS_EbM, &BX_CPU_C::SETS_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETZ_Eb, "setz", "setz", &BX_CPU_C::SETZ_EbM, &BX_CPU_C::SETZ_EbR, 0, OP_Eb, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SHLD_EdGd, "shld", "shldl", &BX_CPU_C::SHLD_EdGdM, &BX_CPU_C::SHLD_EdGdR, 0, OP_Ed, OP_Gd, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLD_EdGdIb, "shld", "shldl", &BX_CPU_C::SHLD_EdGdM, &BX_CPU_C::SHLD_EdGdR, 0, OP_Ed, OP_Gd, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLD_EwGw, "shld", "shldw", &BX_CPU_C::SHLD_EwGwM, &BX_CPU_C::SHLD_EwGwR, 0, OP_Ew, OP_Gw, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLD_EwGwIb, "shld", "shldw", &BX_CPU_C::SHLD_EwGwM, &BX_CPU_C::SHLD_EwGwR, 0, OP_Ew, OP_Gw, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EdGd, "shrd", "shrdl", &BX_CPU_C::SHRD_EdGdM, &BX_CPU_C::SHRD_EdGdR, 0, OP_Ed, OP_Gd, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EdGdIb, "shrd", "shrdl", &BX_CPU_C::SHRD_EdGdM, &BX_CPU_C::SHRD_EdGdR, 0, OP_Ed, OP_Gd, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EwGw, "shrd", "shrdw", &BX_CPU_C::SHRD_EwGwM, &BX_CPU_C::SHRD_EwGwR, 0, OP_Ew, OP_Gw, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EwGwIb, "shrd", "shrdw", &BX_CPU_C::SHRD_EwGwM, &BX_CPU_C::SHRD_EwGwR, 0, OP_Ew, OP_Gw, OP_Ib, OP_NONE, 0)

bx_define_opcode(BX_IA_RSM, "rsm", "rsm", NULL, &BX_CPU_C::RSM, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SALC, "salc", "salc", NULL, &BX_CPU_C::SALC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STC, "stc", "stc", NULL, &BX_CPU_C::STC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STD, "std", "std", NULL, &BX_CPU_C::STD, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STI, "sti", "sti", NULL, &BX_CPU_C::STI, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MUL_ALEb, "mul", "mulb", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::MUL_ALEbR, 0, OP_ALReg, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_ALEb, "imul", "imulb", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::IMUL_ALEbR, 0, OP_ALReg, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DIV_ALEb, "div", "divb", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::DIV_ALEbR, 0, OP_ALReg, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IDIV_ALEb, "idiv", "idivb", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::IDIV_ALEbR, 0, OP_ALReg, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MUL_AXEw, "mul", "mulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::MUL_AXEwR, 0, OP_AXReg, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_AXEw, "imul", "imulw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_AXEwR, 0, OP_AXReg, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DIV_AXEw, "div", "divw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::DIV_AXEwR, 0, OP_AXReg, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IDIV_AXEw, "idiv", "idivw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IDIV_AXEwR, 0, OP_AXReg, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MUL_EAXEd, "mul", "mull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::MUL_EAXEdR, 0, OP_EAXReg, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_EAXEd, "imul", "imull", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_EAXEdR, 0, OP_EAXReg, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DIV_EAXEd, "div", "divl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::DIV_EAXEdR, 0, OP_EAXReg, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IDIV_EAXEd, "idiv", "idivl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IDIV_EAXEdR, 0, OP_EAXReg, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_VERR_Ew, "verr", "verr", &BX_CPU_C::VERR_Ew, &BX_CPU_C::VERR_Ew, 0, OP_NONE, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VERW_Ew, "verw", "verw", &BX_CPU_C::VERW_Ew, &BX_CPU_C::VERW_Ew, 0, OP_NONE, OP_Ew, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_XCHG_EbGb, "xchg", "xchgb", &BX_CPU_C::XCHG_EbGbM, &BX_CPU_C::XCHG_EbGbR, 0, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XCHG_EwGw, "xchg", "xchgw", &BX_CPU_C::XCHG_EwGwM, &BX_CPU_C::XCHG_EwGwR, 0, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XCHG_EdGd, "xchg", "xchgl", &BX_CPU_C::XCHG_EdGdM, &BX_CPU_C::XCHG_EdGdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XCHG_RXAX, "xchg", "xchgw", NULL, &BX_CPU_C::XCHG_EwGwR, 0, OP_Ew, OP_AXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XCHG_ERXEAX, "xchg", "xchgl", NULL, &BX_CPU_C::XCHG_EdGdR, 0, OP_Ed, OP_EAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XLAT, "xlat", "xlat", NULL, &BX_CPU_C::XLAT, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SYSENTER, "sysenter", "sysenter", NULL, &BX_CPU_C::SYSENTER, BX_ISA_SYSENTER_SYSEXIT, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SYSEXIT, "sysexit", "sysexit", NULL, &BX_CPU_C::SYSEXIT, BX_ISA_SYSENTER_SYSEXIT, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_MONITOR, "monitor", "monitor", &BX_CPU_C::BxError, &BX_CPU_C::MONITOR, BX_ISA_MONITOR_MWAIT, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MWAIT, "mwait", "mwait", &BX_CPU_C::BxError, &BX_CPU_C::MWAIT, BX_ISA_MONITOR_MWAIT, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_UMONITOR_Eq, "umonitor", "umonitor", &BX_CPU_C::BxError, &BX_CPU_C::UMONITOR_Eq, BX_ISA_WAITPKG, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
#endif
bx_define_opcode(BX_IA_UMONITOR_Ed, "umonitor", "umonitor", &BX_CPU_C::BxError, &BX_CPU_C::UMONITOR_Eq, BX_ISA_WAITPKG, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_UMWAIT_Ed, "umwait", "umwait", &BX_CPU_C::BxError, &BX_CPU_C::UMWAIT_Ed, BX_ISA_WAITPKG, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_TPAUSE_Ed, "tpause", "tpause", &BX_CPU_C::BxError, &BX_CPU_C::UMWAIT_Ed, BX_ISA_WAITPKG, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_MONITORX, "monitorx", "monitorx", &BX_CPU_C::BxError, &BX_CPU_C::MONITOR, BX_ISA_MONITORX_MWAITX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MWAITX, "mwaitx", "mwaitx", &BX_CPU_C::BxError, &BX_CPU_C::MWAIT, BX_ISA_MONITORX_MWAITX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_FWAIT, "fwait", "fwait", NULL, &BX_CPU_C::FWAIT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_FPU
bx_define_opcode(BX_IA_FLD_STi, "fld", "fld", NULL, &BX_CPU_C::FLD_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLD_SINGLE_REAL, "fld", "flds", &BX_CPU_C::FLD_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLD_DOUBLE_REAL, "fld", "fldl", &BX_CPU_C::FLD_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLD_EXTENDED_REAL, "fld", "fldt", &BX_CPU_C::FLD_EXTENDED_REAL, NULL, BX_ISA_X87, OP_Mt, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FILD_WORD_INTEGER, "fild", "fildw", &BX_CPU_C::FILD_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FILD_DWORD_INTEGER, "fild", "fildl", &BX_CPU_C::FILD_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FILD_QWORD_INTEGER, "fild", "fildq", &BX_CPU_C::FILD_QWORD_INTEGER, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FBLD_PACKED_BCD, "fbld", "fbldt", &BX_CPU_C::FBLD_PACKED_BCD, NULL, BX_ISA_X87, OP_Mt, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FST_STi, "fst", "fst", NULL, &BX_CPU_C::FST_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_STi, "fstp", "fstp", NULL, &BX_CPU_C::FST_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_SPECIAL_STi, "fstp", "fstp", NULL, &BX_CPU_C::FST_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU) // undocumented 287 compatibility opcode
bx_define_opcode(BX_IA_FST_SINGLE_REAL, "fst", "fsts", &BX_CPU_C::FST_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_SINGLE_REAL, "fstp", "fstps", &BX_CPU_C::FST_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FST_DOUBLE_REAL, "fst", "fstl", &BX_CPU_C::FST_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_DOUBLE_REAL, "fstp", "fstpl", &BX_CPU_C::FST_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSTP_EXTENDED_REAL, "fstp", "fstpt", &BX_CPU_C::FSTP_EXTENDED_REAL, NULL, BX_ISA_X87, OP_Mt, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIST_WORD_INTEGER, "fist", "fistw", &BX_CPU_C::FIST_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTP_WORD_INTEGER, "fistp", "fistpw", &BX_CPU_C::FIST_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIST_DWORD_INTEGER, "fist", "fistl", &BX_CPU_C::FIST_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTP_DWORD_INTEGER, "fistp", "fistpl", &BX_CPU_C::FIST_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTP_QWORD_INTEGER, "fistp", "fistpq", &BX_CPU_C::FISTP_QWORD_INTEGER, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FBSTP_PACKED_BCD, "fbstp", "fbstpt", &BX_CPU_C::FBSTP_PACKED_BCD, NULL, BX_ISA_X87, OP_Mt, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTTP_Mw, "fisttp", "fisttpw", &BX_CPU_C::FISTTP16, NULL, BX_ISA_SSE3, OP_Ew, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTTP_Md, "fisttp", "fisttpl", &BX_CPU_C::FISTTP32, NULL, BX_ISA_SSE3, OP_Ed, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISTTP_Mq, "fisttp", "fisttpq", &BX_CPU_C::FISTTP64, NULL, BX_ISA_SSE3, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNINIT, "fninit", "fninit", NULL, &BX_CPU_C::FNINIT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNCLEX, "fnclex", "fnclex", NULL, &BX_CPU_C::FNCLEX, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FRSTOR, "frstor", "frstor", &BX_CPU_C::FRSTOR, NULL, BX_ISA_X87, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSAVE, "fnsave", "fnsave", &BX_CPU_C::FNSAVE, NULL, BX_ISA_X87, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDENV, "fldenv", "fldenv", &BX_CPU_C::FLDENV, NULL, BX_ISA_X87, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSTENV, "fnstenv", "fnstenv", &BX_CPU_C::FNSTENV, NULL, BX_ISA_X87, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDCW, "fldcw", "fldcw", &BX_CPU_C::FLDCW, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSTCW, "fnstcw", "fnstcw", &BX_CPU_C::FNSTCW, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSTSW, "fnstsw", "fnstsw", &BX_CPU_C::FNSTSW, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNSTSW_AX, "fnstsw", "fnstsw", NULL, &BX_CPU_C::FNSTSW_AX, BX_ISA_X87, OP_AXReg, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLD1, "fld1", "fld1", NULL, &BX_CPU_C::FLD1, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDL2T, "fldl2t", "fldl2t", NULL, &BX_CPU_C::FLDL2T, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDL2E, "fldl2e", "fldl2e", NULL, &BX_CPU_C::FLDL2E, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDPI, "fldpi", "fldpi", NULL, &BX_CPU_C::FLDPI, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDLG2, "fldlg2", "fldlg2", NULL, &BX_CPU_C::FLDLG2, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDLN2, "fldln2", "fldln2", NULL, &BX_CPU_C::FLDLN2, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FLDZ, "fldz", "fldz", NULL, &BX_CPU_C::FLDZ, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADD_ST0_STj, "fadd", "fadd", NULL, &BX_CPU_C::FADD_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADD_STi_ST0, "fadd", "fadd", NULL, &BX_CPU_C::FADD_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADDP_STi_ST0, "faddp", "faddp", NULL, &BX_CPU_C::FADD_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADD_SINGLE_REAL, "fadd", "fadds", &BX_CPU_C::FADD_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FADD_DOUBLE_REAL, "fadd", "faddl", &BX_CPU_C::FADD_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIADD_WORD_INTEGER, "fiadd", "fiaddw", &BX_CPU_C::FIADD_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIADD_DWORD_INTEGER, "fiadd", "fiaddl", &BX_CPU_C::FIADD_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMUL_ST0_STj, "fmul", "fmul", NULL, &BX_CPU_C::FMUL_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMUL_STi_ST0, "fmul", "fmul", NULL, &BX_CPU_C::FMUL_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMULP_STi_ST0, "fmulp", "fmulp", NULL, &BX_CPU_C::FMUL_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMUL_SINGLE_REAL, "fmul", "fmuls", &BX_CPU_C::FMUL_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FMUL_DOUBLE_REAL, "fmul", "fmull", &BX_CPU_C::FMUL_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIMUL_WORD_INTEGER , "fimul", "fimulw", &BX_CPU_C::FIMUL_WORD_INTEGER , NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIMUL_DWORD_INTEGER, "fimul", "fimull", &BX_CPU_C::FIMUL_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUB_ST0_STj, "fsub", "fsub", NULL, &BX_CPU_C::FSUB_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBR_ST0_STj, "fsubr", "fsubr", NULL, &BX_CPU_C::FSUBR_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUB_STi_ST0, "fsub", "fsub", NULL, &BX_CPU_C::FSUB_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBP_STi_ST0, "fsubp", "fsubp", NULL, &BX_CPU_C::FSUB_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBR_STi_ST0, "fsubr", "fsubr", NULL, &BX_CPU_C::FSUBR_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBRP_STi_ST0, "fsubrp", "fsubrp", NULL, &BX_CPU_C::FSUBR_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUB_SINGLE_REAL, "fsub", "fsubs", &BX_CPU_C::FSUB_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBR_SINGLE_REAL, "fsubr", "fsubrs", &BX_CPU_C::FSUBR_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUB_DOUBLE_REAL, "fsub", "fsubl", &BX_CPU_C::FSUB_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSUBR_DOUBLE_REAL, "fsubr", "fsubrl", &BX_CPU_C::FSUBR_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISUB_WORD_INTEGER, "fisub", "fisubw", &BX_CPU_C::FISUB_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISUBR_WORD_INTEGER, "fisubr", "fisubrw", &BX_CPU_C::FISUBR_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISUB_DWORD_INTEGER, "fisub", "fisubl", &BX_CPU_C::FISUB_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FISUBR_DWORD_INTEGER, "fisubr", "fisubrl", &BX_CPU_C::FISUBR_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIV_ST0_STj, "fdiv", "fdiv", NULL, &BX_CPU_C::FDIV_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVR_ST0_STj, "fdivr", "fdivr", NULL, &BX_CPU_C::FDIVR_ST0_STj, BX_ISA_X87, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIV_STi_ST0, "fdiv", "fdiv", NULL, &BX_CPU_C::FDIV_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVP_STi_ST0, "fdivp", "fdivp", NULL, &BX_CPU_C::FDIV_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVR_STi_ST0, "fdivr", "fdivr", NULL, &BX_CPU_C::FDIVR_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVRP_STi_ST0, "fdivrp", "fdivrp", NULL, &BX_CPU_C::FDIVR_STi_ST0, BX_ISA_X87, OP_STi, OP_ST0, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIV_SINGLE_REAL, "fdiv", "fdivs", &BX_CPU_C::FDIV_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVR_SINGLE_REAL, "fdivr", "fdivrs", &BX_CPU_C::FDIVR_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIV_DOUBLE_REAL, "fdiv", "fdivl", &BX_CPU_C::FDIV_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDIVR_DOUBLE_REAL, "fdivr", "fdivrl", &BX_CPU_C::FDIVR_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIDIV_WORD_INTEGER, "fidiv", "fidivw", &BX_CPU_C::FIDIV_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIDIVR_WORD_INTEGER, "fidivr", "fidivrw", &BX_CPU_C::FIDIVR_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIDIV_DWORD_INTEGER, "fidiv", "fidivl", &BX_CPU_C::FIDIV_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FIDIVR_DWORD_INTEGER, "fidivr", "fidivrl", &BX_CPU_C::FIDIVR_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOM_STi, "fcom", "fcom", NULL, &BX_CPU_C::FCOM_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMP_STi, "fcomp", "fcomp", NULL, &BX_CPU_C::FCOM_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOM_STi, "fucom", "fucom", NULL, &BX_CPU_C::FUCOM_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOMP_STi, "fucomp", "fucomp", NULL, &BX_CPU_C::FUCOM_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMI_ST0_STj, "fcomi", "fcomi", NULL, &BX_CPU_C::FCOMI_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMIP_ST0_STj, "fcomip", "fcomip", NULL, &BX_CPU_C::FCOMI_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOMI_ST0_STj, "fucomi", "fucomi", NULL, &BX_CPU_C::FUCOMI_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOMIP_ST0_STj, "fucomip", "fucomip", NULL, &BX_CPU_C::FUCOMI_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOM_SINGLE_REAL, "fcom", "fcoms", &BX_CPU_C::FCOM_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMP_SINGLE_REAL, "fcomp", "fcomps", &BX_CPU_C::FCOM_SINGLE_REAL, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOM_DOUBLE_REAL, "fcom", "fcoml", &BX_CPU_C::FCOM_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMP_DOUBLE_REAL, "fcomp", "fcompl", &BX_CPU_C::FCOM_DOUBLE_REAL, NULL, BX_ISA_X87, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FICOM_WORD_INTEGER, "ficom", "ficomw", &BX_CPU_C::FICOM_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FICOMP_WORD_INTEGER, "ficomp", "ficompw", &BX_CPU_C::FICOM_WORD_INTEGER, NULL, BX_ISA_X87, OP_Mw, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FICOM_DWORD_INTEGER, "ficom", "ficoml", &BX_CPU_C::FICOM_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FICOMP_DWORD_INTEGER, "ficomp", "ficompl", &BX_CPU_C::FICOM_DWORD_INTEGER, NULL, BX_ISA_X87, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVB_ST0_STj, "fcmovb", "fcmovb", NULL, &BX_CPU_C::FCMOVB_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVE_ST0_STj, "fcmove", "fcmove", NULL, &BX_CPU_C::FCMOVE_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVBE_ST0_STj, "fcmovbe", "fcmovbe", NULL, &BX_CPU_C::FCMOVBE_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVU_ST0_STj, "fcmovu", "fcmovu", NULL, &BX_CPU_C::FCMOVU_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVNB_ST0_STj, "fcmovnb", "fcmovnb", NULL, &BX_CPU_C::FCMOVNB_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVNE_ST0_STj, "fcmovne", "fcmovne", NULL, &BX_CPU_C::FCMOVNE_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVNBE_ST0_STj, "fcmovnbe", "fcmovnbe", NULL, &BX_CPU_C::FCMOVNBE_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCMOVNU_ST0_STj, "fcmovnu", "fcmovnu", NULL, &BX_CPU_C::FCMOVNU_ST0_STj, BX_ISA_P6, OP_ST0, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOMPP, "fcompp", "fcompp", NULL, &BX_CPU_C::FCOMPP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FUCOMPP, "fucompp", "fucompp", NULL, &BX_CPU_C::FCOMPP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FXCH_STi, "fxch", "fxch", NULL, &BX_CPU_C::FXCH_STi, BX_ISA_X87, OP_NONE, OP_STi, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FNOP, "fnop", "fnop", NULL, &BX_CPU_C::FNOP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPLEGACY, "fplegacy", "fplegacy", NULL, &BX_CPU_C::FPLEGACY, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCHS, "fchs", "fchs", NULL, &BX_CPU_C::FCHS, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FABS, "fabs", "fabs", NULL, &BX_CPU_C::FABS, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FTST, "ftst", "ftst", NULL, &BX_CPU_C::FTST, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FXAM, "fxam", "fxam", NULL, &BX_CPU_C::FXAM, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FDECSTP, "fdecstp", "fdecstp", NULL, &BX_CPU_C::FDECSTP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FINCSTP, "fincstp", "fincstp", NULL, &BX_CPU_C::FINCSTP, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FFREE_STi, "ffree", "ffree", NULL, &BX_CPU_C::FFREE_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FFREEP_STi, "ffreep", "ffreep", NULL, &BX_CPU_C::FFREEP_STi, BX_ISA_X87, OP_STi, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_F2XM1, "f2xm1", "f2xm1", NULL, &BX_CPU_C::F2XM1, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FYL2X, "fyl2x", "fyl2x", NULL, &BX_CPU_C::FYL2X, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPTAN, "fptan", "fptan", NULL, &BX_CPU_C::FPTAN, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPATAN, "fpatan", "fpatan", NULL, &BX_CPU_C::FPATAN, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FXTRACT, "fxtract", "fxtract", NULL, &BX_CPU_C::FXTRACT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPREM1, "fprem1", "fprem1", NULL, &BX_CPU_C::FPREM1, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FPREM, "fprem", "fprem", NULL, &BX_CPU_C::FPREM, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FYL2XP1, "fyl2xp1", "fyl2xp1", NULL, &BX_CPU_C::FYL2XP1, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSQRT, "fsqrt", "fsqrt", NULL, &BX_CPU_C::FSQRT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSINCOS, "fsincos", "fsincos", NULL, &BX_CPU_C::FSINCOS, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FRNDINT, "frndint", "frndint", NULL, &BX_CPU_C::FRNDINT, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSCALE, "fscale", "fscale", NULL, &BX_CPU_C::FSCALE, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FSIN, "fsin", "fsin", NULL, &BX_CPU_C::FSIN, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
bx_define_opcode(BX_IA_FCOS, "fcos", "fcos", NULL, &BX_CPU_C::FCOS, BX_ISA_X87, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
#else
bx_define_opcode(BX_IA_FPUESC, "fpuesc", "fpuesc", &BX_CPU_C::FPU_ESC, &BX_CPU_C::FPU_ESC, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_FPU)
#endif

// 486 new instructions
bx_define_opcode(BX_IA_CPUID, "cpuid", "cpuid", NULL, &BX_CPU_C::CPUID, BX_ISA_486, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSWAP_RX, "bswap", "bswapw", NULL, &BX_CPU_C::BSWAP_RX, BX_ISA_486, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSWAP_ERX, "bswap", "bswapl", NULL, &BX_CPU_C::BSWAP_ERX, BX_ISA_486, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_INVD, "invd", "invd", NULL, &BX_CPU_C::INVD, BX_ISA_486, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_WBINVD, "wbinvd", "wbinvd", NULL, &BX_CPU_C::WBINVD, BX_ISA_486, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_XADD_EbGb, "xadd", "xaddb", &BX_CPU_C::XADD_EbGbM, &BX_CPU_C::XADD_EbGbR, BX_ISA_486, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XADD_EwGw, "xadd", "xaddw", &BX_CPU_C::XADD_EwGwM, &BX_CPU_C::XADD_EwGwR, BX_ISA_486, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XADD_EdGd, "xadd", "xaddl", &BX_CPU_C::XADD_EdGdM, &BX_CPU_C::XADD_EdGdR, BX_ISA_486, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMPXCHG_EbGb, "cmpxchg", "cmpxchgb", &BX_CPU_C::CMPXCHG_EbGbM, &BX_CPU_C::CMPXCHG_EbGbR, BX_ISA_486, OP_Eb, OP_Gb, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMPXCHG_EwGw, "cmpxchg", "cmpxchgw", &BX_CPU_C::CMPXCHG_EwGwM, &BX_CPU_C::CMPXCHG_EwGwR, BX_ISA_486, OP_Ew, OP_Gw, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CMPXCHG_EdGd, "cmpxchg", "cmpxchgl", &BX_CPU_C::CMPXCHG_EdGdM, &BX_CPU_C::CMPXCHG_EdGdR, BX_ISA_486, OP_Ed, OP_Gd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_INVLPG, "invlpg", "invlpg", &BX_CPU_C::INVLPG, &BX_CPU_C::BxError, 0, OP_Mb, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// 486 new instructions

// Pentium new instructions
bx_define_opcode(BX_IA_CMPXCHG8B, "cmpxchg8b", "cmpxchg8b", &BX_CPU_C::CMPXCHG8B, &BX_CPU_C::BxError, BX_ISA_PENTIUM, OP_Mq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_WRMSR, "wrmsr", "wrmsr", NULL, &BX_CPU_C::WRMSR, BX_ISA_PENTIUM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RDMSR, "rdmsr", "rdmsr", NULL, &BX_CPU_C::RDMSR, BX_ISA_PENTIUM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RDTSC, "rdtsc", "rdtsc", NULL, &BX_CPU_C::RDTSC, BX_ISA_PENTIUM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// Pentium new instructions

// MMX
bx_define_opcode(BX_IA_PUNPCKLBW_PqQd, "punpcklbw", "punpcklbw", &BX_CPU_C::PUNPCKLBW_PqQd, &BX_CPU_C::PUNPCKLBW_PqQd, BX_ISA_MMX, OP_Pq, OP_Qd, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKLWD_PqQd, "punpcklwd", "punpcklwd", &BX_CPU_C::PUNPCKLWD_PqQd, &BX_CPU_C::PUNPCKLWD_PqQd, BX_ISA_MMX, OP_Pq, OP_Qd, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKLDQ_PqQd, "punpckldq", "punpckldq", &BX_CPU_C::PUNPCKLDQ_PqQd, &BX_CPU_C::PUNPCKLDQ_PqQd, BX_ISA_MMX, OP_Pq, OP_Qd, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PACKSSWB_PqQq, "packsswb", "packsswb", &BX_CPU_C::PACKSSWB_PqQq, &BX_CPU_C::PACKSSWB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPGTB_PqQq, "pcmpgtb", "pcmpgtb", &BX_CPU_C::PCMPGTB_PqQq, &BX_CPU_C::PCMPGTB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPGTW_PqQq, "pcmpgtw", "pcmpgtw", &BX_CPU_C::PCMPGTW_PqQq, &BX_CPU_C::PCMPGTW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPGTD_PqQq, "pcmpgtd", "pcmpgtd", &BX_CPU_C::PCMPGTD_PqQq, &BX_CPU_C::PCMPGTD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PACKUSWB_PqQq, "packuswb", "packuswb", &BX_CPU_C::PACKUSWB_PqQq, &BX_CPU_C::PACKUSWB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKHBW_PqQq, "punpckhbw", "punpckhbw", &BX_CPU_C::PUNPCKHBW_PqQq, &BX_CPU_C::PUNPCKHBW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKHWD_PqQq, "punpckhwd", "punpckhwd", &BX_CPU_C::PUNPCKHWD_PqQq, &BX_CPU_C::PUNPCKHWD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PUNPCKHDQ_PqQq, "punpckhdq", "punpckhdq", &BX_CPU_C::PUNPCKHDQ_PqQq, &BX_CPU_C::PUNPCKHDQ_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PACKSSDW_PqQq, "packssdw", "packssdw", &BX_CPU_C::PACKSSDW_PqQq, &BX_CPU_C::PACKSSDW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVD_PqEd, "movd", "movd", &BX_CPU_C::MOVD_PqEdM, &BX_CPU_C::MOVD_PqEdR, BX_ISA_MMX, OP_Pq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVQ_PqQq, "movq", "movq", &BX_CPU_C::MOVQ_PqQqM, &BX_CPU_C::MOVQ_PqQqR, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPEQB_PqQq, "pcmpeqb", "pcmpeqb", &BX_CPU_C::PCMPEQB_PqQq, &BX_CPU_C::PCMPEQB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPEQW_PqQq, "pcmpeqw", "pcmpeqw", &BX_CPU_C::PCMPEQW_PqQq, &BX_CPU_C::PCMPEQW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PCMPEQD_PqQq, "pcmpeqd", "pcmpeqd", &BX_CPU_C::PCMPEQD_PqQq, &BX_CPU_C::PCMPEQD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_EMMS, "emms", "emms", NULL, &BX_CPU_C::EMMS, BX_ISA_MMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVD_EdPq, "movd", "movd", &BX_CPU_C::MOVD_EdPqM, &BX_CPU_C::MOVD_EdPqR, BX_ISA_MMX, OP_Ed, OP_Pq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVQ_QqPq, "movq", "movq", &BX_CPU_C::MOVQ_QqPqM, &BX_CPU_C::MOVQ_PqQqR, BX_ISA_MMX, OP_Qq, OP_Pq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLW_PqQq, "psrlw", "psrlw", &BX_CPU_C::PSRLW_PqQq, &BX_CPU_C::PSRLW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLD_PqQq, "psrld", "psrld", &BX_CPU_C::PSRLD_PqQq, &BX_CPU_C::PSRLD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLQ_PqQq, "psrlq", "psrlq", &BX_CPU_C::PSRLQ_PqQq, &BX_CPU_C::PSRLQ_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULLW_PqQq, "pmullw", "pmullw", &BX_CPU_C::PMULLW_PqQq, &BX_CPU_C::PMULLW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBUSB_PqQq, "psubusb", "psubusb", &BX_CPU_C::PSUBUSB_PqQq, &BX_CPU_C::PSUBUSB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBUSW_PqQq, "psubusw", "psubusw", &BX_CPU_C::PSUBUSW_PqQq, &BX_CPU_C::PSUBUSW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PAND_PqQq, "pand", "pand", &BX_CPU_C::PAND_PqQq, &BX_CPU_C::PAND_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDUSB_PqQq, "paddusb", "paddusb", &BX_CPU_C::PADDUSB_PqQq, &BX_CPU_C::PADDUSB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDUSW_PqQq, "paddusw", "paddusw", &BX_CPU_C::PADDUSW_PqQq, &BX_CPU_C::PADDUSW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PANDN_PqQq, "pandn", "pandn", &BX_CPU_C::PANDN_PqQq, &BX_CPU_C::PANDN_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRAW_PqQq, "psraw", "psraw", &BX_CPU_C::PSRAW_PqQq, &BX_CPU_C::PSRAW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRAD_PqQq, "psrad", "psrad", &BX_CPU_C::PSRAD_PqQq, &BX_CPU_C::PSRAD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULHW_PqQq, "pmulhw", "pmulhw", &BX_CPU_C::PMULHW_PqQq, &BX_CPU_C::PMULHW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBSB_PqQq, "psubsb", "psubsb", &BX_CPU_C::PSUBSB_PqQq, &BX_CPU_C::PSUBSB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBSW_PqQq, "psubsw", "psubsw", &BX_CPU_C::PSUBSW_PqQq, &BX_CPU_C::PSUBSW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_POR_PqQq, "por", "por", &BX_CPU_C::POR_PqQq, &BX_CPU_C::POR_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDSB_PqQq, "paddsb", "paddsb", &BX_CPU_C::PADDSB_PqQq, &BX_CPU_C::PADDSB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDSW_PqQq, "paddsw", "paddsw", &BX_CPU_C::PADDSW_PqQq, &BX_CPU_C::PADDSW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PXOR_PqQq, "pxor", "pxor", &BX_CPU_C::PXOR_PqQq, &BX_CPU_C::PXOR_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLW_PqQq, "psllw", "psllw", &BX_CPU_C::PSLLW_PqQq, &BX_CPU_C::PSLLW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLD_PqQq, "pslld", "pslld", &BX_CPU_C::PSLLD_PqQq, &BX_CPU_C::PSLLD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLQ_PqQq, "psllq", "psllq", &BX_CPU_C::PSLLQ_PqQq, &BX_CPU_C::PSLLQ_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMADDWD_PqQq, "pmaddwd", "pmaddwd", &BX_CPU_C::PMADDWD_PqQq, &BX_CPU_C::PMADDWD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBB_PqQq, "psubb", "psubb", &BX_CPU_C::PSUBB_PqQq, &BX_CPU_C::PSUBB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBW_PqQq, "psubw", "psubw", &BX_CPU_C::PSUBW_PqQq, &BX_CPU_C::PSUBW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBD_PqQq, "psubd", "psubd", &BX_CPU_C::PSUBD_PqQq, &BX_CPU_C::PSUBD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDB_PqQq, "paddb", "paddb", &BX_CPU_C::PADDB_PqQq, &BX_CPU_C::PADDB_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDW_PqQq, "paddw", "paddw", &BX_CPU_C::PADDW_PqQq, &BX_CPU_C::PADDW_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDD_PqQq, "paddd", "paddd", &BX_CPU_C::PADDD_PqQq, &BX_CPU_C::PADDD_PqQq, BX_ISA_MMX, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLW_NqIb, "psrlw", "psrlw", &BX_CPU_C::BxError, &BX_CPU_C::PSRLW_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRAW_NqIb, "psraw", "psraw", &BX_CPU_C::BxError, &BX_CPU_C::PSRAW_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLW_NqIb, "psllw", "psllw", &BX_CPU_C::BxError, &BX_CPU_C::PSLLW_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLD_NqIb, "psrld", "psrld", &BX_CPU_C::BxError, &BX_CPU_C::PSRLD_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRAD_NqIb, "psrad", "psrad", &BX_CPU_C::BxError, &BX_CPU_C::PSRAD_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLD_NqIb, "pslld", "pslld", &BX_CPU_C::BxError, &BX_CPU_C::PSLLD_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSRLQ_NqIb, "psrlq", "psrlq", &BX_CPU_C::BxError, &BX_CPU_C::PSRLQ_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSLLQ_NqIb, "psllq", "psllq", &BX_CPU_C::BxError, &BX_CPU_C::PSLLQ_NqIb, BX_ISA_MMX, OP_Qq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_MMX)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVQ_EqPq, "movq", "movq", &BX_CPU_C::MOVQ_QqPqM, &BX_CPU_C::MOVQ_EqPqR, 0, OP_Eq, OP_Pq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
#endif
// MMX

bx_define_opcode(BX_IA_FEMMS, "femms", "femms", NULL, &BX_CPU_C::EMMS, BX_ISA_3DNOW, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_MMX)
#if BX_SUPPORT_3DNOW
bx_define_opcode(BX_IA_PF2ID_PqQq, "pf2id", "pf2id", &BX_CPU_C::PF2ID_PqQq, &BX_CPU_C::PF2ID_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PF2IW_PqQq, "pf2iw", "pf2iw", &BX_CPU_C::PF2IW_PqQq, &BX_CPU_C::PF2IW_PqQq, BX_ISA_3DNOW_EXT, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFACC_PqQq, "pfacc", "pfacc", &BX_CPU_C::PFACC_PqQq, &BX_CPU_C::PFACC_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFADD_PqQq, "pfadd", "pfadd", &BX_CPU_C::PFADD_PqQq, &BX_CPU_C::PFADD_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFCMPEQ_PqQq, "pfcmpeq", "pfcmpeq", &BX_CPU_C::PFCMPEQ_PqQq, &BX_CPU_C::PFCMPEQ_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFCMPGE_PqQq, "pfcmpge", "pfcmpge", &BX_CPU_C::PFCMPGE_PqQq, &BX_CPU_C::PFCMPGE_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFCMPGT_PqQq, "pfcmpgt", "pfcmpgt", &BX_CPU_C::PFCMPGT_PqQq, &BX_CPU_C::PFCMPGT_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFMAX_PqQq, "pfmax", "pfmax", &BX_CPU_C::PFMAX_PqQq, &BX_CPU_C::PFMAX_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFMIN_PqQq, "pfmin", "pfmin", &BX_CPU_C::PFMIN_PqQq, &BX_CPU_C::PFMIN_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFMUL_PqQq, "pfmul", "pfmul", &BX_CPU_C::PFMUL_PqQq, &BX_CPU_C::PFMUL_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFNACC_PqQq, "pfnacc", "pfnacc", &BX_CPU_C::PFNACC_PqQq, &BX_CPU_C::PFNACC_PqQq, BX_ISA_3DNOW_EXT, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFPNACC_PqQq, "pfpnacc", "pfpnacc", &BX_CPU_C::PFPNACC_PqQq, &BX_CPU_C::PFPNACC_PqQq, BX_ISA_3DNOW_EXT, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFRCP_PqQq, "pfrcp", "pfrcp", &BX_CPU_C::PFRCP_PqQq, &BX_CPU_C::PFRCP_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFRCPIT1_PqQq, "pfrcpit1", "pfrcpit1", &BX_CPU_C::PFRCPIT1_PqQq, &BX_CPU_C::PFRCPIT1_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFRCPIT2_PqQq, "pfrcpit2", "pfrcpit2", &BX_CPU_C::PFMUL_PqQq, &BX_CPU_C::PFMUL_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)        // aliased to PFMUL
bx_define_opcode(BX_IA_PFRSQIT1_PqQq, "pfrsqit1", "pfrsqit1", &BX_CPU_C::PFRSQIT1_PqQq, &BX_CPU_C::PFRSQIT1_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFRSQRT_PqQq, "pfrsqrt", "pfrsqrt", &BX_CPU_C::PFRSQRT_PqQq, &BX_CPU_C::PFRSQRT_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFSUB_PqQq, "pfsub", "pfsub", &BX_CPU_C::PFSUB_PqQq, &BX_CPU_C::PFSUB_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PFSUBR_PqQq, "pfsubr", "pfsubr", &BX_CPU_C::PFSUBR_PqQq, &BX_CPU_C::PFSUBR_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PI2FD_PqQq, "pi2fd", "pi2fd", &BX_CPU_C::PI2FD_PqQq, &BX_CPU_C::PI2FD_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PI2FW_PqQq, "pi2fw", "pi2fw", &BX_CPU_C::PI2FW_PqQq, &BX_CPU_C::PI2FW_PqQq, BX_ISA_3DNOW_EXT, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULHRW_PqQq, "pmulhrw", "pmulhrw", &BX_CPU_C::PMULHRW_PqQq, &BX_CPU_C::PMULHRW_PqQq, BX_ISA_3DNOW, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSWAPD_PqQq, "pswapd", "pswapd", &BX_CPU_C::PSWAPD_PqQq, &BX_CPU_C::PSWAPD_PqQq, BX_ISA_3DNOW_EXT, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
#endif
bx_define_opcode(BX_IA_PREFETCHW_Mb, "prefetchw", "prefetchw", &BX_CPU_C::NOP, &BX_CPU_C::NOP, 0, OP_Mb, OP_NONE, OP_NONE, OP_NONE, 0) // NOP even when no 3DNow!

bx_define_opcode(BX_IA_SYSCALL_LEGACY, "syscall", "syscall", NULL, &BX_CPU_C::SYSCALL, BX_ISA_SYSCALL_SYSRET_LEGACY, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SYSRET_LEGACY, "sysret", "sysret", NULL, &BX_CPU_C::SYSRET, BX_ISA_SYSCALL_SYSRET_LEGACY, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

// P6 new instructions
bx_define_opcode(BX_IA_CMOVB_GwEw, "cmovb", "cmovbw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVB_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVBE_GwEw, "cmovbe", "cmovbew", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVBE_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVL_GwEw, "cmovl", "cmovlw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVL_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVLE_GwEw, "cmovle", "cmovlew", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVLE_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNB_GwEw, "cmovnb", "cmovnbw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNB_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNBE_GwEw, "cmovnbe", "cmovnbew", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNBE_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNL_GwEw, "cmovnl", "cmovnlw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNL_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNLE_GwEw, "cmovnle", "cmovnlew", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNLE_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNO_GwEw, "cmovno", "cmovnow", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNO_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNP_GwEw, "cmovnp", "cmovnpw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNP_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNS_GwEw, "cmovns", "cmovnsw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNS_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNZ_GwEw, "cmovnz", "cmovnzw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNZ_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVO_GwEw, "cmovo", "cmovow", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVO_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVP_GwEw, "cmovp", "cmovpw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVP_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVS_GwEw, "cmovs", "cmovsw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVS_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVZ_GwEw, "cmovz", "cmovzw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVZ_GwEwR, BX_ISA_P6, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_CMOVB_GdEd, "cmovb", "cmovbl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVB_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVBE_GdEd, "cmovbe", "cmovbel", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVBE_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVL_GdEd, "cmovl", "cmovll", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVL_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVLE_GdEd, "cmovle", "cmovlel", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVLE_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNB_GdEd, "cmovnb", "cmovnbl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNB_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNBE_GdEd, "cmovnbe", "cmovnbel", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNBE_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNL_GdEd, "cmovnl", "cmovnll", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNL_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNLE_GdEd, "cmovnle", "cmovnlel", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNLE_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNO_GdEd, "cmovno", "cmovnol", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNO_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNP_GdEd, "cmovnp", "cmovnpl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNP_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNS_GdEd, "cmovns", "cmovnsl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNS_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNZ_GdEd, "cmovnz", "cmovnzl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNZ_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVO_GdEd, "cmovo", "cmovol", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVO_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVP_GdEd, "cmovp", "cmovpl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVP_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVS_GdEd, "cmovs", "cmovsl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVS_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVZ_GdEd, "cmovz", "cmovzl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVZ_GdEdR, BX_ISA_P6, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_RDPMC, "rdpmc", "rdpmc", NULL, &BX_CPU_C::RDPMC, BX_ISA_P6, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_UD0, "ud0", "ud0", &BX_CPU_C::UndefinedOpcode, &BX_CPU_C::UndefinedOpcode, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_UD1, "ud1", "ud1", &BX_CPU_C::UndefinedOpcode, &BX_CPU_C::UndefinedOpcode, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_UD2, "ud2", "ud2", &BX_CPU_C::UndefinedOpcode, &BX_CPU_C::UndefinedOpcode, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// P6 new instructions

// FXSAVE
bx_define_opcode(BX_IA_FXSAVE, "fxsave", "fxsave", &BX_CPU_C::FXSAVE, &BX_CPU_C::BxError, BX_ISA_SSE, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_FXRSTOR, "fxrstor", "fxrstor", &BX_CPU_C::FXRSTOR, &BX_CPU_C::BxError, BX_ISA_SSE, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
// FXSAVE

// SSE
bx_define_opcode(BX_IA_LDMXCSR, "ldmxcsr", "ldmxcsr", &BX_CPU_C::LDMXCSR, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_STMXCSR, "stmxcsr", "stmxcsr", &BX_CPU_C::STMXCSR, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PREFETCH_Mb, "prefetch", "prefetch", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PREFETCHT0_Mb, "prefetcht0", "prefetcht0", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PREFETCHT1_Mb, "prefetcht1", "prefetcht1", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PREFETCHT2_Mb, "prefetcht2", "prefetcht2", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PREFETCHNTA_Mb, "prefetchnta", "prefetchnta", &BX_CPU_C::PREFETCH, &BX_CPU_C::NOP, BX_ISA_SSE, OP_Mb, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
// SSE

// SSE and SSE2
bx_define_opcode(BX_IA_ANDPS_VpsWps, "andps", "andps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ORPS_VpsWps, "orps", "orps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_orps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_XORPS_VpsWps, "xorps", "xorps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_xorps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ANDNPS_VpsWps, "andnps", "andnps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andnps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MOVUPS_VpsWps, "movups", "movups", &BX_CPU_C::MOVUPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVUPS_WpsVps, "movups", "movups", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSS_VssWss, "movss", "movss", &BX_CPU_C::MOVSS_VssWssM, &BX_CPU_C::MOVSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSS_WssVss, "movss", "movss", &BX_CPU_C::MOVSS_WssVssM, &BX_CPU_C::MOVSS_VssWssR, BX_ISA_SSE, OP_Wss, OP_Vss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLPS_VpsMq, "movlps", "movlps", &BX_CPU_C::MOVLPS_VpsMq, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Vps, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHLPS_VpsWps, "movhlps", "movhlps", &BX_CPU_C::BxError, &BX_CPU_C::MOVHLPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLPS_MqVps, "movlps", "movlps", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Wq, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHPS_VpsMq, "movhps", "movhps", &BX_CPU_C::MOVHPS_VpsMq, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Vps, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLHPS_VpsWps, "movlhps", "movlhps", &BX_CPU_C::BxError, &BX_CPU_C::MOVLHPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHPS_MqVps, "movhps", "movhps", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Wq, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVAPS_VpsWps, "movaps", "movaps", &BX_CPU_C::MOVAPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVAPS_WpsVps, "movaps", "movaps", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTPS_MpsVps, "movntps", "movntps", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_SSE, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPI2PS_VpsQq, "cvtpi2ps", "cvtpi2ps", &BX_CPU_C::CVTPI2PS_VpsQqM, &BX_CPU_C::CVTPI2PS_VpsQqR, BX_ISA_SSE, OP_Vps, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSI2SS_VssEd, "cvtsi2ss", "cvtsi2ss", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CVTSI2SS_VssEdR, BX_ISA_SSE, OP_Vss, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTPS2PI_PqWps, "cvttps2pi", "cvttps2pi", &BX_CPU_C::CVTTPS2PI_PqWps, &BX_CPU_C::CVTTPS2PI_PqWps, BX_ISA_SSE, OP_Pq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPS2PI_PqWps, "cvtps2pi", "cvtps2pi", &BX_CPU_C::CVTPS2PI_PqWps, &BX_CPU_C::CVTPS2PI_PqWps, BX_ISA_SSE, OP_Pq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTSS2SI_GdWss, "cvttss2si", "cvttss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GdWssR, BX_ISA_SSE, OP_Gd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSS2SI_GdWss, "cvtss2si", "cvtss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GdWssR, BX_ISA_SSE, OP_Gd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UCOMISS_VssWss, "ucomiss", "ucomiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::UCOMISS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_COMISS_VssWss, "comiss", "comiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::COMISS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVMSKPS_GdUps, "movmskps", "movmskps", &BX_CPU_C::BxError, &BX_CPU_C::MOVMSKPS_GdUps, BX_ISA_SSE, OP_Gd, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVMSKPD_GdUpd, "movmskpd", "movmskpd", &BX_CPU_C::BxError, &BX_CPU_C::MOVMSKPD_GdUpd, BX_ISA_SSE2, OP_Gd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_RSQRTPS_VpsWps, "rsqrtps", "rsqrtps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::RSQRTPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_RSQRTSS_VssWss, "rsqrtss", "rsqrtss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::RSQRTSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_RCPPS_VpsWps, "rcpps", "rcpps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::RCPPS_VpsWpsR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_RCPSS_VssWss, "rcpss", "rcpss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::RCPSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSHUFW_PqQqIb, "pshufw", "pshufw", &BX_CPU_C::PSHUFW_PqQqIb, &BX_CPU_C::PSHUFW_PqQqIb, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_Ib, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSHUFLW_VdqWdqIb, "pshuflw", "pshuflw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PSHUFLW_VdqWdqIbR, BX_ISA_SSE, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PINSRW_PqEwIb, "pinsrw", "pinsrw", &BX_CPU_C::PINSRW_PqEwIb, &BX_CPU_C::PINSRW_PqEwIb, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Ew, OP_Ib, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PEXTRW_GdNqIb, "pextrw", "pextrw", &BX_CPU_C::BxError, &BX_CPU_C::PEXTRW_GdNqIb, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Gd, OP_Qq, OP_Ib, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_SHUFPS_VpsWpsIb, "shufps", "shufps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHUFPS_VpsWpsIbR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVMSKB_GdNq, "pmovmskb", "pmovmskb", &BX_CPU_C::BxError, &BX_CPU_C::PMOVMSKB_GdNq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Gd, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMINUB_PqQq, "pminub", "pminub", &BX_CPU_C::PMINUB_PqQq, &BX_CPU_C::PMINUB_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMAXUB_PqQq, "pmaxub", "pmaxub", &BX_CPU_C::PMAXUB_PqQq, &BX_CPU_C::PMAXUB_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PAVGB_PqQq, "pavgb", "pavgb", &BX_CPU_C::PAVGB_PqQq, &BX_CPU_C::PAVGB_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PAVGW_PqQq, "pavgw", "pavgw", &BX_CPU_C::PAVGW_PqQq, &BX_CPU_C::PAVGW_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULHUW_PqQq, "pmulhuw", "pmulhuw", &BX_CPU_C::PMULHUW_PqQq, &BX_CPU_C::PMULHUW_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVNTQ_MqPq, "movntq", "movntq", &BX_CPU_C::MOVQ_QqPqM, &BX_CPU_C::BxError, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Qq, OP_Pq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMINSW_PqQq, "pminsw", "pminsw", &BX_CPU_C::PMINSW_PqQq, &BX_CPU_C::PMINSW_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMAXSW_PqQq, "pmaxsw", "pmaxsw", &BX_CPU_C::PMAXSW_PqQq, &BX_CPU_C::PMAXSW_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSADBW_PqQq, "psadbw", "psadbw", &BX_CPU_C::PSADBW_PqQq, &BX_CPU_C::PSADBW_PqQq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MASKMOVQ_PqNq, "maskmovq", "maskmovq", &BX_CPU_C::BxError, &BX_CPU_C::MASKMOVQ_PqNq, BX_ISA_SSE/* | BX_ISA_3DNOW */, OP_NONE, OP_Pq, OP_Qq, OP_sYq, BX_PREPARE_MMX)

bx_define_opcode(BX_IA_ADDPS_VpsWps, "addps", "addps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_addps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDPD_VpdWpd, "addpd", "addpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_addpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDSS_VssWss, "addss", "addss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::ADDSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDSD_VsdWsd, "addsd", "addsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::ADDSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MULPS_VpsWps, "mulps", "mulps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_mulps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MULPD_VpdWpd, "mulpd", "mulpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_mulpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MULSS_VssWss, "mulss", "mulss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::MULSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MULSD_VsdWsd, "mulsd", "mulsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::MULSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_SUBPS_VpsWps, "subps", "subps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_subps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SUBPD_VpdWpd, "subpd", "subpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_subpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SUBSS_VssWss, "subss", "subss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::SUBSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SUBSD_VsdWsd, "subsd", "subsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::SUBSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MINPS_VpsWps, "minps", "minps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_minps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MINPD_VpdWpd, "minpd", "minpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_minpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MINSS_VssWss, "minss", "minss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::MINSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MINSD_VsdWsd, "minsd", "minsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::MINSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_DIVPS_VpsWps, "divps", "divps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_divps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_DIVPD_VpdWpd, "divpd", "divpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_divpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_DIVSS_VssWss, "divss", "divss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::DIVSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_DIVSD_VsdWsd, "divsd", "divsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::DIVSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MAXPS_VpsWps, "maxps", "maxps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_maxps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MAXPD_VpdWpd, "maxpd", "maxpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_maxpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MAXSS_VssWss, "maxss", "maxss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::MAXSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MAXSD_VsdWsd, "maxsd", "maxsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::MAXSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_SQRTPS_VpsWps, "sqrtps", "sqrtps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_1OP<xmm_sqrtps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SQRTPD_VpdWpd, "sqrtpd", "sqrtpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_1OP<xmm_sqrtpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SQRTSS_VssWss, "sqrtss", "sqrtss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::SQRTSS_VssWssR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SQRTSD_VsdWsd, "sqrtsd", "sqrtsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::SQRTSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_CMPPS_VpsWpsIb, "cmpps", "cmpps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CMPPS_VpsWpsIbR, BX_ISA_SSE, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CMPPD_VpdWpdIb, "cmppd", "cmppd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CMPPD_VpdWpdIbR, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CMPSS_VssWssIb, "cmpss", "cmpss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CMPSS_VssWssIbR, BX_ISA_SSE, OP_Vss, OP_Wss, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CMPSD_VsdWsdIb, "cmpsd", "cmpsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CMPSD_VsdWsdIbR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_Ib, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_CVTPS2PD_VpdWps, "cvtps2pd", "cvtps2pd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTPS2PD_VpdWpsR, BX_ISA_SSE2, OP_Vpd, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPD2PS_VpsWpd, "cvtpd2ps", "cvtpd2ps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTPD2PS_VpsWpdR, BX_ISA_SSE2, OP_Vps, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSS2SD_VsdWss, "cvtss2sd", "cvtss2sd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SD_VsdWssR, BX_ISA_SSE2, OP_Vsd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSD2SS_VssWsd, "cvtsd2ss", "cvtsd2ss", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SS_VssWsdR, BX_ISA_SSE2, OP_Vss, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_MOVSD_VsdWsd, "movsd", "movsd", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVSD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSD_WsdVsd, "movsd", "movsd", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVSD_VsdWsdR, BX_ISA_SSE2, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPI2PD_VpdQq, "cvtpi2pd", "cvtpi2pd", &BX_CPU_C::CVTPI2PD_VpdQqM, &BX_CPU_C::CVTPI2PD_VpdQqR, BX_ISA_SSE2, OP_Vpd, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSI2SD_VsdEd, "cvtsi2sd", "cvtsi2sd", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CVTSI2SD_VsdEdR, BX_ISA_SSE2, OP_Vsd, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTPD2PI_PqWpd, "cvttpd2pi", "cvttpd2pi", &BX_CPU_C::CVTTPD2PI_PqWpd, &BX_CPU_C::CVTTPD2PI_PqWpd, BX_ISA_SSE2, OP_Pq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTSD2SI_GdWsd, "cvttsd2si", "cvttsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GdWsdR, BX_ISA_SSE2, OP_Gd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPD2PI_PqWpd, "cvtpd2pi", "cvtpd2pi", &BX_CPU_C::CVTPD2PI_PqWpd, &BX_CPU_C::CVTPD2PI_PqWpd, BX_ISA_SSE2, OP_Pq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSD2SI_GdWsd, "cvtsd2si", "cvtsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GdWsdR, BX_ISA_SSE2, OP_Gd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UCOMISD_VsdWsd, "ucomisd", "ucomisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::UCOMISD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_COMISD_VsdWsd, "comisd", "comisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::COMISD_VsdWsdR, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTDQ2PS_VpsWdq, "cvtdq2ps", "cvtdq2ps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTDQ2PS_VpsWdqR, BX_ISA_SSE2, OP_Vps, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPS2DQ_VdqWps, "cvtps2dq", "cvtps2dq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTPS2DQ_VdqWpsR, BX_ISA_SSE2, OP_Vdq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTPS2DQ_VdqWps, "cvttps2dq", "cvttps2dq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTTPS2DQ_VdqWpsR, BX_ISA_SSE2, OP_Vdq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UNPCKHPD_VpdWdq, "unpckhpd", "unpckhpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpckhpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UNPCKLPD_VpdWdq, "unpcklpd", "unpcklpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpcklpd>, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKHDQ_VdqWdq, "punpckhdq", "punpckhdq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpckhps>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKLDQ_VdqWdq, "punpckldq", "punpckldq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpcklps>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVAPD_VpdWpd, "movapd", "movapd", &BX_CPU_C::MOVAPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVAPD_WpdVpd, "movapd", "movapd", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQA_VdqWdq, "movdqa", "movdqa", &BX_CPU_C::MOVAPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQA_WdqVdq, "movdqa", "movdqa", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQU_VdqWdq, "movdqu", "movdqu", &BX_CPU_C::MOVUPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQU_WdqVdq, "movdqu", "movdqu", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHPD_MqVsd, "movhpd", "movhpd", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Wsd, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVHPD_VsdMq, "movhpd", "movhpd", &BX_CPU_C::MOVHPS_VpsMq, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLPD_MqVsd, "movlpd", "movlpd", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVLPD_VsdMq, "movlpd", "movlpd", &BX_CPU_C::MOVLPS_VpsMq, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTDQ_MdqVdq, "movntdq", "movntdq", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTPD_MpdVpd, "movntpd", "movntpd", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVUPD_VpdWpd, "movupd", "movupd", &BX_CPU_C::MOVUPS_VpsWpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVUPD_WpdVpd, "movupd", "movupd", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::MOVAPS_VpsWpsR, BX_ISA_SSE2, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ANDNPD_VpdWpd, "andnpd", "andnpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andnps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ANDPD_VpdWpd, "andpd", "andpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ORPD_VpdWpd, "orpd", "orpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_orps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_XORPD_VpdWpd, "xorpd", "xorpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_xorps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PAND_VdqWdq, "pand", "pand", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PANDN_VdqWdq, "pandn", "pandn", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_andnps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_POR_VdqWdq, "por", "por", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_orps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PXOR_VdqWdq, "pxor", "pxor", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_xorps>, BX_ISA_SSE2, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKLBW_VdqWdq, "punpcklbw", "punpcklbw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_punpcklbw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKLWD_VdqWdq, "punpcklwd", "punpcklwd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_punpcklwd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UNPCKLPS_VpsWdq, "unpcklps", "unpcklps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpcklps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_UNPCKHPS_VpsWdq, "unpckhps", "unpckhps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpckhps>, BX_ISA_SSE, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PACKUSWB_VdqWdq, "packuswb", "packuswb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_packuswb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PACKSSWB_VdqWdq, "packsswb", "packsswb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_packsswb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPGTB_VdqWdq, "pcmpgtb", "pcmpgtb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpgtb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPGTW_VdqWdq, "pcmpgtw", "pcmpgtw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpgtw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPGTD_VdqWdq, "pcmpgtd", "pcmpgtd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpgtd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKHBW_VdqWdq, "punpckhbw", "punpckhbw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_punpckhbw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKHWD_VdqWdq, "punpckhwd", "punpckhwd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_punpckhwd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PACKSSDW_VdqWdq, "packssdw", "packssdw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_packssdw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKLQDQ_VdqWdq, "punpcklqdq", "punpcklqdq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpcklpd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PUNPCKHQDQ_VdqWdq, "punpckhqdq", "punpckhqdq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_unpckhpd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVD_VdqEd, "movd", "movd", &BX_CPU_C::MOVSS_VssWssM, &BX_CPU_C::MOVD_VdqEdR, BX_ISA_SSE2, OP_Vdq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSHUFD_VdqWdqIb, "pshufd", "pshufd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PSHUFD_VdqWdqIbR, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSHUFHW_VdqWdqIb, "pshufhw", "pshufhw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PSHUFHW_VdqWdqIbR, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPEQB_VdqWdq, "pcmpeqb", "pcmpeqb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpeqb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPEQW_VdqWdq, "pcmpeqw", "pcmpeqw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpeqw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPEQD_VdqWdq, "pcmpeqd", "pcmpeqd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpeqd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVD_EdVd, "movd", "movd", &BX_CPU_C::MOVSS_WssVssM, &BX_CPU_C::MOVD_EdVdR, BX_ISA_SSE2, OP_Ed, OP_Vd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVQ_VqWq, "movq", "movq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_SSE2, OP_Vq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTI_Op32_MdGd, "movnti", "movnti", &BX_CPU_C::MOV32_EdGdM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PINSRW_VdqEwIb, "pinsrw", "pinsrw", &BX_CPU_C::PINSRW_VdqEwIbM, &BX_CPU_C::PINSRW_VdqEwIbR, BX_ISA_SSE2, OP_Vdq, OP_Ew, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRW_GdUdqIb, "pextrw", "pextrw", &BX_CPU_C::BxError, &BX_CPU_C::PEXTRW_GdUdqIb, BX_ISA_SSE2, OP_Gd, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHUFPD_VpdWpdIb, "shufpd", "shufpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHUFPD_VpdWpdIbR, BX_ISA_SSE2, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLW_VdqWdq, "psrlw", "psrlw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psrlw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLD_VdqWdq, "psrld", "psrld", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psrld>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLQ_VdqWdq, "psrlq", "psrlq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psrlq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDQ_PqQq, "paddq", "paddq", &BX_CPU_C::PADDQ_PqQq, &BX_CPU_C::PADDQ_PqQq, BX_ISA_SSE2, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSUBQ_PqQq, "psubq", "psubq", &BX_CPU_C::PSUBQ_PqQq, &BX_CPU_C::PSUBQ_PqQq, BX_ISA_SSE2, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PADDQ_VdqWdq, "paddq", "paddq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULLW_VdqWdq, "pmullw", "pmullw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmullw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVQ_WqVq, "movq", "movq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_SSE2, OP_Wq, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVDQ2Q_PqUdq, "movdq2q", "movdq2q", &BX_CPU_C::BxError, &BX_CPU_C::MOVDQ2Q_PqUdq, BX_ISA_SSE2, OP_Pq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVQ2DQ_VdqQq, "movq2dq", "movq2dq", &BX_CPU_C::BxError, &BX_CPU_C::MOVQ2DQ_VdqQq, BX_ISA_SSE2, OP_Vdq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVMSKB_GdUdq, "pmovmskb", "pmovmskb", &BX_CPU_C::BxError, &BX_CPU_C::PMOVMSKB_GdUdq, BX_ISA_SSE2, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBUSB_VdqWdq, "psubusb", "psubusb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubusb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBUSW_VdqWdq, "psubusw", "psubusw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubusw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINUB_VdqWdq, "pminub", "pminub", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminub>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDUSB_VdqWdq, "paddusb", "paddusb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddusb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDUSW_VdqWdq, "paddusw", "paddusw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddusw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXUB_VdqWdq, "pmaxub", "pmaxub", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxub>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PAVGB_VdqWdq, "pavgb", "pavgb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pavgb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRAW_VdqWdq, "psraw", "psraw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psraw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRAD_VdqWdq, "psrad", "psrad", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psrad>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PAVGW_VdqWdq, "pavgw", "pavgw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pavgw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULHUW_VdqWdq, "pmulhuw", "pmulhuw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmulhuw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULHW_VdqWdq, "pmulhw", "pmulhw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmulhw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTPD2DQ_VqWpd, "cvttpd2dq", "cvttpd2dq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTTPD2DQ_VqWpdR, BX_ISA_SSE2, OP_Vq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTPD2DQ_VqWpd, "cvtpd2dq", "cvtpd2dq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::CVTPD2DQ_VqWpdR, BX_ISA_SSE2, OP_Vq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTDQ2PD_VpdWq, "cvtdq2pd", "cvtdq2pd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTDQ2PD_VpdWqR, BX_ISA_SSE2, OP_Vpd, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBSB_VdqWdq, "psubsb", "psubsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubsb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBSW_VdqWdq, "psubsw", "psubsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubsw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINSW_VdqWdq, "pminsw", "pminsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminsw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXSW_VdqWdq, "pmaxsw", "pmaxsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxsw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDSB_VdqWdq, "paddsb", "paddsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddsb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDSW_VdqWdq, "paddsw", "paddsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddsw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLW_VdqWdq, "psllw", "psllw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psllw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLD_VdqWdq, "pslld", "pslld", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_pslld>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLQ_VdqWdq, "psllq", "psllq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PSHIFT<xmm_psllq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULUDQ_PqQq, "pmuludq", "pmuludq", &BX_CPU_C::PMULUDQ_PqQq, &BX_CPU_C::PMULUDQ_PqQq, BX_ISA_SSE2, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULUDQ_VdqWdq, "pmuludq", "pmuludq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmuludq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMADDWD_VdqWdq, "pmaddwd", "pmaddwd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaddwd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSADBW_VdqWdq, "psadbw", "psadbw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psadbw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MASKMOVDQU_VdqUdq, "maskmovdqu", "maskmovdqu", &BX_CPU_C::BxError, &BX_CPU_C::MASKMOVDQU_VdqUdq, BX_ISA_SSE2, OP_NONE, OP_Vdq, OP_Wdq, OP_sYdq, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBB_VdqWdq, "psubb", "psubb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBW_VdqWdq, "psubw", "psubw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBD_VdqWdq, "psubd", "psubd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSUBQ_VdqWdq, "psubq", "psubq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psubq>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDB_VdqWdq, "paddb", "paddb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddb>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDW_VdqWdq, "paddw", "paddw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddw>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PADDD_VdqWdq, "paddd", "paddd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_paddd>, BX_ISA_SSE2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLW_UdqIb, "psrlw", "psrlw", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrlw>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRAW_UdqIb, "psraw", "psraw", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psraw>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLW_UdqIb, "psllw", "psllw", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psllw>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLD_UdqIb, "psrld", "psrld", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrld>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRAD_UdqIb, "psrad", "psrad", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrad>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLD_UdqIb, "pslld", "pslld", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_pslld>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLQ_UdqIb, "psrlq", "psrlq", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrlq>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLQ_UdqIb, "psllq", "psllq", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psllq>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSRLDQ_UdqIb, "psrldq", "psrldq", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_psrldq>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSLLDQ_UdqIb, "pslldq", "pslldq", &BX_CPU_C::BxError, &BX_CPU_C::HANDLE_SSE_SHIFT_IMM<xmm_pslldq>, BX_ISA_SSE2, OP_Wdq, OP_Ib, OP_NONE, OP_NONE, BX_PREPARE_SSE)

bx_define_opcode(BX_IA_LFENCE, "lfence", "lfence", &BX_CPU_C::BxError, &BX_CPU_C::NOP, BX_ISA_SSE2, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SFENCE, "sfence", "sfence", &BX_CPU_C::BxError, &BX_CPU_C::NOP, BX_ISA_SSE, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MFENCE, "mfence", "mfence", &BX_CPU_C::BxError, &BX_CPU_C::NOP, BX_ISA_SSE2, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
// SSE and SSE2

// SSE3
bx_define_opcode(BX_IA_MOVDDUP_VpdWq, "movddup", "movddup", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::MOVDDUP_VpdWqR, BX_ISA_SSE3, OP_Vpd, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSLDUP_VpsWps, "movsldup", "movsldup", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::MOVSLDUP_VpsWpsR, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVSHDUP_VpsWps, "movshdup", "movshdup", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::MOVSHDUP_VpsWpsR, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_HADDPD_VpdWpd, "haddpd", "haddpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_haddpd>, BX_ISA_SSE3, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_HADDPS_VpsWps, "haddps", "haddps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_haddps>, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_HSUBPD_VpdWpd, "hsubpd", "hsubpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_hsubpd>, BX_ISA_SSE3, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_HSUBPS_VpsWps, "hsubps", "hsubps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_hsubps>, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDSUBPD_VpdWpd, "addsubpd", "addsubpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_addsubpd>, BX_ISA_SSE3, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ADDSUBPS_VpsWps, "addsubps", "addsubps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_PFP_2OP<xmm_addsubps>, BX_ISA_SSE3, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_LDDQU_VdqMdq, "lddqu", "lddqu", &BX_CPU_C::MOVUPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_SSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
// SSE3

#if BX_CPU_LEVEL >= 6
// SSSE3
bx_define_opcode(BX_IA_PSHUFB_PqQq, "pshufb", "pshufb", &BX_CPU_C::PSHUFB_PqQq, &BX_CPU_C::PSHUFB_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHADDW_PqQq, "phaddw", "phaddw", &BX_CPU_C::PHADDW_PqQq, &BX_CPU_C::PHADDW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHADDD_PqQq, "phaddd", "phaddd", &BX_CPU_C::PHADDD_PqQq, &BX_CPU_C::PHADDD_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHADDSW_PqQq, "phaddsw", "phaddsw", &BX_CPU_C::PHADDSW_PqQq, &BX_CPU_C::PHADDSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMADDUBSW_PqQq, "pmaddubsw", "pmaddubsw", &BX_CPU_C::PMADDUBSW_PqQq, &BX_CPU_C::PMADDUBSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHSUBSW_PqQq, "phsubsw", "phsubsw", &BX_CPU_C::PHSUBSW_PqQq, &BX_CPU_C::PHSUBSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHSUBW_PqQq, "phsubw", "phsubw", &BX_CPU_C::PHSUBW_PqQq, &BX_CPU_C::PHSUBW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PHSUBD_PqQq, "phsubd", "phsubd", &BX_CPU_C::PHSUBD_PqQq, &BX_CPU_C::PHSUBD_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSIGNB_PqQq, "psignb", "psignb", &BX_CPU_C::PSIGNB_PqQq, &BX_CPU_C::PSIGNB_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSIGNW_PqQq, "psignw", "psignw", &BX_CPU_C::PSIGNW_PqQq, &BX_CPU_C::PSIGNW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PSIGND_PqQq, "psignd", "psignd", &BX_CPU_C::PSIGND_PqQq, &BX_CPU_C::PSIGND_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PMULHRSW_PqQq, "pmulhrsw", "pmulhrsw", &BX_CPU_C::PMULHRSW_PqQq, &BX_CPU_C::PMULHRSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PABSB_PqQq, "pabsb", "pabsb", &BX_CPU_C::PABSB_PqQq, &BX_CPU_C::PABSB_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PABSW_PqQq, "pabsw", "pabsw", &BX_CPU_C::PABSW_PqQq, &BX_CPU_C::PABSW_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PABSD_PqQq, "pabsd", "pabsd", &BX_CPU_C::PABSD_PqQq, &BX_CPU_C::PABSD_PqQq, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_PALIGNR_PqQqIb, "palignr", "palignr", &BX_CPU_C::PALIGNR_PqQqIb, &BX_CPU_C::PALIGNR_PqQqIb, BX_ISA_SSSE3, OP_Pq, OP_Qq, OP_Ib, OP_NONE, BX_PREPARE_MMX)

bx_define_opcode(BX_IA_PSHUFB_VdqWdq, "pshufb", "pshufb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PSHUFB_VdqWdqR, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHADDW_VdqWdq, "phaddw", "phaddw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phaddw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHADDD_VdqWdq, "phaddd", "phaddd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phaddd>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHADDSW_VdqWdq, "phaddsw", "phaddsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phaddsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMADDUBSW_VdqWdq, "pmaddubsw", "pmaddubsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaddubsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHSUBSW_VdqWdq, "phsubsw", "phsubsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phsubsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHSUBW_VdqWdq, "phsubw", "phsubw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phsubw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHSUBD_VdqWdq, "phsubd", "phsubd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_phsubd>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSIGNB_VdqWdq, "psignb", "psignb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psignb>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSIGNW_VdqWdq, "psignw", "psignw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psignw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PSIGND_VdqWdq, "psignd", "psignd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_psignd>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULHRSW_VdqWdq, "pmulhrsw", "pmulhrsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmulhrsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PABSB_VdqWdq, "pabsb", "pabsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_1OP<xmm_pabsb>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PABSW_VdqWdq, "pabsw", "pabsw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_1OP<xmm_pabsw>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PABSD_VdqWdq, "pabsd", "pabsd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_1OP<xmm_pabsd>, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PALIGNR_VdqWdqIb, "palignr", "palignr", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PALIGNR_VdqWdqIbR, BX_ISA_SSSE3, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
// SSSE3

// SSE4.1
bx_define_opcode(BX_IA_PBLENDVB_VdqWdq, "pblendvb", "pblendvb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PBLENDVB_VdqWdqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_BLENDVPS_VpsWps, "blendvps", "blendvps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::BLENDVPS_VpsWpsR, BX_ISA_SSE4_1, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_BLENDVPD_VpdWpd, "blendvpd", "blendvpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::BLENDVPD_VpdWpdR, BX_ISA_SSE4_1, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXBW_VdqWq, "pmovsxbw", "pmovsxbw", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXBW_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXBD_VdqWd, "pmovsxbd", "pmovsxbd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVSXBD_VdqWdR, BX_ISA_SSE4_1, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXBQ_VdqWw, "pmovsxbq", "pmovsxbq", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::PMOVSXBQ_VdqWwR, BX_ISA_SSE4_1, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXWD_VdqWq, "pmovsxwd", "pmovsxwd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXWD_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXWQ_VdqWd, "pmovsxwq", "pmovsxwq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVSXWQ_VdqWdR, BX_ISA_SSE4_1, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVSXDQ_VdqWq, "pmovsxdq", "pmovsxdq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXDQ_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXBW_VdqWq, "pmovzxbw", "pmovzxbw", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXBW_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXBD_VdqWd, "pmovzxbd", "pmovzxbd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVZXBD_VdqWdR, BX_ISA_SSE4_1, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXBQ_VdqWw, "pmovzxbq", "pmovzxbq", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::PMOVZXBQ_VdqWwR, BX_ISA_SSE4_1, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXWD_VdqWq, "pmovzxwd", "pmovzxwd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXWD_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXWQ_VdqWd, "pmovzxwq", "pmovzxwq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVZXWQ_VdqWdR, BX_ISA_SSE4_1, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMOVZXDQ_VdqWq, "pmovzxdq", "pmovzxdq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXDQ_VdqWqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PTEST_VdqWdq, "ptest", "ptest", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PTEST_VdqWdqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULDQ_VdqWdq, "pmuldq", "pmuldq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmuldq>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPEQQ_VdqWdq, "pcmpeqq", "pcmpeqq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpeqq>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PACKUSDW_VdqWdq, "packusdw", "packusdw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_packusdw>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINSB_VdqWdq, "pminsb", "pminsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminsb>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINSD_VdqWdq, "pminsd", "pminsd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminsd>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINUW_VdqWdq, "pminuw", "pminuw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminuw>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMINUD_VdqWdq, "pminud", "pminud", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pminud>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXSB_VdqWdq, "pmaxsb", "pmaxsb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxsb>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXSD_VdqWdq, "pmaxsd", "pmaxsd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxsd>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXUW_VdqWdq, "pmaxuw", "pmaxuw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxuw>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMAXUD_VdqWdq, "pmaxud", "pmaxud", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmaxud>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PMULLD_VdqWdq, "pmulld", "pmulld", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pmulld>, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PHMINPOSUW_VdqWdq, "phminposuw", "phminposuw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PHMINPOSUW_VdqWdqR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ROUNDPS_VpsWpsIb, "roundps", "roundps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::ROUNDPS_VpsWpsIbR, BX_ISA_SSE4_1, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ROUNDPD_VpdWpdIb, "roundpd", "roundpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::ROUNDPD_VpdWpdIbR, BX_ISA_SSE4_1, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ROUNDSS_VssWssIb, "roundss", "roundss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::ROUNDSS_VssWssIbR, BX_ISA_SSE4_1, OP_Vss, OP_Wss, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_ROUNDSD_VsdWsdIb, "roundsd", "roundsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::ROUNDSD_VsdWsdIbR, BX_ISA_SSE4_1, OP_Vsd, OP_Wsd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_BLENDPS_VpsWpsIb, "blendps", "blendps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::BLENDPS_VpsWpsIbR, BX_ISA_SSE4_1, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_BLENDPD_VpdWpdIb, "blendpd", "blendpd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::BLENDPD_VpdWpdIbR, BX_ISA_SSE4_1, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PBLENDW_VdqWdqIb, "pblendw", "pblendw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PBLENDW_VdqWdqIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRB_EdVdqIbR, "pextrb", "pextrb", NULL, &BX_CPU_C::PEXTRB_EdVdqIbR, BX_ISA_SSE4_1, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRB_MbVdqIbM, "pextrb", "pextrb", &BX_CPU_C::PEXTRB_MbVdqIbM, NULL, BX_ISA_SSE4_1, OP_Mb, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRW_EdVdqIbR, "pextrw", "pextrw", NULL, &BX_CPU_C::PEXTRW_EdVdqIbR, BX_ISA_SSE4_1, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRW_MwVdqIbM, "pextrw", "pextrw", &BX_CPU_C::PEXTRW_MwVdqIbM, NULL, BX_ISA_SSE4_1, OP_Mw, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PEXTRD_EdVdqIb, "pextrd", "pextrd", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_SSE4_1, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_PEXTRQ_EqVdqIb, "pextrq", "pextrq", &BX_CPU_C::PEXTRQ_EqVdqIbM, &BX_CPU_C::PEXTRQ_EqVdqIbR, BX_ISA_SSE4_1, OP_Eq, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
#endif
bx_define_opcode(BX_IA_EXTRACTPS_EdVpsIb, "extractps", "extractps", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_SSE4_1, OP_Ed, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PINSRB_VdqEbIb, "pinsrb", "pinsrb", &BX_CPU_C::PINSRB_VdqEbIbM, &BX_CPU_C::PINSRB_VdqEbIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Ew, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_INSERTPS_VpsWssIb, "insertps", "insertps", &BX_CPU_C::INSERTPS_VpsWssIbM, &BX_CPU_C::INSERTPS_VpsWssIbR, BX_ISA_SSE4_1, OP_Vps, OP_Wss, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PINSRD_VdqEdIb, "pinsrd", "pinsrd", &BX_CPU_C::PINSRD_VdqEdIbM, &BX_CPU_C::PINSRD_VdqEdIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Ed, OP_Ib, OP_NONE, BX_PREPARE_SSE)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_PINSRQ_VdqEqIb, "pinsrq", "pinsrq", &BX_CPU_C::PINSRQ_VdqEqIbM, &BX_CPU_C::PINSRQ_VdqEqIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Eq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
#endif
bx_define_opcode(BX_IA_DPPS_VpsWpsIb, "dpps", "dpps", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::DPPS_VpsWpsIbR, BX_ISA_SSE4_1, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_DPPD_VpdWpdIb, "dppd", "dppd", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::DPPD_VpdHpdWpdIbR, BX_ISA_SSE4_1, OP_Vpd, OP_Vpd, OP_Wpd, OP_Ib, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MPSADBW_VdqWdqIb, "mpsadbw", "mpsadbw", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::MPSADBW_VdqWdqIbR, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTDQA_VdqMdq, "movntdqa", "movntdqa", &BX_CPU_C::MOVAPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_SSE4_1, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
// SSE4.1

// SSE4.2
bx_define_opcode(BX_IA_CRC32_GdEb, "crc32", "crc32b", &BX_CPU_C::LOAD_Eb, &BX_CPU_C::CRC32_GdEbR, BX_ISA_SSE4_2, OP_Gd, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CRC32_GdEw, "crc32", "crc32w", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CRC32_GdEwR, BX_ISA_SSE4_2, OP_Gd, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CRC32_GdEd, "crc32", "crc32l", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CRC32_GdEdR, BX_ISA_SSE4_2, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_CRC32_GdEq, "crc32", "crc32q", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CRC32_GdEqR, BX_ISA_SSE4_2, OP_Gd, OP_Eq, OP_NONE, OP_NONE, 0)
#endif
bx_define_opcode(BX_IA_PCMPGTQ_VdqWdq, "pcmpgtq", "pcmpgtq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::HANDLE_SSE_2OP<xmm_pcmpgtq>, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPESTRM_VdqWdqIb, "pcmpestrm", "pcmpestrm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPESTRM_VdqWdqIbR, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPESTRI_VdqWdqIb, "pcmpestri", "pcmpestri", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPESTRI_VdqWdqIbR, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPISTRM_VdqWdqIb, "pcmpistrm", "pcmpistrm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPISTRM_VdqWdqIbR, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCMPISTRI_VdqWdqIb, "pcmpistri", "pcmpistri", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPISTRI_VdqWdqIbR, BX_ISA_SSE4_2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
// SSE4.2

// MOVBE instruction
bx_define_opcode(BX_IA_MOVBE_GwMw, "movbe", "movbew", &BX_CPU_C::MOVBE_GwMw, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVBE_GdMd, "movbe", "movbel", &BX_CPU_C::MOVBE_GdMd, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVBE_GqMq, "movbe", "movbeq", &BX_CPU_C::MOVBE_GqMq, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif
bx_define_opcode(BX_IA_MOVBE_MwGw, "movbe", "movbew", &BX_CPU_C::MOVBE_MwGw, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Ew, OP_Gw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVBE_MdGd, "movbe", "movbel", &BX_CPU_C::MOVBE_MdGd, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVBE_MqGq, "movbe", "movbeq", &BX_CPU_C::MOVBE_MqGq, &BX_CPU_C::BxError, BX_ISA_MOVBE, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
#endif
// MOVBE instruction

#endif // BX_CPU_LEVEL >= 6

// POPCNT instruction
bx_define_opcode(BX_IA_POPCNT_GwEw, "popcnt", "popcntw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::POPCNT_GwEwR, BX_ISA_SSE4_2, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPCNT_GdEd, "popcnt", "popcntl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::POPCNT_GdEdR, BX_ISA_SSE4_2, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_POPCNT_GqEq, "popcnt", "popcntq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::POPCNT_GqEqR, BX_ISA_SSE4_2, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif
// POPCNT instruction

// XSAVE extensions
bx_define_opcode(BX_IA_XRSTOR, "xrstor", "xrstor", &BX_CPU_C::XRSTOR, &BX_CPU_C::BxError, BX_ISA_XSAVE, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSAVE, "xsave", "xsave", &BX_CPU_C::XSAVE, &BX_CPU_C::BxError, BX_ISA_XSAVE, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSAVEC, "xsavec", "xsavec", &BX_CPU_C::XSAVEC, &BX_CPU_C::BxError, BX_ISA_XSAVEC, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSETBV, "xsetbv", "xsetbv", &BX_CPU_C::BxError, &BX_CPU_C::XSETBV, BX_ISA_XSAVE, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_XGETBV, "xgetbv", "xgetbv", &BX_CPU_C::BxError, &BX_CPU_C::XGETBV, BX_ISA_XSAVE, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSAVEOPT, "xsaveopt", "xsaveopt", &BX_CPU_C::XSAVE, &BX_CPU_C::BxError, BX_ISA_XSAVEOPT, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XSAVES, "xsaves", "xsaves", &BX_CPU_C::XSAVEC, &BX_CPU_C::BxError, BX_ISA_XSAVES, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XRSTORS, "xrstors", "xrstors", &BX_CPU_C::XRSTOR, &BX_CPU_C::BxError, BX_ISA_XSAVES, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)

#if BX_CPU_LEVEL >= 6

// AES instructions
bx_define_opcode(BX_IA_AESIMC_VdqWdq, "aesimc", "aesimc", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESIMC_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESKEYGENASSIST_VdqWdqIb, "aeskeygenassist", "aeskeygenassist", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESKEYGENASSIST_VdqWdqIbR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESENC_VdqWdq, "aesenc", "aesenc", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESENC_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESENCLAST_VdqWdq, "aesenclast", "aesenclast", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESENCLAST_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESDEC_VdqWdq, "aesdec", "aesdec", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESDEC_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_AESDECLAST_VdqWdq, "aesdeclast", "aesdeclast", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::AESDECLAST_VdqWdqR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_PCLMULQDQ_VdqWdqIb, "pclmulqdq", "pclmulqdq", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::PCLMULQDQ_VdqWdqIbR, BX_ISA_AES_PCLMULQDQ, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)

// SHA instructions
bx_define_opcode(BX_IA_SHA1NEXTE_VdqWdq, "sha1nexte", "sha1nexte", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA1NEXTE_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA1MSG1_VdqWdq, "sha1msg1", "sha1msg1", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA1MSG1_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA1MSG2_VdqWdq, "sha1msg2", "sha1msg2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA1MSG2_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA256RNDS2_VdqWdq, "sha256rnds2", "sha256rnds2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA256RNDS2_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA256MSG1_VdqWdq, "sha256msg1", "sha256msg1", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA256MSG1_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA256MSG2_VdqWdq, "sha256msg2", "sha256msg2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA256MSG2_VdqWdqR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_SHA1RNDS4_VdqWdqIb, "sha1rnds4", "sha1rnds4", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::SHA1RNDS4_VdqWdqIbR, BX_ISA_SHA, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)

// GFNI instructions
bx_define_opcode(BX_IA_GF2P8AFFINEQB_VdqWdqIb, "gf2p8affineqb", "gf2p8affineqb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::GF2P8AFFINEQB_VdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_GF2P8AFFINEINVQB_VdqWdqIb, "gf2p8affineinvqb", "gf2p8affineinvqb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::GF2P8AFFINEINVQB_VdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_GF2P8MULB_VdqWdq, "gf2p8mulb", "gf2p8mulb", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::GF2P8MULB_VdqWdqR, BX_ISA_GFNI, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)

#endif

#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_LAHF_LM, "lahf", "lahf", NULL, &BX_CPU_C::LAHF, BX_ISA_LM_LAHF_SAHF, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAHF_LM, "sahf", "sahf", NULL, &BX_CPU_C::SAHF, BX_ISA_LM_LAHF_SAHF, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SYSCALL, "syscall", "syscall", NULL, &BX_CPU_C::SYSCALL, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SYSRET, "sysret", "sysret", NULL, &BX_CPU_C::SYSRET, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_XOR_EqGq_ZERO_IDIOM, "xor", "xorq", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GqEq_ZERO_IDIOM, "xor", "xorq", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_EqGq_ZERO_IDIOM, "sub", "subq", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GqEq_ZERO_IDIOM, "sub", "subq", NULL, &BX_CPU_C::ZERO_IDIOM_GdR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_GqEq, "add", "addq", &BX_CPU_C::ADD_GqEqM, &BX_CPU_C::ADD_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_GqEq, "or", "orq", &BX_CPU_C::OR_GqEqM, &BX_CPU_C::OR_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADC_GqEq, "adc", "adcq", &BX_CPU_C::ADC_GqEqM, &BX_CPU_C::ADC_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_GqEq, "sbb", "sbbq", &BX_CPU_C::SBB_GqEqM, &BX_CPU_C::SBB_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_GqEq, "and", "andq", &BX_CPU_C::AND_GqEqM, &BX_CPU_C::AND_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_GqEq, "sub", "subq", &BX_CPU_C::SUB_GqEqM, &BX_CPU_C::SUB_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_GqEq, "xor", "xorq", &BX_CPU_C::XOR_GqEqM, &BX_CPU_C::XOR_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_GqEq, "cmp", "cmpq", &BX_CPU_C::CMP_GqEqM, &BX_CPU_C::CMP_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EqGq, "add", "addq", &BX_CPU_C::ADD_EqGqM, &BX_CPU_C::ADD_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EqGq, "or", "orq", &BX_CPU_C::OR_EqGqM, &BX_CPU_C::OR_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EqGq, "adc", "adcq", &BX_CPU_C::ADC_EqGqM, &BX_CPU_C::ADC_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EqGq, "sbb", "sbbq", &BX_CPU_C::SBB_EqGqM, &BX_CPU_C::SBB_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EqGq, "and", "andq", &BX_CPU_C::AND_EqGqM, &BX_CPU_C::AND_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EqGq, "sub", "subq", &BX_CPU_C::SUB_EqGqM, &BX_CPU_C::SUB_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EqGq, "xor", "xorq", &BX_CPU_C::XOR_EqGqM, &BX_CPU_C::XOR_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EqGq, "test", "testq", &BX_CPU_C::TEST_EqGqM, &BX_CPU_C::TEST_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EqGq, "cmp", "cmpq", &BX_CPU_C::CMP_EqGqM, &BX_CPU_C::CMP_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_RAXId, "add", "addq", NULL, &BX_CPU_C::ADD_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_OR_RAXId, "or", "orq", NULL, &BX_CPU_C::OR_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADC_RAXId, "adc", "adcq", NULL, &BX_CPU_C::ADC_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SBB_RAXId, "sbb", "sbbq", NULL, &BX_CPU_C::SBB_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AND_RAXId, "and", "andq", NULL, &BX_CPU_C::AND_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SUB_RAXId, "sub", "subq", NULL, &BX_CPU_C::SUB_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XOR_RAXId, "xor", "xorq", NULL, &BX_CPU_C::XOR_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TEST_RAXId, "test", "testq", NULL, &BX_CPU_C::TEST_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_RAXId, "cmp", "cmpq", NULL, &BX_CPU_C::CMP_EqIdR, 0, OP_RAXReg, OP_sId, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EqId, "add", "addq", &BX_CPU_C::ADD_EqIdM, &BX_CPU_C::ADD_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EqId, "or", "orq", &BX_CPU_C::OR_EqIdM, &BX_CPU_C::OR_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EqId, "adc", "adcq", &BX_CPU_C::ADC_EqIdM, &BX_CPU_C::ADC_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EqId, "sbb", "sbbq", &BX_CPU_C::SBB_EqIdM, &BX_CPU_C::SBB_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EqId, "and", "andq", &BX_CPU_C::AND_EqIdM, &BX_CPU_C::AND_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EqId, "sub", "subq", &BX_CPU_C::SUB_EqIdM, &BX_CPU_C::SUB_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EqId, "xor", "xorq", &BX_CPU_C::XOR_EqIdM, &BX_CPU_C::XOR_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EqId, "test", "testq", &BX_CPU_C::TEST_EqIdM, &BX_CPU_C::TEST_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EqId, "cmp", "cmpq", &BX_CPU_C::CMP_EqIdM, &BX_CPU_C::CMP_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ADD_EqsIb, "add", "addq", &BX_CPU_C::ADD_EqIdM, &BX_CPU_C::ADD_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_OR_EqsIb, "or", "orq", &BX_CPU_C::OR_EqIdM, &BX_CPU_C::OR_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_ADC_EqsIb, "adc", "adcq", &BX_CPU_C::ADC_EqIdM, &BX_CPU_C::ADC_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SBB_EqsIb, "sbb", "sbbq", &BX_CPU_C::SBB_EqIdM, &BX_CPU_C::SBB_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_AND_EqsIb, "and", "andq", &BX_CPU_C::AND_EqIdM, &BX_CPU_C::AND_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_SUB_EqsIb, "sub", "subq", &BX_CPU_C::SUB_EqIdM, &BX_CPU_C::SUB_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XOR_EqsIb, "xor", "xorq", &BX_CPU_C::XOR_EqIdM, &BX_CPU_C::XOR_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_TEST_EqsIb, "test", "testq", &BX_CPU_C::TEST_EqIdM, &BX_CPU_C::TEST_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMP_EqsIb, "cmp", "cmpq", &BX_CPU_C::CMP_EqIdM, &BX_CPU_C::CMP_EqIdR, 0, OP_Eq, OP_sIbd, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_XCHG_EqGq, "xchg", "xchgq", &BX_CPU_C::XCHG_EqGqM, &BX_CPU_C::XCHG_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_XCHG_RRXRAX, "xchg", "xchgq", NULL, &BX_CPU_C::XCHG_EqGqR, 0, OP_Eq, OP_RAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEA_GqM, "lea", "leaq", &BX_CPU_C::LEA_GqM, &BX_CPU_C::BxError, 0, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_Op64_GdEd, "mov", "movq", &BX_CPU_C::MOV64_GdEdM, &BX_CPU_C::MOV_GdEdR, 0, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_Op64_EdGd, "mov", "movq", &BX_CPU_C::MOV64_EdGdM, &BX_CPU_C::MOV_GdEdR, 0, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_GqEq, "mov", "movq", &BX_CPU_C::MOV_GqEqM, &BX_CPU_C::MOV_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EqGq, "mov", "movq", &BX_CPU_C::MOV_EqGqM, &BX_CPU_C::MOV_GqEqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EqId, "mov", "movq", &BX_CPU_C::MOV_EqIdM, &BX_CPU_C::MOV_EqIdR, 0, OP_Eq, OP_sId, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MOV_RAXOq, "mov", "movq", NULL, &BX_CPU_C::MOV_RAXOq, 0, OP_RAXReg, OP_Oq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OqRAX, "mov", "movq", NULL, &BX_CPU_C::MOV_OqRAX, 0, OP_Oq, OP_RAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_EAXOq, "mov", "movl", NULL, &BX_CPU_C::MOV_EAXOq, 0, OP_EAXReg, OP_Od, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OqEAX, "mov", "movl", NULL, &BX_CPU_C::MOV_OqEAX, 0, OP_Od, OP_EAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_AXOq, "mov", "movw", NULL, &BX_CPU_C::MOV_AXOq, 0, OP_AXReg, OP_Ow, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OqAX, "mov", "movw", NULL, &BX_CPU_C::MOV_OqAX, 0, OP_Ow, OP_AXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_ALOq, "mov", "movb", NULL, &BX_CPU_C::MOV_ALOq, 0, OP_ALReg, OP_Ob, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_OqAL, "mov", "movb", NULL, &BX_CPU_C::MOV_OqAL, 0, OP_Ob, OP_ALReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_REP_MOVSQ_YqXq, "movsq", "movsq", NULL, &BX_CPU_C::REP_MOVSQ_YqXq, 0, OP_Yq, OP_Xq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_CMPSQ_XqYq, "cmpsq", "cmpsq", NULL, &BX_CPU_C::REP_CMPSQ_XqYq, 0, OP_Xq, OP_Yq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_STOSQ_YqRAX, "stosq", "stosq", NULL, &BX_CPU_C::REP_STOSQ_YqRAX, 0, OP_Yq, OP_RAXReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_LODSQ_RAXXq, "lodsq", "lodsq", NULL, &BX_CPU_C::REP_LODSQ_RAXXq, 0, OP_RAXReg, OP_Xq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_REP_SCASQ_RAXYq, "scasq", "scasq", NULL, &BX_CPU_C::REP_SCASQ_RAXYq, 0, OP_RAXReg, OP_Yq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_CALL_Jq, "call", "call", NULL, &BX_CPU_C::CALL_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jq, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Jbq, "jmp", "jmp", NULL, &BX_CPU_C::JMP_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_JO_Jq, "jo", "jo", NULL, &BX_CPU_C::JO_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jq, "jno", "jno", NULL, &BX_CPU_C::JNO_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JB_Jq, "jb", "jb", NULL, &BX_CPU_C::JB_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jq, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jq, "jz", "jz", NULL, &BX_CPU_C::JZ_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jq, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jq, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jq, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jq, "js", "js", NULL, &BX_CPU_C::JS_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jq, "jns", "jns", NULL, &BX_CPU_C::JNS_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jq, "jp", "jp", NULL, &BX_CPU_C::JP_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jq, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jq, "jl", "jl", NULL, &BX_CPU_C::JL_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jq, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jq, "jle", "jle", NULL, &BX_CPU_C::JLE_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jq, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jq, 0, OP_Jq, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_JO_Jbq, "jo", "jo", NULL, &BX_CPU_C::JO_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNO_Jbq, "jno", "jno", NULL, &BX_CPU_C::JNO_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JB_Jbq, "jb", "jb", NULL, &BX_CPU_C::JB_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNB_Jbq, "jnb", "jnb", NULL, &BX_CPU_C::JNB_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JZ_Jbq, "jz", "jz", NULL, &BX_CPU_C::JZ_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNZ_Jbq, "jnz", "jnz", NULL, &BX_CPU_C::JNZ_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JBE_Jbq, "jbe", "jbe", NULL, &BX_CPU_C::JBE_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNBE_Jbq, "jnbe", "jnbe", NULL, &BX_CPU_C::JNBE_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JS_Jbq, "js", "js", NULL, &BX_CPU_C::JS_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNS_Jbq, "jns", "jns", NULL, &BX_CPU_C::JNS_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JP_Jbq, "jp", "jp", NULL, &BX_CPU_C::JP_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNP_Jbq, "jnp", "jnp", NULL, &BX_CPU_C::JNP_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JL_Jbq, "jl", "jl", NULL, &BX_CPU_C::JL_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNL_Jbq, "jnl", "jnl", NULL, &BX_CPU_C::JNL_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JLE_Jbq, "jle", "jle", NULL, &BX_CPU_C::JLE_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_JNLE_Jbq, "jnle", "jnle", NULL, &BX_CPU_C::JNLE_Jq, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ENTER_Op64_IwIb, "enter", "enter", NULL, &BX_CPU_C::ENTER64_IwIb, 0, OP_Iw, OP_Ib2, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LEAVE_Op64, "leave", "leave", NULL, &BX_CPU_C::LEAVE64, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IRET_Op64, "iret", "iretq", NULL, &BX_CPU_C::IRET64, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_SHLD_EqGq, "shld", "shldq", &BX_CPU_C::SHLD_EqGqM, &BX_CPU_C::SHLD_EqGqR, 0, OP_Eq, OP_Gq, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLD_EqGqIb, "shld", "shldq", &BX_CPU_C::SHLD_EqGqM, &BX_CPU_C::SHLD_EqGqR, 0, OP_Eq, OP_Gq, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EqGq, "shrd", "shrdq", &BX_CPU_C::SHRD_EqGqM, &BX_CPU_C::SHRD_EqGqR, 0, OP_Eq, OP_Gq, OP_CLReg, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRD_EqGqIb, "shrd", "shrdq", &BX_CPU_C::SHRD_EqGqM, &BX_CPU_C::SHRD_EqGqR, 0, OP_Eq, OP_Gq, OP_Ib, OP_NONE, 0)

bx_define_opcode(BX_IA_IMUL_GqEq, "imul", "imulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GqEqId, "imul", "imulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqIdR, 0, OP_Gq, OP_Eq, OP_sId, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_GqEqsIb, "imul", "imulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqIdR, 0, OP_Gq, OP_Eq, OP_sIbd, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GqEb, "movzx", "movbq", &BX_CPU_C::MOVZX_GqEbM, &BX_CPU_C::MOVZX_GqEbR, 0, OP_Gq, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVZX_GqEw, "movzx", "movwq", &BX_CPU_C::MOVZX_GqEwM, &BX_CPU_C::MOVZX_GqEwR, 0, OP_Gq, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSX_GqEb, "movsx", "movbq", &BX_CPU_C::MOVSX_GqEbM, &BX_CPU_C::MOVSX_GqEbR, 0, OP_Gq, OP_Eb, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSX_GqEw, "movsx", "movwq", &BX_CPU_C::MOVSX_GqEwM, &BX_CPU_C::MOVSX_GqEwR, 0, OP_Gq, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVSXD_GqEd, "movsxd", "movslq", &BX_CPU_C::MOVSX_GqEdM, &BX_CPU_C::MOVSX_GqEdR, 0, OP_Gq, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSWAP_RRX, "bswap", "bswapq", NULL, &BX_CPU_C::BSWAP_RRX, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_BSF_GqEq, "bsf", "bsfq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BSF_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BSR_GqEq, "bsr", "bsrq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BSR_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_BT_EqGq, "bt", "btq", &BX_CPU_C::BT_EqGqM, &BX_CPU_C::BT_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BTS_EqGq, "bts", "btsq", &BX_CPU_C::BTS_EqGqM, &BX_CPU_C::BTS_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EqGq, "btr", "btrq", &BX_CPU_C::BTR_EqGqM, &BX_CPU_C::BTR_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTC_EqGq, "btc", "btcq", &BX_CPU_C::BTC_EqGqM, &BX_CPU_C::BTC_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_BT_EqIb, "bt", "btq", &BX_CPU_C::BT_EqIbM, &BX_CPU_C::BT_EqIbR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BTS_EqIb, "bts", "btsq", &BX_CPU_C::BTS_EqIbM, &BX_CPU_C::BTS_EqIbR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTR_EqIb, "btr", "btrq", &BX_CPU_C::BTR_EqIbM, &BX_CPU_C::BTR_EqIbR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_BTC_EqIb, "btc", "btcq", &BX_CPU_C::BTC_EqIbM, &BX_CPU_C::BTC_EqIbR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_NOT_Eq, "not", "notq", &BX_CPU_C::NOT_EqM, &BX_CPU_C::NOT_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_NEG_Eq, "neg", "negq", &BX_CPU_C::NEG_EqM, &BX_CPU_C::NEG_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_ROL_Eq, "rol", "rolq", &BX_CPU_C::ROL_EqM, &BX_CPU_C::ROL_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_Eq, "ror", "rorq", &BX_CPU_C::ROR_EqM, &BX_CPU_C::ROR_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_Eq, "rcl", "rclq", &BX_CPU_C::RCL_EqM, &BX_CPU_C::RCL_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_Eq, "rcr", "rcrq", &BX_CPU_C::RCR_EqM, &BX_CPU_C::RCR_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_Eq, "shl", "shlq", &BX_CPU_C::SHL_EqM, &BX_CPU_C::SHL_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_Eq, "shr", "shrq", &BX_CPU_C::SHR_EqM, &BX_CPU_C::SHR_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_Eq, "sar", "sarq", &BX_CPU_C::SAR_EqM, &BX_CPU_C::SAR_EqR, 0, OP_Eq, OP_CLReg, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EqIb, "rol", "rolq", &BX_CPU_C::ROL_EqM, &BX_CPU_C::ROL_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EqIb, "ror", "rorq", &BX_CPU_C::ROR_EqM, &BX_CPU_C::ROR_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EqIb, "rcl", "rclq", &BX_CPU_C::RCL_EqM, &BX_CPU_C::RCL_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EqIb, "rcr", "rcrq", &BX_CPU_C::RCR_EqM, &BX_CPU_C::RCR_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EqIb, "shl", "shlq", &BX_CPU_C::SHL_EqM, &BX_CPU_C::SHL_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EqIb, "shr", "shrq", &BX_CPU_C::SHR_EqM, &BX_CPU_C::SHR_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EqIb, "sar", "sarq", &BX_CPU_C::SAR_EqM, &BX_CPU_C::SAR_EqR, 0, OP_Eq, OP_Ib, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_ROL_EqI1, "rol", "rolq", &BX_CPU_C::ROL_EqM, &BX_CPU_C::ROL_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ROR_EqI1, "ror", "rorq", &BX_CPU_C::ROR_EqM, &BX_CPU_C::ROR_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCL_EqI1, "rcl", "rclq", &BX_CPU_C::RCL_EqM, &BX_CPU_C::RCL_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RCR_EqI1, "rcr", "rcrq", &BX_CPU_C::RCR_EqM, &BX_CPU_C::RCR_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHL_EqI1, "shl", "shlq", &BX_CPU_C::SHL_EqM, &BX_CPU_C::SHL_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SHR_EqI1, "shr", "shrq", &BX_CPU_C::SHR_EqM, &BX_CPU_C::SHR_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAR_EqI1, "sar", "sarq", &BX_CPU_C::SAR_EqM, &BX_CPU_C::SAR_EqR, 0, OP_Eq, OP_I1, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_MUL_RAXEq, "mul", "mulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::MUL_RAXEqR, 0, OP_RAXReg, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IMUL_RAXEq, "imul", "imulq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_RAXEqR, 0, OP_RAXReg, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_DIV_RAXEq, "div", "divq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::DIV_RAXEqR, 0, OP_RAXReg, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_IDIV_RAXEq, "idiv", "idivq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IDIV_RAXEqR, 0, OP_RAXReg, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_INC_Eq, "inc", "incq", &BX_CPU_C::INC_EqM, &BX_CPU_C::INC_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_DEC_Eq, "dec", "decq", &BX_CPU_C::DEC_EqM, &BX_CPU_C::DEC_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_CALL_Eq, "call", "call", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CALL_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CALLF_Op64_Ep, "callf", "lcall", &BX_CPU_C::CALL64_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMP_Eq, "jmp", "jmp", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::JMP_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JMPF_Op64_Ep, "jmpf", "ljmp", &BX_CPU_C::JMP64_Ep, &BX_CPU_C::BxError, 0, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_PUSHF_Fq, "pushf", "pushfq", NULL, &BX_CPU_C::PUSHF_Fq, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POPF_Fq, "popf", "popfq", NULL, &BX_CPU_C::POPF_Fq, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_CMPXCHG_EqGq, "cmpxchg", "cmpxchgq", &BX_CPU_C::CMPXCHG_EqGqM, &BX_CPU_C::CMPXCHG_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)
bx_define_opcode(BX_IA_CDQE, "cdqe", "cltq", NULL, &BX_CPU_C::CDQE, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CQO, "cqo", "cqto", NULL, &BX_CPU_C::CQO, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_XADD_EqGq, "xadd", "xaddq", &BX_CPU_C::XADD_EqGqM, &BX_CPU_C::XADD_EqGqR, 0, OP_Eq, OP_Gq, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_RET_Op64_Iw, "ret", "ret", NULL, &BX_CPU_C::RETnear64_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RET_Op64, "ret", "ret", NULL, &BX_CPU_C::RETnear64_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op64_Iw, "retf", "lretq", NULL, &BX_CPU_C::RETfar64_Iw, 0, OP_Iw, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_RETF_Op64, "retf", "lretq", NULL, &BX_CPU_C::RETfar64_Iw, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_CMOVO_GqEq, "cmovo", "cmovoq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVO_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNO_GqEq, "cmovno", "cmovnoq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNO_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVB_GqEq, "cmovb", "cmovbq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVB_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNB_GqEq, "cmovnb", "cmovnbq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNB_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVZ_GqEq, "cmovz", "cmovzq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVZ_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNZ_GqEq, "cmovnz", "cmovnzq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNZ_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVBE_GqEq, "cmovbe", "cmovbeq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVBE_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNBE_GqEq, "cmovnbe", "cmovnbeq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNBE_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVS_GqEq, "cmovs", "cmovsq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVS_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNS_GqEq, "cmovns", "cmovnsq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNS_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVP_GqEq, "cmovp", "cmovpq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVP_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNP_GqEq, "cmovnp", "cmovnpq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNP_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVL_GqEq, "cmovl", "cmovlq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVL_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNL_GqEq, "cmovnl", "cmovnlq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNL_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVLE_GqEq, "cmovle", "cmovleq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVLE_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMOVNLE_GqEq, "cmovnle", "cmovnleq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNLE_GqEqR, 0, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_PUSH_Eq, "push", "pushq", &BX_CPU_C::PUSH_EqM, &BX_CPU_C::PUSH_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POP_Eq, "pop", "popq", &BX_CPU_C::POP_EqM, &BX_CPU_C::POP_EqR, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op64_Id, "push", "pushq", NULL, &BX_CPU_C::PUSH64_Id, 0, OP_sId, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op64_sIb, "push", "pushq", NULL, &BX_CPU_C::PUSH64_Id, 0, OP_sIbd, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_PUSH_Op64_Sw, "push", "pushq", NULL, &BX_CPU_C::PUSH64_Sw, 0, OP_NONE, OP_Sw, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_POP_Op64_Sw, "pop", "popq", NULL, &BX_CPU_C::POP64_Sw, 0, OP_Sw, OP_NONE, OP_NONE, OP_NONE, 0)

// IDT/GDT/LDTR/TR access - keep NNN for VMX
bx_define_opcode(BX_IA_SGDT_Op64_Ms, "sgdt", "sgdt", &BX_CPU_C::SGDT64_Ms, &BX_CPU_C::BxError, 0, OP_M, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SIDT_Op64_Ms, "sidt", "sidt", &BX_CPU_C::SIDT64_Ms, &BX_CPU_C::BxError, 0, OP_M, BX_SRC_NNN, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGDT_Op64_Ms, "lgdt", "lgdt", &BX_CPU_C::LGDT64_Ms, &BX_CPU_C::BxError, 0, BX_SRC_NNN, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LIDT_Op64_Ms, "lidt", "lidt", &BX_CPU_C::LIDT64_Ms, &BX_CPU_C::BxError, 0, BX_SRC_NNN, OP_M, OP_NONE, OP_NONE, 0)
// IDT/GDT/LDTR/TR access - keep NNN for VMX

bx_define_opcode(BX_IA_MOV_RRXIq, "mov", "movq", NULL, &BX_CPU_C::MOV_RRXIq, 0, OP_Eq, OP_Iq, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_LSS_GqMp, "lss", "lssq", &BX_CPU_C::LSS_GqMp, &BX_CPU_C::BxError, 0, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LFS_GqMp, "lfs", "lfsq", &BX_CPU_C::LFS_GqMp, &BX_CPU_C::BxError, 0, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LGS_GqMp, "lgs", "lgsq", &BX_CPU_C::LGS_GqMp, &BX_CPU_C::BxError, 0, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPXCHG16B, "cmpxchg16b", "cmpxchg16b", &BX_CPU_C::CMPXCHG16B, &BX_CPU_C::BxError, BX_ISA_CMPXCHG16B, OP_Mdq, OP_NONE, OP_NONE, OP_NONE, BX_LOCKABLE)

bx_define_opcode(BX_IA_LOOPNE_Jbq, "loopne", "loopne", NULL, &BX_CPU_C::LOOPNE64_Jb, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOPE_Jbq, "loope", "loope", NULL, &BX_CPU_C::LOOPE64_Jb, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_LOOP_Jbq, "loop", "loop", NULL, &BX_CPU_C::LOOP64_Jb, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_JRCXZ_Jbq, "jrcxz", "jrcxz", NULL, &BX_CPU_C::JRCXZ_Jb, 0, OP_Jbq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

bx_define_opcode(BX_IA_MOVQ_EqVq, "movq", "movq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_EqVqR, 0, OP_Eq, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVQ_PqEq, "movq", "movq", &BX_CPU_C::MOVQ_PqQqM, &BX_CPU_C::MOVQ_PqEqR, 0, OP_Pq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_MMX)
bx_define_opcode(BX_IA_MOVQ_VdqEq, "movq", "movq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VdqEqR, 0, OP_Vdq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSI2SS_VssEq, "cvtsi2ss", "cvtsi2ssq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CVTSI2SS_VssEqR, 0, OP_Vss, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSI2SD_VsdEq, "cvtsi2sd", "cvtsi2sdq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CVTSI2SD_VsdEqR, 0, OP_Vsd, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTSS2SI_GqWss, "cvttss2si", "cvttss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GqWssR, 0, OP_Gq, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTTSD2SI_GqWsd, "cvttsd2si", "cvttsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GqWsdR, 0, OP_Gq, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSS2SI_GqWss, "cvtss2si", "cvtss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GqWssR, 0, OP_Gq, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_CVTSD2SI_GqWsd, "cvtsd2si", "cvtsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GqWsdR, 0, OP_Gq, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTI_Op64_MdGd, "movnti", "movnti", &BX_CPU_C::MOV64_EdGdM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOVNTI_MqGq, "movnti", "movntiq", &BX_CPU_C::MOV_EqGqM, &BX_CPU_C::BxError, BX_ISA_SSE2, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_CR0Rq, "mov", "movq", NULL, &BX_CPU_C::MOV_CR0Rq, 0, OP_Cq, OP_Eq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR2Rq, "mov", "movq", NULL, &BX_CPU_C::MOV_CR2Rq, 0, OP_Cq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_CR3Rq, "mov", "movq", NULL, &BX_CPU_C::MOV_CR3Rq, 0, OP_Cq, OP_Eq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_CR4Rq, "mov", "movq", NULL, &BX_CPU_C::MOV_CR4Rq, 0, OP_Cq, OP_Eq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_RqCR0, "mov", "movq", NULL, &BX_CPU_C::MOV_RqCR0, 0, OP_Eq, OP_Cq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RqCR2, "mov", "movq", NULL, &BX_CPU_C::MOV_RqCR2, 0, OP_Eq, OP_Cq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RqCR3, "mov", "movq", NULL, &BX_CPU_C::MOV_RqCR3, 0, OP_Eq, OP_Cq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_RqCR4, "mov", "movq", NULL, &BX_CPU_C::MOV_RqCR4, 0, OP_Eq, OP_Cq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_MOV_DqRq, "mov", "movq", NULL, &BX_CPU_C::MOV_DqRq, 0, OP_Dq, OP_Eq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_MOV_RqDq, "mov", "movq", NULL, &BX_CPU_C::MOV_RqDq, 0, OP_Eq, OP_Dq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SWAPGS, "swapgs", "swapgs", &BX_CPU_C::BxError, &BX_CPU_C::SWAPGS, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDFSBASE_Ed, "rdfsbase", "rdfsbasel", &BX_CPU_C::BxError, &BX_CPU_C::RDFSBASE_Ed, BX_ISA_FSGSBASE, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDGSBASE_Ed, "rdgsbase", "rdgsbasel", &BX_CPU_C::BxError, &BX_CPU_C::RDGSBASE_Ed, BX_ISA_FSGSBASE, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDFSBASE_Eq, "rdfsbase", "rdfsbaseq", &BX_CPU_C::BxError, &BX_CPU_C::RDFSBASE_Eq, BX_ISA_FSGSBASE, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDGSBASE_Eq, "rdgsbase", "rdgsbaseq", &BX_CPU_C::BxError, &BX_CPU_C::RDGSBASE_Eq, BX_ISA_FSGSBASE, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRFSBASE_Ed, "wrfsbase", "wrfsbasel", &BX_CPU_C::BxError, &BX_CPU_C::WRFSBASE_Ed, BX_ISA_FSGSBASE, OP_NONE, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRGSBASE_Ed, "wrgsbase", "wrgsbasel", &BX_CPU_C::BxError, &BX_CPU_C::WRGSBASE_Ed, BX_ISA_FSGSBASE, OP_NONE, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRFSBASE_Eq, "wrfsbase", "wrfsbaseq", &BX_CPU_C::BxError, &BX_CPU_C::WRFSBASE_Eq, BX_ISA_FSGSBASE, OP_NONE, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRGSBASE_Eq, "wrgsbase", "wrgsbaseq", &BX_CPU_C::BxError, &BX_CPU_C::WRGSBASE_Eq, BX_ISA_FSGSBASE, OP_NONE, OP_Eq, OP_NONE, OP_NONE, 0)
#endif

bx_define_opcode(BX_IA_RDTSCP, "rdtscp", "rdtscp", &BX_CPU_C::BxError, &BX_CPU_C::RDTSCP, BX_ISA_RDTSCP, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)

// VMX
bx_define_opcode(BX_IA_VMXON_Mq, "vmxon", "vmxon", &BX_CPU_C::VMXON, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMXOFF, "vmxoff", "vmxoff", &BX_CPU_C::BxError, &BX_CPU_C::VMXOFF, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMCALL, "vmcall", "vmcall", &BX_CPU_C::BxError, &BX_CPU_C::VMCALL, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMLAUNCH, "vmlaunch", "vmlaunch", &BX_CPU_C::BxError, &BX_CPU_C::VMLAUNCH, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMRESUME, "vmresume", "vmresume", &BX_CPU_C::BxError, &BX_CPU_C::VMLAUNCH, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMCLEAR_Mq, "vmclear", "vmclear", &BX_CPU_C::VMCLEAR, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMPTRLD_Mq, "vmptrld", "vmptrld", &BX_CPU_C::VMPTRLD, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMPTRST_Mq, "vmptrst", "vmptrst", &BX_CPU_C::VMPTRST, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMREAD_EdGd, "vmread", "vmreadl", &BX_CPU_C::VMREAD_EdGd, &BX_CPU_C::VMREAD_EdGd, BX_ISA_VMX, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMWRITE_GdEd, "vmwrite", "vmwritel", &BX_CPU_C::VMWRITE_GdEd, &BX_CPU_C::VMWRITE_GdEd, BX_ISA_VMX, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_VMREAD_EqGq, "vmread", "vmreadq", &BX_CPU_C::VMREAD_EqGq, &BX_CPU_C::VMREAD_EqGq, BX_ISA_VMX, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMWRITE_GqEq, "vmwrite", "vmwriteq", &BX_CPU_C::VMWRITE_GqEq, &BX_CPU_C::VMWRITE_GqEq, BX_ISA_VMX, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif
#if BX_CPU_LEVEL >= 6
bx_define_opcode(BX_IA_INVEPT, "invept", "invept", &BX_CPU_C::INVEPT, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INVVPID, "invvpid", "invvpid", &BX_CPU_C::INVVPID, &BX_CPU_C::BxError, BX_ISA_VMX, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_TRACE_END)
#endif
bx_define_opcode(BX_IA_VMFUNC, "vmfunc", "vmfunc", &BX_CPU_C::BxError, &BX_CPU_C::VMFUNC, BX_ISA_VMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// VMX

// SMX
bx_define_opcode(BX_IA_GETSEC, "getsec", "getsec", &BX_CPU_C::GETSEC, &BX_CPU_C::GETSEC, BX_ISA_SMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
// SMX

// SVM
#if BX_SUPPORT_SVM
bx_define_opcode(BX_IA_VMRUN, "vmrun", "vmrun", &BX_CPU_C::BxError, &BX_CPU_C::VMRUN, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMMCALL, "vmmcall", "vmmcall", &BX_CPU_C::BxError, &BX_CPU_C::VMMCALL, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_VMLOAD, "vmload", "vmload", &BX_CPU_C::BxError, &BX_CPU_C::VMLOAD, BX_ISA_SVM, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_VMSAVE, "vmsave", "vmsave", &BX_CPU_C::BxError, &BX_CPU_C::VMSAVE, BX_ISA_SVM, OP_M, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STGI, "stgi", "stgi", &BX_CPU_C::BxError, &BX_CPU_C::STGI, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLGI, "clgi", "clgi", &BX_CPU_C::BxError, &BX_CPU_C::CLGI, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SKINIT, "skinit", "skinit", &BX_CPU_C::BxError, &BX_CPU_C::SKINIT, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_INVLPGA, "invlpga", "invlpga", &BX_CPU_C::BxError, &BX_CPU_C::INVLPGA, BX_ISA_SVM, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#endif
// SVM

// CET
#if BX_SUPPORT_CET
bx_define_opcode(BX_IA_INCSSPD, "incsspd", "incsspd", &BX_CPU_C::BxError, &BX_CPU_C::INCSSPD, BX_ISA_CET, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_INCSSPQ, "incsspq", "incsspq", &BX_CPU_C::BxError, &BX_CPU_C::INCSSPQ, BX_ISA_CET, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDSSPD, "rdsspd", "rdsspd", &BX_CPU_C::BxError, &BX_CPU_C::RDSSPD, 0, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDSSPQ, "rdsspq", "rdsspq", &BX_CPU_C::BxError, &BX_CPU_C::RDSSPQ, 0, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SAVEPREVSSP, "saveprevssp", "saveprevssp", &BX_CPU_C::BxError, &BX_CPU_C::SAVEPREVSSP, BX_ISA_CET, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RSTORSSP, "rstorssp", "rstorssp", &BX_CPU_C::RSTORSSP, &BX_CPU_C::BxError, BX_ISA_CET, OP_Mq, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRSSD, "wrssd", "wrssd", &BX_CPU_C::WRSSD, &BX_CPU_C::BxError, BX_ISA_CET, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRUSSD, "wrussd", "wrussd", &BX_CPU_C::WRUSSD, &BX_CPU_C::BxError, BX_ISA_CET, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRSSQ, "wrssq", "wrssq", &BX_CPU_C::WRSSQ, &BX_CPU_C::BxError, BX_ISA_CET, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRUSSQ, "wrussq", "wrussq", &BX_CPU_C::WRUSSQ, &BX_CPU_C::BxError, BX_ISA_CET, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_SETSSBSY, "setssbsy", "setssbsy", &BX_CPU_C::BxError, &BX_CPU_C::SETSSBSY, BX_ISA_CET, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLRSSBSY, "clrssbsy", "clrssbsy", &BX_CPU_C::CLRSSBSY, &BX_CPU_C::BxError, BX_ISA_CET, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ENDBRANCH32, "endbranch32", "endbranch32", &BX_CPU_C::BxError, &BX_CPU_C::ENDBRANCH32, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ENDBRANCH64, "endbranch64", "endbranch64", &BX_CPU_C::BxError, &BX_CPU_C::ENDBRANCH64, 0, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
#endif
// CET

#if BX_CPU_LEVEL >= 6
bx_define_opcode(BX_IA_INVPCID, "invpcid", "invpcid", &BX_CPU_C::INVPCID, &BX_CPU_C::BxError, BX_ISA_INVPCID, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_TRACE_END)
#endif

#if BX_SUPPORT_PKEYS
bx_define_opcode(BX_IA_RDPKRU, "rdpkru", "rdpkru", &BX_CPU_C::BxError, &BX_CPU_C::RDPKRU, BX_ISA_PKU, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRPKRU, "wrpkru", "wrpkru", &BX_CPU_C::BxError, &BX_CPU_C::WRPKRU, BX_ISA_PKU, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#endif

#if BX_SUPPORT_UINTR && BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_CLUI, "clui", "clui", NULL, &BX_CPU_C::CLUI, BX_ISA_UINTR, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_STUI, "stui", "stui", NULL, &BX_CPU_C::STUI, BX_ISA_UINTR, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_TESTUI, "testui", "testui", NULL, &BX_CPU_C::TESTUI, BX_ISA_UINTR, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_UIRET, "uiret", "uiret", NULL, &BX_CPU_C::UIRET, BX_ISA_UINTR, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_SENDUIPI_Gq, "senduipi", "senduipi", NULL, &BX_CPU_C::SENDUIPI_Gq, BX_ISA_UINTR, OP_Gq, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#endif

bx_define_opcode(BX_IA_RDPID_Ed, "rdpid", "rdpid", NULL, &BX_CPU_C::RDPID_Ed, BX_ISA_RDPID, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)

bx_define_opcode(BX_IA_SERIALIZE, "serialize", "serialize", &BX_CPU_C::BxError, &BX_CPU_C::NOP, BX_ISA_SERIALIZE, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_WRMSRNS, "wrmsrns", "wrmsrns", NULL, &BX_CPU_C::WRMSR, BX_ISA_WRMSRNS, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_RDMSRLIST, "rdmsrlist", "rdmsrlist", NULL, &BX_CPU_C::RDMSRLIST, BX_ISA_MSRLIST, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_WRMSRLIST, "wrmsrlist", "wrmsrlist", NULL, &BX_CPU_C::WRMSRLIST, BX_ISA_MSRLIST, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_TRACE_END)
#endif

#if BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
// AVX1/AVX2
bx_define_opcode(BX_IA_VZEROUPPER, "vzeroupper", "vzeroupper", NULL, &BX_CPU_C::VZEROUPPER, BX_ISA_AVX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VZEROALL, "vzeroall", "vzeroall", NULL, &BX_CPU_C::VZEROALL, BX_ISA_AVX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VLDMXCSR, "vldmxcsr", "vldmxcsr", &BX_CPU_C::LDMXCSR, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSTMXCSR, "vstmxcsr", "vstmxcsr", &BX_CPU_C::STMXCSR, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Md, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVAPS_VpsWps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVAPS_WpsVps, "vmovaps", "vmovaps", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVAPS_WpsVps, "vmovaps", "vmovaps", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVAPD_VpdWpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVAPD_WpdVpd, "vmovapd", "vmovapd", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVAPD_WpdVpd, "vmovapd", "vmovapd", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVUPS_VpsWps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVUPS_WpsVps, "vmovups", "vmovups", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVUPS_WpsVps, "vmovups", "vmovups", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMOVUPD_VpdWpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVUPD_WpdVpd, "vmovupd", "vmovupd", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVUPD_WpdVpd, "vmovupd", "vmovupd", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVDQA_VdqWdq, "vmovdqa", "vmovdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVDQA_WdqVdq, "vmovdqa", "vmovdqa", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVDQA_WdqVdq, "vmovdqa", "vmovdqa", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVDQU_VdqWdq, "vmovdqu", "vmovdqu", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVDQU_WdqVdq, "vmovdqu", "vmovdqu", &BX_CPU_C::MOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVDQU_WdqVdq, "vmovdqu", "vmovdqu", &BX_CPU_C::VMOVUPS_WpsVpsM, &BX_CPU_C::VMOVAPS_VpsWpsR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVSD_VsdHpdWsd, "vmovsd", "vmovsd", NULL, &BX_CPU_C::VMOVSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSS_VssHpsWss, "vmovss", "vmovss", NULL, &BX_CPU_C::VMOVSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSD_WsdHpdVsd, "vmovsd", "vmovsd", NULL, &BX_CPU_C::VMOVSD_VsdHpdWsdR, BX_ISA_AVX, OP_Wsd, OP_Hpd, OP_Vsd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSS_WssHpsVss, "vmovss", "vmovss", NULL, &BX_CPU_C::VMOVSS_VssHpsWssR, BX_ISA_AVX, OP_Wss, OP_Hps, OP_Vss, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVSD_VsdWsd, "vmovsd", "vmovsd", &BX_CPU_C::MOVSD_VsdWsdM, NULL, BX_ISA_AVX, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSS_VssWss, "vmovss", "vmovss", &BX_CPU_C::MOVSS_VssWssM, NULL, BX_ISA_AVX, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSD_WsdVsd, "vmovsd", "vmovsd", &BX_CPU_C::MOVSD_WsdVsdM, NULL, BX_ISA_AVX, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVSS_WssVss, "vmovss", "vmovss", &BX_CPU_C::MOVSS_WssVssM, NULL, BX_ISA_AVX, OP_Wss, OP_Vss, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVLPS_VpsHpsMq, "vmovlps", "vmovlps", &BX_CPU_C::VMOVLPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHLPS_VpsHpsWps, "vmovhlps", "vmovhlps", &BX_CPU_C::BxError, &BX_CPU_C::VMOVHLPS_VpsHpsWps, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHPS_VpsHpsMq, "vmovhps", "vmovhps", &BX_CPU_C::VMOVHPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVLHPS_VpsHpsWps, "vmovlhps", "vmovlhps", &BX_CPU_C::BxError, &BX_CPU_C::VMOVLHPS_VpsHpsWps, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVLPS_MqVps, "vmovlps", "vmovlps", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wq, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHPS_MqVps, "vmovhps", "vmovhps", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wq, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVLPD_MqVsd, "vmovlpd", "vmovlpd", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHPD_MqVsd, "vmovhpd", "vmovhpd", &BX_CPU_C::MOVHPS_MqVps, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVLPD_VpdHpdMq, "vmovlpd", "vmovlpd", &BX_CPU_C::VMOVLPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVHPD_VpdHpdMq, "vmovhpd", "vmovhpd", &BX_CPU_C::VMOVHPD_VpdHpdMq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVDDUP_VpdWpd, "vmovddup", "vmovddup", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMOVDDUP_VpdWpdR, BX_ISA_AVX, OP_Vpd, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVDDUP_VpdWpd, "vmovddup", "vmovddup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVDDUP_VpdWpdR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVSLDUP_VpsWps, "vmovsldup", "vmovsldup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVSLDUP_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMOVSHDUP_VpsWps, "vmovshdup", "vmovshdup", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMOVSHDUP_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VLDDQU_VdqMdq, "vlddqu", "vlddqu", &BX_CPU_C::VMOVUPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVNTDQA_VdqMdq, "vmovntdqa", "vmovntdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVNTDQA_VdqMdq, "vmovntdqa", "vmovntdqa", &BX_CPU_C::VMOVAPS_VpsWpsM, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVNTPS_MpsVps, "vmovntps", "vmovntps", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVNTPS_MpsVps, "vmovntps", "vmovntps", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wps, OP_Vps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVNTPD_MpdVpd, "vmovntpd", "vmovntpd", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVNTPD_MpdVpd, "vmovntpd", "vmovntpd", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wpd, OP_Vpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVNTDQ_MdqVdq, "vmovntdq", "vmovntdq", &BX_CPU_C::MOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMOVNTDQ_MdqVdq, "vmovntdq", "vmovntdq", &BX_CPU_C::VMOVAPS_WpsVpsM, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VUCOMISS_VssWss, "vucomiss", "vucomiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::UCOMISS_VssWssR, BX_ISA_AVX, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCOMISS_VssWss, "vcomiss", "vcomiss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::COMISS_VssWssR, BX_ISA_AVX, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUCOMISD_VsdWsd, "vucomisd", "vucomisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::UCOMISD_VsdWsdR, BX_ISA_AVX, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCOMISD_VsdWsd, "vcomisd", "vcomisd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::COMISD_VsdWsdR, BX_ISA_AVX, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VRSQRTSS_VssHpsWss, "vrsqrtss", "vrsqrtss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VRSQRTSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VRSQRTPS_VpsWps, "vrsqrtps", "vrsqrtps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VRSQRTPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VRCPSS_VssHpsWss, "vrcpss", "vrcpss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VRCPSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VRCPPS_VpsWps, "vrcpps", "vrcpps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VRCPPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VANDPS_VpsHpsWps, "vandps", "vandps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VANDPD_VpdHpdWpd, "vandpd", "vandpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VANDNPS_VpsHpsWps, "vandnps", "vandnps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VANDNPD_VpdHpdWpd, "vandnpd", "vandnpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VORPS_VpsHpsWps, "vorps", "vorps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VORPD_VpdHpdWpd, "vorpd", "vorpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VXORPS_VpsHpsWps, "vxorps", "vxorps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VXORPD_VpdHpdWpd, "vxorpd", "vxorpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSHUFD_VdqWdqIb, "vpshufd", "vpshufd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPERMILPS_VpsWpsIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSHUFD_VdqWdqIb, "vpshufd", "vpshufd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMILPS_VpsWpsIbR, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSHUFHW_VdqWdqIb, "vpshufhw", "vpshufhw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHUFHW_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSHUFHW_VdqWdqIb, "vpshufhw", "vpshufhw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPSHUFHW_VdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSHUFLW_VdqWdqIb, "vpshuflw", "vpshuflw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHUFLW_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSHUFLW_VdqWdqIb, "vpshuflw", "vpshuflw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPSHUFLW_VdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VHADDPD_VpdHpdWpd, "vhaddpd", "vhaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_haddpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VHADDPS_VpsHpsWps, "vhaddps", "vhaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_haddps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VHSUBPD_VpdHpdWpd, "vhsubpd", "vhsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_hsubpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VHSUBPS_VpsHpsWps, "vhsubps", "vhsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_hsubps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSHUFPS_VpsHpsWpsIb, "vshufps", "vshufps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VSHUFPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSHUFPD_VpdHpdWpdIb, "vshufpd", "vshufpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VSHUFPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDSUBPD_VpdHpdWpd, "vaddsubpd", "vaddsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addsubpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDSUBPS_VpsHpsWps, "vaddsubps", "vaddsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addsubps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VROUNDPS_VpsWpsIb, "vroundps", "vroundps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VROUNDPS_VpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VROUNDPD_VpdWpdIb, "vroundpd", "vroundpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VROUNDPD_VpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VROUNDSD_VsdHpdWsdIb, "vroundsd", "vroundsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VROUNDSD_VsdHpdWsdIbR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VROUNDSS_VssHpsWssIb, "vroundss", "vroundss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VROUNDSS_VssHpsWssIbR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDPPS_VpsHpsWpsIb, "vdpps", "vdpps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VDPPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDPPD_VpdHpdWpdIb, "vdppd", "vdppd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::DPPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VADDPS_VpsHpsWps, "vaddps", "vaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDPD_VpdHpdWpd, "vaddpd", "vaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_addpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDSS_VssHpsWss, "vaddss", "vaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VADDSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VADDSD_VsdHpdWsd, "vaddsd", "vaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VADDSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMULPS_VpsHpsWps, "vmulps", "vmulps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_mulps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMULPD_VpdHpdWpd, "vmulpd", "vmulpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_mulpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMULSS_VssHpsWss, "vmulss", "vmulss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VMULSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMULSD_VsdHpdWsd, "vmulsd", "vmulsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMULSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VSUBPS_VpsHpsWps, "vsubps", "vsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_subps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSUBPD_VpdHpdWpd, "vsubpd", "vsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_subpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSUBSS_VssHpsWss, "vsubss", "vsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VSUBSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSUBSD_VsdHpdWsd, "vsubsd", "vsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VSUBSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VDIVPS_VpsHpsWps, "vdivps", "vdivps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_divps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDIVPD_VpdHpdWpd, "vdivpd", "vdivpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_divpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDIVSS_VssHpsWss, "vdivss", "vdivss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VDIVSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VDIVSD_VsdHpdWsd, "vdivsd", "vdivsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VDIVSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMAXPS_VpsHpsWps, "vmaxps", "vmaxps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_maxps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMAXPD_VpdHpdWpd, "vmaxpd", "vmaxpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_maxpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMAXSS_VssHpsWss, "vmaxss", "vmaxss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VMAXSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMAXSD_VsdHpdWsd, "vmaxsd", "vmaxsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMAXSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMINPS_VpsHpsWps, "vminps", "vminps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_minps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMINPD_VpdHpdWpd, "vminpd", "vminpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_2OP<xmm_minpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMINSS_VssHpsWss, "vminss", "vminss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VMINSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMINSD_VsdHpdWsd, "vminsd", "vminsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VMINSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VSQRTPS_VpsWps, "vsqrtps", "vsqrtps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_1OP<xmm_sqrtps>, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSQRTPD_VpdWpd, "vsqrtpd", "vsqrtpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_1OP<xmm_sqrtpd>, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSQRTSS_VssHpsWss, "vsqrtss", "vsqrtss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VSQRTSS_VssHpsWssR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSQRTSD_VsdHpdWsd, "vsqrtsd", "vsqrtsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VSQRTSD_VsdHpdWsdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCMPPS_VpsHpsWpsIb, "vcmpps", "vcmpps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCMPPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCMPPD_VpdHpdWpdIb, "vcmppd", "vcmppd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCMPPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCMPSS_VssHpsWssIb, "vcmpss", "vcmpss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VCMPSS_VssHpsWssIbR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wss, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCMPSD_VsdHpdWsdIb, "vcmpsd", "vcmpsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VCMPSD_VsdHpdWsdIbR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wsd, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSRLW_VdqHdqWdq, "vpsrlw", "vpsrlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLW_VdqHdqWdq, "vpsrlw", "vpsrlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLD_VdqHdqWdq, "vpsrld", "vpsrld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrld>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLD_VdqHdqWdq, "vpsrld", "vpsrld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrld>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLQ_VdqHdqWdq, "vpsrlq", "vpsrlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLQ_VdqHdqWdq, "vpsrlq", "vpsrlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrlq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRAW_VdqHdqWdq, "vpsraw", "vpsraw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psraw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRAW_VdqHdqWdq, "vpsraw", "vpsraw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psraw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRAD_VdqHdqWdq, "vpsrad", "vpsrad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrad>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRAD_VdqHdqWdq, "vpsrad", "vpsrad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psrad>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLW_VdqHdqWdq, "vpsllw", "vpsllw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLW_VdqHdqWdq, "vpsllw", "vpsllw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLD_VdqHdqWdq, "vpslld", "vpslld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_pslld>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLD_VdqHdqWdq, "vpslld", "vpslld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_pslld>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLQ_VdqHdqWdq, "vpsllq", "vpsllq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLQ_VdqHdqWdq, "vpsllq", "vpsllq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_PSHIFT<xmm_psllq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSRLW_UdqIb, "vpsrlw", "vpsrlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlw>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLW_UdqIb, "vpsrlw", "vpsrlw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlw>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRAW_UdqIb, "vpsraw", "vpsraw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psraw>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRAW_UdqIb, "vpsraw", "vpsraw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psraw>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLW_UdqIb, "vpsllw", "vpsllw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllw>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLW_UdqIb, "vpsllw", "vpsllw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllw>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLD_UdqIb, "vpsrld", "vpsrld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrld>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLD_UdqIb, "vpsrld", "vpsrld", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrld>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRAD_UdqIb, "vpsrad", "vpsrad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrad>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRAD_UdqIb, "vpsrad", "vpsrad", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrad>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLD_UdqIb, "vpslld", "vpslld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslld>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLD_UdqIb, "vpslld", "vpslld", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslld>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLQ_UdqIb, "vpsrlq", "vpsrlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlq>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLQ_UdqIb, "vpsrlq", "vpsrlq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrlq>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLQ_UdqIb, "vpsllq", "vpsllq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllq>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLQ_UdqIb, "vpsllq", "vpsllq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psllq>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSRLDQ_UdqIb, "vpsrldq", "vpsrldq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrldq>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSRLDQ_UdqIb, "vpsrldq", "vpsrldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_psrldq>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSLLDQ_UdqIb, "vpslldq", "vpslldq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslldq>, BX_ISA_AVX, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSLLDQ_UdqIb, "vpslldq", "vpslldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_SHIFT_IMM<xmm_pslldq>, BX_ISA_AVX2, OP_Hdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMOVMSKB_GdUdq, "vpmovmskb", "vpmovmskb", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVMSKB_GdUdq, BX_ISA_AVX, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVMSKB_GdUdq, "vpmovmskb", "vpmovmskb", &BX_CPU_C::BxError, &BX_CPU_C::VPMOVMSKB_GdUdq, BX_ISA_AVX2, OP_Gd, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVMSKPS_GdUps, "vmovmskps", "vmovmskps", &BX_CPU_C::BxError, &BX_CPU_C::VMOVMSKPS_GdUps, BX_ISA_AVX, OP_Gd, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMOVMSKPD_GdUpd, "vmovmskpd", "vmovmskpd", &BX_CPU_C::BxError, &BX_CPU_C::VMOVMSKPD_GdUpd, BX_ISA_AVX, OP_Gd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUNPCKLPD_VpdHpdWpd, "vunpcklpd", "vunpcklpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUNPCKHPD_VpdHpdWpd, "vunpckhpd", "vunpckhpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUNPCKLPS_VpsHpsWps, "vunpcklps", "vunpcklps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VUNPCKHPS_VpsHpsWps, "vunpckhps", "vunpckhps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPUNPCKHDQ_VdqHdqWdq, "vpunpckhdq", "vpunpckhdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKHDQ_VdqHdqWdq, "vpunpckhdq", "vpunpckhdq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKLDQ_VdqHdqWdq, "vpunpckldq", "vpunpckldq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKLDQ_VdqHdqWdq, "vpunpckldq", "vpunpckldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKLBW_VdqHdqWdq, "vpunpcklbw", "vpunpcklbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklbw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKLBW_VdqHdqWdq, "vpunpcklbw", "vpunpcklbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklbw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKLWD_VdqHdqWdq, "vpunpcklwd", "vpunpcklwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklwd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKLWD_VdqHdqWdq, "vpunpcklwd", "vpunpcklwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpcklwd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKHBW_VdqHdqWdq, "vpunpckhbw", "vpunpckhbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhbw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKHBW_VdqHdqWdq, "vpunpckhbw", "vpunpckhbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhbw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKHWD_VdqHdqWdq, "vpunpckhwd", "vpunpckhwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhwd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKHWD_VdqHdqWdq, "vpunpckhwd", "vpunpckhwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_punpckhwd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKLQDQ_VdqHdqWdq, "vpunpcklqdq", "vpunpcklqdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklpd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKLQDQ_VdqHdqWdq, "vpunpcklqdq", "vpunpcklqdq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpcklpd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPUNPCKHQDQ_VdqHdqWdq, "vpunpckhqdq", "vpunpckhqdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhpd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPUNPCKHQDQ_VdqHdqWdq, "vpunpckhqdq", "vpunpckhqdq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_unpckhpd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPCMPEQB_VdqHdqWdq, "vpcmpeqb", "vpcmpeqb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPEQB_VdqHdqWdq, "vpcmpeqb", "vpcmpeqb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPEQW_VdqHdqWdq, "vpcmpeqw", "vpcmpeqw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPEQW_VdqHdqWdq, "vpcmpeqw", "vpcmpeqw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPEQD_VdqHdqWdq, "vpcmpeqd", "vpcmpeqd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPEQD_VdqHdqWdq, "vpcmpeqd", "vpcmpeqd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPEQQ_VdqHdqWdq, "vpcmpeqq", "vpcmpeqq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPEQQ_VdqHdqWdq, "vpcmpeqq", "vpcmpeqq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpeqq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPGTB_VdqHdqWdq, "vpcmpgtb", "vpcmpgtb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPGTB_VdqHdqWdq, "vpcmpgtb", "vpcmpgtb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPGTW_VdqHdqWdq, "vpcmpgtw", "vpcmpgtw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPGTW_VdqHdqWdq, "vpcmpgtw", "vpcmpgtw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPGTD_VdqHdqWdq, "vpcmpgtd", "vpcmpgtd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPGTD_VdqHdqWdq, "vpcmpgtd", "vpcmpgtd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPGTQ_VdqHdqWdq, "vpcmpgtq", "vpcmpgtq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCMPGTQ_VdqHdqWdq, "vpcmpgtq", "vpcmpgtq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pcmpgtq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSUBSB_VdqHdqWdq, "vpsubsb", "vpsubsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBSB_VdqHdqWdq, "vpsubsb", "vpsubsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBSW_VdqHdqWdq, "vpsubsw", "vpsubsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBSW_VdqHdqWdq, "vpsubsw", "vpsubsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDSB_VdqHdqWdq, "vpaddsb", "vpaddsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDSB_VdqHdqWdq, "vpaddsb", "vpaddsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDSW_VdqHdqWdq, "vpaddsw", "vpaddsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDSW_VdqHdqWdq, "vpaddsw", "vpaddsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBUSB_VdqHdqWdq, "vpsubusb", "vpsubusb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBUSB_VdqHdqWdq, "vpsubusb", "vpsubusb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBUSW_VdqHdqWdq, "vpsubusw", "vpsubusw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBUSW_VdqHdqWdq, "vpsubusw", "vpsubusw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubusw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDUSB_VdqHdqWdq, "vpaddusb", "vpaddusb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDUSB_VdqHdqWdq, "vpaddusb", "vpaddusb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDUSW_VdqHdqWdq, "vpaddusw", "vpaddusw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDUSW_VdqHdqWdq, "vpaddusw", "vpaddusw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddusw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPAVGB_VdqWdq, "vpavgb", "vpavgb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPAVGB_VdqWdq, "vpavgb", "vpavgb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPAVGW_VdqWdq, "vpavgw", "vpavgw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPAVGW_VdqWdq, "vpavgw", "vpavgw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pavgw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPANDN_VdqHdqWdq, "vpandn", "vpandn", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPANDN_VdqHdqWdq, "vpandn", "vpandn", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andnps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPAND_VdqHdqWdq, "vpand", "vpand", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPAND_VdqHdqWdq, "vpand", "vpand", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_andps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPOR_VdqHdqWdq, "vpor", "vpor", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPOR_VdqHdqWdq, "vpor", "vpor", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_orps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPXOR_VdqHdqWdq, "vpxor", "vpxor", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPXOR_VdqHdqWdq, "vpxor", "vpxor", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_xorps>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMULHRSW_VdqHdqWdq, "vpmulhrsw", "vpmulhrsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhrsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULHRSW_VdqHdqWdq, "vpmulhrsw", "vpmulhrsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhrsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULDQ_VdqHdqWdq, "vpmuldq", "vpmuldq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuldq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULDQ_VdqHdqWdq, "vpmuldq", "vpmuldq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuldq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULUDQ_VdqHdqWdq, "vpmuludq", "vpmuludq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuludq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULUDQ_VdqHdqWdq, "vpmuludq", "vpmuludq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmuludq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULLD_VdqHdqWdq, "vpmulld", "vpmulld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulld>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULLD_VdqHdqWdq, "vpmulld", "vpmulld", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulld>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULLW_VdqHdqWdq, "vpmullw", "vpmullw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmullw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULLW_VdqHdqWdq, "vpmullw", "vpmullw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmullw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULHW_VdqHdqWdq, "vpmulhw", "vpmulhw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULHW_VdqHdqWdq, "vpmulhw", "vpmulhw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMULHUW_VdqHdqWdq, "vpmulhuw", "vpmulhuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhuw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMULHUW_VdqHdqWdq, "vpmulhuw", "vpmulhuw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmulhuw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSADBW_VdqHdqWdq, "vpsadbw", "vpsadbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psadbw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSADBW_VdqHdqWdq, "vpsadbw", "vpsadbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psadbw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMASKMOVDQU_VdqUdq, "vmaskmovdqu", "vmaskmovdqu", &BX_CPU_C::BxError, &BX_CPU_C::MASKMOVDQU_VdqUdq, BX_ISA_AVX, OP_NONE, OP_Vdq, OP_Wdq, OP_sYdq, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSUBB_VdqHdqWdq, "vpsubb", "vpsubb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBB_VdqHdqWdq, "vpsubb", "vpsubb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBW_VdqHdqWdq, "vpsubw", "vpsubw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBW_VdqHdqWdq, "vpsubw", "vpsubw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBD_VdqHdqWdq, "vpsubd", "vpsubd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBD_VdqHdqWdq, "vpsubd", "vpsubd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSUBQ_VdqHdqWdq, "vpsubq", "vpsubq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSUBQ_VdqHdqWdq, "vpsubq", "vpsubq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psubq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDB_VdqHdqWdq, "vpaddb", "vpaddb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDB_VdqHdqWdq, "vpaddb", "vpaddb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDW_VdqHdqWdq, "vpaddw", "vpaddw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDW_VdqHdqWdq, "vpaddw", "vpaddw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDD_VdqHdqWdq, "vpaddd", "vpaddd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDD_VdqHdqWdq, "vpaddd", "vpaddd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPADDQ_VdqHdqWdq, "vpaddq", "vpaddq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddq>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPADDQ_VdqHdqWdq, "vpaddq", "vpaddq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_paddq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSHUFB_VdqHdqWdq, "vpshufb", "vpshufb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pshufb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSHUFB_VdqHdqWdq, "vpshufb", "vpshufb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pshufb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPHADDW_VdqHdqWdq, "vphaddw", "vphaddw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHADDW_VdqHdqWdq, "vphaddw", "vphaddw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHADDD_VdqHdqWdq, "vphaddd", "vphaddd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHADDD_VdqHdqWdq, "vphaddd", "vphaddd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHSUBW_VdqHdqWdq, "vphsubw", "vphsubw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHSUBW_VdqHdqWdq, "vphsubw", "vphsubw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHSUBD_VdqHdqWdq, "vphsubd", "vphsubd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHSUBD_VdqHdqWdq, "vphsubd", "vphsubd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHADDSW_VdqHdqWdq, "vphaddsw", "vphaddsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHADDSW_VdqHdqWdq, "vphaddsw", "vphaddsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phaddsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPHSUBSW_VdqHdqWdq, "vphsubsw", "vphsubsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPHSUBSW_VdqHdqWdq, "vphsubsw", "vphsubsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_phsubsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMADDWD_VdqHdqWdq, "vpmaddwd", "vpmaddwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddwd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMADDWD_VdqHdqWdq, "vpmaddwd", "vpmaddwd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddwd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMADDUBSW_VdqHdqWdq, "vpmaddubsw", "vpmaddubsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddubsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMADDUBSW_VdqHdqWdq, "vpmaddubsw", "vpmaddubsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaddubsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPSIGNB_VdqHdqWdq, "vpsignb", "vpsignb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSIGNB_VdqHdqWdq, "vpsignb", "vpsignb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSIGNW_VdqHdqWdq, "vpsignw", "vpsignw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSIGNW_VdqHdqWdq, "vpsignw", "vpsignw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPSIGND_VdqHdqWdq, "vpsignd", "vpsignd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPSIGND_VdqHdqWdq, "vpsignd", "vpsignd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psignd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VTESTPS_VpsWps, "vtestps", "vtestps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VTESTPS_VpsWpsR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VTESTPD_VpdWpd, "vtestpd", "vtestpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VTESTPD_VpdWpdR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPTEST_VdqWdq, "vptest", "vptest", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPTEST_VdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBROADCASTSS_VpsMss, "vbroadcastss", "vbroadcastss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPBROADCASTD_VdqWdR, BX_ISA_AVX, OP_Vps, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VBROADCASTSD_VpdMsd, "vbroadcastsd", "vbroadcastsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX, OP_Vpd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VBROADCASTF128_VdqMdq, "vbroadcastf128", "vbroadcastf128", &BX_CPU_C::VBROADCASTF128_VdqMdq, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPABSB_VdqWdq, "vpabsb", "vpabsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsb>, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPABSB_VdqWdq, "vpabsb", "vpabsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsb>, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPABSW_VdqWdq, "vpabsw", "vpabsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsw>, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPABSW_VdqWdq, "vpabsw", "vpabsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsw>, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPABSD_VdqWdq, "vpabsd", "vpabsd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsd>, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPABSD_VdqWdq, "vpabsd", "vpabsd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_1OP<xmm_pabsd>, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPACKSSWB_VdqHdqWdq, "vpacksswb", "vpacksswb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packsswb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPACKSSWB_VdqHdqWdq, "vpacksswb", "vpacksswb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packsswb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPACKUSWB_VdqHdqWdq, "vpackuswb", "vpackuswb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packuswb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPACKUSWB_VdqHdqWdq, "vpackuswb", "vpackuswb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packuswb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPACKUSDW_VdqHdqWdq, "vpackusdw", "vpackusdw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packusdw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPACKUSDW_VdqHdqWdq, "vpackusdw", "vpackusdw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packusdw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPACKSSDW_VdqHdqWdq, "vpackssdw", "vpackssdw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packssdw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPACKSSDW_VdqHdqWdq, "vpackssdw", "vpackssdw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_packssdw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMASKMOVPS_VpsHpsMps, "vmaskmovps", "vmaskmovps", &BX_CPU_C::VMASKMOVPS_VpsHpsMps, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVPD_VpdHpdMpd, "vmaskmovpd", "vmaskmovpd", &BX_CPU_C::VMASKMOVPD_VpdHpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVPS_MpsHpsVps, "vmaskmovps", "vmaskmovps", &BX_CPU_C::VMASKMOVPS_MpsHpsVps, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wps, OP_Hps, OP_Vps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVPD_MpdHpdVpd, "vmaskmovpd", "vmaskmovpd", &BX_CPU_C::VMASKMOVPD_MpdHpdVpd, &BX_CPU_C::BxError, BX_ISA_AVX, OP_Wpd, OP_Hpd, OP_Vpd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMOVSXBW_VdqWq, "vpmovsxbw", "vpmovsxbw", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXBW_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXBD_VdqWd, "vpmovsxbd", "vpmovsxbd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVSXBD_VdqWdR, BX_ISA_AVX, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXBQ_VdqWw, "vpmovsxbq", "vpmovsxbq", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::PMOVSXBQ_VdqWwR, BX_ISA_AVX, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXWD_VdqWq, "vpmovsxwd", "vpmovsxwd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXWD_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXWQ_VdqWd, "vpmovsxwq", "vpmovsxwq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVSXWQ_VdqWdR, BX_ISA_AVX, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVSXDQ_VdqWq, "vpmovsxdq", "vpmovsxdq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVSXDQ_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXBW_VdqWq, "vpmovzxbw", "vpmovzxbw", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXBW_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXBD_VdqWd, "vpmovzxbd", "vpmovzxbd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVZXBD_VdqWdR, BX_ISA_AVX, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXBQ_VdqWw, "vpmovzxbq", "vpmovzxbq", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::PMOVZXBQ_VdqWwR, BX_ISA_AVX, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXWD_VdqWq, "vpmovzxwd", "vpmovzxwd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXWD_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXWQ_VdqWd, "vpmovzxwq", "vpmovzxwq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::PMOVZXWQ_VdqWdR, BX_ISA_AVX, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMOVZXDQ_VdqWq, "vpmovzxdq", "vpmovzxdq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::PMOVZXDQ_VdqWqR, BX_ISA_AVX, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPMINSB_VdqHdqWdq, "vpminsb", "vpminsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINSB_VdqHdqWdq, "vpminsb", "vpminsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINSW_VdqHdqWdq, "vpminsw", "vpminsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINSW_VdqHdqWdq, "vpminsw", "vpminsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINSD_VdqHdqWdq, "vpminsd", "vpminsd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINSD_VdqHdqWdq, "vpminsd", "vpminsd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminsd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINUB_VdqHdqWdq, "vpminub", "vpminub", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminub>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINUB_VdqHdqWdq, "vpminub", "vpminub", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminub>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINUW_VdqHdqWdq, "vpminuw", "vpminuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminuw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINUW_VdqHdqWdq, "vpminuw", "vpminuw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminuw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMINUD_VdqHdqWdq, "vpminud", "vpminud", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminud>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMINUD_VdqHdqWdq, "vpminud", "vpminud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pminud>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXSB_VdqHdqWdq, "vpmaxsb", "vpmaxsb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsb>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXSB_VdqHdqWdq, "vpmaxsb", "vpmaxsb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsb>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXSW_VdqHdqWdq, "vpmaxsw", "vpmaxsw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXSW_VdqHdqWdq, "vpmaxsw", "vpmaxsw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXSD_VdqHdqWdq, "vpmaxsd", "vpmaxsd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsd>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXSD_VdqHdqWdq, "vpmaxsd", "vpmaxsd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxsd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXUB_VdqHdqWdq, "vpmaxub", "vpmaxub", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxub>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXUB_VdqHdqWdq, "vpmaxub", "vpmaxub", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxub>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXUW_VdqHdqWdq, "vpmaxuw", "vpmaxuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxuw>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXUW_VdqHdqWdq, "vpmaxuw", "vpmaxuw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxuw>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPMAXUD_VdqHdqWdq, "vpmaxud", "vpmaxud", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxud>, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMAXUD_VdqHdqWdq, "vpmaxud", "vpmaxud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_pmaxud>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPHMINPOSUW_VdqWdq, "vphminposuw", "vphminposuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PHMINPOSUW_VdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VPERMILPS_VpsHpsWps, "vpermilps", "vpermilps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_permilps>, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMILPD_VpdHpdWpd, "vpermilpd", "vpermilpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_permilpd>, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMILPS_VpsWpsIb, "vpermilps", "vpermilps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMILPS_VpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Wps, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMILPD_VpdWpdIb, "vpermilpd", "vpermilpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMILPD_VpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBLENDPS_VpsHpsWpsIb, "vblendps", "vblendps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBLENDPD_VpdHpdWpdIb, "vblendpd", "vblendpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPBLENDW_VdqHdqWdqIb, "vpblendw", "vpblendw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPBLENDW_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPBLENDW_VdqHdqWdqIb, "vpblendw", "vpblendw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPBLENDW_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPALIGNR_VdqHdqWdqIb, "vpalignr", "vpalignr", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPALIGNR_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPALIGNR_VdqHdqWdqIb, "vpalignr", "vpalignr", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPALIGNR_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VINSERTPS_VpsWssIb, "vinsertps", "vinsertps", &BX_CPU_C::VINSERTPS_VpsHpsWssIbM, &BX_CPU_C::VINSERTPS_VpsHpsWssIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wss, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VEXTRACTPS_EdVpsIb, "vextractps", "vextractps", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_AVX, OP_Ed, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPERM2F128_VdqHdqWdqIb, "vperm2f128", "vperm2f128", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERM2F128_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VINSERTF128_VdqHdqWdqIb, "vinsertf128", "vinsertf128", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF128_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VEXTRACTF128_WdqVdqIb, "vextractf128", "vextractf128", &BX_CPU_C::VEXTRACTF128_WdqVdqIbM, &BX_CPU_C::VEXTRACTF128_WdqVdqIbR, BX_ISA_AVX, OP_Wdq, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VBLENDVPS_VpsHpsWpsIb, "vblendvps", "vblendvps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDVPS_VpsHpsWpsIbR, BX_ISA_AVX, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBLENDVPD_VpdHpdWpdIb, "vblendvpd", "vblendvpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDVPD_VpdHpdWpdIbR, BX_ISA_AVX, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPBLENDVB_VdqHdqWdqIb, "vpblendvb", "vpblendvb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPBLENDVB_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPBLENDVB_VdqHdqWdqIb, "vpblendvb", "vpblendvb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPBLENDVB_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMPSADBW_VdqHdqWdqIb, "vmpsadbw", "vmpsadbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VMPSADBW_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VMPSADBW_VdqHdqWdqIb, "vmpsadbw", "vmpsadbw", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VMPSADBW_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPCMPESTRM_VdqWdqIb, "vpcmpestrm", "vpcmpestrm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPESTRM_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPESTRI_VdqWdqIb, "vpcmpestri", "vpcmpestri", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPESTRI_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPISTRM_VdqWdqIb, "vpcmpistrm", "vpcmpistrm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPISTRM_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCMPISTRI_VdqWdqIb, "vpcmpistri", "vpcmpistri", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::PCMPISTRI_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VAESIMC_VdqWdq, "vaesimc", "vaesimc", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::AESIMC_VdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESKEYGENASSIST_VdqWdqIb, "vaeskeygenassist", "vaeskeygenassist", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::AESKEYGENASSIST_VdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESENC_VdqHdqWdq, "vaesenc", "vaesenc", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VAESENC_VdqHdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESENCLAST_VdqHdqWdq, "vaesenclast", "vaesenclast", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VAESENCLAST_VdqHdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESDEC_VdqHdqWdq, "vaesdec", "vaesdec", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VAESDEC_VdqHdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VAESDECLAST_VdqHdqWdq, "vaesdeclast", "vaesdeclast", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VAESDECLAST_VdqHdqWdqR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPCLMULQDQ_VdqHdqWdqIb, "vpclmulqdq", "vpclmulqdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCLMULQDQ_VdqHdqWdqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

// VAES extensions
bx_define_opcode(BX_IA_V256_VAESENC_VdqHdqWdq, "vaesenc", "vaesenc", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESENC_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VAESENCLAST_VdqHdqWdq, "vaesenclast", "vaesenclast", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESENCLAST_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VAESDEC_VdqHdqWdq, "vaesdec", "vaesdec", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESDEC_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VAESDECLAST_VdqHdqWdq, "vaesdeclast", "vaesdeclast", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VAESDECLAST_VdqHdqWdqR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPCLMULQDQ_VdqHdqWdqIb, "vpclmulqdq", "vpclmulqdq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPCLMULQDQ_VdqHdqWdqIbR, BX_ISA_VAES_VPCLMULQDQ, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

// VEX form of GFNI instructions
bx_define_opcode(BX_IA_VGF2P8AFFINEQB_VdqHdqWdqIb, "vgf2p8affineqb", "vgf2p8affineqb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VGF2P8AFFINEQB_VdqHdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGF2P8AFFINEINVQB_VdqHdqWdqIb, "vgf2p8affineinvqb", "vgf2p8affineinvqb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VGF2P8AFFINEINVQB_VdqHdqWdqIbR, BX_ISA_GFNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGF2P8MULB_VdqHdqWdq, "vgf2p8mulb", "vgf2p8mulb", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VGF2P8MULB_VdqHdqWdqR, BX_ISA_GFNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

// SM3 instructions
bx_define_opcode(BX_IA_VSM3MSG1_VdqHdqWdq, "vsm3msg1", "vsm3msg1", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::VSM3MSG1_VdqHdqWdqR, BX_ISA_SM3, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSM3MSG2_VdqHdqWdq, "vsm3msg2", "vsm3msg2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::VSM3MSG2_VdqHdqWdqR, BX_ISA_SM3, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSM3RNDS2_VdqHdqWdqIb, "vsm3rnds2", "vsm3rnds2", &BX_CPU_C::LOAD_Wdq, &BX_CPU_C::VSM3RNDS2_VdqHdqWdqIbR, BX_ISA_SM3, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

// SM4 instructions
bx_define_opcode(BX_IA_VSM4KEY4_VdqHdqWdq, "vsm4key4", "vsm4key4", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VSM4KEY4_VdqHdqWdqR, BX_ISA_SM4, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSM4RNDS4_VdqHdqWdq, "vsm4rnds4", "vsm4rnds4", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VSM4RNDS4_VdqHdqWdqR, BX_ISA_SM4, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

// SHA512 instructions
bx_define_opcode(BX_IA_VSHA512MSG1_VdqWdq, "vsha512msg1", "vsha512msg1", &BX_CPU_C::BxError, &BX_CPU_C::VSHA512MSG1_VdqWdqR, BX_ISA_SHA512, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSHA512MSG2_VdqWdq, "vsha512msg2", "vsha512msg2", &BX_CPU_C::BxError, &BX_CPU_C::VSHA512MSG2_VdqWdqR, BX_ISA_SHA512, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VSHA512RNDS2_VdqHdqWdq, "vsha512rnds2", "vsha512rnds2", &BX_CPU_C::BxError, &BX_CPU_C::VSHA512RNDS2_VdqHdqWdqR, BX_ISA_SHA512, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VMOVD_VdqEd, "vmovd", "vmovd", &BX_CPU_C::MOVSS_VssWssM, &BX_CPU_C::MOVD_VdqEdR, BX_ISA_AVX, OP_Vdq, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVQ_VdqEq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VdqEqR, BX_ISA_AVX, OP_Vdq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVD_EdVd, "vmovd", "vmovd", &BX_CPU_C::MOVSS_WssVssM, &BX_CPU_C::MOVD_EdVdR, BX_ISA_AVX, OP_Ed, OP_Vd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VMOVQ_EqVq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_EqVqR, BX_ISA_AVX, OP_Eq, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPINSRB_VdqEbIb, "vpinsrb", "vpinsrb", &BX_CPU_C::VPINSRB_VdqHdqEbIbM, &BX_CPU_C::VPINSRB_VdqHdqEbIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Ew, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPINSRW_VdqEwIb, "vpinsrw", "vpinsrw", &BX_CPU_C::VPINSRW_VdqHdqEwIbM, &BX_CPU_C::VPINSRW_VdqHdqEwIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Ew, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRW_GdUdqIb, "vpextrw", "vpextrw", &BX_CPU_C::BxError, &BX_CPU_C::PEXTRW_GdUdqIb, BX_ISA_AVX, OP_Gd, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRB_EdVdqIbR, "vpextrb", "vpextrb", NULL, &BX_CPU_C::PEXTRB_EdVdqIbR, BX_ISA_AVX, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRB_MbVdqIbM, "vpextrb", "vpextrb", &BX_CPU_C::PEXTRB_MbVdqIbM, NULL, BX_ISA_AVX, OP_Mb, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRW_EdVdqIbR, "vpextrw", "vpextrw", NULL, &BX_CPU_C::PEXTRW_EdVdqIbR, BX_ISA_AVX, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRW_MwVdqIbM, "vpextrw", "vpextrw", &BX_CPU_C::PEXTRW_MwVdqIbM, NULL, BX_ISA_AVX, OP_Mw, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V128_VPINSRD_VdqEdIb, "vpinsrd", "vpinsrd", &BX_CPU_C::VPINSRD_VdqHdqEdIbM, &BX_CPU_C::VPINSRD_VdqHdqEdIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Ed, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPINSRQ_VdqEqIb, "vpinsrq", "vpinsrq", &BX_CPU_C::VPINSRQ_VdqHdqEqIbM, &BX_CPU_C::VPINSRQ_VdqHdqEqIbR, BX_ISA_AVX, OP_Vdq, OP_Hdq, OP_Eq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRD_EdVdqIb, "vpextrd", "vpextrd", &BX_CPU_C::PEXTRD_EdVdqIbM, &BX_CPU_C::PEXTRD_EdVdqIbR, BX_ISA_AVX, OP_Ed, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V128_VPEXTRQ_EqVdqIb, "vpextrq", "vpextrq", &BX_CPU_C::PEXTRQ_EqVdqIbM, &BX_CPU_C::PEXTRQ_EqVdqIbR, BX_ISA_AVX, OP_Eq, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTPS2PD_VpdWps, "vcvtps2pd", "vcvtps2pd", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VCVTPS2PD_VpdWpsR, BX_ISA_AVX, OP_Vpd, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTPD2DQ_VdqWpd, "vcvttpd2dq", "vcvttpd2dq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTTPD2DQ_VdqWpdR, BX_ISA_AVX, OP_Vq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTPD2DQ_VdqWpd, "vcvtpd2dq", "vcvtpd2dq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTPD2DQ_VdqWpdR, BX_ISA_AVX, OP_Vq, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTDQ2PD_VpdWdq, "vcvtdq2pd", "vcvtdq2pd", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VCVTDQ2PD_VpdWdqR, BX_ISA_AVX, OP_Vpd, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTPD2PS_VpsWpd, "vcvtpd2ps", "vcvtpd2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTPD2PS_VpsWpdR, BX_ISA_AVX, OP_Vps, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSD2SS_VssWsd, "vcvtsd2ss", "vcvtsd2ss", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VCVTSD2SS_VssWsdR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Wsd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSS2SD_VsdWss, "vcvtss2sd", "vcvtss2sd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VCVTSS2SD_VsdWssR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Wss, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTDQ2PS_VpsWdq, "vcvtdq2ps", "vcvtdq2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTDQ2PS_VpsWdqR, BX_ISA_AVX, OP_Vps, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTPS2DQ_VdqWps, "vcvtps2dq", "vcvtps2dq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTPS2DQ_VdqWpsR, BX_ISA_AVX, OP_Vdq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTPS2DQ_VdqWps, "vcvttps2dq", "vcvttps2dq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTTPS2DQ_VdqWpsR, BX_ISA_AVX, OP_Vdq, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTSS2SI_GdWss, "vcvtss2si", "vcvtss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GdWssR, BX_ISA_AVX, OP_Gd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSS2SI_GqWss, "vcvtss2si", "vcvtss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTSS2SI_GqWssR, BX_ISA_AVX, OP_Gq, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSD2SI_GdWsd, "vcvtsd2si", "vcvtsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GdWsdR, BX_ISA_AVX, OP_Gd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSD2SI_GqWsd, "vcvtsd2si", "vcvtsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTSD2SI_GqWsdR, BX_ISA_AVX, OP_Gq, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTTSS2SI_GdWss, "vcvttss2si", "vcvttss2si", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GdWssR, BX_ISA_AVX, OP_Gd, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTSS2SI_GqWss, "vcvttss2si", "vcvttss2siq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::CVTTSS2SI_GqWssR, BX_ISA_AVX, OP_Gq, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTSD2SI_GdWsd, "vcvttsd2si", "vcvttsd2si", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GdWsdR, BX_ISA_AVX, OP_Gd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTTSD2SI_GqWsd, "vcvttsd2si", "vcvttsd2siq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::CVTTSD2SI_GqWsdR, BX_ISA_AVX, OP_Gq, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTSI2SS_VssEd, "vcvtsi2ss", "vcvtsi2ss", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::VCVTSI2SS_VssEdR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Ed, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSI2SS_VssEq, "vcvtsi2ss", "vcvtsi2ssq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::VCVTSI2SS_VssEqR, BX_ISA_AVX, OP_Vss, OP_Hps, OP_Eq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSI2SD_VsdEd, "vcvtsi2sd", "vcvtsi2sd", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::VCVTSI2SD_VsdEdR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Ed, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTSI2SD_VsdEq, "vcvtsi2sd", "vcvtsi2sdq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::VCVTSI2SD_VsdEqR, BX_ISA_AVX, OP_Vsd, OP_Hpd, OP_Eq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMOVQ_WqVq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_AVX, OP_Wq, OP_Vq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMOVQ_VqWq, "vmovq", "vmovq", &BX_CPU_C::MOVSD_VsdWsdM, &BX_CPU_C::MOVQ_VqWqR, BX_ISA_AVX, OP_Vq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VCVTPH2PS_VpsWps, "vcvtph2ps", "vcvtph2ps", &BX_CPU_C::LOAD_Half_Vector, &BX_CPU_C::VCVTPH2PS_VpsWpsR, BX_ISA_AVX_F16C, OP_Vps, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTPS2PH_WpsVpsIb, "vcvtps2ph", "vcvtps2ph", &BX_CPU_C::VCVTPS2PH_WpsVpsIb, &BX_CPU_C::VCVTPS2PH_WpsVpsIb, BX_ISA_AVX_F16C, OP_mVHV, OP_Vps, OP_Ib, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V256_VPMOVSXBW_VdqWdq, "vpmovsxbw", "vpmovsxbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVSXBW_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXBD_VdqWq, "vpmovsxbd", "vpmovsxbd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPMOVSXBD_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXBQ_VdqWd, "vpmovsxbq", "vpmovsxbq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPMOVSXBQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXWD_VdqWdq, "vpmovsxwd", "vpmovsxwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVSXWD_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXWQ_VdqWq, "vpmovsxwq", "vpmovsxwq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPMOVSXWQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVSXDQ_VdqWdq, "vpmovsxdq", "vpmovsxdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVSXDQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V256_VPMOVZXBW_VdqWdq, "vpmovzxbw", "vpmovzxbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVZXBW_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXBD_VdqWq, "vpmovzxbd", "vpmovzxbd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPMOVZXBD_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXBQ_VdqWd, "vpmovzxbq", "vpmovzxbq", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPMOVZXBQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXWD_VdqWdq, "vpmovzxwd", "vpmovzxwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVZXWD_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXWQ_VdqWq, "vpmovzxwq", "vpmovzxwq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPMOVZXWQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPMOVZXDQ_VdqWdq, "vpmovzxdq", "vpmovzxdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMOVZXDQ_VdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_mVHV, OP_NONE, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V256_VPERM2I128_VdqHdqWdqIb, "vperm2i128", "vperm2i128", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERM2F128_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VINSERTI128_VdqHdqWdqIb, "vinserti128", "vinserti128", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VINSERTF128_VdqHdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VEXTRACTI128_WdqVdqIb, "vextracti128", "vextracti128", &BX_CPU_C::VEXTRACTF128_WdqVdqIbM, &BX_CPU_C::VEXTRACTF128_WdqVdqIbR, BX_ISA_AVX2, OP_Wdq, OP_Vdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VBROADCASTI128_VdqMdq, "vbroadcasti128", "vbroadcasti128", &BX_CPU_C::VBROADCASTF128_VdqMdq, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBROADCASTB_VdqWb, "vpbroadcastb", "vpbroadcastb", &BX_CPU_C::LOAD_Wb, &BX_CPU_C::VPBROADCASTB_VdqWbR, BX_ISA_AVX2, OP_Vdq, OP_Wb, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBROADCASTW_VdqWw, "vpbroadcastw", "vpbroadcastw", &BX_CPU_C::LOAD_Ww, &BX_CPU_C::VPBROADCASTW_VdqWwR, BX_ISA_AVX2, OP_Vdq, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBROADCASTD_VdqWd, "vpbroadcastd", "vpbroadcastd", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VPBROADCASTD_VdqWdR, BX_ISA_AVX2, OP_Vdq, OP_Wd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBROADCASTQ_VdqWq, "vpbroadcastq", "vpbroadcastq", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX2, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBROADCASTSS_VpsWss, "vbroadcastss", "vbroadcastss", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTD_VdqWdR, BX_ISA_AVX2, OP_Vps, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VBROADCASTSD_VpdWsd, "vbroadcastsd", "vbroadcastsd", &BX_CPU_C::BxError, &BX_CPU_C::VPBROADCASTQ_VdqWqR, BX_ISA_AVX2, OP_Vpd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPBLENDD_VdqHdqWdqIb, "vpblendd", "vpblendd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VBLENDPS_VpsHpsWpsIbR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VMASKMOVD_VdqHdqMdq, "vmaskmovd", "vmaskmovd", &BX_CPU_C::VMASKMOVPS_VpsHpsMps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVQ_VdqHdqMdq, "vmaskmovq", "vmaskmovq", &BX_CPU_C::VMASKMOVPD_VpdHpdMpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vpd, OP_Hpd, OP_Wpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVD_MdqHdqVdq, "vmaskmovd", "vmaskmovd", &BX_CPU_C::VMASKMOVPS_MpsHpsVps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Wps, OP_Hps, OP_Vps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VMASKMOVQ_MdqHdqVdq, "vmaskmovq", "vmaskmovq", &BX_CPU_C::VMASKMOVPD_MpdHpdVpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Wpd, OP_Hpd, OP_Vpd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VGATHERDPS_VpsHps, "vgatherdps", "vgatherdps", &BX_CPU_C::VGATHERDPS_VpsHps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vps, OP_VSib, OP_Hps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERDPD_VpdHpd, "vgatherdpd", "vgatherdpd", &BX_CPU_C::VGATHERDPD_VpdHpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vpd, OP_VSib, OP_Hpd, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERQPS_VpsHps, "vgatherqps", "vgatherqps", &BX_CPU_C::VGATHERQPS_VpsHps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vps, OP_VSib, OP_Hps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERQPD_VpdHpd, "vgatherqpd", "vgatherqpd", &BX_CPU_C::VGATHERQPD_VpdHpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vpd, OP_VSib, OP_Hpd, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VGATHERDD_VdqHdq, "vgatherdd", "vgatherdd", &BX_CPU_C::VGATHERDPS_VpsHps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_VSib, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERDQ_VdqHdq, "vgatherdq", "vgatherdq", &BX_CPU_C::VGATHERDPD_VpdHpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_VSib, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERQD_VdqHdq, "vgatherqd", "vgatherqd", &BX_CPU_C::VGATHERQPS_VpsHps, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_VSib, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VGATHERQQ_VdqHdq, "vgatherqq", "vgatherqq", &BX_CPU_C::VGATHERQPD_VpdHpd, &BX_CPU_C::BxError, BX_ISA_AVX2, OP_Vdq, OP_VSib, OP_Hdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VPSRLVD_VdqHdqWdq, "vpsrlvd", "vpsrlvd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psrlvd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSRLVQ_VdqHdqWdq, "vpsrlvq", "vpsrlvq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psrlvq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSLLVD_VdqHdqWdq, "vpsllvd", "vpsllvd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psllvd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSLLVQ_VdqHdqWdq, "vpsllvq", "vpsllvq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psllvq>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_V256_VPERMQ_VdqWdqIb, "vpermq", "vpermq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMQ_VdqWdqIbR, BX_ISA_AVX2, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPERMD_VdqHdqWdq, "vpermd", "vpermd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMD_VdqHdqWdqR, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPERMPS_VpsHpsWps, "vpermps", "vpermps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMD_VdqHdqWdqR, BX_ISA_AVX2, OP_Vps, OP_Hps, OP_Wps, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_V256_VPERMPD_VpdWpdIb, "vpermpd", "vpermpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMQ_VdqWdqIbR, BX_ISA_AVX2, OP_Vpd, OP_Wpd, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSRAVD_VdqHdqWdq, "vpsravd", "vpsravd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_2OP<xmm_psravd>, BX_ISA_AVX2, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX1/AVX2

// AVX2 FMA
bx_define_opcode(BX_IA_VFMADD132PS_VpsHpsWps, "vfmadd132ps", "vfmadd132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD132PD_VpdHpdWpd, "vfmadd132pd", "vfmadd132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD213PS_VpsHpsWps, "vfmadd213ps", "vfmadd213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD213PD_VpdHpdWpd, "vfmadd213pd", "vfmadd213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD231PS_VpsHpsWps, "vfmadd231ps", "vfmadd231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD231PD_VpdHpdWpd, "vfmadd231pd", "vfmadd231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMADD132SS_VpsHssWss, "vfmadd132ss", "vfmadd132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wss, OP_Hss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD132SD_VpdHsdWsd, "vfmadd132sd", "vfmadd132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wsd, OP_Hsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD213SS_VpsHssWss, "vfmadd213ss", "vfmadd213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Vss, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD213SD_VpdHsdWsd, "vfmadd213sd", "vfmadd213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Vsd, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD231SS_VpsHssWss, "vfmadd231ss", "vfmadd231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Wss, OP_Vss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADD231SD_VpdHsdWsd, "vfmadd231sd", "vfmadd231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Wsd, OP_Vsd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMADDSUB132PS_VpsHpsWps, "vfmaddsub132ps", "vfmaddsub132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB132PD_VpdHpdWpd, "vfmaddsub132pd", "vfmaddsub132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB213PS_VpsHpsWps, "vfmaddsub213ps", "vfmaddsub213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB213PD_VpdHpdWpd, "vfmaddsub213pd", "vfmaddsub213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB231PS_VpsHpsWps, "vfmaddsub231ps", "vfmaddsub231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUB231PD_VpdHpdWpd, "vfmaddsub231pd", "vfmaddsub231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMSUBADD132PS_VpsHpsWps, "vfmsubadd132ps", "vfmsubadd132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD132PD_VpdHpdWpd, "vfmsubadd132pd", "vfmsubadd132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD213PS_VpsHpsWps, "vfmsubadd213ps", "vfmsubadd213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD213PD_VpdHpdWpd, "vfmsubadd213pd", "vfmsubadd213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD231PS_VpsHpsWps, "vfmsubadd231ps", "vfmsubadd231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADD231PD_VpdHpdWpd, "vfmsubadd231pd", "vfmsubadd231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMSUB132PS_VpsHpsWps, "vfmsub132ps", "vfmsub132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB132PD_VpdHpdWpd, "vfmsub132pd", "vfmsub132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB213PS_VpsHpsWps, "vfmsub213ps", "vfmsub213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB213PD_VpdHpdWpd, "vfmsub213pd", "vfmsub213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB231PS_VpsHpsWps, "vfmsub231ps", "vfmsub231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB231PD_VpdHpdWpd, "vfmsub231pd", "vfmsub231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFMSUB132SS_VpsHssWss, "vfmsub132ss", "vfmsub132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wss, OP_Hss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB132SD_VpdHsdWsd, "vfmsub132sd", "vfmsub132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wsd, OP_Hsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB213SS_VpsHssWss, "vfmsub213ss", "vfmsub213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Vss, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB213SD_VpdHsdWsd, "vfmsub213sd", "vfmsub213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Vsd, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB231SS_VpsHssWss, "vfmsub231ss", "vfmsub231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Wss, OP_Vss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUB231SD_VpdHsdWsd, "vfmsub231sd", "vfmsub231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Wsd, OP_Vsd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFNMADD132PS_VpsHpsWps, "vfnmadd132ps", "vfnmadd132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD132PD_VpdHpdWpd, "vfnmadd132pd", "vfnmadd132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD213PS_VpsHpsWps, "vfnmadd213ps", "vfnmadd213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD213PD_VpdHpdWpd, "vfnmadd213pd", "vfnmadd213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD231PS_VpsHpsWps, "vfnmadd231ps", "vfnmadd231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD231PD_VpdHpdWpd, "vfnmadd231pd", "vfnmadd231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFNMADD132SS_VpsHssWss, "vfnmadd132ss", "vfnmadd132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wss, OP_Hss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD132SD_VpdHsdWsd, "vfnmadd132sd", "vfnmadd132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wsd, OP_Hsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD213SS_VpsHssWss, "vfnmadd213ss", "vfnmadd213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Vss, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD213SD_VpdHsdWsd, "vfnmadd213sd", "vfnmadd213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Vsd, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD231SS_VpsHssWss, "vfnmadd231ss", "vfnmadd231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hss, OP_Wss, OP_Vss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADD231SD_VpdHsdWsd, "vfnmadd231sd", "vfnmadd231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hsd, OP_Wsd, OP_Vsd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFNMSUB132PS_VpsHpsWps, "vfnmsub132ps", "vfnmsub132ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB132PD_VpdHpdWpd, "vfnmsub132pd", "vfnmsub132pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB213PS_VpsHpsWps, "vfnmsub213ps", "vfnmsub213ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB213PD_VpdHpdWpd, "vfnmsub213pd", "vfnmsub213pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB231PS_VpsHpsWps, "vfnmsub231ps", "vfnmsub231ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB231PD_VpdHpdWpd, "vfnmsub231pd", "vfnmsub231pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VFNMSUB132SS_VpsHssWss, "vfnmsub132ss", "vfnmsub132ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Vps, OP_Wps, OP_Hps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB132SD_VpdHsdWsd, "vfnmsub132sd", "vfnmsub132sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Vpd, OP_Wpd, OP_Hpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB213SS_VpsHssWss, "vfnmsub213ss", "vfnmsub213ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Vps, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB213SD_VpdHsdWsd, "vfnmsub213sd", "vfnmsub213sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Vpd, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB231SS_VpsHssWss, "vfnmsub231ss", "vfnmsub231ss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VpsHssWssR, BX_ISA_AVX_FMA, OP_Vps, OP_Hps, OP_Wps, OP_Vps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUB231SD_VpdHsdWsd, "vfnmsub231sd", "vfnmsub231sd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VpdHsdWsdR, BX_ISA_AVX_FMA, OP_Vpd, OP_Hpd, OP_Wpd, OP_Vpd, BX_PREPARE_AVX)
// AVX2 FMA

// AVX VNNI
bx_define_opcode(BX_IA_VPDPBUSD_VdqHdqWdq, "vpdpbusd", "vpdpbusd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbusd>, BX_ISA_AVX_VNNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBUSDS_VdqHdqWdq, "vpdpbusds", "vpdpbusds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbusds>, BX_ISA_AVX_VNNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWSSD_VdqHdqWdq, "vpdpwssd", "vpdpwssd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwssd>, BX_ISA_AVX_VNNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWSSDS_VdqHdqWdq, "vpdpwssds", "vpdpwssds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwssds>, BX_ISA_AVX_VNNI, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX VNNI

// AVX IFMA
bx_define_opcode(BX_IA_VPMADD52LUQ_VdqHdqWdq, "vpmadd52luq", "vpmadd52luq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPMADD52LUQ_VdqHdqWdqR, BX_ISA_AVX_IFMA, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMADD52HUQ_VdqHdqWdq, "vpmadd52huq", "vpmadd52huq", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPMADD52HUQ_VdqHdqWdqR, BX_ISA_AVX_IFMA, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX IFMA

// AVX VNNI INT8
bx_define_opcode(BX_IA_VPDPBSSD_VdqHdqWdq, "vpdpbssd", "vpdpbssd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbssd>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBSSDS_VdqHdqWdq, "vpdpbssds", "vpdpbssds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbssds>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBSUD_VdqHdqWdq, "vpdpbsud", "vpdpbsud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbsud>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBSUDS_VdqHdqWdq, "vpdpbsuds", "vpdpbsuds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbsuds>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBUUD_VdqHdqWdq, "vpdpbuud", "vpdpbuud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbuud>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPBUUDS_VdqHdqWdq, "vpdpbuuds", "vpdpbuuds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpbuuds>, BX_ISA_AVX_VNNI_INT8, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX VNNI INT8

// AVX VNNI INT16
bx_define_opcode(BX_IA_VPDPWSUD_VdqHdqWdq, "vpdpwsud", "vpdpwsud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwsud>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWSUDS_VdqHdqWdq, "vpdpwsuds", "vpdpwsuds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwsuds>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWUSD_VdqHdqWdq, "vpdpwusd", "vpdpwusd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwusd>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWUSDS_VdqHdqWdq, "vpdpwusds", "vpdpwusds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwusds>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWUUD_VdqHdqWdq, "vpdpwuud", "vpdpwuud", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwuud>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPDPWUUDS_VdqHdqWdq, "vpdpwuuds", "vpdpwuuds", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_3OP<xmm_pdpwuuds>, BX_ISA_AVX_VNNI_INT16, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
// AVX VNNI INT16

// AVX-NE-CONVERT
bx_define_opcode(BX_IA_VBCSTNEBF162PS_VpsWw, "vbcstnebf162ps", "vbcstnebf162ps", &BX_CPU_C::VBCSTNEBF162PS_VpsWwM, &BX_CPU_C::BxError, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Ww, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VBCSTNESH2PS_VpsWsh, "vbcstnesh2ps", "vbcstneshps", &BX_CPU_C::VBCSTNESH2PS_VpsWshM, &BX_CPU_C::BxError, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wsh, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEEPH2PS_VpsWph, "vcvtneeph2ps", "vcvtneeph2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEEPH2PS_VpsWphR, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wph, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEOPH2PS_VpsWph, "vcvtneoph2ps", "vcvtneoph2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEOPH2PS_VpsWphR, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wph, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEEBF162PS_VpsWph, "vcvtneebf162ps", "vcvtneebf162ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEEBF162PS_VpsWphR, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wph, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEOBF162PS_VpsWph, "vcvtneobf162ps", "vcvtneobf162ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEOBF162PS_VpsWphR, BX_ISA_AVX_NE_CONVERT, OP_Vps, OP_Wph, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VCVTNEPS2BF16_VphWps, "vcvtneps2bf16", "vcvtneps2bf16", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VCVTNEPS2BF16_VphWpsR, BX_ISA_AVX_NE_CONVERT, OP_Vph, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
// AVX-NE-CONVERT

// BMI1
bx_define_opcode(BX_IA_ANDN_GdBdEd, "andn", "andnl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ANDN_GdBdEdR, BX_ISA_BMI1, OP_Gd, OP_Bd, OP_Ed, OP_NONE, 0)
bx_define_opcode(BX_IA_ANDN_GqBqEq, "andn", "andnq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ANDN_GqBqEqR, BX_ISA_BMI1, OP_Gq, OP_Bq, OP_Eq, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSI_BdEd, "blsi", "blsil", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSI_BdEdR, BX_ISA_BMI1, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSI_BqEq, "blsi", "blsiq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSI_BqEqR, BX_ISA_BMI1, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSMSK_BdEd, "blsmsk", "blsmskl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSMSK_BdEdR, BX_ISA_BMI1, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSMSK_BqEq, "blsmsk", "blsmskq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSMSK_BqEqR, BX_ISA_BMI1, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSR_BdEd, "blsr", "blsrl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSR_BdEdR, BX_ISA_BMI1, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSR_BqEq, "blsr", "blsrq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSR_BqEqR, BX_ISA_BMI1, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BEXTR_GdEdBd, "bextr", "bextrl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BEXTR_GdEdBdR, BX_ISA_BMI1, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_BEXTR_GqEqBq, "bextr", "bextrq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BEXTR_GqEqBqR, BX_ISA_BMI1, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
// BMI1

// BMI2
bx_define_opcode(BX_IA_MULX_GdBdEd, "mulx", "mulxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::MULX_GdBdEdR, BX_ISA_BMI2, OP_Gd, OP_Bd, OP_Ed, OP_NONE, 0)
bx_define_opcode(BX_IA_MULX_GqBqEq, "mulx", "mulxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::MULX_GqBqEqR, BX_ISA_BMI2, OP_Gq, OP_Bq, OP_Eq, OP_NONE, 0)
bx_define_opcode(BX_IA_RORX_GdEdIb, "rorx", "rorxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::RORX_GdEdIbR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_RORX_GqEqIb, "rorx", "rorxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::RORX_GqEqIbR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Ib, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLX_GdEdBd, "shlx", "shlxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SHLX_GdEdBdR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_SHLX_GqEqBq, "shlx", "shlxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SHLX_GqEqBqR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRX_GdEdBd, "shrx", "shrxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SHRX_GdEdBdR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_SHRX_GqEqBq, "shrx", "shrxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SHRX_GqEqBqR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_SARX_GdEdBd, "sarx", "sarxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SARX_GdEdBdR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_SARX_GqEqBq, "sarx", "sarxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SARX_GqEqBqR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_BZHI_GdBdEd, "bzhi", "bzhil", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BZHI_GdEdBdR, BX_ISA_BMI2, OP_Gd, OP_Ed, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_BZHI_GqBqEq, "bzhi", "bzhiq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BZHI_GqEqBqR, BX_ISA_BMI2, OP_Gq, OP_Eq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_PEXT_GdBdEd, "pext", "pextl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::PEXT_GdBdEdR, BX_ISA_BMI2, OP_Gd, OP_Bd, OP_Ed, OP_NONE, 0)
bx_define_opcode(BX_IA_PEXT_GqBqEq, "pext", "pextq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::PEXT_GqBqEqR, BX_ISA_BMI2, OP_Gq, OP_Bq, OP_Eq, OP_NONE, 0)
bx_define_opcode(BX_IA_PDEP_GdBdEd, "pdep", "pdepl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::PDEP_GdBdEdR, BX_ISA_BMI2, OP_Gd, OP_Bd, OP_Ed, OP_NONE, 0)
bx_define_opcode(BX_IA_PDEP_GqBqEq, "pdep", "pdepq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::PDEP_GqBqEqR, BX_ISA_BMI2, OP_Gq, OP_Bq, OP_Eq, OP_NONE, 0)
// BMI2

// CMPccXADD
bx_define_opcode(BX_IA_CMPBEXADD_EdGdBd, "cmpbexadd", "cmpbexaddl", &BX_CPU_C::CMPBEXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPBEXADD_EqGqBq, "cmpbexadd", "cmpbexaddq", &BX_CPU_C::CMPBEXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPBXADD_EdGdBd, "cmpbxadd", "cmpbxaddl", &BX_CPU_C::CMPBXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPBXADD_EqGqBq, "cmpbxadd", "cmpbxaddq", &BX_CPU_C::CMPBXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPLEXADD_EdGdBd, "cmplexadd", "cmplexaddl", &BX_CPU_C::CMPLEXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPLEXADD_EqGqBq, "cmplexadd", "cmplexaddq", &BX_CPU_C::CMPLEXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPLXADD_EdGdBd, "cmplxadd", "cmplxaddl", &BX_CPU_C::CMPLXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPLXADD_EqGqBq, "cmplxadd", "cmplxaddq", &BX_CPU_C::CMPLXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNBEXADD_EdGdBd, "cmpnbexadd", "cmpnbexaddl", &BX_CPU_C::CMPNBEXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNBEXADD_EqGqBq, "cmpnbexadd", "cmpnbexaddq", &BX_CPU_C::CMPNBEXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNBXADD_EdGdBd, "cmpnbxadd", "cmpnbxaddl", &BX_CPU_C::CMPNBXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNBXADD_EqGqBq, "cmpnbxadd", "cmpnbxaddq", &BX_CPU_C::CMPNBXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNLEXADD_EdGdBd, "cmpnlexadd", "cmpnlexaddl", &BX_CPU_C::CMPNLEXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNLEXADD_EqGqBq, "cmpnlexadd", "cmpnlexaddq", &BX_CPU_C::CMPNLEXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNLXADD_EdGdBd, "cmpnlxadd", "cmpnlxaddl", &BX_CPU_C::CMPNLXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNLXADD_EqGqBq, "cmpnlxadd", "cmpnlxaddq", &BX_CPU_C::CMPNLXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNOXADD_EdGdBd, "cmpnoxadd", "cmpnoxaddl", &BX_CPU_C::CMPNOXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNOXADD_EqGqBq, "cmpnoxadd", "cmpnoxaddq", &BX_CPU_C::CMPNOXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNPXADD_EdGdBd, "cmpnpxadd", "cmpnpxaddl", &BX_CPU_C::CMPNPXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNPXADD_EqGqBq, "cmpnpxadd", "cmpnpxaddq", &BX_CPU_C::CMPNPXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNSXADD_EdGdBd, "cmpnsxadd", "cmpnsxaddl", &BX_CPU_C::CMPNSXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNSXADD_EqGqBq, "cmpnsxadd", "cmpnsxaddq", &BX_CPU_C::CMPNSXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNZXADD_EdGdBd, "cmpnzxadd", "cmpnzxaddl", &BX_CPU_C::CMPNZXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPNZXADD_EqGqBq, "cmpnzxadd", "cmpnzxaddq", &BX_CPU_C::CMPNZXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPOXADD_EdGdBd, "cmpoxadd", "cmpoxaddl", &BX_CPU_C::CMPOXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPOXADD_EqGqBq, "cmpoxadd", "cmpoxaddq", &BX_CPU_C::CMPOXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPPXADD_EdGdBd, "cmppxadd", "cmppxaddl", &BX_CPU_C::CMPPXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPPXADD_EqGqBq, "cmppxadd", "cmppxaddq", &BX_CPU_C::CMPPXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPSXADD_EdGdBd, "cmpsxadd", "cmpsxaddl", &BX_CPU_C::CMPSXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPSXADD_EqGqBq, "cmpsxadd", "cmpsxaddq", &BX_CPU_C::CMPSXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPZXADD_EdGdBd, "cmpzxadd", "cmpzxaddl", &BX_CPU_C::CMPZXADD_EdGdBd, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Ed, OP_Gd, OP_Bd, OP_NONE, 0)
bx_define_opcode(BX_IA_CMPZXADD_EqGqBq, "cmpzxadd", "cmpzxaddq", &BX_CPU_C::CMPZXADD_EqGqBq, &BX_CPU_C::BxError, BX_ISA_CMPCCXADD, OP_Eq, OP_Gq, OP_Bq, OP_NONE, 0)
// CMPccXADD

// FMA4 (AMD)
bx_define_opcode(BX_IA_VFMADDSUBPS_VpsHpsVIbWps, "vfmaddsubps", "vfmaddsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUBPS_VpsHpsWpsVIb, "vfmaddsubps", "vfmaddsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUBPD_VpdHpdVIbWpd, "vfmaddsubpd", "vfmaddsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSUBPD_VpdHpdWpdVIb, "vfmaddsubpd", "vfmaddsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADDPS_VpsHpsVIbWps, "vfmsubaddps", "vfmsubaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADDPS_VpsHpsWpsVIb, "vfmsubaddps", "vfmsubaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADDPD_VpdHpdVIbWpd, "vfmsubaddpd", "vfmsubaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBADDPD_VpdHpdWpdVIb, "vfmsubaddpd", "vfmsubaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDPS_VpsHpsVIbWps, "vfmaddps", "vfmaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDPS_VpsHpsWpsVIb, "vfmaddps", "vfmaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDPD_VpdHpdVIbWpd, "vfmaddpd", "vfmaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDPD_VpdHpdWpdVIb, "vfmaddpd", "vfmaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSS_VssHssVIbWss, "vfmaddss", "vfmaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_VIb, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSS_VssHssWssVIb, "vfmaddss", "vfmaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMADDSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_Wss, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSD_VsdHsdVIbWsd, "vfmaddsd", "vfmaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_VIb, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMADDSD_VsdHsdWsdVIb, "vfmaddsd", "vfmaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMADDSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_Wsd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBPS_VpsHpsVIbWps, "vfmsubps", "vfmsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBPS_VpsHpsWpsVIb, "vfmsubps", "vfmsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBPD_VpdHpdVIbWpd, "vfmsubpd", "vfmsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBPD_VpdHpdWpdVIb, "vfmsubpd", "vfmsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fmsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBSS_VssHssVIbWss, "vfmsubss", "vfmsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_VIb, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBSS_VssHssWssVIb, "vfmsubss", "vfmsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFMSUBSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_Wss, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBSD_VsdHsdVIbWsd, "vfmsubsd", "vfmsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_VIb, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFMSUBSD_VsdHsdWsdVIb, "vfmsubsd", "vfmsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFMSUBSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_Wsd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDPS_VpsHpsVIbWps, "vfnmaddps", "vfnmaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDPS_VpsHpsWpsVIb, "vfnmaddps", "vfnmaddps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDPD_VpdHpdVIbWpd, "vfnmaddpd", "vfnmaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDPD_VpdHpdWpdVIb, "vfnmaddpd", "vfnmaddpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmaddpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDSS_VssHssVIbWss, "vfnmaddss", "vfnmaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_VIb, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDSS_VssHssWssVIb, "vfnmaddss", "vfnmaddss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMADDSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_Wss, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDSD_VsdHsdVIbWsd, "vfnmaddsd", "vfnmaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_VIb, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMADDSD_VsdHsdWsdVIb, "vfnmaddsd", "vfnmaddsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMADDSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_Wsd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBPS_VpsHpsVIbWps, "vfnmsubps", "vfnmsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBPS_VpsHpsWpsVIb, "vfnmsubps", "vfnmsubps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubps>, BX_ISA_FMA4, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBPD_VpdHpdVIbWpd, "vfnmsubpd", "vfnmsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_VIb, OP_Wpd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBPD_VpdHpdWpdVIb, "vfnmsubpd", "vfnmsubpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::HANDLE_AVX_PFP_3OP<xmm_fnmsubpd>, BX_ISA_FMA4, OP_Vpd, OP_Hpd, OP_Wpd, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBSS_VssHssVIbWss, "vfnmsubss", "vfnmsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_VIb, OP_Wss, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBSS_VssHssWssVIb, "vfnmsubss", "vfnmsubss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFNMSUBSS_VssHssWssVIbR, BX_ISA_FMA4, OP_Vss, OP_Hss, OP_Wss, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBSD_VsdHsdVIbWsd, "vfnmsubsd", "vfnmsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_VIb, OP_Wsd, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFNMSUBSD_VsdHsdWsdVIb, "vfnmsubsd", "vfnmsubsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFNMSUBSD_VsdHsdWsdVIbR, BX_ISA_FMA4, OP_Vsd, OP_Hsd, OP_Wsd, OP_VIb, BX_PREPARE_AVX)
// FMA4 (AMD)

// XOP (AMD)
bx_define_opcode(BX_IA_VPCMOV_VdqHdqVIbWdq, "vpcmov", "vpcmov", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPCMOV_VdqHdqWdqVIb, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_VIb, OP_Wdq, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCMOV_VdqHdqWdqVIb, "vpcmov", "vpcmov", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPCMOV_VdqHdqWdqVIb, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPPERM_VdqHdqVIbWdq, "vpperm", "vpperm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPPERM_VdqHdqWdqVIb, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_VIb, OP_Wdq, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPPERM_VdqHdqWdqVIb, "vpperm", "vpperm", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPPERM_VdqHdqWdqVIb, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMIL2PS_VdqHdqVIbWdq, "vpermil2ps", "vpermil2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMIL2PS_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMIL2PS_VdqHdqWdqVIb, "vpermil2ps", "vpermil2ps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMIL2PS_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMIL2PD_VdqHdqVIbWdq, "vpermil2pd", "vpermil2pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMIL2PD_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vps, OP_Hps, OP_VIb, OP_Wps, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPERMIL2PD_VdqHdqWdqVIb, "vpermil2pd", "vpermil2pd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VPERMIL2PD_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vps, OP_Hps, OP_Wps, OP_VIb, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VPSHAB_VdqHdqWdq, "vpshab", "vpshab", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAB_VdqWdqHdq, "vpshab", "vpshab", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAW_VdqHdqWdq, "vpshaw", "vpshaw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAW_VdqWdqHdq, "vpshaw", "vpshaw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAD_VdqHdqWdq, "vpshad", "vpshad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAD_VdqWdqHdq, "vpshad", "vpshad", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAQ_VdqHdqWdq, "vpshaq", "vpshaq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHAQ_VdqWdqHdq, "vpshaq", "vpshaq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHAQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTB_VdqHdqWdq, "vprotb", "vprotb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTB_VdqWdqHdq, "vprotb", "vprotb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTW_VdqHdqWdq, "vprotw", "vprotw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTW_VdqWdqHdq, "vprotw", "vprotw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTD_VdqHdqWdq, "vprotd", "vprotd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTD_VdqWdqHdq, "vprotd", "vprotd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTQ_VdqHdqWdq, "vprotq", "vprotq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTQ_VdqWdqHdq, "vprotq", "vprotq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLB_VdqHdqWdq, "vpshlb", "vpshlb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLB_VdqWdqHdq, "vpshlb", "vpshlb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLB_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLW_VdqHdqWdq, "vpshlw", "vpshlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLW_VdqWdqHdq, "vpshlw", "vpshlw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLW_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLD_VdqHdqWdq, "vpshld", "vpshld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLD_VdqWdqHdq, "vpshld", "vpshld", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLD_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLQ_VdqHdqWdq, "vpshlq", "vpshlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPSHLQ_VdqWdqHdq, "vpshlq", "vpshlq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPSHLQ_VdqWdqHdq, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Hdq, OP_NONE, BX_PREPARE_AVX)

bx_define_opcode(BX_IA_VPMACSSWW_VdqHdqWdqVIb, "vpmacssww", "vpmacssww", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSWW_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSSWD_VdqHdqWdqVIb, "vpmacsswd", "vpmacsswd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSWD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSSDQL_VdqHdqWdqVIb, "vpmacssdql", "vpmacssdql", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSDQL_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSSDD_VdqHdqWdqVIb, "vpmacssdd", "vpmacssdd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSDD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSSDQH_VdqHdqWdqVIb, "vpmacssdqh", "vpmacssdqh", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSSDQH_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSWW_VdqHdqWdqVIb, "vpmacsww", "vpmacsww", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSWW_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSWD_VdqHdqWdqVIb, "vpmacswd", "vpmacswd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSWD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSDQL_VdqHdqWdqVIb, "vpmacsdql", "vpmacsdql", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSDQL_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSDD_VdqHdqWdqVIb, "vpmacsdd", "vpmacsdd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSDD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMACSDQH_VdqHdqWdqVIb, "vpmacsdqh", "vpmacsdqh", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMACSDQH_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMADCSSWD_VdqHdqWdqVIb, "vpmadcsswd", "vpmadcsswd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMADCSSWD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPMADCSWD_VdqHdqWdqVIb, "vpmadcswd", "vpmadcswd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPMADCSWD_VdqHdqWdqVIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_VIb, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTB_VdqWdqIb, "vprotb", "vprotb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTB_VdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTW_VdqWdqIb, "vprotw", "vprotw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTW_VdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTD_VdqWdqIb, "vprotd", "vprotd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTD_VdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPROTQ_VdqWdqIb, "vprotq", "vprotq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPROTQ_VdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_Ib, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMB_VdqHdqWdqIb, "vpcomb", "vpcomb", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMB_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMW_VdqHdqWdqIb, "vpcomw", "vpcomw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMW_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMD_VdqHdqWdqIb, "vpcomd", "vpcomd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMD_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMQ_VdqHdqWdqIb, "vpcomq", "vpcomq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMQ_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMUB_VdqHdqWdqIb, "vpcomub", "vpcomub", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMUB_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMUW_VdqHdqWdqIb, "vpcomuw", "vpcomuw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMUW_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMUD_VdqHdqWdqIb, "vpcomud", "vpcomud", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMUD_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPCOMUQ_VdqHdqWdqIb, "vpcomuq", "vpcomuq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPCOMUQ_VdqHdqWdqIbR, BX_ISA_XOP, OP_Vdq, OP_Hdq, OP_Wdq, OP_Ib, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFRCZPS_VpsWps, "vfrczps", "vfrczps", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VFRCZPS_VpsWpsR, BX_ISA_XOP, OP_Vps, OP_Wps, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFRCZPD_VpdWpd, "vfrczpd", "vfrczpd", &BX_CPU_C::LOAD_Vector, &BX_CPU_C::VFRCZPD_VpdWpdR, BX_ISA_XOP, OP_Vpd, OP_Wpd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFRCZSS_VssWss, "vfrczss", "vfrczss", &BX_CPU_C::LOAD_Wss, &BX_CPU_C::VFRCZSS_VssWssR, BX_ISA_XOP, OP_Vss, OP_Wss, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VFRCZSD_VsdWsd, "vfrczsd", "vfrczsd", &BX_CPU_C::LOAD_Wsd, &BX_CPU_C::VFRCZSD_VsdWsdR, BX_ISA_XOP, OP_Vsd, OP_Wsd, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDBW_VdqWdq, "vphaddbw", "vphaddbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDBW_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDBD_VdqWdq, "vphaddbd", "vphaddbd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDBD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDBQ_VdqWdq, "vphaddbq", "vphaddbq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDBQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDWD_VdqWdq, "vphaddwd", "vphaddwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDWD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDWQ_VdqWdq, "vphaddwq", "vphaddwq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDWQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDDQ_VdqWdq, "vphadddq", "vphadddq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDDQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUBW_VdqWdq, "vphaddubw", "vphaddubw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUBW_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUBD_VdqWdq, "vphaddubd", "vphaddubd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUBD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUBQ_VdqWdq, "vphaddubq", "vphaddubq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUBQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUWD_VdqWdq, "vphadduwd", "vphadduwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUWD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUWQ_VdqWdq, "vphadduwq", "vphadduwq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUWQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHADDUDQ_VdqWdq, "vphaddudq", "vphaddudq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHADDUDQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHSUBBW_VdqWdq, "vphsubbw", "vphsubbw", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHSUBBW_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHSUBWD_VdqWdq, "vphsubwd", "vphsubwd", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHSUBWD_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
bx_define_opcode(BX_IA_VPHSUBDQ_VdqWdq, "vphsubdq", "vphsubdq", &BX_CPU_C::LOADU_Wdq, &BX_CPU_C::VPHSUBDQ_VdqWdqR, BX_ISA_XOP, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_AVX)
// XOP (AMD)

// TBM (AMD)
bx_define_opcode(BX_IA_BEXTR_GdEdId, "bextr", "bextrl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BEXTR_GdEdIdR, BX_ISA_TBM, OP_Gd, OP_Ed, OP_Id, OP_NONE, 0)
bx_define_opcode(BX_IA_BEXTR_GqEqId, "bextr", "bextrq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BEXTR_GqEqIdR, BX_ISA_TBM, OP_Gq, OP_Eq, OP_sId, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCFILL_BdEd, "blcfill", "blcfilll", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCFILL_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCFILL_BqEq, "blcfill", "blcfillq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCFILL_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCI_BdEd, "blci", "blcil", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCI_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCI_BqEq, "blci", "blciq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCI_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCIC_BdEd, "blcic", "blcicl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCIC_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCIC_BqEq, "blcic", "blcicq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCIC_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCMSK_BdEd, "blcmsk", "blcmskl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCMSK_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCMSK_BqEq, "blcmsk", "blcmskq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCMSK_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCS_BdEd, "blcs", "blcsl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLCS_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLCS_BqEq, "blcs", "blcsq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLCS_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSFILL_BdEd, "blsfill", "blsfilll", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSFILL_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSFILL_BqEq, "blsfill", "blsfillq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSFILL_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSIC_BdEd, "blsic", "blsicl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BLSIC_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_BLSIC_BqEq, "blsic", "blsicq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BLSIC_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_T1MSKC_BdEd, "t1mskc", "t1mskcl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::T1MSKC_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_T1MSKC_BqEq, "t1mskc", "t1mskcq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::T1MSKC_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TZMSK_BdEd, "tzmsk", "tzmskl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::TZMSK_BdEdR, BX_ISA_TBM, OP_Bd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TZMSK_BqEq, "tzmsk", "tzmskq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::TZMSK_BqEqR, BX_ISA_TBM, OP_Bq, OP_Eq, OP_NONE, OP_NONE, 0)
// TBM (AMD)

#endif /* BX_SUPPORT_AVX */

bx_define_opcode(BX_IA_TZCNT_GwEw, "tzcnt", "tzcntw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::TZCNT_GwEwR, BX_ISA_BMI1, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_TZCNT_GdEd, "tzcnt", "tzcntl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::TZCNT_GdEdR, BX_ISA_BMI1, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_TZCNT_GqEq, "tzcnt", "tzcntq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::TZCNT_GqEqR, BX_ISA_BMI1, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif

bx_define_opcode(BX_IA_LZCNT_GwEw, "lzcnt", "lzcntw", &BX_CPU_C::LOAD_Ew, &BX_CPU_C::LZCNT_GwEwR, BX_ISA_LZCNT, OP_Gw, OP_Ew, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_LZCNT_GdEd, "lzcnt", "lzcntl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::LZCNT_GdEdR, BX_ISA_LZCNT, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_LZCNT_GqEq, "lzcnt", "lzcntq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::LZCNT_GqEqR, BX_ISA_LZCNT, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif

// SSE4A
bx_define_opcode(BX_IA_MOVNTSS_MssVss, "movntss", "movntss", &BX_CPU_C::MOVSS_WssVssM, &BX_CPU_C::BxError, BX_ISA_SSE4A, OP_Wss, OP_Vss, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_MOVNTSD_MsdVsd, "movntsd", "movntsd", &BX_CPU_C::MOVSD_WsdVsdM, &BX_CPU_C::BxError, BX_ISA_SSE4A, OP_Wsd, OP_Vsd, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_EXTRQ_UdqIbIb, "extrq", "extrq", &BX_CPU_C::BxError, &BX_CPU_C::EXTRQ_UdqIbIb, BX_ISA_SSE4A, OP_Wdq, OP_Ib, OP_Ib2, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_EXTRQ_VdqUq, "extrq", "extrq", &BX_CPU_C::BxError, &BX_CPU_C::EXTRQ_VdqUq, BX_ISA_SSE4A, OP_Vdq, OP_Wq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_INSERTQ_VdqUqIbIb, "insertq", "insertq", &BX_CPU_C::BxError, &BX_CPU_C::INSERTQ_VdqUqIbIb, BX_ISA_SSE4A, OP_Vdq, OP_Wq, OP_Ib, OP_Ib2, BX_PREPARE_SSE)
bx_define_opcode(BX_IA_INSERTQ_VdqUdq, "insertq", "insertq", &BX_CPU_C::BxError, &BX_CPU_C::INSERTQ_VdqUdq, BX_ISA_SSE4A, OP_Vdq, OP_Wdq, OP_NONE, OP_NONE, BX_PREPARE_SSE)
// SSE4A

// ADCX/ADOX
bx_define_opcode(BX_IA_ADCX_GdEd, "adcx", "adcxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ADCX_GdEdR, BX_ISA_ADX, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADOX_GdEd, "adox", "adoxl", &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ADOX_GdEdR, BX_ISA_ADX, OP_Gd, OP_Ed, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_ADCX_GqEq, "adcx", "adcxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ADCX_GqEqR, BX_ISA_ADX, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_ADOX_GqEq, "adox", "adoxq", &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ADOX_GqEqR, BX_ISA_ADX, OP_Gq, OP_Eq, OP_NONE, OP_NONE, 0)
#endif

// SMAP
bx_define_opcode(BX_IA_STAC, "stac", "stac", NULL, &BX_CPU_C::STAC, BX_ISA_SMAP, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_CLAC, "clac", "clac", NULL, &BX_CPU_C::CLAC, BX_ISA_SMAP, OP_NONE, OP_NONE, OP_NONE, OP_NONE, 0)

// RDRAND
bx_define_opcode(BX_IA_RDRAND_Ew, "rdrand", "rdrandw", NULL, &BX_CPU_C::RDRAND_Ew, BX_ISA_RDRAND, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDRAND_Ed, "rdrand", "rdrandl", NULL, &BX_CPU_C::RDRAND_Ed, BX_ISA_RDRAND, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_RDRAND_Eq, "rdrand", "rdrandq", NULL, &BX_CPU_C::RDRAND_Eq, BX_ISA_RDRAND, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
#endif

// RDSEED
bx_define_opcode(BX_IA_RDSEED_Ew, "rdseed", "rdseedw", NULL, &BX_CPU_C::RDSEED_Ew, BX_ISA_RDSEED, OP_Ew, OP_NONE, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_RDSEED_Ed, "rdseed", "rdseedl", NULL, &BX_CPU_C::RDSEED_Ed, BX_ISA_RDSEED, OP_Ed, OP_NONE, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_RDSEED_Eq, "rdseed", "rdseedq", NULL, &BX_CPU_C::RDSEED_Eq, BX_ISA_RDSEED, OP_Eq, OP_NONE, OP_NONE, OP_NONE, 0)
#endif

// MOVDIRI
bx_define_opcode(BX_IA_MOVDIRI_MdGd, "movdiri", "movdiril", &BX_CPU_C::MOV32_EdGdM, NULL, BX_ISA_MOVDIRI, OP_Md, OP_Gd, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVDIRI_MqGq, "movdiri", "movdiriq", &BX_CPU_C::MOV_EqGqM, NULL, BX_ISA_MOVDIRI, OP_Mq, OP_Gq, OP_NONE, OP_NONE, 0)
#endif

// MOVDIR64B
bx_define_opcode(BX_IA_MOVDIR64B_GdMdq, "movdir64b", "movdir64b", &BX_CPU_C::MOVDIR64B, NULL, BX_ISA_MOVDIR64B, OP_Gd, OP_M, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_MOVDIR64B_GqMdq, "movdir64b", "movdir64b", &BX_CPU_C::MOVDIR64B, NULL, BX_ISA_MOVDIR64B, OP_Gq, OP_M, OP_NONE, OP_NONE, 0)
#endif

// RAO-INT
bx_define_opcode(BX_IA_AADD_EdGd, "aadd", "aadd", &BX_CPU_C::AADD_EdGdM, NULL, BX_ISA_RAO_INT, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AAND_EdGd, "aand", "aand", &BX_CPU_C::AAND_EdGdM, NULL, BX_ISA_RAO_INT, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AOR_EdGd, "aor", "aor", &BX_CPU_C::AOR_EdGdM, NULL, BX_ISA_RAO_INT, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AXOR_EdGd, "axor", "axor", &BX_CPU_C::AXOR_EdGdM, NULL, BX_ISA_RAO_INT, OP_Ed, OP_Gd, OP_NONE, OP_NONE, 0)
#if BX_SUPPORT_X86_64
bx_define_opcode(BX_IA_AADD_EqGq, "aadd", "aaddq", &BX_CPU_C::AADD_EqGqM, NULL, BX_ISA_RAO_INT, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AAND_EqGq, "aand", "aandq", &BX_CPU_C::AAND_EqGqM, NULL, BX_ISA_RAO_INT, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AOR_EqGq, "aor", "aorq", &BX_CPU_C::AOR_EqGqM, NULL, BX_ISA_RAO_INT, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
bx_define_opcode(BX_IA_AXOR_EqGq, "axor", "axorq", &BX_CPU_C::AXOR_EqGqM, NULL, BX_ISA_RAO_INT, OP_Eq, OP_Gq, OP_NONE, OP_NONE, 0)
#endif

#if BX_SUPPORT_AMX
bx_define_opcode(BX_IA_LDTILECFG, "ldtilecfg", "ldtilecfg", &BX_CPU_C::LDTILECFG, NULL, BX_ISA_AMX, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_STTILECFG, "sttilecfg", "sttilecfg", &BX_CPU_C::STTILECFG, NULL, BX_ISA_AMX, OP_M, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILELOADD_TnnnMdq, "tileloadd", "tileloadd", &BX_CPU_C::TILELOADD_TnnnMdq, NULL, BX_ISA_AMX, OP_Tnnn, OP_M, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILELOADDT1_TnnnMdq, "tileloaddt1", "tileloaddt1", &BX_CPU_C::TILELOADD_TnnnMdq, NULL, BX_ISA_AMX, OP_Tnnn, OP_M, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILELOADDRS_TnnnMdq, "tileloaddrs", "tileloaddrs", &BX_CPU_C::TILELOADD_TnnnMdq, NULL, BX_ISA_AMX_MOVRS, OP_Tnnn, OP_M, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILELOADDRST1_TnnnMdq, "tileloaddrst1", "tileloaddrst1", &BX_CPU_C::TILELOADD_TnnnMdq, NULL, BX_ISA_AMX_MOVRS, OP_Tnnn, OP_M, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILESTORED_MdqTnnn, "tilestored", "tilestored", &BX_CPU_C::TILESTORED_MdqTnnn, NULL, BX_ISA_AMX, OP_M, OP_Tnnn, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILERELEASE, "tilerelease", "tilerelease", NULL, &BX_CPU_C::TILERELEASE, BX_ISA_AMX, OP_NONE, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TILEZERO_Tnnn, "tilezero", "tilezero", NULL, &BX_CPU_C::TILEZERO_Tnnn, BX_ISA_AMX, OP_Tnnn, OP_NONE, OP_NONE, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBSSD_TnnnTrmTreg, "tdpbssd", "tdpbssd", NULL, &BX_CPU_C::TDPBSSD_TnnnTrmTreg, BX_ISA_AMX_INT8, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBSUD_TnnnTrmTreg, "tdpbsud", "tdpbsud", NULL, &BX_CPU_C::TDPBSUD_TnnnTrmTreg, BX_ISA_AMX_INT8, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBUSD_TnnnTrmTreg, "tdpbusd", "tdpbusd", NULL, &BX_CPU_C::TDPBUSD_TnnnTrmTreg, BX_ISA_AMX_INT8, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBUUD_TnnnTrmTreg, "tdpbuud", "tdpbuud", NULL, &BX_CPU_C::TDPBUUD_TnnnTrmTreg, BX_ISA_AMX_INT8, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPBF16PS_TnnnTrmTreg, "tdpbf16ps", "tdpbf16ps", NULL, &BX_CPU_C::TDPBF16PS_TnnnTrmTreg, BX_ISA_AMX_BF16, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TDPFP16PS_TnnnTrmTreg, "tdpfp16ps", "tdpfp16ps", NULL, &BX_CPU_C::TDPFP16PS_TnnnTrmTreg, BX_ISA_AMX_FP16, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TCMMRLFP16PS_TnnnTrmTreg, "tcmmrlfp16ps", "tcmmrlfp16ps", NULL, &BX_CPU_C::TCMMRLFP16PS_TnnnTrmTreg, BX_ISA_AMX_COMPLEX, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TCMMIMFP16PS_TnnnTrmTreg, "tcmmimfp16ps", "tcmmimfp16ps", NULL, &BX_CPU_C::TCMMIMFP16PS_TnnnTrmTreg, BX_ISA_AMX_COMPLEX, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
bx_define_opcode(BX_IA_TMMULTF32PS_TnnnTrmTreg, "tmmultf32ps", "tmmultf32ps", NULL, &BX_CPU_C::TMMULTF32PS_TnnnTrmTreg, BX_ISA_AMX_TF32, OP_Tnnn, OP_Trm, OP_Treg, OP_NONE, BX_PREPARE_AMX)
#endif

#if BX_SUPPORT_AVX
bx_define_opcode(BX_IA_KADDW_KGwKHwKEw, "kaddw", "kaddw", &BX_CPU_C::BxError, &BX_CPU_C::KADDW_KGwKHwKEwR, BX_ISA_AVX512_DQ, OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KADDQ_KGqKHqKEq, "kaddq", "kaddq", &BX_CPU_C::BxError, &BX_CPU_C::KADDQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KADDB_KGbKHbKEb, "kaddb", "kaddb", &BX_CPU_C::BxError, &BX_CPU_C::KADDB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KADDD_KGdKHdKEd, "kaddd", "kaddd", &BX_CPU_C::BxError, &BX_CPU_C::KADDD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KANDW_KGwKHwKEw, "kandw", "kandw", &BX_CPU_C::BxError, &BX_CPU_C::KANDW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDQ_KGqKHqKEq, "kandq", "kandq", &BX_CPU_C::BxError, &BX_CPU_C::KANDQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDB_KGbKHbKEb, "kandb", "kandb", &BX_CPU_C::BxError, &BX_CPU_C::KANDB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDD_KGdKHdKEd, "kandd", "kandd", &BX_CPU_C::BxError, &BX_CPU_C::KANDD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KANDNW_KGwKHwKEw, "kandnw", "kandnw", &BX_CPU_C::BxError, &BX_CPU_C::KANDNW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDNQ_KGqKHqKEq, "kandnq", "kandnq", &BX_CPU_C::BxError, &BX_CPU_C::KANDNQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDNB_KGbKHbKEb, "kandnb", "kandnb", &BX_CPU_C::BxError, &BX_CPU_C::KANDNB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KANDND_KGdKHdKEd, "kandnd", "kandnd", &BX_CPU_C::BxError, &BX_CPU_C::KANDND_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KMOVW_KGwKEw, "kmovw", "kmovw", &BX_CPU_C::KMOVW_KGwKEwM, &BX_CPU_C::KMOVW_KGwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KEw, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVQ_KGqKEq, "kmovq", "kmovq", &BX_CPU_C::KMOVQ_KGqKEqM, &BX_CPU_C::KMOVQ_KGqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KEq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVB_KGbKEb, "kmovb", "kmovb", &BX_CPU_C::KMOVB_KGbKEbM, &BX_CPU_C::KMOVB_KGbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KEb, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVD_KGdKEd, "kmovd", "kmovd", &BX_CPU_C::KMOVD_KGdKEdM, &BX_CPU_C::KMOVD_KGdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KEd, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KMOVW_KEwKGw, "kmovw", "kmovw", &BX_CPU_C::KMOVW_KEwKGwM, &BX_CPU_C::BxError, BX_ISA_AVX512,    OP_KEw, OP_KGw, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVQ_KEqKGq, "kmovq", "kmovq", &BX_CPU_C::KMOVQ_KEqKGqM, &BX_CPU_C::BxError, BX_ISA_AVX512_BW, OP_KEq, OP_KGq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVB_KEbKGb, "kmovb", "kmovb", &BX_CPU_C::KMOVB_KEbKGbM, &BX_CPU_C::BxError, BX_ISA_AVX512_DQ, OP_KEb, OP_KGb, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVD_KEdKGd, "kmovd", "kmovd", &BX_CPU_C::KMOVD_KEdKGdM, &BX_CPU_C::BxError, BX_ISA_AVX512_BW, OP_KEd, OP_KGd, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KMOVB_GdKEb, "kmovb", "kmovb", &BX_CPU_C::BxError, &BX_CPU_C::KMOVB_GdKEbR, BX_ISA_AVX512_DQ, OP_Gd, OP_KEb, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVW_GdKEw, "kmovw", "kmovw", &BX_CPU_C::BxError, &BX_CPU_C::KMOVW_GdKEwR, BX_ISA_AVX512,    OP_Gd, OP_KEw, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVD_GdKEd, "kmovd", "kmovd", &BX_CPU_C::BxError, &BX_CPU_C::KMOVD_GdKEdR, BX_ISA_AVX512_BW, OP_Gd, OP_KEd, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVQ_GqKEq, "kmovq", "kmovq", &BX_CPU_C::BxError, &BX_CPU_C::KMOVQ_GqKEqR, BX_ISA_AVX512_BW, OP_Gq, OP_KEq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KMOVB_KGbEb, "kmovb", "kmovb", &BX_CPU_C::BxError, &BX_CPU_C::KMOVB_KGbEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVW_KGwEw, "kmovw", "kmovw", &BX_CPU_C::BxError, &BX_CPU_C::KMOVW_KGwEwR, BX_ISA_AVX512,    OP_KGw, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVD_KGdEd, "kmovd", "kmovd", &BX_CPU_C::BxError, &BX_CPU_C::KMOVD_KGdEdR, BX_ISA_AVX512_BW, OP_KGd, OP_Ed, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KMOVQ_KGqEq, "kmovq", "kmovq", &BX_CPU_C::BxError, &BX_CPU_C::KMOVQ_KGqEqR, BX_ISA_AVX512_BW, OP_KGq, OP_Eq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KUNPCKBW_KGwKHbKEb, "kunpckbw", "kunpckbw", &BX_CPU_C::BxError, &BX_CPU_C::KUNPCKBW_KGwKHbKEbR, BX_ISA_AVX512,    OP_KGw, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KUNPCKWD_KGdKHwKEw, "kunpckwd", "kunpckwd", &BX_CPU_C::BxError, &BX_CPU_C::KUNPCKWD_KGdKHwKEwR, BX_ISA_AVX512_BW, OP_KGd, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KUNPCKDQ_KGqKHdKEd, "kunpckdq", "kunpckdq", &BX_CPU_C::BxError, &BX_CPU_C::KUNPCKDQ_KGqKHdKEdR, BX_ISA_AVX512_BW, OP_KGq, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KNOTW_KGwKEw, "knotw", "knotw", &BX_CPU_C::BxError, &BX_CPU_C::KNOTW_KGwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KEw, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KNOTQ_KGqKEq, "knotq", "knotq", &BX_CPU_C::BxError, &BX_CPU_C::KNOTQ_KGqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KEq, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KNOTB_KGbKEb, "knotb", "knotb", &BX_CPU_C::BxError, &BX_CPU_C::KNOTB_KGbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KEb, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KNOTD_KGdKEd, "knotd", "knotd", &BX_CPU_C::BxError, &BX_CPU_C::KNOTD_KGdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KEd, OP_NONE, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KORW_KGwKHwKEw, "korw", "korw", &BX_CPU_C::BxError, &BX_CPU_C::KORW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORQ_KGqKHqKEq, "korq", "korq", &BX_CPU_C::BxError, &BX_CPU_C::KORQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORB_KGbKHbKEb, "korb", "korb", &BX_CPU_C::BxError, &BX_CPU_C::KORB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORD_KGdKHdKEd, "kord", "kord", &BX_CPU_C::BxError, &BX_CPU_C::KORD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KORTESTW_KGwKEw, "kortestw", "kortestw", &BX_CPU_C::BxError, &BX_CPU_C::KORTESTW_KGwKEwR, BX_ISA_AVX512,    OP_NONE, OP_KGw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORTESTQ_KGqKEq, "kortestq", "kortestq", &BX_CPU_C::BxError, &BX_CPU_C::KORTESTQ_KGqKEqR, BX_ISA_AVX512_BW, OP_NONE, OP_KGq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORTESTB_KGbKEb, "kortestb", "kortestb", &BX_CPU_C::BxError, &BX_CPU_C::KORTESTB_KGbKEbR, BX_ISA_AVX512_DQ, OP_NONE, OP_KGb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KORTESTD_KGdKEd, "kortestd", "kortestd", &BX_CPU_C::BxError, &BX_CPU_C::KORTESTD_KGdKEdR, BX_ISA_AVX512_BW, OP_NONE, OP_KGd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KSHIFTLB_KGbKEbIb, "kshiftlb", "kshiftlb", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTLB_KGbKEbIbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KEb, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTLW_KGwKEwIb, "kshiftlw", "kshiftlw", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTLW_KGwKEwIbR, BX_ISA_AVX512, OP_KGw, OP_KEw, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTLD_KGdKEdIb, "kshiftld", "kshiftld", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTLD_KGdKEdIbR, BX_ISA_AVX512_BW, OP_KGd, OP_KEd, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTLQ_KGqKEqIb, "kshiftlq", "kshiftlq", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTLQ_KGqKEqIbR, BX_ISA_AVX512_BW, OP_KGq, OP_KEq, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KSHIFTRB_KGbKEbIb, "kshiftrb", "kshiftrb", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTRB_KGbKEbIbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KEb, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTRW_KGwKEwIb, "kshiftrw", "kshiftrw", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTRW_KGwKEwIbR, BX_ISA_AVX512,    OP_KGw, OP_KEw, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTRD_KGdKEdIb, "kshiftrd", "kshiftrd", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTRD_KGdKEdIbR, BX_ISA_AVX512_BW, OP_KGd, OP_KEd, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KSHIFTRQ_KGqKEqIb, "kshiftrq", "kshiftrq", &BX_CPU_C::BxError, &BX_CPU_C::KSHIFTRQ_KGqKEqIbR, BX_ISA_AVX512_BW, OP_KGq, OP_KEq, OP_Ib, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KXNORW_KGwKHwKEw, "kxnorw", "kxnorw", &BX_CPU_C::BxError, &BX_CPU_C::KXNORW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXNORQ_KGqKHqKEq, "kxnorq", "kxnorq", &BX_CPU_C::BxError, &BX_CPU_C::KXNORQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXNORB_KGbKHbKEb, "kxnorb", "kxnorb", &BX_CPU_C::BxError, &BX_CPU_C::KXNORB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXNORD_KGdKHdKEd, "kxnord", "kxnord", &BX_CPU_C::BxError, &BX_CPU_C::KXNORD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KXORW_KGwKHwKEw, "kxorw", "kxorw", &BX_CPU_C::BxError, &BX_CPU_C::KXORW_KGwKHwKEwR, BX_ISA_AVX512,    OP_KGw, OP_KHw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXORQ_KGqKHqKEq, "kxorq", "kxorq", &BX_CPU_C::BxError, &BX_CPU_C::KXORQ_KGqKHqKEqR, BX_ISA_AVX512_BW, OP_KGq, OP_KHq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXORB_KGbKHbKEb, "kxorb", "kxorb", &BX_CPU_C::BxError, &BX_CPU_C::KXORB_KGbKHbKEbR, BX_ISA_AVX512_DQ, OP_KGb, OP_KHb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KXORD_KGdKHdKEd, "kxord", "kxord", &BX_CPU_C::BxError, &BX_CPU_C::KXORD_KGdKHdKEdR, BX_ISA_AVX512_BW, OP_KGd, OP_KHd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

bx_define_opcode(BX_IA_KTESTW_KGwKEw, "ktestw", "ktestw", &BX_CPU_C::BxError, &BX_CPU_C::KTESTW_KGwKEwR, BX_ISA_AVX512_DQ, OP_NONE, OP_KGw, OP_KEw, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KTESTQ_KGqKEq, "ktestq", "ktestq", &BX_CPU_C::BxError, &BX_CPU_C::KTESTQ_KGqKEqR, BX_ISA_AVX512_BW, OP_NONE, OP_KGq, OP_KEq, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KTESTB_KGbKEb, "ktestb", "ktestb", &BX_CPU_C::BxError, &BX_CPU_C::KTESTB_KGbKEbR, BX_ISA_AVX512_DQ, OP_NONE, OP_KGb, OP_KEb, OP_NONE, BX_PREPARE_OPMASK)
bx_define_opcode(BX_IA_KTESTD_KGdKEd, "ktestd", "ktestd", &BX_CPU_C::BxError, &BX_CPU_C::KTESTD_KGdKEdR, BX_ISA_AVX512_BW, OP_NONE, OP_KGd, OP_KEd, OP_NONE, BX_PREPARE_OPMASK)

// RDMSR/WRMSRNS imm form
bx_define_opcode(BX_IA_RDMSR_EqId, "rdmsr", "rdmsr", NULL, &BX_CPU_C::RDMSR, BX_ISA_MSR_IMM, OP_Eq, OP_Id, OP_NONE, OP_NONE, BX_TRACE_END)
bx_define_opcode(BX_IA_WRMSRNS_IdEq, "wrmsrns", "wrmsrns", NULL, &BX_CPU_C::WRMSR, BX_ISA_MSR_IMM, OP_Id, OP_Eq, OP_NONE, OP_NONE, BX_TRACE_END)
#endif

#if BX_SUPPORT_EVEX
#include "ia_opcodes_evex.def"
#endif // BX_SUPPORT_EVEX