OSDN Git Service

[VM][i386] Extend i386 interpreter.
[csp-qt/common_source_project-fm7.git] / source / src / vm / mame / emu / cpu / i386 / i386ops_tbl.h
1
2 const X86_OPCODE x86_opcode_table[] =
3 {
4 //  Opcode      Flags                       16-bit handler                  32-bit handler
5         { 0x00,     OP_I386,                    I386OP(add_rm8_r8),             I386OP(add_rm8_r8),         true },
6         { 0x01,     OP_I386,                    I386OP(add_rm16_r16),           I386OP(add_rm32_r32),       true },
7         { 0x02,     OP_I386,                    I386OP(add_r8_rm8),             I386OP(add_r8_rm8),         false},
8         { 0x03,     OP_I386,                    I386OP(add_r16_rm16),           I386OP(add_r32_rm32),       false},
9         { 0x04,     OP_I386,                    I386OP(add_al_i8),              I386OP(add_al_i8),          false},
10         { 0x05,     OP_I386,                    I386OP(add_ax_i16),             I386OP(add_eax_i32),        false},
11         { 0x06,     OP_I386,                    I386OP(push_es16),              I386OP(push_es32),          false},
12         { 0x07,     OP_I386,                    I386OP(pop_es16),               I386OP(pop_es32),           false},
13         { 0x08,     OP_I386,                    I386OP(or_rm8_r8),              I386OP(or_rm8_r8),          true },
14         { 0x09,     OP_I386,                    I386OP(or_rm16_r16),            I386OP(or_rm32_r32),        true },
15         { 0x0A,     OP_I386,                    I386OP(or_r8_rm8),              I386OP(or_r8_rm8),          false},
16         { 0x0B,     OP_I386,                    I386OP(or_r16_rm16),            I386OP(or_r32_rm32),        false},
17         { 0x0C,     OP_I386,                    I386OP(or_al_i8),               I386OP(or_al_i8),           false},
18         { 0x0D,     OP_I386,                    I386OP(or_ax_i16),              I386OP(or_eax_i32),         false},
19         { 0x0E,     OP_I386,                    I386OP(push_cs16),              I386OP(push_cs32),          false},
20         { 0x0F,     OP_I386,                    I386OP(decode_two_byte),        I386OP(decode_two_byte),    true },
21         { 0x10,     OP_I386,                    I386OP(adc_rm8_r8),             I386OP(adc_rm8_r8),         true },
22         { 0x11,     OP_I386,                    I386OP(adc_rm16_r16),           I386OP(adc_rm32_r32),       true },
23         { 0x12,     OP_I386,                    I386OP(adc_r8_rm8),             I386OP(adc_r8_rm8),         false},
24         { 0x13,     OP_I386,                    I386OP(adc_r16_rm16),           I386OP(adc_r32_rm32),       false},
25         { 0x14,     OP_I386,                    I386OP(adc_al_i8),              I386OP(adc_al_i8),          false},
26         { 0x15,     OP_I386,                    I386OP(adc_ax_i16),             I386OP(adc_eax_i32),        false},
27         { 0x16,     OP_I386,                    I386OP(push_ss16),              I386OP(push_ss32),          false},
28         { 0x17,     OP_I386,                    I386OP(pop_ss16),               I386OP(pop_ss32),           false},
29         { 0x18,     OP_I386,                    I386OP(sbb_rm8_r8),             I386OP(sbb_rm8_r8),         true },
30         { 0x19,     OP_I386,                    I386OP(sbb_rm16_r16),           I386OP(sbb_rm32_r32),       true },
31         { 0x1A,     OP_I386,                    I386OP(sbb_r8_rm8),             I386OP(sbb_r8_rm8),         false},
32         { 0x1B,     OP_I386,                    I386OP(sbb_r16_rm16),           I386OP(sbb_r32_rm32),       false},
33         { 0x1C,     OP_I386,                    I386OP(sbb_al_i8),              I386OP(sbb_al_i8),          false},
34         { 0x1D,     OP_I386,                    I386OP(sbb_ax_i16),             I386OP(sbb_eax_i32),        false},
35         { 0x1E,     OP_I386,                    I386OP(push_ds16),              I386OP(push_ds32),          false},
36         { 0x1F,     OP_I386,                    I386OP(pop_ds16),               I386OP(pop_ds32),           false},
37         { 0x20,     OP_I386,                    I386OP(and_rm8_r8),             I386OP(and_rm8_r8),         true },
38         { 0x21,     OP_I386,                    I386OP(and_rm16_r16),           I386OP(and_rm32_r32),       true },
39         { 0x22,     OP_I386,                    I386OP(and_r8_rm8),             I386OP(and_r8_rm8),         false},
40         { 0x23,     OP_I386,                    I386OP(and_r16_rm16),           I386OP(and_r32_rm32),       false},
41         { 0x24,     OP_I386,                    I386OP(and_al_i8),              I386OP(and_al_i8),          false},
42         { 0x25,     OP_I386,                    I386OP(and_ax_i16),             I386OP(and_eax_i32),        false},
43         { 0x26,     OP_I386,                    I386OP(segment_ES),             I386OP(segment_ES),         false},
44         { 0x27,     OP_I386,                    I386OP(daa),                    I386OP(daa),                false},
45         { 0x28,     OP_I386,                    I386OP(sub_rm8_r8),             I386OP(sub_rm8_r8),         true },
46         { 0x29,     OP_I386,                    I386OP(sub_rm16_r16),           I386OP(sub_rm32_r32),       true },
47         { 0x2A,     OP_I386,                    I386OP(sub_r8_rm8),             I386OP(sub_r8_rm8),         false},
48         { 0x2B,     OP_I386,                    I386OP(sub_r16_rm16),           I386OP(sub_r32_rm32),       false},
49         { 0x2C,     OP_I386,                    I386OP(sub_al_i8),              I386OP(sub_al_i8),          false},
50         { 0x2D,     OP_I386,                    I386OP(sub_ax_i16),             I386OP(sub_eax_i32),        false},
51         { 0x2E,     OP_I386,                    I386OP(segment_CS),             I386OP(segment_CS),         false},
52         { 0x2F,     OP_I386,                    I386OP(das),                    I386OP(das),                false},
53         { 0x30,     OP_I386,                    I386OP(xor_rm8_r8),             I386OP(xor_rm8_r8),         true },
54         { 0x31,     OP_I386,                    I386OP(xor_rm16_r16),           I386OP(xor_rm32_r32),       true },
55         { 0x32,     OP_I386,                    I386OP(xor_r8_rm8),             I386OP(xor_r8_rm8),         false},
56         { 0x33,     OP_I386,                    I386OP(xor_r16_rm16),           I386OP(xor_r32_rm32),       false},
57         { 0x34,     OP_I386,                    I386OP(xor_al_i8),              I386OP(xor_al_i8),          false},
58         { 0x35,     OP_I386,                    I386OP(xor_ax_i16),             I386OP(xor_eax_i32),        false},
59         { 0x36,     OP_I386,                    I386OP(segment_SS),             I386OP(segment_SS),         false},
60         { 0x37,     OP_I386,                    I386OP(aaa),                    I386OP(aaa),                false},
61         { 0x38,     OP_I386,                    I386OP(cmp_rm8_r8),             I386OP(cmp_rm8_r8),         false},
62         { 0x39,     OP_I386,                    I386OP(cmp_rm16_r16),           I386OP(cmp_rm32_r32),       false},
63         { 0x3A,     OP_I386,                    I386OP(cmp_r8_rm8),             I386OP(cmp_r8_rm8),         false},
64         { 0x3B,     OP_I386,                    I386OP(cmp_r16_rm16),           I386OP(cmp_r32_rm32),       false},
65         { 0x3C,     OP_I386,                    I386OP(cmp_al_i8),              I386OP(cmp_al_i8),          false},
66         { 0x3D,     OP_I386,                    I386OP(cmp_ax_i16),             I386OP(cmp_eax_i32),        false},
67         { 0x3E,     OP_I386,                    I386OP(segment_DS),             I386OP(segment_DS),         false},
68         { 0x3F,     OP_I386,                    I386OP(aas),                    I386OP(aas),                false},
69         { 0x40,     OP_I386,                    I386OP(inc_ax),                 I386OP(inc_eax),            false},
70         { 0x41,     OP_I386,                    I386OP(inc_cx),                 I386OP(inc_ecx),            false},
71         { 0x42,     OP_I386,                    I386OP(inc_dx),                 I386OP(inc_edx),            false},
72         { 0x43,     OP_I386,                    I386OP(inc_bx),                 I386OP(inc_ebx),            false},
73         { 0x44,     OP_I386,                    I386OP(inc_sp),                 I386OP(inc_esp),            false},
74         { 0x45,     OP_I386,                    I386OP(inc_bp),                 I386OP(inc_ebp),            false},
75         { 0x46,     OP_I386,                    I386OP(inc_si),                 I386OP(inc_esi),            false},
76         { 0x47,     OP_I386,                    I386OP(inc_di),                 I386OP(inc_edi),            false},
77         { 0x48,     OP_I386,                    I386OP(dec_ax),                 I386OP(dec_eax),            false},
78         { 0x49,     OP_I386,                    I386OP(dec_cx),                 I386OP(dec_ecx),            false},
79         { 0x4A,     OP_I386,                    I386OP(dec_dx),                 I386OP(dec_edx),            false},
80         { 0x4B,     OP_I386,                    I386OP(dec_bx),                 I386OP(dec_ebx),            false},
81         { 0x4C,     OP_I386,                    I386OP(dec_sp),                 I386OP(dec_esp),            false},
82         { 0x4D,     OP_I386,                    I386OP(dec_bp),                 I386OP(dec_ebp),            false},
83         { 0x4E,     OP_I386,                    I386OP(dec_si),                 I386OP(dec_esi),            false},
84         { 0x4F,     OP_I386,                    I386OP(dec_di),                 I386OP(dec_edi),            false},
85         { 0x50,     OP_I386,                    I386OP(push_ax),                I386OP(push_eax),           false},
86         { 0x51,     OP_I386,                    I386OP(push_cx),                I386OP(push_ecx),           false},
87         { 0x52,     OP_I386,                    I386OP(push_dx),                I386OP(push_edx),           false},
88         { 0x53,     OP_I386,                    I386OP(push_bx),                I386OP(push_ebx),           false},
89         { 0x54,     OP_I386,                    I386OP(push_sp),                I386OP(push_esp),           false},
90         { 0x55,     OP_I386,                    I386OP(push_bp),                I386OP(push_ebp),           false},
91         { 0x56,     OP_I386,                    I386OP(push_si),                I386OP(push_esi),           false},
92         { 0x57,     OP_I386,                    I386OP(push_di),                I386OP(push_edi),           false},
93         { 0x58,     OP_I386,                    I386OP(pop_ax),                 I386OP(pop_eax),            false},
94         { 0x59,     OP_I386,                    I386OP(pop_cx),                 I386OP(pop_ecx),            false},
95         { 0x5A,     OP_I386,                    I386OP(pop_dx),                 I386OP(pop_edx),            false},
96         { 0x5B,     OP_I386,                    I386OP(pop_bx),                 I386OP(pop_ebx),            false},
97         { 0x5C,     OP_I386,                    I386OP(pop_sp),                 I386OP(pop_esp),            false},
98         { 0x5D,     OP_I386,                    I386OP(pop_bp),                 I386OP(pop_ebp),            false},
99         { 0x5E,     OP_I386,                    I386OP(pop_si),                 I386OP(pop_esi),            false},
100         { 0x5F,     OP_I386,                    I386OP(pop_di),                 I386OP(pop_edi),            false},
101         { 0x60,     OP_I386,                    I386OP(pusha),                  I386OP(pushad),             false},
102         { 0x61,     OP_I386,                    I386OP(popa),                   I386OP(popad),              false},
103         { 0x62,     OP_I386,                    I386OP(bound_r16_m16_m16),      I386OP(bound_r32_m32_m32),  false},
104         { 0x63,     OP_I386,                    I386OP(arpl),                   I386OP(arpl),               false},
105         { 0x64,     OP_I386,                    I386OP(segment_FS),             I386OP(segment_FS),         false},
106         { 0x65,     OP_I386,                    I386OP(segment_GS),             I386OP(segment_GS),         false},
107         { 0x66,     OP_I386,                    I386OP(operand_size),           I386OP(operand_size),       false},
108         { 0x67,     OP_I386,                    I386OP(address_size),           I386OP(address_size),       false},
109         { 0x68,     OP_I386,                    I386OP(push_i16),               I386OP(push_i32),           false},
110         { 0x69,     OP_I386,                    I386OP(imul_r16_rm16_i16),      I386OP(imul_r32_rm32_i32),  false},
111         { 0x6A,     OP_I386,                    I386OP(push_i8),                I386OP(push_i8),            false},
112         { 0x6B,     OP_I386,                    I386OP(imul_r16_rm16_i8),       I386OP(imul_r32_rm32_i8),   false},
113         { 0x6C,     OP_I386,                    I386OP(insb),                   I386OP(insb),               false},
114         { 0x6D,     OP_I386,                    I386OP(insw),                   I386OP(insd),               false},
115         { 0x6E,     OP_I386,                    I386OP(outsb),                  I386OP(outsb),              false},
116         { 0x6F,     OP_I386,                    I386OP(outsw),                  I386OP(outsd),              false},
117         { 0x70,     OP_I386,                    I386OP(jo_rel8),                I386OP(jo_rel8),            false},
118         { 0x71,     OP_I386,                    I386OP(jno_rel8),               I386OP(jno_rel8),           false},
119         { 0x72,     OP_I386,                    I386OP(jc_rel8),                I386OP(jc_rel8),            false},
120         { 0x73,     OP_I386,                    I386OP(jnc_rel8),               I386OP(jnc_rel8),           false},
121         { 0x74,     OP_I386,                    I386OP(jz_rel8),                I386OP(jz_rel8),            false},
122         { 0x75,     OP_I386,                    I386OP(jnz_rel8),               I386OP(jnz_rel8),           false},
123         { 0x76,     OP_I386,                    I386OP(jbe_rel8),               I386OP(jbe_rel8),           false},
124         { 0x77,     OP_I386,                    I386OP(ja_rel8),                I386OP(ja_rel8),            false},
125         { 0x78,     OP_I386,                    I386OP(js_rel8),                I386OP(js_rel8),            false},
126         { 0x79,     OP_I386,                    I386OP(jns_rel8),               I386OP(jns_rel8),           false},
127         { 0x7A,     OP_I386,                    I386OP(jp_rel8),                I386OP(jp_rel8),            false},
128         { 0x7B,     OP_I386,                    I386OP(jnp_rel8),               I386OP(jnp_rel8),           false},
129         { 0x7C,     OP_I386,                    I386OP(jl_rel8),                I386OP(jl_rel8),            false},
130         { 0x7D,     OP_I386,                    I386OP(jge_rel8),               I386OP(jge_rel8),           false},
131         { 0x7E,     OP_I386,                    I386OP(jle_rel8),               I386OP(jle_rel8),           false},
132         { 0x7F,     OP_I386,                    I386OP(jg_rel8),                I386OP(jg_rel8),            false},
133         { 0x80,     OP_I386,                    I386OP(group80_8),              I386OP(group80_8),          true },
134         { 0x81,     OP_I386,                    I386OP(group81_16),             I386OP(group81_32),         true },
135         { 0x82,     OP_I386,                    I386OP(group80_8),              I386OP(group80_8),          true },
136         { 0x83,     OP_I386,                    I386OP(group83_16),             I386OP(group83_32),         true },
137         { 0x84,     OP_I386,                    I386OP(test_rm8_r8),            I386OP(test_rm8_r8),        false},
138         { 0x85,     OP_I386,                    I386OP(test_rm16_r16),          I386OP(test_rm32_r32),      false},
139         { 0x86,     OP_I386,                    I386OP(xchg_r8_rm8),            I386OP(xchg_r8_rm8),        true },
140         { 0x87,     OP_I386,                    I386OP(xchg_r16_rm16),          I386OP(xchg_r32_rm32),      true },
141         { 0x88,     OP_I386,                    I386OP(mov_rm8_r8),             I386OP(mov_rm8_r8),         false},
142         { 0x89,     OP_I386,                    I386OP(mov_rm16_r16),           I386OP(mov_rm32_r32),       false},
143         { 0x8A,     OP_I386,                    I386OP(mov_r8_rm8),             I386OP(mov_r8_rm8),         false},
144         { 0x8B,     OP_I386,                    I386OP(mov_r16_rm16),           I386OP(mov_r32_rm32),       false},
145         { 0x8C,     OP_I386,                    I386OP(mov_rm16_sreg),          I386OP(mov_rm16_sreg),      false},
146         { 0x8D,     OP_I386,                    I386OP(lea16),                  I386OP(lea32),              false},
147         { 0x8E,     OP_I386,                    I386OP(mov_sreg_rm16),          I386OP(mov_sreg_rm16),      false},
148         { 0x8F,     OP_I386,                    I386OP(pop_rm16),               I386OP(pop_rm32),           false},
149         { 0x90,     OP_I386,                    I386OP(nop),                    I386OP(nop),                false},
150         { 0x91,     OP_I386,                    I386OP(xchg_ax_cx),             I386OP(xchg_eax_ecx),       false},
151         { 0x92,     OP_I386,                    I386OP(xchg_ax_dx),             I386OP(xchg_eax_edx),       false},
152         { 0x93,     OP_I386,                    I386OP(xchg_ax_bx),             I386OP(xchg_eax_ebx),       false},
153         { 0x94,     OP_I386,                    I386OP(xchg_ax_sp),             I386OP(xchg_eax_esp),       false},
154         { 0x95,     OP_I386,                    I386OP(xchg_ax_bp),             I386OP(xchg_eax_ebp),       false},
155         { 0x96,     OP_I386,                    I386OP(xchg_ax_si),             I386OP(xchg_eax_esi),       false},
156         { 0x97,     OP_I386,                    I386OP(xchg_ax_di),             I386OP(xchg_eax_edi),       false},
157         { 0x98,     OP_I386,                    I386OP(cbw),                    I386OP(cwde),               false},
158         { 0x99,     OP_I386,                    I386OP(cwd),                    I386OP(cdq),                false},
159         { 0x9A,     OP_I386,                    I386OP(call_abs16),             I386OP(call_abs32),         false},
160         { 0x9B,     OP_I386,                    I386OP(wait),                   I386OP(wait),               false},
161         { 0x9C,     OP_I386,                    I386OP(pushf),                  I386OP(pushfd),             false},
162         { 0x9D,     OP_I386,                    I386OP(popf),                   I386OP(popfd),              false},
163         { 0x9E,     OP_I386,                    I386OP(sahf),                   I386OP(sahf),               false},
164         { 0x9F,     OP_I386,                    I386OP(lahf),                   I386OP(lahf),               false},
165         { 0xA0,     OP_I386,                    I386OP(mov_al_m8),              I386OP(mov_al_m8),          false},
166         { 0xA1,     OP_I386,                    I386OP(mov_ax_m16),             I386OP(mov_eax_m32),        false},
167         { 0xA2,     OP_I386,                    I386OP(mov_m8_al),              I386OP(mov_m8_al),          false},
168         { 0xA3,     OP_I386,                    I386OP(mov_m16_ax),             I386OP(mov_m32_eax),        false},
169         { 0xA4,     OP_I386,                    I386OP(movsb),                  I386OP(movsb),              false},
170         { 0xA5,     OP_I386,                    I386OP(movsw),                  I386OP(movsd),              false},
171         { 0xA6,     OP_I386,                    I386OP(cmpsb),                  I386OP(cmpsb),              false},
172         { 0xA7,     OP_I386,                    I386OP(cmpsw),                  I386OP(cmpsd),              false},
173         { 0xA8,     OP_I386,                    I386OP(test_al_i8),             I386OP(test_al_i8),         false},
174         { 0xA9,     OP_I386,                    I386OP(test_ax_i16),            I386OP(test_eax_i32),       false},
175         { 0xAA,     OP_I386,                    I386OP(stosb),                  I386OP(stosb),              false},
176         { 0xAB,     OP_I386,                    I386OP(stosw),                  I386OP(stosd),              false},
177         { 0xAC,     OP_I386,                    I386OP(lodsb),                  I386OP(lodsb),              false},
178         { 0xAD,     OP_I386,                    I386OP(lodsw),                  I386OP(lodsd),              false},
179         { 0xAE,     OP_I386,                    I386OP(scasb),                  I386OP(scasb),              false},
180         { 0xAF,     OP_I386,                    I386OP(scasw),                  I386OP(scasd),              false},
181         { 0xB0,     OP_I386,                    I386OP(mov_al_i8),              I386OP(mov_al_i8),          false},
182         { 0xB1,     OP_I386,                    I386OP(mov_cl_i8),              I386OP(mov_cl_i8),          false},
183         { 0xB2,     OP_I386,                    I386OP(mov_dl_i8),              I386OP(mov_dl_i8),          false},
184         { 0xB3,     OP_I386,                    I386OP(mov_bl_i8),              I386OP(mov_bl_i8),          false},
185         { 0xB4,     OP_I386,                    I386OP(mov_ah_i8),              I386OP(mov_ah_i8),          false},
186         { 0xB5,     OP_I386,                    I386OP(mov_ch_i8),              I386OP(mov_ch_i8),          false},
187         { 0xB6,     OP_I386,                    I386OP(mov_dh_i8),              I386OP(mov_dh_i8),          false},
188         { 0xB7,     OP_I386,                    I386OP(mov_bh_i8),              I386OP(mov_bh_i8),          false},
189         { 0xB8,     OP_I386,                    I386OP(mov_ax_i16),             I386OP(mov_eax_i32),        false},
190         { 0xB9,     OP_I386,                    I386OP(mov_cx_i16),             I386OP(mov_ecx_i32),        false},
191         { 0xBA,     OP_I386,                    I386OP(mov_dx_i16),             I386OP(mov_edx_i32),        false},
192         { 0xBB,     OP_I386,                    I386OP(mov_bx_i16),             I386OP(mov_ebx_i32),        false},
193         { 0xBC,     OP_I386,                    I386OP(mov_sp_i16),             I386OP(mov_esp_i32),        false},
194         { 0xBD,     OP_I386,                    I386OP(mov_bp_i16),             I386OP(mov_ebp_i32),        false},
195         { 0xBE,     OP_I386,                    I386OP(mov_si_i16),             I386OP(mov_esi_i32),        false},
196         { 0xBF,     OP_I386,                    I386OP(mov_di_i16),             I386OP(mov_edi_i32),        false},
197         { 0xC0,     OP_I386,                    I386OP(groupC0_8),              I386OP(groupC0_8),          false},
198         { 0xC1,     OP_I386,                    I386OP(groupC1_16),             I386OP(groupC1_32),         false},
199         { 0xC2,     OP_I386,                    I386OP(ret_near16_i16),         I386OP(ret_near32_i16),     false},
200         { 0xC3,     OP_I386,                    I386OP(ret_near16),             I386OP(ret_near32),         false},
201         { 0xC4,     OP_I386,                    I386OP(les16),                  I386OP(les32),              false},
202         { 0xC5,     OP_I386,                    I386OP(lds16),                  I386OP(lds32),              false},
203         { 0xC6,     OP_I386,                    I386OP(mov_rm8_i8),             I386OP(mov_rm8_i8),         false},
204         { 0xC7,     OP_I386,                    I386OP(mov_rm16_i16),           I386OP(mov_rm32_i32),       false},
205         { 0xC8,     OP_I386,                    I386OP(enter16),                I386OP(enter32),            false},
206         { 0xC9,     OP_I386,                    I386OP(leave16),                I386OP(leave32),            false},
207         { 0xCA,     OP_I386,                    I386OP(retf_i16),               I386OP(retf_i32),           false},
208         { 0xCB,     OP_I386,                    I386OP(retf16),                 I386OP(retf32),             false},
209         { 0xCC,     OP_I386,                    I386OP(int3),                   I386OP(int3),               false},
210         { 0xCD,     OP_I386,                    I386OP(int),                    I386OP(int),                false},
211         { 0xCE,     OP_I386,                    I386OP(into),                   I386OP(into),               false},
212         { 0xCF,     OP_I386,                    I386OP(iret16),                 I386OP(iret32),             false},
213         { 0xD0,     OP_I386,                    I386OP(groupD0_8),              I386OP(groupD0_8),          false},
214         { 0xD1,     OP_I386,                    I386OP(groupD1_16),             I386OP(groupD1_32),         false},
215         { 0xD2,     OP_I386,                    I386OP(groupD2_8),              I386OP(groupD2_8),          false},
216         { 0xD3,     OP_I386,                    I386OP(groupD3_16),             I386OP(groupD3_32),         false},
217         { 0xD4,     OP_I386,                    I386OP(aam),                    I386OP(aam),                false},
218         { 0xD5,     OP_I386,                    I386OP(aad),                    I386OP(aad),                false},
219         { 0xD6,     OP_I386,                    I386OP(setalc),                 I386OP(setalc),             false},
220         { 0xD7,     OP_I386,                    I386OP(xlat),                   I386OP(xlat),               false},
221         { 0xD8,     OP_I386,                    I386OP(escape),                 I386OP(escape),             false},
222         { 0xD9,     OP_I386,                    I386OP(escape),                 I386OP(escape),             false},
223         { 0xDA,     OP_I386,                    I386OP(escape),                 I386OP(escape),             false},
224         { 0xDB,     OP_I386,                    I386OP(escape),                 I386OP(escape),             false},
225         { 0xDC,     OP_I386,                    I386OP(escape),                 I386OP(escape),             false},
226         { 0xDD,     OP_I386,                    I386OP(escape),                 I386OP(escape),             false},
227         { 0xDE,     OP_I386,                    I386OP(escape),                 I386OP(escape),             false},
228         { 0xDF,     OP_I386,                    I386OP(escape),                 I386OP(escape),             false},
229         { 0xD8,     OP_FPU,                     I386OP(x87_group_d8),           I386OP(x87_group_d8),       false},
230         { 0xD9,     OP_FPU,                     I386OP(x87_group_d9),           I386OP(x87_group_d9),       false},
231         { 0xDA,     OP_FPU,                     I386OP(x87_group_da),           I386OP(x87_group_da),       false},
232         { 0xDB,     OP_FPU,                     I386OP(x87_group_db),           I386OP(x87_group_db),       false},
233         { 0xDC,     OP_FPU,                     I386OP(x87_group_dc),           I386OP(x87_group_dc),       false},
234         { 0xDD,     OP_FPU,                     I386OP(x87_group_dd),           I386OP(x87_group_dd),       false},
235         { 0xDE,     OP_FPU,                     I386OP(x87_group_de),           I386OP(x87_group_de),       false},
236         { 0xDF,     OP_FPU,                     I386OP(x87_group_df),           I386OP(x87_group_df),       false},
237         { 0xE0,     OP_I386,                    I386OP(loopne16),               I386OP(loopne32),           false},
238         { 0xE1,     OP_I386,                    I386OP(loopz16),                I386OP(loopz32),            false},
239         { 0xE2,     OP_I386,                    I386OP(loop16),                 I386OP(loop32),             false},
240         { 0xE3,     OP_I386,                    I386OP(jcxz16),                 I386OP(jcxz32),             false},
241         { 0xE4,     OP_I386,                    I386OP(in_al_i8),               I386OP(in_al_i8),           false},
242         { 0xE5,     OP_I386,                    I386OP(in_ax_i8),               I386OP(in_eax_i8),          false},
243         { 0xE6,     OP_I386,                    I386OP(out_al_i8),              I386OP(out_al_i8),          false},
244         { 0xE7,     OP_I386,                    I386OP(out_ax_i8),              I386OP(out_eax_i8),         false},
245         { 0xE8,     OP_I386,                    I386OP(call_rel16),             I386OP(call_rel32),         false},
246         { 0xE9,     OP_I386,                    I386OP(jmp_rel16),              I386OP(jmp_rel32),          false},
247         { 0xEA,     OP_I386,                    I386OP(jmp_abs16),              I386OP(jmp_abs32),          false},
248         { 0xEB,     OP_I386,                    I386OP(jmp_rel8),               I386OP(jmp_rel8),           false},
249         { 0xEC,     OP_I386,                    I386OP(in_al_dx),               I386OP(in_al_dx),           false},
250         { 0xED,     OP_I386,                    I386OP(in_ax_dx),               I386OP(in_eax_dx),          false},
251         { 0xEE,     OP_I386,                    I386OP(out_al_dx),              I386OP(out_al_dx),          false},
252         { 0xEF,     OP_I386,                    I386OP(out_ax_dx),              I386OP(out_eax_dx),         false},
253         { 0xF0,     OP_I386,                    I386OP(lock),                   I386OP(lock),               false},
254         { 0xF1,     OP_I386,                    I386OP(invalid),                I386OP(invalid),            false},
255         { 0xF2,     OP_I386,                    I386OP(repne),                  I386OP(repne),              false},
256         { 0xF3,     OP_I386,                    I386OP(rep),                    I386OP(rep),                false},
257         { 0xF4,     OP_I386,                    I386OP(hlt),                    I386OP(hlt),                false},
258         { 0xF5,     OP_I386,                    I386OP(cmc),                    I386OP(cmc),                false},
259         { 0xF6,     OP_I386,                    I386OP(groupF6_8),              I386OP(groupF6_8),          true },
260         { 0xF7,     OP_I386,                    I386OP(groupF7_16),             I386OP(groupF7_32),         true },
261         { 0xF8,     OP_I386,                    I386OP(clc),                    I386OP(clc),                false},
262         { 0xF9,     OP_I386,                    I386OP(stc),                    I386OP(stc),                false},
263         { 0xFA,     OP_I386,                    I386OP(cli),                    I386OP(cli),                false},
264         { 0xFB,     OP_I386,                    I386OP(sti),                    I386OP(sti),                false},
265         { 0xFC,     OP_I386,                    I386OP(cld),                    I386OP(cld),                false},
266         { 0xFD,     OP_I386,                    I386OP(std),                    I386OP(std),                false},
267         { 0xFE,     OP_I386,                    I386OP(groupFE_8),              I386OP(groupFE_8),          true },
268         { 0xFF,     OP_I386,                    I386OP(groupFF_16),             I386OP(groupFF_32),         true },
269         /* 0F ?? */
270         { 0x00,     OP_2BYTE|OP_I386,           I386OP(group0F00_16),           I386OP(group0F00_32),       false},
271         { 0x01,     OP_2BYTE|OP_I386,           I386OP(group0F01_16),           I386OP(group0F01_32),       false},
272         { 0x01,     OP_2BYTE|OP_I486,           I486OP(group0F01_16),           I486OP(group0F01_32),       false},
273         { 0x02,     OP_2BYTE|OP_I386,           I386OP(lar_r16_rm16),           I386OP(lar_r32_rm32),       false},
274         { 0x03,     OP_2BYTE|OP_I386,           I386OP(lsl_r16_rm16),           I386OP(lsl_r32_rm32),       false},
275         { 0x06,     OP_2BYTE|OP_I386,           I386OP(clts),                   I386OP(clts),               false},
276         { 0x07,     OP_2BYTE|OP_I386,           I386OP(loadall),                I386OP(loadall),            false},
277         { 0x08,     OP_2BYTE|OP_I486,           I486OP(invd),                   I486OP(invd),               false},
278         { 0x09,     OP_2BYTE|OP_I486,           I486OP(wbinvd),                 I486OP(wbinvd),             false},
279         { 0x0B,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(ud2),                 PENTIUMOP(ud2),             false},
280         { 0x10,     OP_2BYTE|OP_SSE,            SSEOP(movups_r128_rm128),       SSEOP(movups_r128_rm128),   false},
281         { 0x11,     OP_2BYTE|OP_SSE,            SSEOP(movups_rm128_r128),       SSEOP(movups_rm128_r128),   false},
282         { 0x12,     OP_2BYTE|OP_SSE,            SSEOP(movlps_r128_m64),         SSEOP(movlps_r128_m64),     false},
283         { 0x13,     OP_2BYTE|OP_SSE,            SSEOP(movlps_m64_r128),         SSEOP(movlps_m64_r128),     false},
284         { 0x14,     OP_2BYTE|OP_SSE,            SSEOP(unpcklps_r128_rm128),     SSEOP(unpcklps_r128_rm128), false},
285         { 0x15,     OP_2BYTE|OP_SSE,            SSEOP(unpckhps_r128_rm128),     SSEOP(unpckhps_r128_rm128), false},
286         { 0x16,     OP_2BYTE|OP_SSE,            SSEOP(movhps_r128_m64),         SSEOP(movhps_r128_m64),     false},
287         { 0x17,     OP_2BYTE|OP_SSE,            SSEOP(movhps_m64_r128),         SSEOP(movhps_m64_r128),     false},
288         { 0x18,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(prefetch_m8),         PENTIUMOP(prefetch_m8),     false},
289         { 0x20,     OP_2BYTE|OP_I386,           I386OP(mov_r32_cr),             I386OP(mov_r32_cr),         false},
290         { 0x21,     OP_2BYTE|OP_I386,           I386OP(mov_r32_dr),             I386OP(mov_r32_dr),         false},
291         { 0x22,     OP_2BYTE|OP_I386,           I386OP(mov_cr_r32),             I386OP(mov_cr_r32),         false},
292         { 0x22,     OP_2BYTE|OP_I486,           I486OP(mov_cr_r32),             I486OP(mov_cr_r32),         false},
293         { 0x23,     OP_2BYTE|OP_I386,           I386OP(mov_dr_r32),             I386OP(mov_dr_r32),         false},
294         { 0x24,     OP_2BYTE|OP_I386,           I386OP(mov_r32_tr),             I386OP(mov_r32_tr),         false},
295         { 0x26,     OP_2BYTE|OP_I386,           I386OP(mov_tr_r32),             I386OP(mov_tr_r32),         false},
296         { 0x28,     OP_2BYTE|OP_SSE,            SSEOP(movaps_r128_rm128),       SSEOP(movaps_r128_rm128),   false},
297         { 0x29,     OP_2BYTE|OP_SSE,            SSEOP(movaps_rm128_r128),       SSEOP(movaps_rm128_r128),   false},
298         { 0x2a,     OP_2BYTE|OP_SSE,            SSEOP(cvtpi2ps_r128_rm64),      SSEOP(cvtpi2ps_r128_rm64),  false},
299         { 0x2b,     OP_2BYTE|OP_SSE,            SSEOP(movntps_m128_r128),       SSEOP(movntps_m128_r128),   false},
300         { 0x2c,     OP_2BYTE|OP_SSE,            SSEOP(cvttps2pi_r64_r128m64),   SSEOP(cvttps2pi_r64_r128m64),false},
301         { 0x2d,     OP_2BYTE|OP_SSE,            SSEOP(cvtps2pi_r64_r128m64),    SSEOP(cvtps2pi_r64_r128m64),false},
302         { 0x2e,     OP_2BYTE|OP_SSE,            SSEOP(ucomiss_r128_r128m32),    SSEOP(ucomiss_r128_r128m32),false},
303         { 0x2f,     OP_2BYTE|OP_SSE,            SSEOP(comiss_r128_r128m32),     SSEOP(comiss_r128_r128m32), false},
304         { 0x30,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(wrmsr),               PENTIUMOP(wrmsr),           false},
305         { 0x31,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(rdtsc),               PENTIUMOP(rdtsc),           false},
306         { 0x32,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(rdmsr),               PENTIUMOP(rdmsr),           false},
307         { 0x38,     OP_2BYTE|OP_PENTIUM,        I386OP(decode_three_byte38),    I386OP(decode_three_byte38),false},
308         { 0x3A,     OP_2BYTE|OP_PENTIUM,        I386OP(decode_three_byte3a),    I386OP(decode_three_byte3a),false},
309         { 0x3A,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_special),          I386OP(cyrix_special),      false},
310         { 0x3B,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_special),          I386OP(cyrix_special),      false},
311         { 0x3C,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_special),          I386OP(cyrix_special),      false},
312         { 0x3D,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_special),          I386OP(cyrix_special),      false},
313         { 0x40,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovo_r16_rm16),      PENTIUMOP(cmovo_r32_rm32),  false},
314         { 0x41,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovno_r16_rm16),     PENTIUMOP(cmovno_r32_rm32), false},
315         { 0x42,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovb_r16_rm16),      PENTIUMOP(cmovb_r32_rm32),  false},
316         { 0x43,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovae_r16_rm16),     PENTIUMOP(cmovae_r32_rm32), false},
317         { 0x44,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmove_r16_rm16),      PENTIUMOP(cmove_r32_rm32),  false},
318         { 0x45,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovne_r16_rm16),     PENTIUMOP(cmovne_r32_rm32), false},
319         { 0x46,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovbe_r16_rm16),     PENTIUMOP(cmovbe_r32_rm32), false},
320         { 0x47,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmova_r16_rm16),      PENTIUMOP(cmova_r32_rm32),  false},
321         { 0x48,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovs_r16_rm16),      PENTIUMOP(cmovs_r32_rm32),  false},
322         { 0x49,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovns_r16_rm16),     PENTIUMOP(cmovns_r32_rm32), false},
323         { 0x4a,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovp_r16_rm16),      PENTIUMOP(cmovp_r32_rm32),  false},
324         { 0x4b,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovnp_r16_rm16),     PENTIUMOP(cmovnp_r32_rm32), false},
325         { 0x4c,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovl_r16_rm16),      PENTIUMOP(cmovl_r32_rm32),  false},
326         { 0x4d,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovge_r16_rm16),     PENTIUMOP(cmovge_r32_rm32), false},
327         { 0x4e,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovle_r16_rm16),     PENTIUMOP(cmovle_r32_rm32), false},
328         { 0x4f,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmovg_r16_rm16),      PENTIUMOP(cmovg_r32_rm32),  false},
329         { 0x50,     OP_2BYTE|OP_SSE,            SSEOP(movmskps_r16_r128),       SSEOP(movmskps_r32_r128),   false},
330         { 0x51,     OP_2BYTE|OP_SSE,            SSEOP(sqrtps_r128_rm128),       SSEOP(sqrtps_r128_rm128),   false},
331         { 0x52,     OP_2BYTE|OP_SSE,            SSEOP(rsqrtps_r128_rm128),      SSEOP(rsqrtps_r128_rm128),  false},
332         { 0x53,     OP_2BYTE|OP_SSE,            SSEOP(rcpps_r128_rm128),        SSEOP(rcpps_r128_rm128),    false},
333         { 0x54,     OP_2BYTE|OP_SSE,            SSEOP(andps_r128_rm128),        SSEOP(andps_r128_rm128),    false},
334         { 0x55,     OP_2BYTE|OP_SSE,            SSEOP(andnps_r128_rm128),       SSEOP(andnps_r128_rm128),   false},
335         { 0x56,     OP_2BYTE|OP_SSE,            SSEOP(orps_r128_rm128),         SSEOP(orps_r128_rm128),     false},
336         { 0x57,     OP_2BYTE|OP_SSE,            SSEOP(xorps),                   SSEOP(xorps),               false},
337         { 0x58,     OP_2BYTE|OP_SSE,            SSEOP(addps),                   SSEOP(addps),               false},
338         { 0x59,     OP_2BYTE|OP_SSE,            SSEOP(mulps),                   SSEOP(mulps),               false},
339         { 0x5a,     OP_2BYTE|OP_SSE,            SSEOP(cvtps2pd_r128_r128m64),   SSEOP(cvtps2pd_r128_r128m64),false},
340         { 0x5b,     OP_2BYTE|OP_SSE,            SSEOP(cvtdq2ps_r128_rm128),     SSEOP(cvtdq2ps_r128_rm128), false},
341         { 0x5c,     OP_2BYTE|OP_SSE,            SSEOP(subps),                   SSEOP(subps),               false},
342         { 0x5d,     OP_2BYTE|OP_SSE,            SSEOP(minps),                   SSEOP(minps),               false},
343         { 0x5e,     OP_2BYTE|OP_SSE,            SSEOP(divps),                   SSEOP(divps),               false},
344         { 0x5f,     OP_2BYTE|OP_SSE,            SSEOP(maxps),                   SSEOP(maxps),               false},
345         { 0x60,     OP_2BYTE|OP_MMX,            MMXOP(punpcklbw_r64_r64m32),    MMXOP(punpcklbw_r64_r64m32),false},
346         { 0x61,     OP_2BYTE|OP_MMX,            MMXOP(punpcklwd_r64_r64m32),    MMXOP(punpcklwd_r64_r64m32),false},
347         { 0x62,     OP_2BYTE|OP_MMX,            MMXOP(punpckldq_r64_r64m32),    MMXOP(punpckldq_r64_r64m32),false},
348         { 0x63,     OP_2BYTE|OP_MMX,            MMXOP(packsswb_r64_rm64),       MMXOP(packsswb_r64_rm64),   false},
349         { 0x64,     OP_2BYTE|OP_MMX,            MMXOP(pcmpgtb_r64_rm64),        MMXOP(pcmpgtb_r64_rm64),    false},
350         { 0x65,     OP_2BYTE|OP_MMX,            MMXOP(pcmpgtw_r64_rm64),        MMXOP(pcmpgtw_r64_rm64),    false},
351         { 0x66,     OP_2BYTE|OP_MMX,            MMXOP(pcmpgtd_r64_rm64),        MMXOP(pcmpgtd_r64_rm64),    false},
352         { 0x67,     OP_2BYTE|OP_MMX,            MMXOP(packuswb_r64_rm64),       MMXOP(packuswb_r64_rm64),   false},
353         { 0x68,     OP_2BYTE|OP_MMX,            MMXOP(punpckhbw_r64_rm64),      MMXOP(punpckhbw_r64_rm64),  false},
354         { 0x69,     OP_2BYTE|OP_MMX,            MMXOP(punpckhwd_r64_rm64),      MMXOP(punpckhwd_r64_rm64),  false},
355         { 0x6a,     OP_2BYTE|OP_MMX,            MMXOP(punpckhdq_r64_rm64),      MMXOP(punpckhdq_r64_rm64),  false},
356         { 0x6b,     OP_2BYTE|OP_MMX,            MMXOP(packssdw_r64_rm64),       MMXOP(packssdw_r64_rm64),   false},
357         { 0x6e,     OP_2BYTE|OP_MMX,            MMXOP(movd_r64_rm32),           MMXOP(movd_r64_rm32),       false},
358         { 0x6f,     OP_2BYTE|OP_MMX,            MMXOP(movq_r64_rm64),           MMXOP(movq_r64_rm64),       false},
359         { 0x70,     OP_2BYTE|OP_MMX,            MMXOP(pshufw_r64_rm64_i8),      MMXOP(pshufw_r64_rm64_i8),  false},
360         { 0x71,     OP_2BYTE|OP_MMX,            MMXOP(group_0f71),              MMXOP(group_0f71),          false},
361         { 0x72,     OP_2BYTE|OP_MMX,            MMXOP(group_0f72),              MMXOP(group_0f72),          false},
362         { 0x73,     OP_2BYTE|OP_MMX,            MMXOP(group_0f73),              MMXOP(group_0f73),          false},
363         { 0x74,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_unknown),          I386OP(cyrix_unknown),      false},
364         { 0x74,     OP_2BYTE|OP_MMX,            MMXOP(pcmpeqb_r64_rm64),        MMXOP(pcmpeqb_r64_rm64),    false},
365         { 0x75,     OP_2BYTE|OP_MMX,            MMXOP(pcmpeqw_r64_rm64),        MMXOP(pcmpeqw_r64_rm64),    false},
366         { 0x76,     OP_2BYTE|OP_MMX,            MMXOP(pcmpeqd_r64_rm64),        MMXOP(pcmpeqd_r64_rm64),    false},
367         { 0x77,     OP_2BYTE|OP_MMX,            MMXOP(emms),                    MMXOP(emms),                false},
368         { 0x78,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_svdc),             I386OP(cyrix_svdc),         false},
369         { 0x79,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_rsdc),             I386OP(cyrix_rsdc),         false},
370         { 0x7a,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_svldt),            I386OP(cyrix_svldt),        false},
371         { 0x7b,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_rsldt),            I386OP(cyrix_rsldt),        false},
372         { 0x7c,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_svts),             I386OP(cyrix_svts),         false},
373         { 0x7d,     OP_2BYTE|OP_CYRIX,          I386OP(cyrix_rsts),             I386OP(cyrix_rsts),         false},
374         { 0x7e,     OP_2BYTE|OP_MMX,            MMXOP(movd_rm32_r64),           MMXOP(movd_rm32_r64),       false},
375         { 0x7f,     OP_2BYTE|OP_MMX,            MMXOP(movq_rm64_r64),           MMXOP(movq_rm64_r64),       false},
376         { 0x80,     OP_2BYTE|OP_I386,           I386OP(jo_rel16),               I386OP(jo_rel32),           false},
377         { 0x81,     OP_2BYTE|OP_I386,           I386OP(jno_rel16),              I386OP(jno_rel32),          false},
378         { 0x82,     OP_2BYTE|OP_I386,           I386OP(jc_rel16),               I386OP(jc_rel32),           false},
379         { 0x83,     OP_2BYTE|OP_I386,           I386OP(jnc_rel16),              I386OP(jnc_rel32),          false},
380         { 0x84,     OP_2BYTE|OP_I386,           I386OP(jz_rel16),               I386OP(jz_rel32),           false},
381         { 0x85,     OP_2BYTE|OP_I386,           I386OP(jnz_rel16),              I386OP(jnz_rel32),          false},
382         { 0x86,     OP_2BYTE|OP_I386,           I386OP(jbe_rel16),              I386OP(jbe_rel32),          false},
383         { 0x87,     OP_2BYTE|OP_I386,           I386OP(ja_rel16),               I386OP(ja_rel32),           false},
384         { 0x88,     OP_2BYTE|OP_I386,           I386OP(js_rel16),               I386OP(js_rel32),           false},
385         { 0x89,     OP_2BYTE|OP_I386,           I386OP(jns_rel16),              I386OP(jns_rel32),          false},
386         { 0x8A,     OP_2BYTE|OP_I386,           I386OP(jp_rel16),               I386OP(jp_rel32),           false},
387         { 0x8B,     OP_2BYTE|OP_I386,           I386OP(jnp_rel16),              I386OP(jnp_rel32),          false},
388         { 0x8C,     OP_2BYTE|OP_I386,           I386OP(jl_rel16),               I386OP(jl_rel32),           false},
389         { 0x8D,     OP_2BYTE|OP_I386,           I386OP(jge_rel16),              I386OP(jge_rel32),          false},
390         { 0x8E,     OP_2BYTE|OP_I386,           I386OP(jle_rel16),              I386OP(jle_rel32),          false},
391         { 0x8F,     OP_2BYTE|OP_I386,           I386OP(jg_rel16),               I386OP(jg_rel32),           false},
392         { 0x90,     OP_2BYTE|OP_I386,           I386OP(seto_rm8),               I386OP(seto_rm8),           false},
393         { 0x91,     OP_2BYTE|OP_I386,           I386OP(setno_rm8),              I386OP(setno_rm8),          false},
394         { 0x92,     OP_2BYTE|OP_I386,           I386OP(setc_rm8),               I386OP(setc_rm8),           false},
395         { 0x93,     OP_2BYTE|OP_I386,           I386OP(setnc_rm8),              I386OP(setnc_rm8),          false},
396         { 0x94,     OP_2BYTE|OP_I386,           I386OP(setz_rm8),               I386OP(setz_rm8),           false},
397         { 0x95,     OP_2BYTE|OP_I386,           I386OP(setnz_rm8),              I386OP(setnz_rm8),          false},
398         { 0x96,     OP_2BYTE|OP_I386,           I386OP(setbe_rm8),              I386OP(setbe_rm8),          false},
399         { 0x97,     OP_2BYTE|OP_I386,           I386OP(seta_rm8),               I386OP(seta_rm8),           false},
400         { 0x98,     OP_2BYTE|OP_I386,           I386OP(sets_rm8),               I386OP(sets_rm8),           false},
401         { 0x99,     OP_2BYTE|OP_I386,           I386OP(setns_rm8),              I386OP(setns_rm8),          false},
402         { 0x9A,     OP_2BYTE|OP_I386,           I386OP(setp_rm8),               I386OP(setp_rm8),           false},
403         { 0x9B,     OP_2BYTE|OP_I386,           I386OP(setnp_rm8),              I386OP(setnp_rm8),          false},
404         { 0x9C,     OP_2BYTE|OP_I386,           I386OP(setl_rm8),               I386OP(setl_rm8),           false},
405         { 0x9D,     OP_2BYTE|OP_I386,           I386OP(setge_rm8),              I386OP(setge_rm8),          false},
406         { 0x9E,     OP_2BYTE|OP_I386,           I386OP(setle_rm8),              I386OP(setle_rm8),          false},
407         { 0x9F,     OP_2BYTE|OP_I386,           I386OP(setg_rm8),               I386OP(setg_rm8),           false},
408         { 0xA0,     OP_2BYTE|OP_I386,           I386OP(push_fs16),              I386OP(push_fs32),          false},
409         { 0xA1,     OP_2BYTE|OP_I386,           I386OP(pop_fs16),               I386OP(pop_fs32),           false},
410         { 0xA2,     OP_2BYTE|OP_I486,           I486OP(cpuid),                  I486OP(cpuid),              false},
411         { 0xA3,     OP_2BYTE|OP_I386,           I386OP(bt_rm16_r16),            I386OP(bt_rm32_r32),        false},
412         { 0xA4,     OP_2BYTE|OP_I386,           I386OP(shld16_i8),              I386OP(shld32_i8),          false},
413         { 0xA5,     OP_2BYTE|OP_I386,           I386OP(shld16_cl),              I386OP(shld32_cl),          false},
414         { 0xA8,     OP_2BYTE|OP_I386,           I386OP(push_gs16),              I386OP(push_gs32),          false},
415         { 0xA9,     OP_2BYTE|OP_I386,           I386OP(pop_gs16),               I386OP(pop_gs32),           false},
416         { 0xAA,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(rsm),                 PENTIUMOP(rsm),             false},
417         { 0xAB,     OP_2BYTE|OP_I386,           I386OP(bts_rm16_r16),           I386OP(bts_rm32_r32),       true },
418         { 0xAC,     OP_2BYTE|OP_I386,           I386OP(shrd16_i8),              I386OP(shrd32_i8),          false},
419         { 0xAD,     OP_2BYTE|OP_I386,           I386OP(shrd16_cl),              I386OP(shrd32_cl),          false},
420         { 0xAE,     OP_2BYTE|OP_SSE,            SSEOP(group_0fae),              SSEOP(group_0fae),          false},
421         { 0xAF,     OP_2BYTE|OP_I386,           I386OP(imul_r16_rm16),          I386OP(imul_r32_rm32),      false},
422         { 0xB0,     OP_2BYTE|OP_I486,           I486OP(cmpxchg_rm8_r8),         I486OP(cmpxchg_rm8_r8),     true },
423         { 0xB1,     OP_2BYTE|OP_I486,           I486OP(cmpxchg_rm16_r16),       I486OP(cmpxchg_rm32_r32),   true },
424         { 0xB2,     OP_2BYTE|OP_I386,           I386OP(lss16),                  I386OP(lss32),              false},
425         { 0xB3,     OP_2BYTE|OP_I386,           I386OP(btr_rm16_r16),           I386OP(btr_rm32_r32),       true },
426         { 0xB4,     OP_2BYTE|OP_I386,           I386OP(lfs16),                  I386OP(lfs32),              false},
427         { 0xB5,     OP_2BYTE|OP_I386,           I386OP(lgs16),                  I386OP(lgs32),              false},
428         { 0xB6,     OP_2BYTE|OP_I386,           I386OP(movzx_r16_rm8),          I386OP(movzx_r32_rm8),      false},
429         { 0xB7,     OP_2BYTE|OP_I386,           I386OP(invalid),                I386OP(movzx_r32_rm16),     false},
430         { 0xBA,     OP_2BYTE|OP_I386,           I386OP(group0FBA_16),           I386OP(group0FBA_32),       true },
431         { 0xBB,     OP_2BYTE|OP_I386,           I386OP(btc_rm16_r16),           I386OP(btc_rm32_r32),       true },
432         { 0xBC,     OP_2BYTE|OP_I386,           I386OP(bsf_r16_rm16),           I386OP(bsf_r32_rm32),       false},
433         { 0xBD,     OP_2BYTE|OP_I386,           I386OP(bsr_r16_rm16),           I386OP(bsr_r32_rm32),       false},
434         { 0xBE,     OP_2BYTE|OP_I386,           I386OP(movsx_r16_rm8),          I386OP(movsx_r32_rm8),      false},
435         { 0xBF,     OP_2BYTE|OP_I386,           I386OP(invalid),                I386OP(movsx_r32_rm16),     false},
436         { 0xC0,     OP_2BYTE|OP_I486,           I486OP(xadd_rm8_r8),            I486OP(xadd_rm8_r8),        true },
437         { 0xC1,     OP_2BYTE|OP_I486,           I486OP(xadd_rm16_r16),          I486OP(xadd_rm32_r32),      true },
438         { 0xC2,     OP_2BYTE|OP_SSE,            SSEOP(cmpps_r128_rm128_i8),     SSEOP(cmpps_r128_rm128_i8), false},
439         { 0xC3,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(movnti_m16_r16),      PENTIUMOP(movnti_m32_r32),  false},
440         { 0xC4,     OP_2BYTE|OP_SSE,            SSEOP(pinsrw_r64_r16m16_i8),    SSEOP(pinsrw_r64_r32m16_i8),false},
441         { 0xC5,     OP_2BYTE|OP_SSE,            SSEOP(pextrw_r16_r64_i8),       SSEOP(pextrw_r32_r64_i8),   false},
442         { 0xC6,     OP_2BYTE|OP_SSE,            SSEOP(shufps),                  SSEOP(shufps),              false},
443         { 0xC7,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(cmpxchg8b_m64),       PENTIUMOP(cmpxchg8b_m64),   true },
444         { 0xC8,     OP_2BYTE|OP_I486,           I486OP(bswap_eax),              I486OP(bswap_eax),          false},
445         { 0xC9,     OP_2BYTE|OP_I486,           I486OP(bswap_ecx),              I486OP(bswap_ecx),          false},
446         { 0xCA,     OP_2BYTE|OP_I486,           I486OP(bswap_edx),              I486OP(bswap_edx),          false},
447         { 0xCB,     OP_2BYTE|OP_I486,           I486OP(bswap_ebx),              I486OP(bswap_ebx),          false},
448         { 0xCC,     OP_2BYTE|OP_I486,           I486OP(bswap_esp),              I486OP(bswap_esp),          false},
449         { 0xCD,     OP_2BYTE|OP_I486,           I486OP(bswap_ebp),              I486OP(bswap_ebp),          false},
450         { 0xCE,     OP_2BYTE|OP_I486,           I486OP(bswap_esi),              I486OP(bswap_esi),          false},
451         { 0xCF,     OP_2BYTE|OP_I486,           I486OP(bswap_edi),              I486OP(bswap_edi),          false},
452         { 0xD1,     OP_2BYTE|OP_MMX,            MMXOP(psrlw_r64_rm64),          MMXOP(psrlw_r64_rm64),      false},
453         { 0xD2,     OP_2BYTE|OP_MMX,            MMXOP(psrld_r64_rm64),          MMXOP(psrld_r64_rm64),      false},
454         { 0xD3,     OP_2BYTE|OP_MMX,            MMXOP(psrlq_r64_rm64),          MMXOP(psrlq_r64_rm64),      false},
455         { 0xD4,     OP_2BYTE|OP_MMX,            MMXOP(paddq_r64_rm64),          MMXOP(paddq_r64_rm64),      false},
456         { 0xD5,     OP_2BYTE|OP_MMX,            MMXOP(pmullw_r64_rm64),         MMXOP(pmullw_r64_rm64),     false},
457         { 0xD7,     OP_2BYTE|OP_SSE,            SSEOP(pmovmskb_r16_r64),        SSEOP(pmovmskb_r32_r64),    false},
458         { 0xD8,     OP_2BYTE|OP_MMX,            MMXOP(psubusb_r64_rm64),        MMXOP(psubusb_r64_rm64),    false},
459         { 0xD9,     OP_2BYTE|OP_MMX,            MMXOP(psubusw_r64_rm64),        MMXOP(psubusw_r64_rm64),    false},
460         { 0xDA,     OP_2BYTE|OP_SSE,            SSEOP(pminub_r64_rm64),         SSEOP(pminub_r64_rm64),     false},
461         { 0xDB,     OP_2BYTE|OP_MMX,            MMXOP(pand_r64_rm64),           MMXOP(pand_r64_rm64),       false},
462         { 0xDC,     OP_2BYTE|OP_MMX,            MMXOP(paddusb_r64_rm64),        MMXOP(paddusb_r64_rm64),    false},
463         { 0xDD,     OP_2BYTE|OP_MMX,            MMXOP(paddusw_r64_rm64),        MMXOP(paddusw_r64_rm64),    false},
464         { 0xDE,     OP_2BYTE|OP_SSE,            SSEOP(pmaxub_r64_rm64),         SSEOP(pmaxub_r64_rm64),     false},
465         { 0xDF,     OP_2BYTE|OP_MMX,            MMXOP(pandn_r64_rm64),          MMXOP(pandn_r64_rm64),      false},
466         { 0xE0,     OP_2BYTE|OP_SSE,            SSEOP(pavgb_r64_rm64),          SSEOP(pavgb_r64_rm64),      false},
467         { 0xE1,     OP_2BYTE|OP_MMX,            MMXOP(psraw_r64_rm64),          MMXOP(psraw_r64_rm64),      false},
468         { 0xE2,     OP_2BYTE|OP_MMX,            MMXOP(psrad_r64_rm64),          MMXOP(psrad_r64_rm64),      false},
469         { 0xE3,     OP_2BYTE|OP_SSE,            SSEOP(pavgw_r64_rm64),          SSEOP(pavgw_r64_rm64),      false},
470         { 0xE4,     OP_2BYTE|OP_SSE,            SSEOP(pmulhuw_r64_rm64),        SSEOP(pmulhuw_r64_rm64),    false},
471         { 0xE5,     OP_2BYTE|OP_MMX,            MMXOP(pmulhw_r64_rm64),         MMXOP(pmulhw_r64_rm64),     false},
472         { 0xE7,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(movntq_m64_r64),      PENTIUMOP(movntq_m64_r64),  false},
473         { 0xE8,     OP_2BYTE|OP_MMX,            MMXOP(psubsb_r64_rm64),         MMXOP(psubsb_r64_rm64),     false},
474         { 0xE9,     OP_2BYTE|OP_MMX,            MMXOP(psubsw_r64_rm64),         MMXOP(psubsw_r64_rm64),     false},
475         { 0xEA,     OP_2BYTE|OP_SSE,            SSEOP(pminsw_r64_rm64),         SSEOP(pminsw_r64_rm64),     false},
476         { 0xEB,     OP_2BYTE|OP_MMX,            MMXOP(por_r64_rm64),            MMXOP(por_r64_rm64),        false},
477         { 0xEC,     OP_2BYTE|OP_MMX,            MMXOP(paddsb_r64_rm64),         MMXOP(paddsb_r64_rm64),     false},
478         { 0xED,     OP_2BYTE|OP_MMX,            MMXOP(paddsw_r64_rm64),         MMXOP(paddsw_r64_rm64),     false},
479         { 0xEE,     OP_2BYTE|OP_SSE,            SSEOP(pmaxsw_r64_rm64),         SSEOP(pmaxsw_r64_rm64),     false},
480         { 0xEF,     OP_2BYTE|OP_MMX,            MMXOP(pxor_r64_rm64),           MMXOP(pxor_r64_rm64),       false},
481         { 0xF1,     OP_2BYTE|OP_MMX,            MMXOP(psllw_r64_rm64),          MMXOP(psllw_r64_rm64),      false},
482         { 0xF2,     OP_2BYTE|OP_MMX,            MMXOP(pslld_r64_rm64),          MMXOP(pslld_r64_rm64),      false},
483         { 0xF3,     OP_2BYTE|OP_MMX,            MMXOP(psllq_r64_rm64),          MMXOP(psllq_r64_rm64),      false},
484         { 0xF4,     OP_2BYTE|OP_SSE,            SSEOP(pmuludq_r64_rm64),        SSEOP(pmuludq_r64_rm64),    false},
485         { 0xF5,     OP_2BYTE|OP_MMX,            MMXOP(pmaddwd_r64_rm64),        MMXOP(pmaddwd_r64_rm64),    false},
486         { 0xF6,     OP_2BYTE|OP_SSE,            SSEOP(psadbw_r64_rm64),         SSEOP(psadbw_r64_rm64),     false},
487         { 0xf7,     OP_2BYTE|OP_PENTIUM,        PENTIUMOP(maskmovq_r64_r64),    PENTIUMOP(maskmovq_r64_r64),false},
488         { 0xF8,     OP_2BYTE|OP_MMX,            MMXOP(psubb_r64_rm64),          MMXOP(psubb_r64_rm64),      false},
489         { 0xF9,     OP_2BYTE|OP_MMX,            MMXOP(psubw_r64_rm64),          MMXOP(psubw_r64_rm64),      false},
490         { 0xFA,     OP_2BYTE|OP_MMX,            MMXOP(psubd_r64_rm64),          MMXOP(psubd_r64_rm64),      false},
491         { 0xFB,     OP_2BYTE|OP_SSE,            SSEOP(psubq_r64_rm64),          SSEOP(psubq_r64_rm64),      false},
492         { 0xFC,     OP_2BYTE|OP_MMX,            MMXOP(paddb_r64_rm64),          MMXOP(paddb_r64_rm64),      false},
493         { 0xFD,     OP_2BYTE|OP_MMX,            MMXOP(paddw_r64_rm64),          MMXOP(paddw_r64_rm64),      false},
494         { 0xFE,     OP_2BYTE|OP_MMX,            MMXOP(paddd_r64_rm64),          MMXOP(paddd_r64_rm64),      false},
495         /* F3 0F ?? */
496         { 0x10,     OP_3BYTEF3|OP_SSE,          SSEOP(movss_r128_rm128),        SSEOP(movss_r128_rm128),    false},
497         { 0x11,     OP_3BYTEF3|OP_SSE,          SSEOP(movss_rm128_r128),        SSEOP(movss_rm128_r128),    false},
498         { 0x12,     OP_3BYTEF3|OP_SSE,          SSEOP(movsldup_r128_rm128),     SSEOP(movsldup_r128_rm128), false},
499         { 0x16,     OP_3BYTEF3|OP_SSE,          SSEOP(movshdup_r128_rm128),     SSEOP(movshdup_r128_rm128), false},
500         { 0x2A,     OP_3BYTEF3|OP_SSE,          SSEOP(cvtsi2ss_r128_rm32),      SSEOP(cvtsi2ss_r128_rm32),  false},
501         { 0x2C,     OP_3BYTEF3|OP_SSE,          SSEOP(cvttss2si_r32_r128m32),   SSEOP(cvttss2si_r32_r128m32),false},
502         { 0x2D,     OP_3BYTEF3|OP_SSE,          SSEOP(cvtss2si_r32_r128m32),    SSEOP(cvtss2si_r32_r128m32),false},
503         { 0x51,     OP_3BYTEF3|OP_SSE,          SSEOP(sqrtss_r128_r128m32),     SSEOP(sqrtss_r128_r128m32), false},
504         { 0x52,     OP_3BYTEF3|OP_SSE,          SSEOP(rsqrtss_r128_r128m32),    SSEOP(rsqrtss_r128_r128m32),false},
505         { 0x53,     OP_3BYTEF3|OP_SSE,          SSEOP(rcpss_r128_r128m32),      SSEOP(rcpss_r128_r128m32),  false},
506         { 0x58,     OP_3BYTEF3|OP_SSE,          SSEOP(addss),                   SSEOP(addss),               false},
507         { 0x59,     OP_3BYTEF3|OP_SSE,          SSEOP(mulss),                   SSEOP(mulss),               false},
508         { 0x5A,     OP_3BYTEF3|OP_SSE,          SSEOP(cvtss2sd_r128_r128m32),   SSEOP(cvtss2sd_r128_r128m32),false},
509         { 0x5B,     OP_3BYTEF3|OP_SSE,          SSEOP(cvttps2dq_r128_rm128),    SSEOP(cvttps2dq_r128_rm128),false},
510         { 0x5C,     OP_3BYTEF3|OP_SSE,          SSEOP(subss),                   SSEOP(subss),               false},
511         { 0x5D,     OP_3BYTEF3|OP_SSE,          SSEOP(minss_r128_r128m32),      SSEOP(minss_r128_r128m32),  false},
512         { 0x5E,     OP_3BYTEF3|OP_SSE,          SSEOP(divss),                   SSEOP(divss),               false},
513         { 0x5F,     OP_3BYTEF3|OP_SSE,          SSEOP(maxss_r128_r128m32),      SSEOP(maxss_r128_r128m32),  false},
514         { 0x6F,     OP_3BYTEF3|OP_SSE,          SSEOP(movdqu_r128_rm128),       SSEOP(movdqu_r128_rm128),   false},
515         { 0x70,     OP_3BYTEF3|OP_SSE,          SSEOP(pshufhw_r128_rm128_i8),   SSEOP(pshufhw_r128_rm128_i8),false},
516         { 0x7E,     OP_3BYTEF3|OP_SSE,          SSEOP(movq_r128_r128m64),       SSEOP(movq_r128_r128m64),   false},
517         { 0x7F,     OP_3BYTEF3|OP_SSE,          SSEOP(movdqu_rm128_r128),       SSEOP(movdqu_rm128_r128),   false},
518         { 0xAE,     OP_3BYTE66|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
519         { 0xB8,     OP_3BYTEF3|OP_PENTIUM,      PENTIUMOP(popcnt_r16_rm16),     PENTIUMOP(popcnt_r32_rm32), false},
520         { 0xBC,     OP_3BYTEF3|OP_PENTIUM,      PENTIUMOP(tzcnt_r16_rm16),      PENTIUMOP(tzcnt_r32_rm32),  false},
521         { 0xC2,     OP_3BYTEF3|OP_SSE,          SSEOP(cmpss_r128_r128m32_i8),   SSEOP(cmpss_r128_r128m32_i8),false},
522         { 0xC7,     OP_3BYTEF2|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
523         { 0xD6,     OP_3BYTEF3|OP_SSE,          SSEOP(movq2dq_r128_r64),        SSEOP(movq2dq_r128_r64),    false},
524         { 0xE6,     OP_3BYTEF3|OP_SSE,          SSEOP(cvtdq2pd_r128_r128m64),   SSEOP(cvtdq2pd_r128_r128m64),false},
525         /* F2 0F ?? */
526         { 0x10,     OP_3BYTEF2|OP_SSE,          SSEOP(movsd_r128_r128m64),      SSEOP(movsd_r128_r128m64),  false},
527         { 0x11,     OP_3BYTEF2|OP_SSE,          SSEOP(movsd_r128m64_r128),      SSEOP(movsd_r128m64_r128),  false},
528         { 0x12,     OP_3BYTEF2|OP_SSE,          SSEOP(movddup_r128_r128m64),    SSEOP(movddup_r128_r128m64),false},
529         { 0x2A,     OP_3BYTEF2|OP_SSE,          SSEOP(cvtsi2sd_r128_rm32),      SSEOP(cvtsi2sd_r128_rm32),  false},
530         { 0x2C,     OP_3BYTEF2|OP_SSE,          SSEOP(cvttsd2si_r32_r128m64),   SSEOP(cvttsd2si_r32_r128m64),false},
531         { 0x2D,     OP_3BYTEF2|OP_SSE,          SSEOP(cvtsd2si_r32_r128m64),    SSEOP(cvtsd2si_r32_r128m64),false},
532         { 0x51,     OP_3BYTEF2|OP_SSE,          SSEOP(sqrtsd_r128_r128m64),     SSEOP(sqrtsd_r128_r128m64), false},
533         { 0x58,     OP_3BYTEF2|OP_SSE,          SSEOP(addsd_r128_r128m64),      SSEOP(addsd_r128_r128m64),  false},
534         { 0x59,     OP_3BYTEF2|OP_SSE,          SSEOP(mulsd_r128_r128m64),      SSEOP(mulsd_r128_r128m64),  false},
535         { 0x5A,     OP_3BYTEF2|OP_SSE,          SSEOP(cvtsd2ss_r128_r128m64),   SSEOP(cvtsd2ss_r128_r128m64),false},
536         { 0x5C,     OP_3BYTEF2|OP_SSE,          SSEOP(subsd_r128_r128m64),      SSEOP(subsd_r128_r128m64),  false},
537         { 0x5D,     OP_3BYTEF2|OP_SSE,          SSEOP(minsd_r128_r128m64),      SSEOP(minsd_r128_r128m64),  false},
538         { 0x5E,     OP_3BYTEF2|OP_SSE,          SSEOP(divsd_r128_r128m64),      SSEOP(divsd_r128_r128m64),  false},
539         { 0x5F,     OP_3BYTEF2|OP_SSE,          SSEOP(maxsd_r128_r128m64),      SSEOP(maxsd_r128_r128m64),  false},
540         { 0x70,     OP_3BYTEF2|OP_SSE,          SSEOP(pshuflw_r128_rm128_i8),   SSEOP(pshuflw_r128_rm128_i8),false},
541         { 0x7C,     OP_3BYTEF2|OP_SSE,          SSEOP(haddps_r128_rm128),       SSEOP(haddps_r128_rm128),   false},
542         { 0x7D,     OP_3BYTEF2|OP_SSE,          SSEOP(hsubps_r128_rm128),       SSEOP(hsubps_r128_rm128),   false},
543         { 0xC2,     OP_3BYTEF2|OP_SSE,          SSEOP(cmpsd_r128_r128m64_i8),   SSEOP(cmpsd_r128_r128m64_i8),false},
544         { 0xD0,     OP_3BYTEF2|OP_SSE,          SSEOP(addsubps_r128_rm128),     SSEOP(addsubps_r128_rm128), false},
545         { 0xD6,     OP_3BYTEF2|OP_SSE,          SSEOP(movdq2q_r64_r128),        SSEOP(movdq2q_r64_r128),    false},
546         { 0xE6,     OP_3BYTEF2|OP_SSE,          SSEOP(cvtpd2dq_r128_rm128),     SSEOP(cvtpd2dq_r128_rm128), false},
547         { 0xF0,     OP_3BYTEF2|OP_SSE,          SSEOP(lddqu_r128_m128),         SSEOP(lddqu_r128_m128),     false},
548         /* 66 0F ?? */
549         { 0x10,     OP_3BYTE66|OP_SSE,          SSEOP(movupd_r128_rm128),       SSEOP(movupd_r128_rm128),   false},
550         { 0x11,     OP_3BYTE66|OP_SSE,          SSEOP(movupd_rm128_r128),       SSEOP(movupd_rm128_r128),   false},
551         { 0x12,     OP_3BYTE66|OP_SSE,          SSEOP(movlpd_r128_m64),         SSEOP(movlpd_r128_m64),     false},
552         { 0x13,     OP_3BYTE66|OP_SSE,          SSEOP(movlpd_m64_r128),         SSEOP(movlpd_m64_r128),     false},
553         { 0x14,     OP_3BYTE66|OP_SSE,          SSEOP(unpcklpd_r128_rm128),     SSEOP(unpcklpd_r128_rm128), false},
554         { 0x15,     OP_3BYTE66|OP_SSE,          SSEOP(unpckhpd_r128_rm128),     SSEOP(unpckhpd_r128_rm128), false},
555         { 0x16,     OP_3BYTE66|OP_SSE,          SSEOP(movhpd_r128_m64),         SSEOP(movhpd_r128_m64),     false},
556         { 0x17,     OP_3BYTE66|OP_SSE,          SSEOP(movhpd_m64_r128),         SSEOP(movhpd_m64_r128),     false},
557         { 0x28,     OP_3BYTE66|OP_SSE,          SSEOP(movapd_r128_rm128),       SSEOP(movapd_r128_rm128),   false},
558         { 0x29,     OP_3BYTE66|OP_SSE,          SSEOP(movapd_rm128_r128),       SSEOP(movapd_rm128_r128),   false},
559         { 0x2A,     OP_3BYTE66|OP_SSE,          SSEOP(cvtpi2pd_r128_rm64),      SSEOP(cvtpi2pd_r128_rm64),  false},
560         { 0x2B,     OP_3BYTE66|OP_SSE,          SSEOP(movntpd_m128_r128),       SSEOP(movntpd_m128_r128),   false},
561         { 0x2C,     OP_3BYTE66|OP_SSE,          SSEOP(cvttpd2pi_r64_rm128),     SSEOP(cvttpd2pi_r64_rm128), false},
562         { 0x2D,     OP_3BYTE66|OP_SSE,          SSEOP(cvtpd2pi_r64_rm128),      SSEOP(cvtpd2pi_r64_rm128),  false},
563         { 0x2E,     OP_3BYTE66|OP_SSE,          SSEOP(ucomisd_r128_r128m64),    SSEOP(ucomisd_r128_r128m64),false},
564         { 0x2F,     OP_3BYTE66|OP_SSE,          SSEOP(comisd_r128_r128m64),     SSEOP(comisd_r128_r128m64), false},
565         { 0x50,     OP_3BYTE66|OP_SSE,          SSEOP(movmskpd_r32_r128),       SSEOP(movmskpd_r32_r128),   false},
566         { 0x51,     OP_3BYTE66|OP_SSE,          SSEOP(sqrtpd_r128_rm128),       SSEOP(sqrtpd_r128_rm128),   false},
567         { 0x54,     OP_3BYTE66|OP_SSE,          SSEOP(andpd_r128_rm128),        SSEOP(andpd_r128_rm128),    false},
568         { 0x55,     OP_3BYTE66|OP_SSE,          SSEOP(andnpd_r128_rm128),       SSEOP(andnpd_r128_rm128),   false},
569         { 0x56,     OP_3BYTE66|OP_SSE,          SSEOP(orpd_r128_rm128),         SSEOP(orpd_r128_rm128),     false},
570         { 0x57,     OP_3BYTE66|OP_SSE,          SSEOP(xorpd_r128_rm128),        SSEOP(xorpd_r128_rm128),    false},
571         { 0x58,     OP_3BYTE66|OP_SSE,          SSEOP(addpd_r128_rm128),        SSEOP(addpd_r128_rm128),    false},
572         { 0x59,     OP_3BYTE66|OP_SSE,          SSEOP(mulpd_r128_rm128),        SSEOP(mulpd_r128_rm128),    false},
573         { 0x5A,     OP_3BYTE66|OP_SSE,          SSEOP(cvtpd2ps_r128_rm128),     SSEOP(cvtpd2ps_r128_rm128), false},
574         { 0x5B,     OP_3BYTE66|OP_SSE,          SSEOP(cvtps2dq_r128_rm128),     SSEOP(cvtps2dq_r128_rm128), false},
575         { 0x5C,     OP_3BYTE66|OP_SSE,          SSEOP(subpd_r128_rm128),        SSEOP(subpd_r128_rm128),    false},
576         { 0x5D,     OP_3BYTE66|OP_SSE,          SSEOP(minpd_r128_rm128),        SSEOP(minpd_r128_rm128),    false},
577         { 0x5E,     OP_3BYTE66|OP_SSE,          SSEOP(divpd_r128_rm128),        SSEOP(divpd_r128_rm128),    false},
578         { 0x5F,     OP_3BYTE66|OP_SSE,          SSEOP(maxpd_r128_rm128),        SSEOP(maxpd_r128_rm128),    false},
579         { 0x60,     OP_3BYTE66|OP_SSE,          SSEOP(punpcklbw_r128_rm128),    SSEOP(punpcklbw_r128_rm128),false},
580         { 0x61,     OP_3BYTE66|OP_SSE,          SSEOP(punpcklwd_r128_rm128),    SSEOP(punpcklwd_r128_rm128),false},
581         { 0x62,     OP_3BYTE66|OP_SSE,          SSEOP(punpckldq_r128_rm128),    SSEOP(punpckldq_r128_rm128),false},
582         { 0x63,     OP_3BYTE66|OP_SSE,          SSEOP(packsswb_r128_rm128),     SSEOP(packsswb_r128_rm128), false},
583         { 0x64,     OP_3BYTE66|OP_SSE,          SSEOP(pcmpgtb_r128_rm128),      SSEOP(pcmpgtb_r128_rm128),  false},
584         { 0x65,     OP_3BYTE66|OP_SSE,          SSEOP(pcmpgtw_r128_rm128),      SSEOP(pcmpgtw_r128_rm128),  false},
585         { 0x66,     OP_3BYTE66|OP_SSE,          SSEOP(pcmpgtd_r128_rm128),      SSEOP(pcmpgtd_r128_rm128),  false},
586         { 0x67,     OP_3BYTE66|OP_SSE,          SSEOP(packuswb_r128_rm128),     SSEOP(packuswb_r128_rm128), false},
587         { 0x68,     OP_3BYTE66|OP_SSE,          SSEOP(punpckhbw_r128_rm128),    SSEOP(punpckhbw_r128_rm128),false},
588         { 0x69,     OP_3BYTE66|OP_SSE,          SSEOP(punpckhwd_r128_rm128),    SSEOP(punpckhwd_r128_rm128),false},
589         { 0x6A,     OP_3BYTE66|OP_SSE,          SSEOP(unpckhdq_r128_rm128),     SSEOP(unpckhdq_r128_rm128), false},
590         { 0x6B,     OP_3BYTE66|OP_SSE,          SSEOP(packssdw_r128_rm128),     SSEOP(packssdw_r128_rm128), false},
591         { 0x6C,     OP_3BYTE66|OP_SSE,          SSEOP(punpcklqdq_r128_rm128),   SSEOP(punpcklqdq_r128_rm128),false},
592         { 0x6D,     OP_3BYTE66|OP_SSE,          SSEOP(punpckhqdq_r128_rm128),   SSEOP(punpckhqdq_r128_rm128),false},
593         { 0x6E,     OP_3BYTE66|OP_SSE,          SSEOP(movd_m128_rm32),          SSEOP(movd_m128_rm32),      false},
594         { 0x6F,     OP_3BYTE66|OP_SSE,          SSEOP(movdqa_m128_rm128),       SSEOP(movdqa_m128_rm128),   false},
595         { 0x70,     OP_3BYTE66|OP_SSE,          SSEOP(pshufd_r128_rm128_i8),    SSEOP(pshufd_r128_rm128_i8),false},
596         { 0x71,     OP_3BYTE66|OP_SSE,          SSEOP(group_660f71),            SSEOP(group_660f71),        false},
597         { 0x72,     OP_3BYTE66|OP_SSE,          SSEOP(group_660f72),            SSEOP(group_660f72),        false},
598         { 0x73,     OP_3BYTE66|OP_SSE,          SSEOP(group_660f73),            SSEOP(group_660f73),        false},
599         { 0x74,     OP_3BYTE66|OP_SSE,          SSEOP(pcmpeqb_r128_rm128),      SSEOP(pcmpeqb_r128_rm128),  false},
600         { 0x75,     OP_3BYTE66|OP_SSE,          SSEOP(pcmpeqw_r128_rm128),      SSEOP(pcmpeqw_r128_rm128),  false},
601         { 0x76,     OP_3BYTE66|OP_SSE,          SSEOP(pcmpeqd_r128_rm128),      SSEOP(pcmpeqd_r128_rm128),  false},
602         { 0x7C,     OP_3BYTE66|OP_SSE,          SSEOP(haddpd_r128_rm128),       SSEOP(haddpd_r128_rm128),   false},
603         { 0x7D,     OP_3BYTE66|OP_SSE,          SSEOP(hsubpd_r128_rm128),       SSEOP(hsubpd_r128_rm128),   false},
604         { 0x7E,     OP_3BYTE66|OP_SSE,          SSEOP(movd_rm32_r128),          SSEOP(movd_rm32_r128),      false},
605         { 0x7F,     OP_3BYTE66|OP_SSE,          SSEOP(movdqa_rm128_r128),       SSEOP(movdqa_rm128_r128),   false},
606         { 0xC2,     OP_3BYTE66|OP_SSE,          SSEOP(cmppd_r128_rm128_i8),     SSEOP(cmppd_r128_rm128_i8), false},
607         { 0xC4,     OP_3BYTE66|OP_SSE,          SSEOP(pinsrw_r128_r32m16_i8),   SSEOP(pinsrw_r128_r32m16_i8),false},
608         { 0xC5,     OP_3BYTE66|OP_SSE,          SSEOP(pextrw_reg_r128_i8),      SSEOP(pextrw_reg_r128_i8),  false},
609         { 0xC6,     OP_3BYTE66|OP_SSE,          SSEOP(shufpd_r128_rm128_i8),    SSEOP(shufpd_r128_rm128_i8),false},
610         { 0xC7,     OP_3BYTE66|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
611         { 0xD0,     OP_3BYTE66|OP_SSE,          SSEOP(addsubpd_r128_rm128),     SSEOP(addsubpd_r128_rm128), false},
612         { 0xD1,     OP_3BYTE66|OP_SSE,          SSEOP(psrlw_r128_rm128),        SSEOP(psrlw_r128_rm128),    false},
613         { 0xD2,     OP_3BYTE66|OP_SSE,          SSEOP(psrld_r128_rm128),        SSEOP(psrld_r128_rm128),    false},
614         { 0xD3,     OP_3BYTE66|OP_SSE,          SSEOP(psrlq_r128_rm128),        SSEOP(psrlq_r128_rm128),    false},
615         { 0xD4,     OP_3BYTE66|OP_SSE,          SSEOP(paddq_r128_rm128),        SSEOP(paddq_r128_rm128),    false},
616         { 0xD5,     OP_3BYTE66|OP_SSE,          SSEOP(pmullw_r128_rm128),       SSEOP(pmullw_r128_rm128),   false},
617         { 0xD6,     OP_3BYTE66|OP_SSE,          SSEOP(movq_r128m64_r128),       SSEOP(movq_r128m64_r128),   false},
618         { 0xD7,     OP_3BYTE66|OP_SSE,          SSEOP(pmovmskb_r32_r128),       SSEOP(pmovmskb_r32_r128),   false},
619         { 0xD8,     OP_3BYTE66|OP_SSE,          SSEOP(psubusb_r128_rm128),      SSEOP(psubusb_r128_rm128),  false},
620         { 0xD9,     OP_3BYTE66|OP_SSE,          SSEOP(psubusw_r128_rm128),      SSEOP(psubusw_r128_rm128),  false},
621         { 0xDA,     OP_3BYTE66|OP_SSE,          SSEOP(pminub_r128_rm128),       SSEOP(pminub_r128_rm128),   false},
622         { 0xDB,     OP_3BYTE66|OP_SSE,          SSEOP(pand_r128_rm128),         SSEOP(pand_r128_rm128),     false},
623         { 0xDC,     OP_3BYTE66|OP_SSE,          SSEOP(paddusb_r128_rm128),      SSEOP(paddusb_r128_rm128),  false},
624         { 0xDD,     OP_3BYTE66|OP_SSE,          SSEOP(paddusw_r128_rm128),      SSEOP(paddusw_r128_rm128),  false},
625         { 0xDE,     OP_3BYTE66|OP_SSE,          SSEOP(pmaxub_r128_rm128),       SSEOP(pmaxub_r128_rm128),   false},
626         { 0xDF,     OP_3BYTE66|OP_SSE,          SSEOP(pandn_r128_rm128),        SSEOP(pandn_r128_rm128),    false},
627         { 0xE0,     OP_3BYTE66|OP_SSE,          SSEOP(pavgb_r128_rm128),        SSEOP(pavgb_r128_rm128),    false},
628         { 0xE1,     OP_3BYTE66|OP_SSE,          SSEOP(psraw_r128_rm128),        SSEOP(psraw_r128_rm128),    false},
629         { 0xE2,     OP_3BYTE66|OP_SSE,          SSEOP(psrad_r128_rm128),        SSEOP(psrad_r128_rm128),    false},
630         { 0xE3,     OP_3BYTE66|OP_SSE,          SSEOP(pavgw_r128_rm128),        SSEOP(pavgw_r128_rm128),    false},
631         { 0xE4,     OP_3BYTE66|OP_SSE,          SSEOP(pmulhuw_r128_rm128),      SSEOP(pmulhuw_r128_rm128),  false},
632         { 0xE5,     OP_3BYTE66|OP_SSE,          SSEOP(pmulhw_r128_rm128),       SSEOP(pmulhw_r128_rm128),   false},
633         { 0xE6,     OP_3BYTE66|OP_SSE,          SSEOP(cvttpd2dq_r128_rm128),    SSEOP(cvttpd2dq_r128_rm128),false},
634         { 0xE7,     OP_3BYTE66|OP_SSE,          SSEOP(movntdq_m128_r128),       SSEOP(movntdq_m128_r128),   false},
635         { 0xE8,     OP_3BYTE66|OP_SSE,          SSEOP(psubsb_r128_rm128),       SSEOP(psubsb_r128_rm128),   false},
636         { 0xE9,     OP_3BYTE66|OP_SSE,          SSEOP(psubsw_r128_rm128),       SSEOP(psubsw_r128_rm128),   false},
637         { 0xEA,     OP_3BYTE66|OP_SSE,          SSEOP(pminsw_r128_rm128),       SSEOP(pminsw_r128_rm128),   false},
638         { 0xEB,     OP_3BYTE66|OP_SSE,          SSEOP(por_r128_rm128),          SSEOP(por_r128_rm128),      false},
639         { 0xEC,     OP_3BYTE66|OP_SSE,          SSEOP(paddsb_r128_rm128),       SSEOP(paddsb_r128_rm128),   false},
640         { 0xED,     OP_3BYTE66|OP_SSE,          SSEOP(paddsw_r128_rm128),       SSEOP(paddsw_r128_rm128),   false},
641         { 0xEE,     OP_3BYTE66|OP_SSE,          SSEOP(pmaxsw_r128_rm128),       SSEOP(pmaxsw_r128_rm128),   false},
642         { 0xEF,     OP_3BYTE66|OP_SSE,          SSEOP(pxor_r128_rm128),         SSEOP(pxor_r128_rm128),     false},
643         { 0xF1,     OP_3BYTE66|OP_SSE,          SSEOP(psllw_r128_rm128),        SSEOP(psllw_r128_rm128),    false},
644         { 0xF2,     OP_3BYTE66|OP_SSE,          SSEOP(pslld_r128_rm128),        SSEOP(pslld_r128_rm128),    false},
645         { 0xF3,     OP_3BYTE66|OP_SSE,          SSEOP(psllq_r128_rm128),        SSEOP(psllq_r128_rm128),    false},
646         { 0xF4,     OP_3BYTE66|OP_SSE,          SSEOP(pmuludq_r128_rm128),      SSEOP(pmuludq_r128_rm128),  false},
647         { 0xF5,     OP_3BYTE66|OP_SSE,          SSEOP(pmaddwd_r128_rm128),      SSEOP(pmaddwd_r128_rm128),  false},
648         { 0xF6,     OP_3BYTE66|OP_SSE,          SSEOP(psadbw_r128_rm128),       SSEOP(psadbw_r128_rm128),   false},
649         { 0xF7,     OP_3BYTE66|OP_SSE,          SSEOP(maskmovdqu_r128_r128),    SSEOP(maskmovdqu_r128_r128),false},
650         { 0xF8,     OP_3BYTE66|OP_SSE,          SSEOP(psubb_r128_rm128),        SSEOP(psubb_r128_rm128),    false},
651         { 0xF9,     OP_3BYTE66|OP_SSE,          SSEOP(psubw_r128_rm128),        SSEOP(psubw_r128_rm128),    false},
652         { 0xFA,     OP_3BYTE66|OP_SSE,          SSEOP(psubd_r128_rm128),        SSEOP(psubd_r128_rm128),    false},
653         { 0xFB,     OP_3BYTE66|OP_SSE,          SSEOP(psubq_r128_rm128),        SSEOP(psubq_r128_rm128),    false},
654         { 0xFC,     OP_3BYTE66|OP_SSE,          SSEOP(paddb_r128_rm128),        SSEOP(paddb_r128_rm128),    false},
655         { 0xFD,     OP_3BYTE66|OP_SSE,          SSEOP(paddw_r128_rm128),        SSEOP(paddw_r128_rm128),    false},
656         { 0xFE,     OP_3BYTE66|OP_SSE,          SSEOP(paddd_r128_rm128),        SSEOP(paddd_r128_rm128),    false},
657         /* 0F 38 ?? */
658         { 0x00,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
659         { 0x01,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
660         { 0x02,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
661         { 0x03,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
662         { 0x04,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
663         { 0x05,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
664         { 0x06,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
665         { 0x07,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
666         { 0x08,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
667         { 0x09,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
668         { 0x0A,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
669         { 0x0B,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
670         { 0x1C,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
671         { 0x1D,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
672         { 0x1E,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
673         { 0xF0,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
674         { 0xF1,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
675         { 0xF2,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
676         { 0xF3,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
677         { 0xF5,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
678         { 0xF7,     OP_3BYTE38|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
679         /* 0F 3A ?? */
680         { 0x0F,     OP_3BYTE3A|OP_SSE,          I386OP(invalid),                I386OP(invalid),            false},
681         /* 66 0F 38 ?? */
682         { 0x00,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
683         { 0x01,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
684         { 0x02,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
685         { 0x03,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
686         { 0x04,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
687         { 0x05,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
688         { 0x06,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
689         { 0x07,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
690         { 0x08,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
691         { 0x09,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
692         { 0x0A,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
693         { 0x0B,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
694         { 0x0C,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
695         { 0x0D,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
696         { 0x0E,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
697         { 0x0F,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
698         { 0x10,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
699         { 0x13,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
700         { 0x14,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
701         { 0x15,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
702         { 0x16,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
703         { 0x17,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
704         { 0x18,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
705         { 0x19,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
706         { 0x1A,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
707         { 0x1C,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
708         { 0x1D,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
709         { 0x1E,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
710         { 0x20,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
711         { 0x21,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
712         { 0x22,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
713         { 0x23,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
714         { 0x24,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
715         { 0x25,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
716         { 0x28,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
717         { 0x29,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
718         { 0x2A,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
719         { 0x2B,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
720         { 0x2C,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
721         { 0x2D,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
722         { 0x2E,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
723         { 0x2F,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
724         { 0x30,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
725         { 0x31,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
726         { 0x32,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
727         { 0x33,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
728         { 0x34,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
729         { 0x35,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
730         { 0x36,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
731         { 0x37,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
732         { 0x38,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
733         { 0x39,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
734         { 0x3A,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
735         { 0x3B,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
736         { 0x3C,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
737         { 0x3D,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
738         { 0x3E,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
739         { 0x3F,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
740         { 0x40,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
741         { 0x41,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
742         { 0x45,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
743         { 0x46,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
744         { 0x47,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
745         { 0x58,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
746         { 0x59,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
747         { 0x5A,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
748         { 0x78,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
749         { 0x79,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
750         { 0x80,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
751         { 0x81,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
752         { 0x82,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
753         { 0x8C,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
754         { 0x8E,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
755         { 0x90,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
756         { 0x91,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
757         { 0x92,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
758         { 0x93,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
759         { 0x96,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
760         { 0x97,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
761         { 0x98,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
762         { 0x99,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
763         { 0x9A,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
764         { 0x9B,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
765         { 0x9C,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
766         { 0x9D,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
767         { 0x9E,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
768         { 0x9F,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
769         { 0xA6,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
770         { 0xA7,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
771         { 0xA8,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
772         { 0xA9,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
773         { 0xAA,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
774         { 0xAB,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
775         { 0xAC,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
776         { 0xAD,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
777         { 0xAE,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
778         { 0xAF,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
779         { 0xB6,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
780         { 0xB7,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
781         { 0xB8,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
782         { 0xB9,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
783         { 0xBA,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
784         { 0xBB,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
785         { 0xBC,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
786         { 0xBD,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
787         { 0xBE,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
788         { 0xBF,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
789         { 0xDB,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
790         { 0xDC,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
791         { 0xDD,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
792         { 0xDE,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
793         { 0xDF,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
794         { 0xF0,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
795         { 0xF1,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
796         { 0xF3,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
797         { 0xF6,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
798         { 0xF7,     OP_4BYTE3866|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
799         /* F2 0F 38 ?? */
800         { 0xF0,     OP_4BYTE38F2|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
801         { 0xF1,     OP_4BYTE38F2|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
802         { 0xF3,     OP_4BYTE38F2|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
803         { 0xF5,     OP_4BYTE38F2|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
804         { 0xF6,     OP_4BYTE38F2|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
805         { 0xF7,     OP_4BYTE38F2|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
806         /* F3 0F 38 ?? */
807         { 0xF3,     OP_4BYTE38F3|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
808         { 0xF5,     OP_4BYTE38F3|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
809         { 0xF6,     OP_4BYTE38F3|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
810         { 0xF7,     OP_4BYTE38F3|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
811         /* 66 0F 3A ?? */
812         { 0x00,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
813         { 0x01,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
814         { 0x02,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
815         { 0x04,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
816         { 0x05,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
817         { 0x06,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
818         { 0x08,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
819         { 0x09,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
820         { 0x0A,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
821         { 0x0B,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
822         { 0x0C,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
823         { 0x0D,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
824         { 0x0E,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
825         { 0x0F,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
826         { 0x14,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
827         { 0x15,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
828         { 0x16,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
829         { 0x17,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
830         { 0x18,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
831         { 0x19,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
832         { 0x1D,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
833         { 0x20,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
834         { 0x21,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
835         { 0x22,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
836         { 0x38,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
837         { 0x39,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
838         { 0x40,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
839         { 0x41,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
840         { 0x42,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
841         { 0x44,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
842         { 0x46,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
843         { 0x4A,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
844         { 0x4B,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
845         { 0x4C,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
846         { 0x60,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
847         { 0x61,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
848         { 0x62,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
849         { 0x63,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
850         { 0xDF,     OP_4BYTE3A66|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false},
851         /* F2 0F 3A ?? */
852         { 0xF0,     OP_4BYTE3AF2|OP_SSE,        I386OP(invalid),                I386OP(invalid),            false}
853 };