2 const X86_OPCODE x86_opcode_table[] =
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 },
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},
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},
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},
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},
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},
680 { 0x0F, OP_3BYTE3A|OP_SSE, I386OP(invalid), I386OP(invalid), false},
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},
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},
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},
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},
852 { 0xF0, OP_4BYTE3AF2|OP_SSE, I386OP(invalid), I386OP(invalid), false}