-
Notifications
You must be signed in to change notification settings - Fork 14
/
opcode_tables.h
2353 lines (2310 loc) · 288 KB
/
opcode_tables.h
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
/*
* libdasm -- simple x86 disassembly library
* Copyright (c) 2004-2007 Jarkko Turkulainen <jt / nologin.org> <turkja / github.com>
* Copyright (c) 2009-2010 Ange Albertini <angea / github.com>
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1) Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* opcode_tables.h:
* Opcode tables for FPU, 1, 2 and 3-byte opcodes and
* extensions.
*
*/
#include "libdasm.h"
// lock/rep prefix name table
const char *rep_table[] = {
"lock ", "repne ", "rep "
};
// Register name table (also includes Jcc branch hint prefixes)
const char *reg_table[11][8] = {
{ "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi" },
{ "ax", "cx", "dx", "bx", "sp", "bp", "si", "di" },
{ "al", "cl", "dl", "bl", "ah", "ch", "dh", "bh" },
{ "es", "cs", "ss", "ds", "fs", "gs", "??", "??" },
{ "dr0", "dr1", "dr2", "dr3", "dr4", "dr5", "dr6", "dr7" },
{ "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7" },
{ "tr0", "tr1", "tr2", "tr3", "tr4", "tr5", "tr6", "tr7" },
{ "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7" },
{ "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7" },
{ "st(0)","st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)"},
{ "??", "(bnt)","??", "(bt)", "??", "??", "??", "??" },
};
// Name table index
#define REG_GEN_DWORD 0
#define REG_GEN_WORD 1
#define REG_GEN_BYTE 2
#define REG_SEGMENT 3
#define REG_DEBUG 4
#define REG_CONTROL 5
#define REG_TEST 6
#define REG_XMM 7
#define REG_MMX 8
#define REG_FPU 9
#define REG_BRANCH 10 // Not registers strictly speaking..
// 1-byte opcodes
INST inst_table1[256] = {
/*00*/{ INSTRUCTION_TYPE_ADD, "add", AM_E|OT_b|P_w, AM_G|OT_b|P_r, FLAGS_NONE, 1, EFL_MATH, 0, 0, 0 },
/*01*/{ INSTRUCTION_TYPE_ADD, "add", AM_E|OT_v|P_w, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_MATH, 0, 0, 0 },
/*02*/{ INSTRUCTION_TYPE_ADD, "add", AM_G|OT_b|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, EFL_MATH, 0, 0, 0 },
/*03*/{ INSTRUCTION_TYPE_ADD, "add", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_MATH, 0, 0, 0 },
/*04*/{ INSTRUCTION_TYPE_ADD, "add", AM_REG|REG_EAX|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, EFL_MATH, 0, 0, 0 },
/*05*/{ INSTRUCTION_TYPE_ADD, "add", AM_REG|REG_EAX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, EFL_MATH, 0, 0, 0 },
/*06*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_ES|F_r|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*07*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_ES|F_r|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*08*/{ INSTRUCTION_TYPE_OR, "or", AM_E|OT_b|P_w, AM_G|OT_b|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*09*/{ INSTRUCTION_TYPE_OR, "or", AM_E|OT_v|P_w, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*0A*/{ INSTRUCTION_TYPE_OR, "or", AM_G|OT_b|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*0B*/{ INSTRUCTION_TYPE_OR, "or", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*0C*/{ INSTRUCTION_TYPE_OR, "or", AM_REG|REG_EAX|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, EFL_BITWISE, 0, 0, 0 },
/*0D*/{ INSTRUCTION_TYPE_OR, "or", AM_REG|REG_EAX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, EFL_BITWISE, 0, 0, 0 },
/*0E*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_CS|F_r|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
// Escape to 2-byte opcode table
/*0F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*10*/{ INSTRUCTION_TYPE_ADC, "adc", AM_E|OT_b|P_w, AM_G|OT_b|P_r, FLAGS_NONE, 1, EFL_MATH, EFL_CF, 0, 0 },
/*11*/{ INSTRUCTION_TYPE_ADC, "adc", AM_E|OT_v|P_w, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_MATH, EFL_CF, 0, 0 },
/*12*/{ INSTRUCTION_TYPE_ADC, "adc", AM_G|OT_b|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, EFL_MATH, EFL_CF, 0, 0 },
/*13*/{ INSTRUCTION_TYPE_ADC, "adc", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_MATH, EFL_CF, 0, 0 },
/*14*/{ INSTRUCTION_TYPE_ADC, "adc", AM_REG|REG_EAX|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, EFL_MATH, EFL_CF, 0, 0 },
/*15*/{ INSTRUCTION_TYPE_ADC, "adc", AM_REG|REG_EAX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, EFL_MATH, EFL_CF, 0, 0 },
/*16*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_SS|F_r|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*17*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_SS|F_r|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*18*/{ INSTRUCTION_TYPE_SBB, "sbb", AM_E|OT_b|P_w, AM_G|OT_b|P_r, FLAGS_NONE, 1, EFL_MATH, EFL_CF, 0, 0 },
/*19*/{ INSTRUCTION_TYPE_SBB, "sbb", AM_E|OT_v|P_w, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_MATH, EFL_CF, 0, 0 },
/*1A*/{ INSTRUCTION_TYPE_SBB, "sbb", AM_G|OT_b|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, EFL_MATH, EFL_CF, 0, 0 },
/*1B*/{ INSTRUCTION_TYPE_SBB, "sbb", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_MATH, EFL_CF, 0, 0 },
/*1C*/{ INSTRUCTION_TYPE_SBB, "sbb", AM_REG|REG_EAX|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, EFL_MATH, EFL_CF, 0, 0 },
/*1D*/{ INSTRUCTION_TYPE_SBB, "sbb", AM_REG|REG_EAX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, EFL_MATH, EFL_CF, 0, 0 },
/*1E*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_DS|F_r|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*1F*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_DS|F_r|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*20*/{ INSTRUCTION_TYPE_AND, "and", AM_E|OT_b|P_w, AM_G|OT_b|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*21*/{ INSTRUCTION_TYPE_AND, "and", AM_E|OT_v|P_w, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*22*/{ INSTRUCTION_TYPE_AND, "and", AM_G|OT_b|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*23*/{ INSTRUCTION_TYPE_AND, "and", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*24*/{ INSTRUCTION_TYPE_AND, "and", AM_REG|REG_EAX|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, EFL_BITWISE, 0, 0, 0 },
/*25*/{ INSTRUCTION_TYPE_AND, "and", AM_REG|REG_EAX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, EFL_BITWISE, 0, 0, 0 },
// seg ES override
/*26*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*27*/{ INSTRUCTION_TYPE_DCL, "daa", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_CF|EFL_AF|EFL_SF|EFL_ZF|EFL_PF, EFL_CF, IOP_EAX, IOP_EAX },
/*28*/{ INSTRUCTION_TYPE_SUB, "sub", AM_E|OT_b|P_w, AM_G|OT_b|P_r, FLAGS_NONE, 1, EFL_MATH, 0, 0, 0 },
/*29*/{ INSTRUCTION_TYPE_SUB, "sub", AM_E|OT_v|P_w, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_MATH, 0, 0, 0 },
/*2A*/{ INSTRUCTION_TYPE_SUB, "sub", AM_G|OT_b|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, EFL_MATH, 0, 0, 0 },
/*2B*/{ INSTRUCTION_TYPE_SUB, "sub", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_MATH, 0, 0, 0 },
/*2C*/{ INSTRUCTION_TYPE_SUB, "sub", AM_REG|REG_EAX|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, EFL_MATH, 0, 0, 0 },
/*2D*/{ INSTRUCTION_TYPE_SUB, "sub", AM_REG|REG_EAX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, EFL_MATH, 0, 0, 0 },
// seg CS override
/*2E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*2F*/{ INSTRUCTION_TYPE_DCL, "das", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_CF|EFL_AF|EFL_SF|EFL_ZF|EFL_PF, EFL_CF, IOP_EAX, IOP_EAX },
/*30*/{ INSTRUCTION_TYPE_XOR, "xor", AM_E|OT_b|P_w, AM_G|OT_b|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*31*/{ INSTRUCTION_TYPE_XOR, "xor", AM_E|OT_v|P_w, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*32*/{ INSTRUCTION_TYPE_XOR, "xor", AM_G|OT_b|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*33*/{ INSTRUCTION_TYPE_XOR, "xor", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_BITWISE, 0, 0, 0 },
/*34*/{ INSTRUCTION_TYPE_XOR, "xor", AM_REG|REG_EAX|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, EFL_BITWISE, 0, 0, 0 },
/*35*/{ INSTRUCTION_TYPE_XOR, "xor", AM_REG|REG_EAX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, EFL_BITWISE, 0, 0, 0 },
// seg SS override
/*36*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*37*/{ INSTRUCTION_TYPE_ASC, "aaa", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_AF|EFL_CF, 0, IOP_EAX, IOP_EAX },
/*38*/{ INSTRUCTION_TYPE_CMP, "cmp", AM_E|OT_b|P_r, AM_G|OT_b|P_r, FLAGS_NONE, 1, EFL_ALL_COMMON, 0, 0, 0 },
/*39*/{ INSTRUCTION_TYPE_CMP, "cmp", AM_E|OT_v|P_r, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_ALL_COMMON, 0, 0, 0 },
/*3A*/{ INSTRUCTION_TYPE_CMP, "cmp", AM_G|OT_b|P_r, AM_E|OT_b|P_r, FLAGS_NONE, 1, EFL_ALL_COMMON, 0, 0, 0 },
/*3B*/{ INSTRUCTION_TYPE_CMP, "cmp", AM_G|OT_v|P_r, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_ALL_COMMON, 0, 0, 0 },
/*3C*/{ INSTRUCTION_TYPE_CMP, "cmp", AM_REG|REG_EAX|OT_b|P_r, AM_I|OT_b|P_r, FLAGS_NONE, 0, EFL_ALL_COMMON, 0, 0, 0 },
/*3D*/{ INSTRUCTION_TYPE_CMP, "cmp", AM_REG|REG_EAX|OT_v|P_r, AM_I|OT_v|P_r, FLAGS_NONE, 0, EFL_ALL_COMMON, 0, 0, 0 },
// seg DS override
/*3E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*3F*/{ INSTRUCTION_TYPE_ASC, "aas", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_AF|EFL_CF, 0, IOP_EAX, IOP_EAX },
/*40*/{ INSTRUCTION_TYPE_INC, "inc", AM_REG|REG_EAX|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*41*/{ INSTRUCTION_TYPE_INC, "inc", AM_REG|REG_ECX|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*42*/{ INSTRUCTION_TYPE_INC, "inc", AM_REG|REG_EDX|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*43*/{ INSTRUCTION_TYPE_INC, "inc", AM_REG|REG_EBX|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*44*/{ INSTRUCTION_TYPE_INC, "inc", AM_REG|REG_ESP|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*45*/{ INSTRUCTION_TYPE_INC, "inc", AM_REG|REG_EBP|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*46*/{ INSTRUCTION_TYPE_INC, "inc", AM_REG|REG_ESI|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*47*/{ INSTRUCTION_TYPE_INC, "inc", AM_REG|REG_EDI|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*48*/{ INSTRUCTION_TYPE_DEC, "dec", AM_REG|REG_EAX|OT_v, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*49*/{ INSTRUCTION_TYPE_DEC, "dec", AM_REG|REG_ECX|OT_v, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4A*/{ INSTRUCTION_TYPE_DEC, "dec", AM_REG|REG_EDX|OT_v, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4B*/{ INSTRUCTION_TYPE_DEC, "dec", AM_REG|REG_EBX|OT_v, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4C*/{ INSTRUCTION_TYPE_DEC, "dec", AM_REG|REG_ESP|OT_v, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4D*/{ INSTRUCTION_TYPE_DEC, "dec", AM_REG|REG_EBP|OT_v, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4E*/{ INSTRUCTION_TYPE_DEC, "dec", AM_REG|REG_ESI|OT_v, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4F*/{ INSTRUCTION_TYPE_DEC, "dec", AM_REG|REG_EDI|OT_v, FLAGS_NONE, FLAGS_NONE, 0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*50*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_EAX|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*51*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_ECX|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*52*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_EDX|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*53*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_EBX|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*54*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_ESP|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*55*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_EBP|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*56*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_ESI|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*57*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_EDI|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*58*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EAX|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*59*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_ECX|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*5A*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EDX|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*5B*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EBX|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*5C*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_ESP|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*5D*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EBP|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*5E*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_ESI|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*5F*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EDI|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*60*/{ INSTRUCTION_TYPE_PUSH , "pusha", FLAGS_NONE|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ALL },
/*61*/{ INSTRUCTION_TYPE_POP, "popa", FLAGS_NONE|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ALL, IOP_ESP },
/*62*/{ INSTRUCTION_TYPE_OTHER, "bound", AM_G|OT_v|P_r, AM_M|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*63*/{ INSTRUCTION_TYPE_PRIV, "arpl", AM_E|OT_w|P_r, AM_G|OT_w|P_r, FLAGS_NONE, 1, EFL_ZF, 0, 0, 0 },
// seg FS override
/*64*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
// seg GS override
/*65*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
// operand size override
/*66*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
// address size override
/*67*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*68*/{ INSTRUCTION_TYPE_PUSH, "push", AM_I|OT_v|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*69*/{ INSTRUCTION_TYPE_EIMUL, "imul", AM_G|OT_v|P_r, AM_E|OT_v|P_r, AM_I|OT_v|P_r,1, EFL_CF|EFL_OF, 0, 0, 0 },
/*6A*/{ INSTRUCTION_TYPE_PUSH, "push", AM_I|OT_b|F_s|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*6B*/{ INSTRUCTION_TYPE_EIMUL, "imul", AM_G|OT_v|P_r, AM_E|OT_v|P_r, AM_I|OT_b|F_s|P_r,1, EFL_CF|EFL_OF, 0, 0, 0 },
/*6C*/{ INSTRUCTION_TYPE_PRIV, "insb", FLAGS_NONE|P_w, FLAGS_NONE|P_r, FLAGS_NONE, 0, 0, 0, IOP_EDI, IOP_EDX|IOP_EDI },
/*6D*/{ INSTRUCTION_TYPE_PRIV, "insv", FLAGS_NONE|P_w, FLAGS_NONE|P_r, FLAGS_NONE, 0, 0, 0, IOP_EDI, IOP_EDX|IOP_EDI },
/*6E*/{ INSTRUCTION_TYPE_PRIV, "outsb", FLAGS_NONE|P_w, FLAGS_NONE|P_r, FLAGS_NONE, 0, 0, 0, IOP_ESI, IOP_EDX|IOP_ESI },
/*6F*/{ INSTRUCTION_TYPE_PRIV, "outsv", FLAGS_NONE|P_w, FLAGS_NONE|P_r, FLAGS_NONE, 0, 0, 0, IOP_ESI, IOP_EDX|IOP_ESI },
/*70*/{ INSTRUCTION_TYPE_JMPC, "jo", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_OF, 0, 0 },
/*71*/{ INSTRUCTION_TYPE_JMPC, "jno", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_OF, 0, 0 },
/*72*/{ INSTRUCTION_TYPE_JMPC, "jc", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_CF, 0, 0 },
/*73*/{ INSTRUCTION_TYPE_JMPC, "jnc", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_CF, 0, 0 },
/*74*/{ INSTRUCTION_TYPE_JMPC, "jz", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF, 0, 0 },
/*75*/{ INSTRUCTION_TYPE_JMPC, "jnz", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF, 0, 0 },
/*76*/{ INSTRUCTION_TYPE_JMPC, "jna", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF|EFL_CF, 0, 0 },
/*77*/{ INSTRUCTION_TYPE_JMPC, "ja", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF|EFL_CF, 0, 0 },
/*78*/{ INSTRUCTION_TYPE_JMPC, "js", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF, 0, 0 },
/*79*/{ INSTRUCTION_TYPE_JMPC, "jns", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF, 0, 0 },
/*7A*/{ INSTRUCTION_TYPE_JMPC, "jp", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_PF, 0, 0 },
/*7B*/{ INSTRUCTION_TYPE_JMPC, "jpo", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_PF, 0, 0 },
/*7C*/{ INSTRUCTION_TYPE_JMPC, "jl", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF|EFL_OF, 0, 0 },
/*7D*/{ INSTRUCTION_TYPE_JMPC, "jnl", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF|EFL_OF, 0, 0 },
/*7E*/{ INSTRUCTION_TYPE_JMPC, "jng", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF|EFL_OF|EFL_ZF, 0, 0 },
/*7F*/{ INSTRUCTION_TYPE_JMPC, "jg", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF|EFL_OF|EFL_ZF, 0, 0 },
/*80*/{ INSTRUCTION_TYPE_OTHER, "g1", AM_E|OT_b, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*81*/{ INSTRUCTION_TYPE_OTHER, "g1", AM_E|OT_v, AM_I|OT_v, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*82*/{ INSTRUCTION_TYPE_OTHER, "g1", AM_E|OT_b, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*83*/{ INSTRUCTION_TYPE_OTHER, "g1", AM_E|OT_v, AM_I|OT_b|F_s, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*84*/{ INSTRUCTION_TYPE_TEST, "test", AM_E|OT_b|P_r, AM_G|OT_b|P_r, FLAGS_NONE, 1, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*85*/{ INSTRUCTION_TYPE_TEST, "test", AM_E|OT_v|P_r, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*86*/{ INSTRUCTION_TYPE_XCHG, "xchg", AM_E|OT_b|P_w, AM_G|OT_b|P_w, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*87*/{ INSTRUCTION_TYPE_XCHG, "xchg", AM_E|OT_v|P_w, AM_G|OT_v|P_w, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*88*/{ INSTRUCTION_TYPE_MOV, "mov", AM_E|OT_b|P_w, AM_G|OT_b|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*89*/{ INSTRUCTION_TYPE_MOV, "mov", AM_E|OT_v|P_w, AM_G|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*8A*/{ INSTRUCTION_TYPE_MOV, "mov", AM_G|OT_b|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*8B*/{ INSTRUCTION_TYPE_MOV, "mov", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*8C*/{ INSTRUCTION_TYPE_MOVSR, "mov", AM_E|OT_v|P_w, AM_S|OT_w|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*8D*/{ INSTRUCTION_TYPE_LEA, "lea", AM_G|OT_v|P_w, AM_M|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*8E*/{ INSTRUCTION_TYPE_MOVSR, "mov", AM_S|OT_w|P_w, AM_E|OT_w|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*8F*/{ INSTRUCTION_TYPE_POP, "pop", AM_E|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, 0, IOP_ESP, IOP_ESP },
/*90*/{ INSTRUCTION_TYPE_OTHER, "nop", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*91*/{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v|P_w, AM_REG|REG_ECX|OT_v|P_w, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*92*/{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v|P_w, AM_REG|REG_EDX|OT_v|P_w, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*93*/{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v|P_w, AM_REG|REG_EBX|OT_v|P_w, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*94*/{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v|P_w, AM_REG|REG_ESP|OT_v|P_w, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*95*/{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v|P_w, AM_REG|REG_EBP|OT_v|P_w, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*96*/{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v|P_w, AM_REG|REG_ESI|OT_v|P_w, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*97*/{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v|P_w, AM_REG|REG_EDI|OT_v|P_w, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*98*/{ INSTRUCTION_TYPE_OTHER, "cbw", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, REG_EAX, IOP_EAX },
/*99*/{ INSTRUCTION_TYPE_OTHER, "cwd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, REG_EAX|REG_EDX, IOP_EAX },
/*9A*/{ INSTRUCTION_TYPE_CALL, "callf", AM_A|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, 0 },
/*9B*/{ INSTRUCTION_TYPE_FPU_CTRL,"wait", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*9C*/{ INSTRUCTION_TYPE_PUSH, "pushf", FLAGS_NONE|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*9D*/{ INSTRUCTION_TYPE_POP, "popf", FLAGS_NONE|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*9E*/{ INSTRUCTION_TYPE_OTHER, "sahf", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_SF|EFL_ZF|EFL_AF|EFL_PF|EFL_CF, 0, IOP_EAX },
/*9F*/{ INSTRUCTION_TYPE_OTHER, "lahf", FLAGS_NONE|P_w, FLAGS_NONE|P_r, FLAGS_NONE, 0, 0, 0, IOP_EAX, 0 },
/*A0*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EAX|OT_b|P_w, AM_O|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*A1*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EAX|OT_v|P_w, AM_O|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*A2*/{ INSTRUCTION_TYPE_MOV, "mov", AM_O|OT_v|P_w, AM_REG|REG_EAX|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*A3*/{ INSTRUCTION_TYPE_MOV, "mov", AM_O|OT_v|P_w, AM_REG|REG_EAX|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*A4*/{ INSTRUCTION_TYPE_MOVS, "movsb", FLAGS_NONE|P_w, FLAGS_NONE|P_r, FLAGS_NONE, 0, 0, EFL_DF, IOP_EDI|IOP_ESI, IOP_EDI|IOP_ESI },
/*A5*/{ INSTRUCTION_TYPE_MOVS, "movsd", FLAGS_NONE|P_w, FLAGS_NONE|P_r, FLAGS_NONE, 0, 0, EFL_DF, IOP_EDI|IOP_ESI, IOP_EDI|IOP_ESI },
/*A6*/{ INSTRUCTION_TYPE_CMPS, "cmpsb", FLAGS_NONE|P_r, FLAGS_NONE|P_r, FLAGS_NONE, 0, EFL_ALL_COMMON, EFL_DF, IOP_EDI|IOP_ESI, IOP_EDI|IOP_ESI },
/*A7*/{ INSTRUCTION_TYPE_CMPS, "cmpsd", FLAGS_NONE|P_r, FLAGS_NONE|P_r, FLAGS_NONE, 0, EFL_ALL_COMMON, EFL_DF, IOP_EDI|IOP_ESI, IOP_EDI|IOP_ESI },
/*A8*/{ INSTRUCTION_TYPE_TEST, "test", AM_REG|REG_EAX|OT_b|P_r, AM_I|OT_b|P_r, FLAGS_NONE, 0, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*A9*/{ INSTRUCTION_TYPE_TEST, "test", AM_REG|REG_EAX|OT_v|P_r, AM_I|OT_v|P_r, FLAGS_NONE, 0, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*AA*/{ INSTRUCTION_TYPE_STOS, "stosb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_DF, IOP_EDI, IOP_EAX|IOP_EDI },
/*AB*/{ INSTRUCTION_TYPE_STOS, "stosd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_DF, IOP_EDI, IOP_EAX|IOP_EDI },
/*AC*/{ INSTRUCTION_TYPE_LODS, "lodsb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_DF, IOP_EAX|IOP_ESI, IOP_ESI },
/*AD*/{ INSTRUCTION_TYPE_LODS, "lodsd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_DF, IOP_EAX|IOP_ESI, IOP_ESI },
/*AE*/{ INSTRUCTION_TYPE_SCAS, "scasb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_ALL_COMMON, EFL_DF, IOP_EDI, IOP_EAX|IOP_EDI },
/*AF*/{ INSTRUCTION_TYPE_SCAS, "scasd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_ALL_COMMON, EFL_DF, IOP_EDI, IOP_EAX|IOP_EDI },
/*B0*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_AL|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*B1*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_CL|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*B2*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_DL|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*B3*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_BL|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*B4*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_AH|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*B5*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_CH|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*B6*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_DH|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*B7*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_BH|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*B8*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EAX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*B9*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_ECX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*BA*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EDX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*BB*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EBX|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*BC*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_ESP|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*BD*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EBP|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*BE*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_ESI|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*BF*/{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EDI|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*C0*/{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_b, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*C1*/{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_v, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*C2*/{ INSTRUCTION_TYPE_RET, "retn", AM_I|OT_w|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*C3*/{ INSTRUCTION_TYPE_RET, "ret", FLAGS_NONE|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*C4*/{ INSTRUCTION_TYPE_LFP, "les", AM_G|OT_v|P_w, AM_M|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*C5*/{ INSTRUCTION_TYPE_LFP, "lds", AM_G|OT_v|P_w, AM_M|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*C6*/{ INSTRUCTION_TYPE_MOV, "mov", AM_E|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*C7*/{ INSTRUCTION_TYPE_MOV, "mov", AM_E|OT_v|P_w, AM_I|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*C8*/{ INSTRUCTION_TYPE_ENTER, "enter", AM_I|OT_w|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, IOP_ESP|IOP_EBP, IOP_ESP|IOP_EBP },
/*C9*/{ INSTRUCTION_TYPE_POP, "leave", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP|IOP_EBP, IOP_ESP|IOP_EBP },
/*CA*/{ INSTRUCTION_TYPE_RET, "retf", AM_I|OT_w|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, 0 },
/*CB*/{ INSTRUCTION_TYPE_OTHER, "retf", FLAGS_NONE|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, 0 },
/*CC*/{ INSTRUCTION_TYPE_INT, "int3", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*CD*/{ INSTRUCTION_TYPE_INT, "int", AM_I|OT_b|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*CE*/{ INSTRUCTION_TYPE_INT, "into", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*CF*/{ INSTRUCTION_TYPE_OTHER, "iret", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*D0*/{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_b, AM_I1|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*D1*/{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_v, AM_I1|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*D2*/{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_b, AM_REG|REG_CL|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*D3*/{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_v, AM_REG|REG_CL|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*D4*/{ INSTRUCTION_TYPE_ASC, "aam", AM_I|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 0, EFL_SF|EFL_ZF|EFL_PF, 0, IOP_EAX, IOP_EAX },
/*D5*/{ INSTRUCTION_TYPE_ASC, "aad", AM_I|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 0, EFL_SF|EFL_ZF|EFL_PF, 0, IOP_EAX, IOP_EAX },
/*D6*/{ INSTRUCTION_TYPE_OTHER, "salc", FLAGS_NONE|P_w, FLAGS_NONE|P_r, FLAGS_NONE, 0, EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*D7*/{ INSTRUCTION_TYPE_XLAT, "xlat", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_EAX, IOP_EAX|IOP_EBX },
/*D8*/{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*D9*/{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*DA*/{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*DB*/{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*DC*/{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*DD*/{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*DE*/{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*DF*/{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*E0*/{ INSTRUCTION_TYPE_LOOP, "loopne", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF, IOP_ECX, IOP_ECX },
/*E1*/{ INSTRUCTION_TYPE_LOOP, "loope", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF, IOP_ECX, IOP_ECX },
/*E2*/{ INSTRUCTION_TYPE_LOOP, "loop", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ECX, IOP_ECX },
/*E3*/{ INSTRUCTION_TYPE_JECXZ, "jecxz", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, IOP_ECX },
/*E4*/{ INSTRUCTION_TYPE_PRIV, "in", AM_REG|REG_AL|OT_b|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*E5*/{ INSTRUCTION_TYPE_PRIV, "in", AM_REG|REG_EAX|OT_v|P_w, AM_I|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*E6*/{ INSTRUCTION_TYPE_PRIV, "out", AM_I|OT_b|P_w, AM_REG|REG_AL|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*E7*/{ INSTRUCTION_TYPE_PRIV, "out", AM_I|OT_b|P_w, AM_REG|REG_EAX|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*E8*/{ INSTRUCTION_TYPE_CALL, "call", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*E9*/{ INSTRUCTION_TYPE_JMP, "jmp", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*EA*/{ INSTRUCTION_TYPE_JMP, "jmpf", AM_A|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*EB*/{ INSTRUCTION_TYPE_JMP, "jmp", AM_J|OT_b|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*EC*/{ INSTRUCTION_TYPE_PRIV, "in", AM_REG|REG_EAX|OT_b|P_w, AM_REG|REG_EDX|OT_w|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*ED*/{ INSTRUCTION_TYPE_PRIV, "in", AM_REG|REG_EAX|OT_v|P_w, AM_REG|REG_EDX|OT_w|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*EE*/{ INSTRUCTION_TYPE_PRIV, "out", AM_REG|REG_EDX|OT_w|P_w, AM_REG|REG_EAX|OT_b|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*EF*/{ INSTRUCTION_TYPE_PRIV, "out", AM_REG|REG_EDX|OT_w|P_w, AM_REG|REG_EAX|OT_v|P_r, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F0*/{ INSTRUCTION_TYPE_OTHER, "ext", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F1*/{ INSTRUCTION_TYPE_OTHER, "int1", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2*/{ INSTRUCTION_TYPE_OTHER, "ext", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F3*/{ INSTRUCTION_TYPE_OTHER, "ext", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F4*/{ INSTRUCTION_TYPE_PRIV, "hlt", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F5*/{ INSTRUCTION_TYPE_OTHER, "cmc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_CF, 0, 0, 0 },
/*F6*/{ INSTRUCTION_TYPE_OTHER, "g3", AM_E|OT_b, FLAGS_NONE, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F7*/{ INSTRUCTION_TYPE_OTHER, "g3", AM_E|OT_v, FLAGS_NONE, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F8*/{ INSTRUCTION_TYPE_OTHER, "clc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_CF, 0, 0, 0 },
/*F9*/{ INSTRUCTION_TYPE_OTHER, "stc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_CF, 0, 0, 0 },
/*FA*/{ INSTRUCTION_TYPE_OTHER, "cli", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_IF, 0, 0, 0 },
/*FB*/{ INSTRUCTION_TYPE_OTHER, "sti", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_IF, 0, 0, 0 },
/*FC*/{ INSTRUCTION_TYPE_CLD, "cld", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_DF, 0, 0, 0 },
/*FD*/{ INSTRUCTION_TYPE_STD, "std", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, EFL_DF, 0, 0, 0 },
/*FE*/{ INSTRUCTION_TYPE_OTHER, "g4", AM_E|OT_b, FLAGS_NONE, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*FF*/{ INSTRUCTION_TYPE_OTHER, "g5", AM_E|OT_v, FLAGS_NONE, FLAGS_NONE, 1, 0, 0, 0, 0 },
};
// 2-byte instructions
INST inst_table2[256] = {
/*0F 00*/{ INSTRUCTION_TYPE_OTHER, "g6", AM_E|OT_w, FLAGS_NONE, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 01*/{ INSTRUCTION_TYPE_OTHER, "g7", AM_M|OT_w, FLAGS_NONE, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 02*/{ INSTRUCTION_TYPE_PRIV, "lar", AM_G|OT_v|P_w, AM_E|OT_w|P_r, FLAGS_NONE, 1, EFL_ZF, 0, 0, 0 },
/*0F 03*/{ INSTRUCTION_TYPE_PRIV, "lsl", AM_G|OT_v|P_w, AM_E|OT_w|P_r, FLAGS_NONE, 1, EFL_ZF, 0, 0, 0 },
/*0F 04*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 05*/{ INSTRUCTION_TYPE_OTHER, "loadall286",FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 06*/{ INSTRUCTION_TYPE_PRIV, "clts", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_EAX, 0 },
/*0F 07*/{ INSTRUCTION_TYPE_OTHER, "loadall", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 08*/{ INSTRUCTION_TYPE_PRIV, "invd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 09*/{ INSTRUCTION_TYPE_OTHER, "wbinvd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 0A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 0B*/{ INSTRUCTION_TYPE_OTHER, "ud2", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 0C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 0D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 0E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 0F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 10*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movups", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 11*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movups", AM_W|OT_ps|P_w, AM_V|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 12*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movlps", AM_V|OT_q|P_w, AM_M|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 13*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movlps", AM_M|OT_q|P_w, AM_V|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 14*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"unpcklps",AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 15*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"unpcklps",AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 16*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movhps", AM_V|OT_q|P_w, AM_M|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 17*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movhps", AM_M|OT_q|P_w, AM_V|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 18*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 19*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 1A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 1B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 1C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 1D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 1E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 1F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 20*/{ INSTRUCTION_TYPE_PRIV, "mov", AM_R|OT_d|P_w, AM_C|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 21*/{ INSTRUCTION_TYPE_PRIV, "mov", AM_R|OT_d|P_w, AM_D|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 22*/{ INSTRUCTION_TYPE_PRIV, "mov", AM_C|OT_d|P_w, AM_R|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 23*/{ INSTRUCTION_TYPE_PRIV, "mov", AM_D|OT_d|P_w, AM_R|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 24*/{ INSTRUCTION_TYPE_PRIV, "mov", AM_R|OT_d|P_w, AM_T|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 25*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 26*/{ INSTRUCTION_TYPE_PRIV, "mov", AM_T|OT_d|P_w, AM_R|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 27*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 28*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movaps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 29*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movaps", AM_W|OT_ps|P_w, AM_V|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 2A*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvtpi2ps",AM_V|OT_ps|P_r, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 2B*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movntps",AM_M|OT_ps|P_w, AM_V|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 2C*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvttps2pi",AM_P|OT_q|P_r, AM_W|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 2D*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvtps2pi",AM_P|OT_q|P_r, AM_W|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 2E*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"ucomiss",AM_V|OT_ss|P_w, AM_W|OT_ss|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 2F*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"comiss", AM_V|OT_ss|P_w, AM_W|OT_ss|P_w, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 30*/{ INSTRUCTION_TYPE_OTHER, "wrmsr", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_EAX|IOP_EDX, IOP_ECX },
/*0F 31*/{ INSTRUCTION_TYPE_OTHER, "rdtsc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_EAX|IOP_EDX, 0 },
/*0F 32*/{ INSTRUCTION_TYPE_PRIV, "rdmsr", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_EAX|IOP_EDX, IOP_ECX },
/*0F 33*/{ INSTRUCTION_TYPE_OTHER, "rdpmc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_EAX|IOP_EDX, IOP_ECX },
/*0F 34*/{ INSTRUCTION_TYPE_SYSENTER,"sysenter", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 35*/{ INSTRUCTION_TYPE_PRIV, "sysexit", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 36*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 37*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 38*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 39*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 3A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 3B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 3C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 3D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 3E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 3F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 40*/{ INSTRUCTION_TYPE_MOVC, "cmovo", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 41*/{ INSTRUCTION_TYPE_MOVC, "cmovno", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 42*/{ INSTRUCTION_TYPE_MOVC, "cmovb", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 43*/{ INSTRUCTION_TYPE_MOVC, "cmovae", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 44*/{ INSTRUCTION_TYPE_MOVC, "cmove", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 45*/{ INSTRUCTION_TYPE_MOVC, "cmovne", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 46*/{ INSTRUCTION_TYPE_MOVC, "cmovbe", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 47*/{ INSTRUCTION_TYPE_MOVC, "cmova", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 48*/{ INSTRUCTION_TYPE_MOVC, "cmovs", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 49*/{ INSTRUCTION_TYPE_MOVC, "cmovns", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 4A*/{ INSTRUCTION_TYPE_MOVC, "cmovp", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 4B*/{ INSTRUCTION_TYPE_MOVC, "cmovnp", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 4C*/{ INSTRUCTION_TYPE_MOVC, "cmovl", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 4D*/{ INSTRUCTION_TYPE_MOVC, "cmovge", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 4E*/{ INSTRUCTION_TYPE_MOVC, "cmovle", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 4F*/{ INSTRUCTION_TYPE_MOVC, "cmovg", AM_G|OT_v|P_w, AM_E|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 50*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movmskps",AM_G|OT_d|P_w, AM_V|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 51*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"sqrtps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 52*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"rsqrtps",AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 53*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"rcpps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 54*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"andps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 55*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"andnps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 56*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"orps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 57*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"xorps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 58*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"addps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 59*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"mulps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 5A*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvtps2pd",AM_V|OT_pd|P_r, AM_W|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 5B*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvtdq2ps",AM_V|OT_ps|P_r, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 5C*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"subps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 5D*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"minps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 5E*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"divps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 5F*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"maxps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 60*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpcklbw",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 61*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpcklwd",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 62*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpckldq",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 63*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"packusdw",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 64*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpgtb",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 65*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpgtw",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 66*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpgtd",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 67*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"packsswb",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 68*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpckhbw",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 69*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpckhbd",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 6A*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpckhdq",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 6B*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"packssdw",AM_P|OT_q|P_w, AM_Q|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 6C*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 6D*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 6E*/{ INSTRUCTION_TYPE_MMX|TYPE_3, "movd", AM_P|OT_d|P_w, AM_E|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 6F*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"movq", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 70*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pshufw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, AM_I|OT_b, 1, 0, 0, 0, 0 },
// groups 12-14
/*0F 71*/{ INSTRUCTION_TYPE_MMX, "g12", AM_P|OT_q, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 72*/{ INSTRUCTION_TYPE_MMX, "g13", AM_P|OT_q, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 73*/{ INSTRUCTION_TYPE_MMX, "g14", AM_P|OT_q, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 74*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpeqb",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 75*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpeqw",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 76*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpeqd",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 77*/{ INSTRUCTION_TYPE_MMX, "emms", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 78*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 79*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 7A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 7B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 7C*/{ INSTRUCTION_TYPE_OTHER||TYPE_3,NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 7D*/{ INSTRUCTION_TYPE_OTHER||TYPE_3,NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F 7E*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"movd", AM_E|OT_d|P_w, AM_P|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 7F*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"movq", AM_Q|OT_q|P_w, AM_P|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F 80*/{ INSTRUCTION_TYPE_JMPC, "jo", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_OF, 0, 0 },
/*0F 81*/{ INSTRUCTION_TYPE_JMPC, "jno", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_OF, 0, 0 },
/*0F 82*/{ INSTRUCTION_TYPE_JMPC, "jc", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_CF, 0, 0 },
/*0F 83*/{ INSTRUCTION_TYPE_JMPC, "jnc", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_CF, 0, 0 },
/*0F 84*/{ INSTRUCTION_TYPE_JMPC, "jz", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF, 0, 0 },
/*0F 85*/{ INSTRUCTION_TYPE_JMPC, "jnz", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF, 0, 0 },
/*0F 86*/{ INSTRUCTION_TYPE_JMPC, "jna", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_CF|EFL_ZF, 0, 0 },
/*0F 87*/{ INSTRUCTION_TYPE_JMPC, "ja", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_CF|EFL_ZF, 0, 0 },
/*0F 88*/{ INSTRUCTION_TYPE_JMPC, "js", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF, 0, 0 },
/*0F 89*/{ INSTRUCTION_TYPE_JMPC, "jns", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF, 0, 0 },
/*0F 8A*/{ INSTRUCTION_TYPE_JMPC, "jp", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_PF, 0, 0 },
/*0F 8B*/{ INSTRUCTION_TYPE_JMPC, "jpo", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_PF, 0, 0 },
/*0F 8C*/{ INSTRUCTION_TYPE_JMPC, "jl", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF|EFL_OF, 0, 0 },
/*0F 8D*/{ INSTRUCTION_TYPE_JMPC, "jnl", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_SF|EFL_OF, 0, 0 },
/*0F 8E*/{ INSTRUCTION_TYPE_JMPC, "jng", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF|EFL_SF|EFL_OF, 0, 0 },
/*0F 8F*/{ INSTRUCTION_TYPE_JMPC, "jg", AM_J|OT_v|P_x, FLAGS_NONE, FLAGS_NONE, 0, 0, EFL_ZF|EFL_SF|EFL_OF, 0, 0 },
/*0F 90*/{ INSTRUCTION_TYPE_SETC, "seto", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_OF, 0, 0 },
/*0F 91*/{ INSTRUCTION_TYPE_SETC, "setno", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_OF, 0, 0 },
/*0F 92*/{ INSTRUCTION_TYPE_SETC, "setb", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_CF, 0, 0 },
/*0F 93*/{ INSTRUCTION_TYPE_SETC, "setnb", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_CF, 0, 0 },
/*0F 94*/{ INSTRUCTION_TYPE_SETC, "setz", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_ZF, 0, 0 },
/*0F 95*/{ INSTRUCTION_TYPE_SETC, "setnz", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_ZF, 0, 0 },
/*0F 96*/{ INSTRUCTION_TYPE_SETC, "setbe", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_CF|EFL_ZF, 0, 0 },
/*0F 97*/{ INSTRUCTION_TYPE_SETC, "setnbe", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_CF|EFL_ZF, 0, 0 },
/*0F 98*/{ INSTRUCTION_TYPE_SETC, "sets", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_SF, 0, 0 },
/*0F 99*/{ INSTRUCTION_TYPE_SETC, "setns", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_SF, 0, 0 },
/*0F 9A*/{ INSTRUCTION_TYPE_SETC, "setp", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_PF, 0, 0 },
/*0F 9B*/{ INSTRUCTION_TYPE_SETC, "setnp", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_PF, 0, 0 },
/*0F 9C*/{ INSTRUCTION_TYPE_SETC, "setl", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_SF|EFL_OF, 0, 0 },
/*0F 9D*/{ INSTRUCTION_TYPE_SETC, "setnl", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_SF|EFL_OF, 0, 0 },
/*0F 9E*/{ INSTRUCTION_TYPE_SETC, "setle", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_ZF|EFL_SF|EFL_OF, 0, 0 },
/*0F 9F*/{ INSTRUCTION_TYPE_SETC, "setnle", AM_E|OT_b|P_w, FLAGS_NONE, FLAGS_NONE, 1, 0, EFL_ZF|EFL_SF|EFL_OF, 0, 0 },
/*0F A0*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_FS|F_r|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*0F A1*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_FS|F_r|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*0F A2*/{ INSTRUCTION_TYPE_OTHER, "cpuid", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_EAX|IOP_EBX|IOP_ECX|IOP_EDX, IOP_EAX },
/*0F A3*/{ INSTRUCTION_TYPE_BT, "bt", AM_E|OT_v|P_r, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_CF, 0, 0, 0 },
/*0F A4*/{ INSTRUCTION_TYPE_OTHER, "shld", AM_E|OT_v|P_w, AM_G|OT_v|P_r, AM_I|OT_b|P_r,1, EFL_CF|EFL_SF|EFL_ZF|EFL_PF|EFL_OF|EFL_AF, 0, 0, 0 },
/*0F A5*/{ INSTRUCTION_TYPE_OTHER, "shld", AM_E|OT_v|P_w, AM_G|OT_v|P_r, AM_REG|REG_ECX|OT_b|P_r,1, EFL_CF|EFL_SF|EFL_ZF|EFL_PF|EFL_OF|EFL_AF, 0, 0, 0 },
/*0F A6*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F A7*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F A8*/{ INSTRUCTION_TYPE_PUSH, "push", AM_REG|REG_GS|F_r|P_r, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*0F A9*/{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_GS|F_r|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, IOP_ESP, IOP_ESP },
/*0F AA*/{ INSTRUCTION_TYPE_OTHER, "rsm", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F AB*/{ INSTRUCTION_TYPE_BTS, "bts", AM_E|OT_v|P_r, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_CF, 0, 0, 0 },
/*0F AC*/{ INSTRUCTION_TYPE_OTHER, "shrd", AM_E|OT_v|P_w, AM_G|OT_v|P_r, AM_I|OT_b|P_r,1, EFL_CF|EFL_SF|EFL_ZF|EFL_PF|EFL_OF|EFL_AF, 0, 0, 0 },
/*0F AD*/{ INSTRUCTION_TYPE_OTHER, "shrd", AM_E|OT_v|P_w, AM_G|OT_v|P_r, AM_REG|REG_ECX|OT_b|P_r,1, EFL_CF|EFL_SF|EFL_ZF|EFL_PF|EFL_OF|EFL_AF, 0, 0, 0 },
// XXX: check addressing mode, Intel manual is a little bit confusing...
/*0F AE*/{ INSTRUCTION_TYPE_OTHER, "grp15", AM_E|OT_v, FLAGS_NONE, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F AF*/{ INSTRUCTION_TYPE_EIMUL, "imul", AM_G|OT_v|P_r, AM_E|OT_v|P_r, FLAGS_NONE|P_r,1, EFL_CF|EFL_OF, 0, 0, 0 },
/*0F B0*/{ INSTRUCTION_TYPE_OTHER, "cmpxchg", AM_E|OT_b|P_w, AM_G|OT_b|P_w, FLAGS_NONE, 1, EFL_ALL_COMMON, 0, IOP_EAX, IOP_EAX },
/*0F B1*/{ INSTRUCTION_TYPE_OTHER, "cmpxchg", AM_E|OT_v|P_w, AM_G|OT_v|P_w, FLAGS_NONE, 1, EFL_ALL_COMMON, 0, IOP_EAX, IOP_EAX },
/*0F B2*/{ INSTRUCTION_TYPE_LFP, "lss", AM_G|OT_v|P_w, AM_M|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F B3*/{ INSTRUCTION_TYPE_BTR, "btr", AM_E|OT_v|P_r, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_CF, 0, 0, 0 },
/*0F B4*/{ INSTRUCTION_TYPE_LFP, "lfs", AM_G|OT_v|P_w, AM_M|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F B5*/{ INSTRUCTION_TYPE_LFP, "lgs", AM_G|OT_v|P_w, AM_M|OT_v|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F B6*/{ INSTRUCTION_TYPE_MOVZX, "movzx", AM_G|OT_v|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F B7*/{ INSTRUCTION_TYPE_MOVZX, "movzx", AM_G|OT_v|P_w, AM_E|OT_w|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F B8*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
// XXX: group 10 / invalid opcode?
/*0F B9*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F BA*/{ INSTRUCTION_TYPE_OTHER, "g8", AM_E|OT_v, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F BB*/{ INSTRUCTION_TYPE_BTC, "btc", AM_E|OT_v|P_r, AM_G|OT_v|P_r, FLAGS_NONE, 1, EFL_CF, 0, 0, 0 },
/*0F BC*/{ INSTRUCTION_TYPE_BSF, "bsf", AM_G|OT_v|P_r, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_ZF, 0, 0, 0 },
/*0F BD*/{ INSTRUCTION_TYPE_BSR, "bsr", AM_G|OT_v|P_r, AM_E|OT_v|P_r, FLAGS_NONE, 1, EFL_ZF, 0, 0, 0 },
/*0F BE*/{ INSTRUCTION_TYPE_MOVSX, "movsx", AM_G|OT_v|P_w, AM_E|OT_b|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F BF*/{ INSTRUCTION_TYPE_MOVSX, "movsx", AM_G|OT_v|P_w, AM_E|OT_w|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F C0*/{ INSTRUCTION_TYPE_XADD, "xadd", AM_E|OT_b|P_w, AM_G|OT_b|P_w, FLAGS_NONE, 1, EFL_ALL_COMMON, 0, 0, 0 },
/*0F C1*/{ INSTRUCTION_TYPE_XADD, "xadd", AM_E|OT_v|P_w, AM_G|OT_v|P_w, FLAGS_NONE, 1, EFL_ALL_COMMON, 0, 0, 0 },
/*0F C2*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cmpps", AM_V|OT_ps|P_r, AM_W|OT_ps|P_r, AM_I|OT_b, 1, 0, 0, 0, 0 },
/*0F C3*/{ INSTRUCTION_TYPE_OTHER, "movnti", AM_M|OT_d|P_w, AM_G|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F C4*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"pinsrw", AM_P|OT_w|P_w, AM_E|OT_w|P_r, AM_I|OT_b, 1, 0, 0, 0, 0 },
/*0F C5*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"pextrv", AM_G|OT_w|P_w, AM_P|OT_w|P_r, AM_I|OT_b|P_r,1, 0, 0, 0, 0 },
/*0F C6*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"shufps", AM_V|OT_ps|P_w, AM_W|OT_ps|P_r, AM_I|OT_b|P_r,1, 0, 0, 0, 0 },
/*0F C7*/{ INSTRUCTION_TYPE_OTHER, "g9", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F C8*/{ INSTRUCTION_TYPE_BSWAP, "bswap", AM_REG|REG_EAX|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F C9*/{ INSTRUCTION_TYPE_BSWAP, "bswap", AM_REG|REG_ECX|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F CA*/{ INSTRUCTION_TYPE_BSWAP, "bswap", AM_REG|REG_EDX|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F CB*/{ INSTRUCTION_TYPE_BSWAP, "bswap", AM_REG|REG_EBX|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F CC*/{ INSTRUCTION_TYPE_BSWAP, "bswap", AM_REG|REG_ESP|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F CD*/{ INSTRUCTION_TYPE_BSWAP, "bswap", AM_REG|REG_EBP|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F CE*/{ INSTRUCTION_TYPE_BSWAP, "bswap", AM_REG|REG_ESI|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F CF*/{ INSTRUCTION_TYPE_BSWAP, "bswap", AM_REG|REG_EDI|OT_v|P_w, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F D0*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F D1*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psrlw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F D2*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psrld", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F D3*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psrlq", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F D4*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddq", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F D5*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmullw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F D6*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F D7*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmovmskb",AM_G|OT_q|P_w, AM_P|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F D8*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubusb",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F D9*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubusw",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F DA*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pminub", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F DB*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pand", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F DC*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddusb",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F DD*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddusw",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F DE*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmaxsw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F DF*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pandn", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F E0*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pavgb", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F E1*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psraw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F E2*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psrad", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F E3*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pavgw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F E4*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmulhuw",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F E5*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmulhw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F E6*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F E7*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"movntq", AM_M|OT_q|P_w, AM_V|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F E8*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubsb", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F E9*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubsw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F EA*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pminsw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F EB*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"por", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F EC*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddsb", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F ED*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddsw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F EE*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmaxsw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F EF*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pxor", AM_P|OT_q, AM_Q|OT_q, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F F0*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*0F F1*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psllw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F F2*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pslld", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F F3*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psllq", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F F4*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmuludq",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F F5*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmaddwd",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F F6*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psadbw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
// XXX: check operand types
/*0F F7*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"maskmovq",AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F F8*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubb", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F F9*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F FA*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubd", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F FB*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubq", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F FC*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddb", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F FD*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddw", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F FE*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddd", AM_P|OT_q|P_w, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*0F FF*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
};
// 3-byte instructions, prefix 0x66
// Yeah, I know, it's waste to use a full 256-instruction table but now
// I'm prepared for future Intel extensions ;-)
INST inst_table3_66[256] = {
/*66 0F 00*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 01*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 02*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 03*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 04*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 05*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 06*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 07*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 08*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 09*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 0A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 0B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 0C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 0D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 0E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 0F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 10*/{ INSTRUCTION_TYPE_SSE, "movupd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 11*/{ INSTRUCTION_TYPE_SSE, "movupd", AM_W|OT_pd|P_w, AM_V|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 12*/{ INSTRUCTION_TYPE_SSE, "movlpd", AM_V|OT_q|P_w, AM_M|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 13*/{ INSTRUCTION_TYPE_SSE, "movlpd", AM_M|OT_q|P_w, AM_V|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 14*/{ INSTRUCTION_TYPE_SSE, "unpcklpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 15*/{ INSTRUCTION_TYPE_SSE, "unpcklpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 16*/{ INSTRUCTION_TYPE_SSE, "movhpd", AM_V|OT_q|P_w, AM_M|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 17*/{ INSTRUCTION_TYPE_SSE, "movhpd", AM_M|OT_q|P_w, AM_V|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 18*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 19*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 1A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 1B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 1C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 1D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 1E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 1F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 20*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 21*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 22*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 23*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 24*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 25*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 26*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 27*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 28*/{ INSTRUCTION_TYPE_SSE, "movapd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 29*/{ INSTRUCTION_TYPE_SSE, "movapd", AM_W|OT_pd|P_w, AM_V|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 2A*/{ INSTRUCTION_TYPE_SSE, "cvtpi2pd", AM_V|OT_pd|P_r, AM_Q|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 2B*/{ INSTRUCTION_TYPE_SSE, "movntpd", AM_M|OT_pd|P_w, AM_V|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 2C*/{ INSTRUCTION_TYPE_SSE, "cvttpd2pi", AM_P|OT_q|P_r, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 2D*/{ INSTRUCTION_TYPE_SSE, "cvtpd2pi", AM_P|OT_q|P_r, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 2E*/{ INSTRUCTION_TYPE_SSE, "ucomisd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 2F*/{ INSTRUCTION_TYPE_SSE, "comisd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_w, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 30*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 31*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 32*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 33*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 34*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 35*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 36*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 37*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 38*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 39*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 3A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 3B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 3C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 3D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 3E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 3F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 40*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 41*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 42*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 43*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 44*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 45*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 46*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 47*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 48*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 49*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 4A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 4B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 4C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 4D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 4E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 4F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 50*/{ INSTRUCTION_TYPE_SSE, "movmskpd", AM_G|OT_d|P_w, AM_V|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 51*/{ INSTRUCTION_TYPE_SSE, "sqrtpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 52*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 53*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 54*/{ INSTRUCTION_TYPE_SSE, "andpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 55*/{ INSTRUCTION_TYPE_SSE, "andnpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 56*/{ INSTRUCTION_TYPE_SSE, "orpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 57*/{ INSTRUCTION_TYPE_SSE, "xorpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 58*/{ INSTRUCTION_TYPE_SSE, "addpd", AM_V|OT_pd|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 59*/{ INSTRUCTION_TYPE_SSE, "mulpd", AM_V|OT_pd|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 5A*/{ INSTRUCTION_TYPE_SSE, "cvtpd2ps", AM_V|OT_pd|P_r, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 5B*/{ INSTRUCTION_TYPE_SSE, "cvtps2dq", AM_V|OT_pd|P_r, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 5C*/{ INSTRUCTION_TYPE_SSE, "subpd", AM_V|OT_pd|P_w, AM_W|OT_ps|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 5D*/{ INSTRUCTION_TYPE_SSE, "minpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 5E*/{ INSTRUCTION_TYPE_SSE, "divpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 5F*/{ INSTRUCTION_TYPE_SSE, "maxpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 60*/{ INSTRUCTION_TYPE_SSE, "punpcklbw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 61*/{ INSTRUCTION_TYPE_SSE, "punpcklwd", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 62*/{ INSTRUCTION_TYPE_SSE, "punockldq", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 63*/{ INSTRUCTION_TYPE_SSE, "packusdw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 64*/{ INSTRUCTION_TYPE_SSE, "pcmpgtb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 65*/{ INSTRUCTION_TYPE_SSE, "pcmpgtw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 66*/{ INSTRUCTION_TYPE_SSE, "pcmpgtd", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 67*/{ INSTRUCTION_TYPE_SSE, "packsswb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 68*/{ INSTRUCTION_TYPE_SSE, "punpckhbw", AM_V|OT_dq|P_w, AM_Q|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 69*/{ INSTRUCTION_TYPE_SSE, "punpckhbd", AM_V|OT_dq|P_w, AM_Q|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 6A*/{ INSTRUCTION_TYPE_SSE, "punpckhdq", AM_V|OT_dq|P_w, AM_Q|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 6B*/{ INSTRUCTION_TYPE_SSE, "packssdw", AM_V|OT_dq|P_w, AM_Q|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 6C*/{ INSTRUCTION_TYPE_SSE, "punpcklqdq", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 6D*/{ INSTRUCTION_TYPE_SSE, "punpckhqd", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 6E*/{ INSTRUCTION_TYPE_SSE, "movd", AM_V|OT_d|P_w, AM_E|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 6F*/{ INSTRUCTION_TYPE_SSE, "movdqa", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 70*/{ INSTRUCTION_TYPE_SSE, "pshufd", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, AM_I|OT_b, 1, 0, 0, 0, 0 },
// groups 12-14
/*66 0F 71*/{ INSTRUCTION_TYPE_SSE, "g12", AM_P|OT_dq, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 72*/{ INSTRUCTION_TYPE_SSE, "g13", AM_W|OT_dq, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 73*/{ INSTRUCTION_TYPE_SSE, "g14", AM_W|OT_dq, AM_I|OT_b, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 74*/{ INSTRUCTION_TYPE_SSE, "pcmpeqb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 75*/{ INSTRUCTION_TYPE_SSE, "pcmpeqw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 76*/{ INSTRUCTION_TYPE_SSE, "pcmpeqd", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 77*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 78*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 79*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 7A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 7B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 7C*/{ INSTRUCTION_TYPE_SSE, "haddpd", AM_V|OT_pd, AM_W|OT_pd, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 7D*/{ INSTRUCTION_TYPE_SSE, "hsubpd", AM_V|OT_pd, AM_W|OT_pd, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 7E*/{ INSTRUCTION_TYPE_SSE, "movd", AM_E|OT_d|P_w, AM_V|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 7F*/{ INSTRUCTION_TYPE_SSE, "movdqa", AM_W|OT_dq|P_w, AM_V|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F 80*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 81*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 82*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 83*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 84*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 85*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 86*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 87*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 88*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 89*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 8A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 8B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 8C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 8D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 8E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 8F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 90*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 91*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 92*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 93*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 94*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 95*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 96*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 97*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 98*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 99*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 9A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 9B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 9C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 9D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 9E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F 9F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A0*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A1*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A2*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A3*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A4*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A5*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A6*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A7*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A8*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F A9*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F AA*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F AB*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F AC*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F AD*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F AE*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F AF*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B0*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B1*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B2*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B3*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B4*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B5*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B6*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B7*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B8*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F B9*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F BA*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F BB*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F BC*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F BD*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F BE*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F BF*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F C0*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F C1*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F C2*/{ INSTRUCTION_TYPE_SSE, "cmppd", AM_V|OT_pd|P_r, AM_W|OT_pd|P_r, AM_I|OT_b, 1, 0, 0, 0, 0 },
/*66 0F C3*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F C4*/{ INSTRUCTION_TYPE_SSE, "pinsrw", AM_V|OT_w|P_w, AM_E|OT_w|P_r, AM_I|OT_b, 1, 0, 0, 0, 0 },
/*66 0F C5*/{ INSTRUCTION_TYPE_SSE, "pextrv", AM_G|OT_w|P_w, AM_V|OT_w|P_r, AM_I|OT_b|P_r,1, 0, 0, 0, 0 },
/*66 0F C6*/{ INSTRUCTION_TYPE_SSE, "shufpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, AM_I|OT_b|P_r,1, 0, 0, 0, 0 },
/*66 0F C7*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F C8*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F C9*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F CA*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F CB*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F CC*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F CD*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F CE*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F CF*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F D0*/{ INSTRUCTION_TYPE_SSE, "addsubpd", AM_V|OT_pd|P_w, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F D1*/{ INSTRUCTION_TYPE_SSE, "psrlw", AM_V|OT_dq|P_w, AM_Q|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F D2*/{ INSTRUCTION_TYPE_SSE, "psrld", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F D3*/{ INSTRUCTION_TYPE_SSE, "psrlq", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F D4*/{ INSTRUCTION_TYPE_SSE, "paddq", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F D5*/{ INSTRUCTION_TYPE_SSE, "pmullw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F D6*/{ INSTRUCTION_TYPE_SSE, "movq", AM_W|OT_q|P_w, AM_V|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F D7*/{ INSTRUCTION_TYPE_SSE, "pmovmskb", AM_G|OT_d|P_w, AM_V|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F D8*/{ INSTRUCTION_TYPE_SSE, "psubusb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F D9*/{ INSTRUCTION_TYPE_SSE, "psubusw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F DA*/{ INSTRUCTION_TYPE_SSE, "pminub", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F DB*/{ INSTRUCTION_TYPE_SSE, "pand", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F DC*/{ INSTRUCTION_TYPE_SSE, "paddusb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F DD*/{ INSTRUCTION_TYPE_SSE, "paddusw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F DE*/{ INSTRUCTION_TYPE_SSE, "pmaxsw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F DF*/{ INSTRUCTION_TYPE_SSE, "pandn", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E0*/{ INSTRUCTION_TYPE_SSE, "pavgb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E1*/{ INSTRUCTION_TYPE_SSE, "psraw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E2*/{ INSTRUCTION_TYPE_SSE, "psrad", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E3*/{ INSTRUCTION_TYPE_SSE, "pavgw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E4*/{ INSTRUCTION_TYPE_SSE, "pmulhuw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E5*/{ INSTRUCTION_TYPE_SSE, "pmulhw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E6*/{ INSTRUCTION_TYPE_SSE, "cvttpd2dq", AM_V|OT_dq|P_r, AM_W|OT_pd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E7*/{ INSTRUCTION_TYPE_SSE, "movntq", AM_M|OT_dq|P_w, AM_V|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E8*/{ INSTRUCTION_TYPE_SSE, "psubsb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F E9*/{ INSTRUCTION_TYPE_SSE, "psubsw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F EA*/{ INSTRUCTION_TYPE_SSE, "pminsw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F EB*/{ INSTRUCTION_TYPE_SSE, "por", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F EC*/{ INSTRUCTION_TYPE_SSE, "paddsb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F ED*/{ INSTRUCTION_TYPE_SSE, "paddsw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F EE*/{ INSTRUCTION_TYPE_SSE, "pmaxsw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F EF*/{ INSTRUCTION_TYPE_SSE, "pxor", AM_V|OT_dq, AM_W|OT_dq, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F F0*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*66 0F F1*/{ INSTRUCTION_TYPE_SSE, "psllw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F F2*/{ INSTRUCTION_TYPE_SSE, "pslld", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F F3*/{ INSTRUCTION_TYPE_SSE, "psllq", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F F4*/{ INSTRUCTION_TYPE_SSE, "pmuludq", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F F5*/{ INSTRUCTION_TYPE_SSE, "pmaddwd", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F F6*/{ INSTRUCTION_TYPE_SSE, "psadbw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F F7*/{ INSTRUCTION_TYPE_SSE, "maskmovdqu", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F F8*/{ INSTRUCTION_TYPE_SSE, "psubb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F F9*/{ INSTRUCTION_TYPE_SSE, "psubw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F FA*/{ INSTRUCTION_TYPE_SSE, "psubd", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F FB*/{ INSTRUCTION_TYPE_SSE, "psubq", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F FC*/{ INSTRUCTION_TYPE_SSE, "paddb", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F FD*/{ INSTRUCTION_TYPE_SSE, "paddw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F FE*/{ INSTRUCTION_TYPE_SSE, "paddd", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*66 0F FF*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
};
// 3-byte instructions, prefix 0xf2
INST inst_table3_f2[256] = {
/*F2 0F 00*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 01*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 02*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 03*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 04*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 05*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 06*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 07*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 08*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 09*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 0A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 0B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 0C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 0D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 0E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 0F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 10*/{ INSTRUCTION_TYPE_SSE, "movsd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 11*/{ INSTRUCTION_TYPE_SSE, "movsd", AM_W|OT_sd|P_w, AM_V|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 12*/{ INSTRUCTION_TYPE_SSE, "movddup", AM_V|OT_q|P_w, AM_W|OT_q|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 13*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 14*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 15*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 16*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 17*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 18*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 19*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 1A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 1B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 1C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 1D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 1E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 1F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 20*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 21*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 22*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 23*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 24*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 25*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 26*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 27*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 28*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 29*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 2A*/{ INSTRUCTION_TYPE_SSE, "cvtsi2sd", AM_V|OT_sd|P_r, AM_E|OT_d|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 2B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 2C*/{ INSTRUCTION_TYPE_SSE, "cvttsd2si", AM_G|OT_d|P_r, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 2D*/{ INSTRUCTION_TYPE_SSE, "cvtsd2si", AM_G|OT_d|P_r, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 2E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 2F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 30*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 31*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 32*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 33*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 34*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 35*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 36*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 37*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 38*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 39*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 3A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 3B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 3C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 3D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 3E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 3F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 40*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 41*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 42*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 43*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 44*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 45*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 46*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 47*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 48*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 49*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 4A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 4B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 4C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 4D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 4E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 4F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 50*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 51*/{ INSTRUCTION_TYPE_SSE, "sqrtsd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 52*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 53*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 54*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 55*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 56*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 57*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 58*/{ INSTRUCTION_TYPE_SSE, "addsd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 59*/{ INSTRUCTION_TYPE_SSE, "mulsd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 5A*/{ INSTRUCTION_TYPE_SSE, "cvtsd2ss", AM_V|OT_ss|P_r, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 5B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 5C*/{ INSTRUCTION_TYPE_SSE, "subsd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 5D*/{ INSTRUCTION_TYPE_SSE, "minsd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 5E*/{ INSTRUCTION_TYPE_SSE, "divsd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 5F*/{ INSTRUCTION_TYPE_SSE, "maxsd", AM_V|OT_sd|P_w, AM_W|OT_sd|P_r, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 60*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 61*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 62*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 63*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 64*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 65*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 66*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 67*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 68*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 69*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 6A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 6B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 6C*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 6D*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 6E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 6F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 70*/{ INSTRUCTION_TYPE_SSE, "pshuflw", AM_V|OT_dq|P_w, AM_W|OT_dq|P_r, AM_I|OT_b, 1, 0, 0, 0, 0 },
/*F2 0F 71*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 72*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 73*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 74*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 75*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 76*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 77*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 78*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 79*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 7A*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 7B*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 7C*/{ INSTRUCTION_TYPE_SSE, "haddps", AM_V|OT_ps, AM_W|OT_ps, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 7D*/{ INSTRUCTION_TYPE_SSE, "hsubps", AM_V|OT_ps, AM_W|OT_ps, FLAGS_NONE, 1, 0, 0, 0, 0 },
/*F2 0F 7E*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },
/*F2 0F 7F*/{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0, 0, 0, 0, 0 },