1 /* This file auto-generated from insns.dat by insns.pl - don't edit it */
6 static struct itemplate instrux_AAA
[] = {
7 {I_AAA
, 0, {0,0,0}, "\1\x37", IF_8086
},
11 static struct itemplate instrux_AAD
[] = {
12 {I_AAD
, 0, {0,0,0}, "\2\xD5\x0A", IF_8086
},
13 {I_AAD
, 1, {IMMEDIATE
,0,0}, "\1\xD5\24", IF_8086
|IF_SB
},
17 static struct itemplate instrux_AAM
[] = {
18 {I_AAM
, 0, {0,0,0}, "\2\xD4\x0A", IF_8086
},
19 {I_AAM
, 1, {IMMEDIATE
,0,0}, "\1\xD4\24", IF_8086
|IF_SB
},
23 static struct itemplate instrux_AAS
[] = {
24 {I_AAS
, 0, {0,0,0}, "\1\x3F", IF_8086
},
28 static struct itemplate instrux_ADC
[] = {
29 {I_ADC
, 2, {MEMORY
,REG8
,0}, "\300\1\x10\101", IF_8086
|IF_SM
},
30 {I_ADC
, 2, {REG8
,REG8
,0}, "\1\x10\101", IF_8086
},
31 {I_ADC
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x11\101", IF_8086
|IF_SM
},
32 {I_ADC
, 2, {REG16
,REG16
,0}, "\320\1\x11\101", IF_8086
},
33 {I_ADC
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x11\101", IF_386
|IF_SM
},
34 {I_ADC
, 2, {REG32
,REG32
,0}, "\321\1\x11\101", IF_386
},
35 {I_ADC
, 2, {REG8
,MEMORY
,0}, "\301\1\x12\110", IF_8086
|IF_SM
},
36 {I_ADC
, 2, {REG8
,REG8
,0}, "\1\x12\110", IF_8086
},
37 {I_ADC
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x13\110", IF_8086
|IF_SM
},
38 {I_ADC
, 2, {REG16
,REG16
,0}, "\320\1\x13\110", IF_8086
},
39 {I_ADC
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x13\110", IF_386
|IF_SM
},
40 {I_ADC
, 2, {REG32
,REG32
,0}, "\321\1\x13\110", IF_386
},
41 {I_ADC
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\202\15", IF_8086
},
42 {I_ADC
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\202\15", IF_386
},
43 {I_ADC
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x14\21", IF_8086
|IF_SM
},
44 {I_ADC
, 2, {REG_AX
,SBYTE
,0}, "\320\1\x83\202\15", IF_8086
|IF_SM
},
45 {I_ADC
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x15\31", IF_8086
|IF_SM
},
46 {I_ADC
, 2, {REG_EAX
,SBYTE
,0}, "\321\1\x83\202\15", IF_386
|IF_SM
},
47 {I_ADC
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x15\41", IF_386
|IF_SM
},
48 {I_ADC
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\202\21", IF_8086
|IF_SM
},
49 {I_ADC
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\134\1\x81\202\131", IF_8086
|IF_SM
},
50 {I_ADC
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\144\1\x81\202\141", IF_386
|IF_SM
},
51 {I_ADC
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\202\21", IF_8086
|IF_SM
},
52 {I_ADC
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\134\1\x81\202\131", IF_8086
|IF_SM
},
53 {I_ADC
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\144\1\x81\202\141", IF_386
|IF_SM
},
57 static struct itemplate instrux_ADD
[] = {
58 {I_ADD
, 2, {MEMORY
,REG8
,0}, "\300\17\101", IF_8086
|IF_SM
},
59 {I_ADD
, 2, {REG8
,REG8
,0}, "\17\101", IF_8086
},
60 {I_ADD
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x01\101", IF_8086
|IF_SM
},
61 {I_ADD
, 2, {REG16
,REG16
,0}, "\320\1\x01\101", IF_8086
},
62 {I_ADD
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x01\101", IF_386
|IF_SM
},
63 {I_ADD
, 2, {REG32
,REG32
,0}, "\321\1\x01\101", IF_386
},
64 {I_ADD
, 2, {REG8
,MEMORY
,0}, "\301\1\x02\110", IF_8086
|IF_SM
},
65 {I_ADD
, 2, {REG8
,REG8
,0}, "\1\x02\110", IF_8086
},
66 {I_ADD
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x03\110", IF_8086
|IF_SM
},
67 {I_ADD
, 2, {REG16
,REG16
,0}, "\320\1\x03\110", IF_8086
},
68 {I_ADD
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x03\110", IF_386
|IF_SM
},
69 {I_ADD
, 2, {REG32
,REG32
,0}, "\321\1\x03\110", IF_386
},
70 {I_ADD
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\200\15", IF_8086
},
71 {I_ADD
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\200\15", IF_386
},
72 {I_ADD
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x04\21", IF_8086
|IF_SM
},
73 {I_ADD
, 2, {REG_AX
,SBYTE
,0}, "\320\1\x83\200\15", IF_8086
|IF_SM
},
74 {I_ADD
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x05\31", IF_8086
|IF_SM
},
75 {I_ADD
, 2, {REG_EAX
,SBYTE
,0}, "\321\1\x83\200\15", IF_386
|IF_SM
},
76 {I_ADD
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x05\41", IF_386
|IF_SM
},
77 {I_ADD
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\200\21", IF_8086
|IF_SM
},
78 {I_ADD
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\134\1\x81\200\131", IF_8086
|IF_SM
},
79 {I_ADD
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\144\1\x81\200\141", IF_386
|IF_SM
},
80 {I_ADD
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\200\21", IF_8086
|IF_SM
},
81 {I_ADD
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\134\1\x81\200\131", IF_8086
|IF_SM
},
82 {I_ADD
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\144\1\x81\200\141", IF_386
|IF_SM
},
86 static struct itemplate instrux_ADDPD
[] = {
87 {I_ADDPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\x58\110", IF_WILLAMETTE
|IF_SSE2
},
88 {I_ADDPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\x58\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
92 static struct itemplate instrux_ADDPS
[] = {
93 {I_ADDPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x58\110", IF_KATMAI
|IF_SSE
},
94 {I_ADDPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x58\110", IF_KATMAI
|IF_SSE
},
98 static struct itemplate instrux_ADDSD
[] = {
99 {I_ADDSD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\xF2\x0F\x58\110", IF_WILLAMETTE
|IF_SSE2
},
100 {I_ADDSD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\xF2\x0F\x58\110", IF_WILLAMETTE
|IF_SSE2
},
104 static struct itemplate instrux_ADDSS
[] = {
105 {I_ADDSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x58\110", IF_KATMAI
|IF_SSE
},
106 {I_ADDSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x58\110", IF_KATMAI
|IF_SSE
},
110 static struct itemplate instrux_ADDSUBPD
[] = {
111 {I_ADDSUBPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xD0\110", IF_PRESCOTT
|IF_SSE3
|IF_SM
},
112 {I_ADDSUBPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xD0\110", IF_PRESCOTT
|IF_SSE3
},
116 static struct itemplate instrux_ADDSUBPS
[] = {
117 {I_ADDSUBPS
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\xD0\110", IF_PRESCOTT
|IF_SSE3
|IF_SM
},
118 {I_ADDSUBPS
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\xD0\110", IF_PRESCOTT
|IF_SSE3
},
122 static struct itemplate instrux_AND
[] = {
123 {I_AND
, 2, {MEMORY
,REG8
,0}, "\300\1\x20\101", IF_8086
|IF_SM
},
124 {I_AND
, 2, {REG8
,REG8
,0}, "\1\x20\101", IF_8086
},
125 {I_AND
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x21\101", IF_8086
|IF_SM
},
126 {I_AND
, 2, {REG16
,REG16
,0}, "\320\1\x21\101", IF_8086
},
127 {I_AND
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x21\101", IF_386
|IF_SM
},
128 {I_AND
, 2, {REG32
,REG32
,0}, "\321\1\x21\101", IF_386
},
129 {I_AND
, 2, {REG8
,MEMORY
,0}, "\301\1\x22\110", IF_8086
|IF_SM
},
130 {I_AND
, 2, {REG8
,REG8
,0}, "\1\x22\110", IF_8086
},
131 {I_AND
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x23\110", IF_8086
|IF_SM
},
132 {I_AND
, 2, {REG16
,REG16
,0}, "\320\1\x23\110", IF_8086
},
133 {I_AND
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x23\110", IF_386
|IF_SM
},
134 {I_AND
, 2, {REG32
,REG32
,0}, "\321\1\x23\110", IF_386
},
135 {I_AND
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\204\15", IF_8086
},
136 {I_AND
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\204\15", IF_386
},
137 {I_AND
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x24\21", IF_8086
|IF_SM
},
138 {I_AND
, 2, {REG_AX
,SBYTE
,0}, "\320\1\x83\204\15", IF_8086
|IF_SM
},
139 {I_AND
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x25\31", IF_8086
|IF_SM
},
140 {I_AND
, 2, {REG_EAX
,SBYTE
,0}, "\321\1\x83\204\15", IF_386
|IF_SM
},
141 {I_AND
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x25\41", IF_386
|IF_SM
},
142 {I_AND
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\204\21", IF_8086
|IF_SM
},
143 {I_AND
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\134\1\x81\204\131", IF_8086
|IF_SM
},
144 {I_AND
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\144\1\x81\204\141", IF_386
|IF_SM
},
145 {I_AND
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\204\21", IF_8086
|IF_SM
},
146 {I_AND
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\134\1\x81\204\131", IF_8086
|IF_SM
},
147 {I_AND
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\144\1\x81\204\141", IF_386
|IF_SM
},
151 static struct itemplate instrux_ANDNPD
[] = {
152 {I_ANDNPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\x55\110", IF_WILLAMETTE
|IF_SSE2
},
153 {I_ANDNPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\x55\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
157 static struct itemplate instrux_ANDNPS
[] = {
158 {I_ANDNPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x55\110", IF_KATMAI
|IF_SSE
},
159 {I_ANDNPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x55\110", IF_KATMAI
|IF_SSE
},
163 static struct itemplate instrux_ANDPD
[] = {
164 {I_ANDPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\x54\110", IF_WILLAMETTE
|IF_SSE2
},
165 {I_ANDPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\x54\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
169 static struct itemplate instrux_ANDPS
[] = {
170 {I_ANDPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x54\110", IF_KATMAI
|IF_SSE
},
171 {I_ANDPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x54\110", IF_KATMAI
|IF_SSE
},
175 static struct itemplate instrux_ARPL
[] = {
176 {I_ARPL
, 2, {MEMORY
,REG16
,0}, "\300\1\x63\101", IF_286
|IF_PROT
|IF_SM
},
177 {I_ARPL
, 2, {REG16
,REG16
,0}, "\1\x63\101", IF_286
|IF_PROT
},
181 static struct itemplate instrux_BOUND
[] = {
182 {I_BOUND
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x62\110", IF_186
},
183 {I_BOUND
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x62\110", IF_386
},
187 static struct itemplate instrux_BSF
[] = {
188 {I_BSF
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xBC\110", IF_386
|IF_SM
},
189 {I_BSF
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xBC\110", IF_386
},
190 {I_BSF
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xBC\110", IF_386
|IF_SM
},
191 {I_BSF
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xBC\110", IF_386
},
195 static struct itemplate instrux_BSR
[] = {
196 {I_BSR
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xBD\110", IF_386
|IF_SM
},
197 {I_BSR
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xBD\110", IF_386
},
198 {I_BSR
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xBD\110", IF_386
|IF_SM
},
199 {I_BSR
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xBD\110", IF_386
},
203 static struct itemplate instrux_BSWAP
[] = {
204 {I_BSWAP
, 1, {REG32
,0,0}, "\321\1\x0F\10\xC8", IF_486
},
208 static struct itemplate instrux_BT
[] = {
209 {I_BT
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xA3\101", IF_386
|IF_SM
},
210 {I_BT
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xA3\101", IF_386
},
211 {I_BT
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xA3\101", IF_386
|IF_SM
},
212 {I_BT
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xA3\101", IF_386
},
213 {I_BT
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\2\x0F\xBA\204\25", IF_386
|IF_SB
},
214 {I_BT
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\2\x0F\xBA\204\25", IF_386
|IF_SB
},
218 static struct itemplate instrux_BTC
[] = {
219 {I_BTC
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xBB\101", IF_386
|IF_SM
},
220 {I_BTC
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xBB\101", IF_386
},
221 {I_BTC
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xBB\101", IF_386
|IF_SM
},
222 {I_BTC
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xBB\101", IF_386
},
223 {I_BTC
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\2\x0F\xBA\207\25", IF_386
|IF_SB
},
224 {I_BTC
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\2\x0F\xBA\207\25", IF_386
|IF_SB
},
228 static struct itemplate instrux_BTR
[] = {
229 {I_BTR
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xB3\101", IF_386
|IF_SM
},
230 {I_BTR
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xB3\101", IF_386
},
231 {I_BTR
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xB3\101", IF_386
|IF_SM
},
232 {I_BTR
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xB3\101", IF_386
},
233 {I_BTR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\2\x0F\xBA\206\25", IF_386
|IF_SB
},
234 {I_BTR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\2\x0F\xBA\206\25", IF_386
|IF_SB
},
238 static struct itemplate instrux_BTS
[] = {
239 {I_BTS
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xAB\101", IF_386
|IF_SM
},
240 {I_BTS
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xAB\101", IF_386
},
241 {I_BTS
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xAB\101", IF_386
|IF_SM
},
242 {I_BTS
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xAB\101", IF_386
},
243 {I_BTS
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\2\x0F\xBA\205\25", IF_386
|IF_SB
},
244 {I_BTS
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\2\x0F\xBA\205\25", IF_386
|IF_SB
},
248 static struct itemplate instrux_CALL
[] = {
249 {I_CALL
, 1, {IMMEDIATE
,0,0}, "\322\1\xE8\64", IF_8086
},
250 {I_CALL
, 1, {IMMEDIATE
|NEAR
,0,0}, "\322\1\xE8\64", IF_8086
},
251 {I_CALL
, 1, {IMMEDIATE
|FAR
,0,0}, "\322\1\x9A\34\37", IF_8086
},
252 {I_CALL
, 1, {IMMEDIATE
|BITS16
,0,0}, "\320\1\xE8\64", IF_8086
},
253 {I_CALL
, 1, {IMMEDIATE
|BITS16
|NEAR
,0,0}, "\320\1\xE8\64", IF_8086
},
254 {I_CALL
, 1, {IMMEDIATE
|BITS16
|FAR
,0,0}, "\320\1\x9A\34\37", IF_8086
},
255 {I_CALL
, 1, {IMMEDIATE
|BITS32
,0,0}, "\321\1\xE8\64", IF_386
},
256 {I_CALL
, 1, {IMMEDIATE
|BITS32
|NEAR
,0,0}, "\321\1\xE8\64", IF_386
},
257 {I_CALL
, 1, {IMMEDIATE
|BITS32
|FAR
,0,0}, "\321\1\x9A\34\37", IF_386
},
258 {I_CALL
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
,0}, "\322\1\x9A\35\30", IF_8086
},
259 {I_CALL
, 2, {IMMEDIATE
|BITS16
|COLON
,IMMEDIATE
,0}, "\320\1\x9A\31\30", IF_8086
},
260 {I_CALL
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
|BITS16
,0}, "\320\1\x9A\31\30", IF_8086
},
261 {I_CALL
, 2, {IMMEDIATE
|BITS32
|COLON
,IMMEDIATE
,0}, "\321\1\x9A\41\30", IF_386
},
262 {I_CALL
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
|BITS32
,0}, "\321\1\x9A\41\30", IF_386
},
263 {I_CALL
, 1, {MEMORY
|FAR
,0,0}, "\322\300\1\xFF\203", IF_8086
},
264 {I_CALL
, 1, {MEMORY
|BITS16
|FAR
,0,0}, "\320\300\1\xFF\203", IF_8086
},
265 {I_CALL
, 1, {MEMORY
|BITS32
|FAR
,0,0}, "\321\300\1\xFF\203", IF_386
},
266 {I_CALL
, 1, {MEMORY
|NEAR
,0,0}, "\322\300\1\xFF\202", IF_8086
},
267 {I_CALL
, 1, {MEMORY
|BITS16
|NEAR
,0,0}, "\320\300\1\xFF\202", IF_8086
},
268 {I_CALL
, 1, {MEMORY
|BITS32
|NEAR
,0,0}, "\321\300\1\xFF\202", IF_386
},
269 {I_CALL
, 1, {REG16
,0,0}, "\320\300\1\xFF\202", IF_8086
},
270 {I_CALL
, 1, {REG32
,0,0}, "\321\300\1\xFF\202", IF_386
},
271 {I_CALL
, 1, {MEMORY
,0,0}, "\322\300\1\xFF\202", IF_8086
},
272 {I_CALL
, 1, {MEMORY
|BITS16
,0,0}, "\320\300\1\xFF\202", IF_8086
},
273 {I_CALL
, 1, {MEMORY
|BITS32
,0,0}, "\321\300\1\xFF\202", IF_386
},
277 static struct itemplate instrux_CBW
[] = {
278 {I_CBW
, 0, {0,0,0}, "\320\1\x98", IF_8086
},
282 static struct itemplate instrux_CDQ
[] = {
283 {I_CDQ
, 0, {0,0,0}, "\321\1\x99", IF_386
},
287 static struct itemplate instrux_CLC
[] = {
288 {I_CLC
, 0, {0,0,0}, "\1\xF8", IF_8086
},
292 static struct itemplate instrux_CLD
[] = {
293 {I_CLD
, 0, {0,0,0}, "\1\xFC", IF_8086
},
297 static struct itemplate instrux_CLFLUSH
[] = {
298 {I_CLFLUSH
, 1, {MEMORY
,0,0}, "\300\2\x0F\xAE\207", IF_WILLAMETTE
|IF_SSE2
},
302 static struct itemplate instrux_CLI
[] = {
303 {I_CLI
, 0, {0,0,0}, "\1\xFA", IF_8086
},
307 static struct itemplate instrux_CLTS
[] = {
308 {I_CLTS
, 0, {0,0,0}, "\2\x0F\x06", IF_286
|IF_PRIV
},
312 static struct itemplate instrux_CMC
[] = {
313 {I_CMC
, 0, {0,0,0}, "\1\xF5", IF_8086
},
317 static struct itemplate instrux_CMP
[] = {
318 {I_CMP
, 2, {MEMORY
,REG8
,0}, "\300\1\x38\101", IF_8086
|IF_SM
},
319 {I_CMP
, 2, {REG8
,REG8
,0}, "\1\x38\101", IF_8086
},
320 {I_CMP
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x39\101", IF_8086
|IF_SM
},
321 {I_CMP
, 2, {REG16
,REG16
,0}, "\320\1\x39\101", IF_8086
},
322 {I_CMP
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x39\101", IF_386
|IF_SM
},
323 {I_CMP
, 2, {REG32
,REG32
,0}, "\321\1\x39\101", IF_386
},
324 {I_CMP
, 2, {REG8
,MEMORY
,0}, "\301\1\x3A\110", IF_8086
|IF_SM
},
325 {I_CMP
, 2, {REG8
,REG8
,0}, "\1\x3A\110", IF_8086
},
326 {I_CMP
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x3B\110", IF_8086
|IF_SM
},
327 {I_CMP
, 2, {REG16
,REG16
,0}, "\320\1\x3B\110", IF_8086
},
328 {I_CMP
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x3B\110", IF_386
|IF_SM
},
329 {I_CMP
, 2, {REG32
,REG32
,0}, "\321\1\x3B\110", IF_386
},
330 {I_CMP
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\207\15", IF_8086
},
331 {I_CMP
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\207\15", IF_386
},
332 {I_CMP
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x3C\21", IF_8086
|IF_SM
},
333 {I_CMP
, 2, {REG_AX
,SBYTE
,0}, "\320\1\x83\207\15", IF_8086
|IF_SM
},
334 {I_CMP
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x3D\31", IF_8086
|IF_SM
},
335 {I_CMP
, 2, {REG_EAX
,SBYTE
,0}, "\321\1\x83\207\15", IF_386
|IF_SM
},
336 {I_CMP
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x3D\41", IF_386
|IF_SM
},
337 {I_CMP
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\207\21", IF_8086
|IF_SM
},
338 {I_CMP
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\134\1\x81\207\131", IF_8086
|IF_SM
},
339 {I_CMP
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\144\1\x81\207\141", IF_386
|IF_SM
},
340 {I_CMP
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\207\21", IF_8086
|IF_SM
},
341 {I_CMP
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\134\1\x81\207\131", IF_8086
|IF_SM
},
342 {I_CMP
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\144\1\x81\207\141", IF_386
|IF_SM
},
346 static struct itemplate instrux_CMPEQPD
[] = {
347 {I_CMPEQPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\xC2\110\1\x00", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
348 {I_CMPEQPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\xC2\110\1\x00", IF_WILLAMETTE
|IF_SSE2
},
352 static struct itemplate instrux_CMPEQPS
[] = {
353 {I_CMPEQPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\xC2\110\1\x00", IF_KATMAI
|IF_SSE
},
354 {I_CMPEQPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\xC2\110\1\x00", IF_KATMAI
|IF_SSE
},
358 static struct itemplate instrux_CMPEQSD
[] = {
359 {I_CMPEQSD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\xF2\x0F\xC2\110\1\x00", IF_WILLAMETTE
|IF_SSE2
},
360 {I_CMPEQSD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\xF2\x0F\xC2\110\1\x00", IF_WILLAMETTE
|IF_SSE2
},
364 static struct itemplate instrux_CMPEQSS
[] = {
365 {I_CMPEQSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\xC2\110\1\x00", IF_KATMAI
|IF_SSE
},
366 {I_CMPEQSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\xC2\110\1\x00", IF_KATMAI
|IF_SSE
},
370 static struct itemplate instrux_CMPLEPD
[] = {
371 {I_CMPLEPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\xC2\110\1\x02", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
372 {I_CMPLEPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\xC2\110\1\x02", IF_WILLAMETTE
|IF_SSE2
},
376 static struct itemplate instrux_CMPLEPS
[] = {
377 {I_CMPLEPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\xC2\110\1\x02", IF_KATMAI
|IF_SSE
},
378 {I_CMPLEPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\xC2\110\1\x02", IF_KATMAI
|IF_SSE
},
382 static struct itemplate instrux_CMPLESD
[] = {
383 {I_CMPLESD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\xF2\x0F\xC2\110\1\x02", IF_WILLAMETTE
|IF_SSE2
},
384 {I_CMPLESD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\xF2\x0F\xC2\110\1\x02", IF_WILLAMETTE
|IF_SSE2
},
388 static struct itemplate instrux_CMPLESS
[] = {
389 {I_CMPLESS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\xC2\110\1\x02", IF_KATMAI
|IF_SSE
},
390 {I_CMPLESS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\xC2\110\1\x02", IF_KATMAI
|IF_SSE
},
394 static struct itemplate instrux_CMPLTPD
[] = {
395 {I_CMPLTPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\xC2\110\1\x01", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
396 {I_CMPLTPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\xC2\110\1\x01", IF_WILLAMETTE
|IF_SSE2
},
400 static struct itemplate instrux_CMPLTPS
[] = {
401 {I_CMPLTPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\xC2\110\1\x01", IF_KATMAI
|IF_SSE
},
402 {I_CMPLTPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\xC2\110\1\x01", IF_KATMAI
|IF_SSE
},
406 static struct itemplate instrux_CMPLTSD
[] = {
407 {I_CMPLTSD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\xF2\x0F\xC2\110\1\x01", IF_WILLAMETTE
|IF_SSE2
},
408 {I_CMPLTSD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\xF2\x0F\xC2\110\1\x01", IF_WILLAMETTE
|IF_SSE2
},
412 static struct itemplate instrux_CMPLTSS
[] = {
413 {I_CMPLTSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\xC2\110\1\x01", IF_KATMAI
|IF_SSE
},
414 {I_CMPLTSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\xC2\110\1\x01", IF_KATMAI
|IF_SSE
},
418 static struct itemplate instrux_CMPNEQPD
[] = {
419 {I_CMPNEQPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\xC2\110\1\x04", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
420 {I_CMPNEQPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\xC2\110\1\x04", IF_WILLAMETTE
|IF_SSE2
},
424 static struct itemplate instrux_CMPNEQPS
[] = {
425 {I_CMPNEQPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\xC2\110\1\x04", IF_KATMAI
|IF_SSE
},
426 {I_CMPNEQPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\xC2\110\1\x04", IF_KATMAI
|IF_SSE
},
430 static struct itemplate instrux_CMPNEQSD
[] = {
431 {I_CMPNEQSD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\xF2\x0F\xC2\110\1\x04", IF_WILLAMETTE
|IF_SSE2
},
432 {I_CMPNEQSD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\xF2\x0F\xC2\110\1\x04", IF_WILLAMETTE
|IF_SSE2
},
436 static struct itemplate instrux_CMPNEQSS
[] = {
437 {I_CMPNEQSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\xC2\110\1\x04", IF_KATMAI
|IF_SSE
},
438 {I_CMPNEQSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\xC2\110\1\x04", IF_KATMAI
|IF_SSE
},
442 static struct itemplate instrux_CMPNLEPD
[] = {
443 {I_CMPNLEPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\xC2\110\1\x06", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
444 {I_CMPNLEPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\xC2\110\1\x06", IF_WILLAMETTE
|IF_SSE2
},
448 static struct itemplate instrux_CMPNLEPS
[] = {
449 {I_CMPNLEPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\xC2\110\1\x06", IF_KATMAI
|IF_SSE
},
450 {I_CMPNLEPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\xC2\110\1\x06", IF_KATMAI
|IF_SSE
},
454 static struct itemplate instrux_CMPNLESD
[] = {
455 {I_CMPNLESD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\xF2\x0F\xC2\110\1\x06", IF_WILLAMETTE
|IF_SSE2
},
456 {I_CMPNLESD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\xF2\x0F\xC2\110\1\x06", IF_WILLAMETTE
|IF_SSE2
},
460 static struct itemplate instrux_CMPNLESS
[] = {
461 {I_CMPNLESS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\xC2\110\1\x06", IF_KATMAI
|IF_SSE
},
462 {I_CMPNLESS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\xC2\110\1\x06", IF_KATMAI
|IF_SSE
},
466 static struct itemplate instrux_CMPNLTPD
[] = {
467 {I_CMPNLTPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\xC2\110\1\x05", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
468 {I_CMPNLTPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\xC2\110\1\x05", IF_WILLAMETTE
|IF_SSE2
},
472 static struct itemplate instrux_CMPNLTPS
[] = {
473 {I_CMPNLTPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\xC2\110\1\x05", IF_KATMAI
|IF_SSE
},
474 {I_CMPNLTPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\xC2\110\1\x05", IF_KATMAI
|IF_SSE
},
478 static struct itemplate instrux_CMPNLTSD
[] = {
479 {I_CMPNLTSD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\xF2\x0F\xC2\110\1\x05", IF_WILLAMETTE
|IF_SSE2
},
480 {I_CMPNLTSD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\xF2\x0F\xC2\110\1\x05", IF_WILLAMETTE
|IF_SSE2
},
484 static struct itemplate instrux_CMPNLTSS
[] = {
485 {I_CMPNLTSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\xC2\110\1\x05", IF_KATMAI
|IF_SSE
},
486 {I_CMPNLTSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\xC2\110\1\x05", IF_KATMAI
|IF_SSE
},
490 static struct itemplate instrux_CMPORDPD
[] = {
491 {I_CMPORDPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\xC2\110\1\x07", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
492 {I_CMPORDPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\xC2\110\1\x07", IF_WILLAMETTE
|IF_SSE2
},
496 static struct itemplate instrux_CMPORDPS
[] = {
497 {I_CMPORDPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\xC2\110\1\x07", IF_KATMAI
|IF_SSE
},
498 {I_CMPORDPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\xC2\110\1\x07", IF_KATMAI
|IF_SSE
},
502 static struct itemplate instrux_CMPORDSD
[] = {
503 {I_CMPORDSD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\xF2\x0F\xC2\110\1\x07", IF_WILLAMETTE
|IF_SSE2
},
504 {I_CMPORDSD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\xF2\x0F\xC2\110\1\x07", IF_WILLAMETTE
|IF_SSE2
},
508 static struct itemplate instrux_CMPORDSS
[] = {
509 {I_CMPORDSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\xC2\110\1\x07", IF_KATMAI
|IF_SSE
},
510 {I_CMPORDSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\xC2\110\1\x07", IF_KATMAI
|IF_SSE
},
514 static struct itemplate instrux_CMPPD
[] = {
515 {I_CMPPD
, 3, {XMMREG
,XMMREG
,IMMEDIATE
}, "\331\3\x66\x0F\xC2\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
516 {I_CMPPD
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\331\3\x66\x0F\xC2\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SM2
|IF_SB
|IF_AR2
},
520 static struct itemplate instrux_CMPPS
[] = {
521 {I_CMPPS
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\331\2\x0F\xC2\110\26", IF_KATMAI
|IF_SSE
|IF_SB
|IF_AR2
},
522 {I_CMPPS
, 3, {XMMREG
,XMMREG
,IMMEDIATE
}, "\331\2\x0F\xC2\110\26", IF_KATMAI
|IF_SSE
|IF_SB
|IF_AR2
},
526 static struct itemplate instrux_CMPSB
[] = {
527 {I_CMPSB
, 0, {0,0,0}, "\332\1\xA6", IF_8086
},
531 static struct itemplate instrux_CMPSD
[] = {
532 {I_CMPSD
, 0, {0,0,0}, "\332\321\1\xA7", IF_386
},
533 {I_CMPSD
, 3, {XMMREG
,XMMREG
,IMMEDIATE
}, "\331\3\xF2\x0F\xC2\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
534 {I_CMPSD
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\331\3\xF2\x0F\xC2\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
538 static struct itemplate instrux_CMPSS
[] = {
539 {I_CMPSS
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\333\2\x0F\xC2\110\26", IF_KATMAI
|IF_SSE
|IF_SB
|IF_AR2
},
540 {I_CMPSS
, 3, {XMMREG
,XMMREG
,IMMEDIATE
}, "\333\2\x0F\xC2\110\26", IF_KATMAI
|IF_SSE
|IF_SB
|IF_AR2
},
544 static struct itemplate instrux_CMPSW
[] = {
545 {I_CMPSW
, 0, {0,0,0}, "\332\320\1\xA7", IF_8086
},
549 static struct itemplate instrux_CMPUNORDPD
[] = {
550 {I_CMPUNORDPD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\xC2\110\1\x03", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
551 {I_CMPUNORDPD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\xC2\110\1\x03", IF_WILLAMETTE
|IF_SSE2
},
555 static struct itemplate instrux_CMPUNORDPS
[] = {
556 {I_CMPUNORDPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\xC2\110\1\x03", IF_KATMAI
|IF_SSE
},
557 {I_CMPUNORDPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\xC2\110\1\x03", IF_KATMAI
|IF_SSE
},
561 static struct itemplate instrux_CMPUNORDSD
[] = {
562 {I_CMPUNORDSD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\xF2\x0F\xC2\110\1\x03", IF_WILLAMETTE
|IF_SSE2
},
563 {I_CMPUNORDSD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\xF2\x0F\xC2\110\1\x03", IF_WILLAMETTE
|IF_SSE2
},
567 static struct itemplate instrux_CMPUNORDSS
[] = {
568 {I_CMPUNORDSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\xC2\110\1\x03", IF_KATMAI
|IF_SSE
},
569 {I_CMPUNORDSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\xC2\110\1\x03", IF_KATMAI
|IF_SSE
},
573 static struct itemplate instrux_CMPXCHG
[] = {
574 {I_CMPXCHG
, 2, {MEMORY
,REG8
,0}, "\300\2\x0F\xB0\101", IF_PENT
|IF_SM
},
575 {I_CMPXCHG
, 2, {REG8
,REG8
,0}, "\2\x0F\xB0\101", IF_PENT
},
576 {I_CMPXCHG
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xB1\101", IF_PENT
|IF_SM
},
577 {I_CMPXCHG
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xB1\101", IF_PENT
},
578 {I_CMPXCHG
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xB1\101", IF_PENT
|IF_SM
},
579 {I_CMPXCHG
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xB1\101", IF_PENT
},
583 static struct itemplate instrux_CMPXCHG486
[] = {
584 {I_CMPXCHG486
, 2, {MEMORY
,REG8
,0}, "\300\2\x0F\xA6\101", IF_486
|IF_SM
|IF_UNDOC
},
585 {I_CMPXCHG486
, 2, {REG8
,REG8
,0}, "\2\x0F\xA6\101", IF_486
|IF_UNDOC
},
586 {I_CMPXCHG486
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xA7\101", IF_486
|IF_SM
|IF_UNDOC
},
587 {I_CMPXCHG486
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xA7\101", IF_486
|IF_UNDOC
},
588 {I_CMPXCHG486
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xA7\101", IF_486
|IF_SM
|IF_UNDOC
},
589 {I_CMPXCHG486
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xA7\101", IF_486
|IF_UNDOC
},
593 static struct itemplate instrux_CMPXCHG8B
[] = {
594 {I_CMPXCHG8B
, 1, {MEMORY
,0,0}, "\300\2\x0F\xC7\201", IF_PENT
},
598 static struct itemplate instrux_COMISD
[] = {
599 {I_COMISD
, 2, {XMMREG
,XMMREG
,0}, "\331\3\x66\x0F\x2F\110", IF_WILLAMETTE
|IF_SSE2
},
600 {I_COMISD
, 2, {XMMREG
,MEMORY
,0}, "\301\331\3\x66\x0F\x2F\110", IF_WILLAMETTE
|IF_SSE2
},
604 static struct itemplate instrux_COMISS
[] = {
605 {I_COMISS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x2F\110", IF_KATMAI
|IF_SSE
},
606 {I_COMISS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x2F\110", IF_KATMAI
|IF_SSE
},
610 static struct itemplate instrux_CPUID
[] = {
611 {I_CPUID
, 0, {0,0,0}, "\2\x0F\xA2", IF_PENT
},
615 static struct itemplate instrux_CVTDQ2PD
[] = {
616 {I_CVTDQ2PD
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\xE6\110", IF_WILLAMETTE
|IF_SSE2
},
617 {I_CVTDQ2PD
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\xE6\110", IF_WILLAMETTE
|IF_SSE2
},
621 static struct itemplate instrux_CVTDQ2PS
[] = {
622 {I_CVTDQ2PS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x5B\110", IF_WILLAMETTE
|IF_SSE2
},
623 {I_CVTDQ2PS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x5B\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
627 static struct itemplate instrux_CVTPD2DQ
[] = {
628 {I_CVTPD2DQ
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\xE6\110", IF_WILLAMETTE
|IF_SSE2
},
629 {I_CVTPD2DQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\xE6\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
633 static struct itemplate instrux_CVTPD2PI
[] = {
634 {I_CVTPD2PI
, 2, {MMXREG
,XMMREG
,0}, "\3\x66\x0F\x2D\110", IF_WILLAMETTE
|IF_SSE2
},
635 {I_CVTPD2PI
, 2, {MMXREG
,MEMORY
,0}, "\301\3\x66\x0F\x2D\110", IF_WILLAMETTE
|IF_SSE2
},
639 static struct itemplate instrux_CVTPD2PS
[] = {
640 {I_CVTPD2PS
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x5A\110", IF_WILLAMETTE
|IF_SSE2
},
641 {I_CVTPD2PS
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x5A\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
645 static struct itemplate instrux_CVTPI2PD
[] = {
646 {I_CVTPI2PD
, 2, {XMMREG
,MMXREG
,0}, "\3\x66\x0F\x2A\110", IF_WILLAMETTE
|IF_SSE2
},
647 {I_CVTPI2PD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x2A\110", IF_WILLAMETTE
|IF_SSE2
},
651 static struct itemplate instrux_CVTPI2PS
[] = {
652 {I_CVTPI2PS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x2A\110", IF_KATMAI
|IF_SSE
|IF_MMX
},
653 {I_CVTPI2PS
, 2, {XMMREG
,MMXREG
,0}, "\331\2\x0F\x2A\110", IF_KATMAI
|IF_SSE
|IF_MMX
},
657 static struct itemplate instrux_CVTPS2DQ
[] = {
658 {I_CVTPS2DQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x5B\110", IF_WILLAMETTE
|IF_SSE2
},
659 {I_CVTPS2DQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x5B\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
663 static struct itemplate instrux_CVTPS2PD
[] = {
664 {I_CVTPS2PD
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x5A\110", IF_WILLAMETTE
|IF_SSE2
},
665 {I_CVTPS2PD
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x5A\110", IF_WILLAMETTE
|IF_SSE2
},
669 static struct itemplate instrux_CVTPS2PI
[] = {
670 {I_CVTPS2PI
, 2, {MMXREG
,MEMORY
,0}, "\301\331\2\x0F\x2D\110", IF_KATMAI
|IF_SSE
|IF_MMX
},
671 {I_CVTPS2PI
, 2, {MMXREG
,XMMREG
,0}, "\331\2\x0F\x2D\110", IF_KATMAI
|IF_SSE
|IF_MMX
},
675 static struct itemplate instrux_CVTSD2SI
[] = {
676 {I_CVTSD2SI
, 2, {REG32
,XMMREG
,0}, "\3\xF2\x0F\x2D\110", IF_WILLAMETTE
|IF_SSE2
},
677 {I_CVTSD2SI
, 2, {REG32
,MEMORY
,0}, "\301\3\xF2\x0F\x2D\110", IF_WILLAMETTE
|IF_SSE2
},
681 static struct itemplate instrux_CVTSD2SS
[] = {
682 {I_CVTSD2SS
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x5A\110", IF_WILLAMETTE
|IF_SSE2
},
683 {I_CVTSD2SS
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x5A\110", IF_WILLAMETTE
|IF_SSE2
},
687 static struct itemplate instrux_CVTSI2SD
[] = {
688 {I_CVTSI2SD
, 2, {XMMREG
,REG32
,0}, "\3\xF2\x0F\x2A\110", IF_WILLAMETTE
|IF_SSE2
},
689 {I_CVTSI2SD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x2A\110", IF_WILLAMETTE
|IF_SSE2
},
693 static struct itemplate instrux_CVTSI2SS
[] = {
694 {I_CVTSI2SS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x2A\110", IF_KATMAI
|IF_SSE
|IF_SD
|IF_AR1
},
695 {I_CVTSI2SS
, 2, {XMMREG
,REG32
,0}, "\333\2\x0F\x2A\110", IF_KATMAI
|IF_SSE
},
699 static struct itemplate instrux_CVTSS2SD
[] = {
700 {I_CVTSS2SD
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x5A\110", IF_WILLAMETTE
|IF_SSE2
},
701 {I_CVTSS2SD
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x5A\110", IF_WILLAMETTE
|IF_SSE2
},
705 static struct itemplate instrux_CVTSS2SI
[] = {
706 {I_CVTSS2SI
, 2, {REG32
,MEMORY
,0}, "\301\333\2\x0F\x2D\110", IF_KATMAI
|IF_SSE
},
707 {I_CVTSS2SI
, 2, {REG32
,XMMREG
,0}, "\333\2\x0F\x2D\110", IF_KATMAI
|IF_SSE
},
711 static struct itemplate instrux_CVTTPD2DQ
[] = {
712 {I_CVTTPD2DQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xE6\110", IF_WILLAMETTE
|IF_SSE2
},
713 {I_CVTTPD2DQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xE6\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
717 static struct itemplate instrux_CVTTPD2PI
[] = {
718 {I_CVTTPD2PI
, 2, {MMXREG
,XMMREG
,0}, "\3\x66\x0F\x2C\110", IF_WILLAMETTE
|IF_SSE2
},
719 {I_CVTTPD2PI
, 2, {MMXREG
,MEMORY
,0}, "\301\3\x66\x0F\x2C\110", IF_WILLAMETTE
|IF_SSE2
},
723 static struct itemplate instrux_CVTTPS2DQ
[] = {
724 {I_CVTTPS2DQ
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x5B\110", IF_WILLAMETTE
|IF_SSE2
},
725 {I_CVTTPS2DQ
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x5B\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
729 static struct itemplate instrux_CVTTPS2PI
[] = {
730 {I_CVTTPS2PI
, 2, {MMXREG
,MEMORY
,0}, "\301\331\2\x0F\x2C\110", IF_KATMAI
|IF_SSE
|IF_MMX
},
731 {I_CVTTPS2PI
, 2, {MMXREG
,XMMREG
,0}, "\331\2\x0F\x2C\110", IF_KATMAI
|IF_SSE
|IF_MMX
},
735 static struct itemplate instrux_CVTTSD2SI
[] = {
736 {I_CVTTSD2SI
, 2, {REG32
,XMMREG
,0}, "\3\xF2\x0F\x2C\110", IF_WILLAMETTE
|IF_SSE2
},
737 {I_CVTTSD2SI
, 2, {REG32
,MEMORY
,0}, "\301\3\xF2\x0F\x2C\110", IF_WILLAMETTE
|IF_SSE2
},
741 static struct itemplate instrux_CVTTSS2SI
[] = {
742 {I_CVTTSS2SI
, 2, {REG32
,MEMORY
,0}, "\301\333\2\x0F\x2C\110", IF_KATMAI
|IF_SSE
},
743 {I_CVTTSS2SI
, 2, {REG32
,XMMREG
,0}, "\333\2\x0F\x2C\110", IF_KATMAI
|IF_SSE
},
747 static struct itemplate instrux_CWD
[] = {
748 {I_CWD
, 0, {0,0,0}, "\320\1\x99", IF_8086
},
752 static struct itemplate instrux_CWDE
[] = {
753 {I_CWDE
, 0, {0,0,0}, "\321\1\x98", IF_386
},
757 static struct itemplate instrux_DAA
[] = {
758 {I_DAA
, 0, {0,0,0}, "\1\x27", IF_8086
},
762 static struct itemplate instrux_DAS
[] = {
763 {I_DAS
, 0, {0,0,0}, "\1\x2F", IF_8086
},
767 static struct itemplate instrux_DB
[] = {
771 static struct itemplate instrux_DD
[] = {
775 static struct itemplate instrux_DEC
[] = {
776 {I_DEC
, 1, {REG16
,0,0}, "\320\10\x48", IF_8086
},
777 {I_DEC
, 1, {REG32
,0,0}, "\321\10\x48", IF_386
},
778 {I_DEC
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xFE\201", IF_8086
},
779 {I_DEC
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xFF\201", IF_8086
},
780 {I_DEC
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xFF\201", IF_386
},
784 static struct itemplate instrux_DIV
[] = {
785 {I_DIV
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\206", IF_8086
},
786 {I_DIV
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\206", IF_8086
},
787 {I_DIV
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\206", IF_386
},
791 static struct itemplate instrux_DIVPD
[] = {
792 {I_DIVPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x5E\110", IF_WILLAMETTE
|IF_SSE2
},
793 {I_DIVPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x5E\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
797 static struct itemplate instrux_DIVPS
[] = {
798 {I_DIVPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x5E\110", IF_KATMAI
|IF_SSE
},
799 {I_DIVPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x5E\110", IF_KATMAI
|IF_SSE
},
803 static struct itemplate instrux_DIVSD
[] = {
804 {I_DIVSD
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x5E\110", IF_WILLAMETTE
|IF_SSE2
},
805 {I_DIVSD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x5E\110", IF_WILLAMETTE
|IF_SSE2
},
809 static struct itemplate instrux_DIVSS
[] = {
810 {I_DIVSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x5E\110", IF_KATMAI
|IF_SSE
},
811 {I_DIVSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x5E\110", IF_KATMAI
|IF_SSE
},
815 static struct itemplate instrux_DQ
[] = {
819 static struct itemplate instrux_DT
[] = {
823 static struct itemplate instrux_DW
[] = {
827 static struct itemplate instrux_EMMS
[] = {
828 {I_EMMS
, 0, {0,0,0}, "\2\x0F\x77", IF_PENT
|IF_MMX
},
832 static struct itemplate instrux_ENTER
[] = {
833 {I_ENTER
, 2, {IMMEDIATE
,IMMEDIATE
,0}, "\1\xC8\30\25", IF_186
},
837 static struct itemplate instrux_EQU
[] = {
838 {I_EQU
, 1, {IMMEDIATE
,0,0}, "\0", IF_8086
},
839 {I_EQU
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
,0}, "\0", IF_8086
},
843 static struct itemplate instrux_F2XM1
[] = {
844 {I_F2XM1
, 0, {0,0,0}, "\2\xD9\xF0", IF_8086
|IF_FPU
},
848 static struct itemplate instrux_FABS
[] = {
849 {I_FABS
, 0, {0,0,0}, "\2\xD9\xE1", IF_8086
|IF_FPU
},
853 static struct itemplate instrux_FADD
[] = {
854 {I_FADD
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\200", IF_8086
|IF_FPU
},
855 {I_FADD
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\200", IF_8086
|IF_FPU
},
856 {I_FADD
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xC0", IF_8086
|IF_FPU
},
857 {I_FADD
, 1, {FPUREG
,0,0}, "\1\xD8\10\xC0", IF_8086
|IF_FPU
},
858 {I_FADD
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xC0", IF_8086
|IF_FPU
},
859 {I_FADD
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xC0", IF_8086
|IF_FPU
},
863 static struct itemplate instrux_FADDP
[] = {
864 {I_FADDP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xC0", IF_8086
|IF_FPU
},
865 {I_FADDP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xC0", IF_8086
|IF_FPU
},
869 static struct itemplate instrux_FBLD
[] = {
870 {I_FBLD
, 1, {MEMORY
|BITS80
,0,0}, "\300\1\xDF\204", IF_8086
|IF_FPU
},
871 {I_FBLD
, 1, {MEMORY
,0,0}, "\300\1\xDF\204", IF_8086
|IF_FPU
},
875 static struct itemplate instrux_FBSTP
[] = {
876 {I_FBSTP
, 1, {MEMORY
|BITS80
,0,0}, "\300\1\xDF\206", IF_8086
|IF_FPU
},
877 {I_FBSTP
, 1, {MEMORY
,0,0}, "\300\1\xDF\206", IF_8086
|IF_FPU
},
881 static struct itemplate instrux_FCHS
[] = {
882 {I_FCHS
, 0, {0,0,0}, "\2\xD9\xE0", IF_8086
|IF_FPU
},
886 static struct itemplate instrux_FCLEX
[] = {
887 {I_FCLEX
, 0, {0,0,0}, "\3\x9B\xDB\xE2", IF_8086
|IF_FPU
},
891 static struct itemplate instrux_FCMOVB
[] = {
892 {I_FCMOVB
, 1, {FPUREG
,0,0}, "\1\xDA\10\xC0", IF_P6
|IF_FPU
},
893 {I_FCMOVB
, 2, {FPU0
,FPUREG
,0}, "\1\xDA\11\xC0", IF_P6
|IF_FPU
},
897 static struct itemplate instrux_FCMOVBE
[] = {
898 {I_FCMOVBE
, 1, {FPUREG
,0,0}, "\1\xDA\10\xD0", IF_P6
|IF_FPU
},
899 {I_FCMOVBE
, 2, {FPU0
,FPUREG
,0}, "\1\xDA\11\xD0", IF_P6
|IF_FPU
},
903 static struct itemplate instrux_FCMOVE
[] = {
904 {I_FCMOVE
, 1, {FPUREG
,0,0}, "\1\xDA\10\xC8", IF_P6
|IF_FPU
},
905 {I_FCMOVE
, 2, {FPU0
,FPUREG
,0}, "\1\xDA\11\xC8", IF_P6
|IF_FPU
},
909 static struct itemplate instrux_FCMOVNB
[] = {
910 {I_FCMOVNB
, 1, {FPUREG
,0,0}, "\1\xDB\10\xC0", IF_P6
|IF_FPU
},
911 {I_FCMOVNB
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xC0", IF_P6
|IF_FPU
},
915 static struct itemplate instrux_FCMOVNBE
[] = {
916 {I_FCMOVNBE
, 1, {FPUREG
,0,0}, "\1\xDB\10\xD0", IF_P6
|IF_FPU
},
917 {I_FCMOVNBE
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xD0", IF_P6
|IF_FPU
},
921 static struct itemplate instrux_FCMOVNE
[] = {
922 {I_FCMOVNE
, 1, {FPUREG
,0,0}, "\1\xDB\10\xC8", IF_P6
|IF_FPU
},
923 {I_FCMOVNE
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xC8", IF_P6
|IF_FPU
},
927 static struct itemplate instrux_FCMOVNU
[] = {
928 {I_FCMOVNU
, 1, {FPUREG
,0,0}, "\1\xDB\10\xD8", IF_P6
|IF_FPU
},
929 {I_FCMOVNU
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xD8", IF_P6
|IF_FPU
},
933 static struct itemplate instrux_FCMOVU
[] = {
934 {I_FCMOVU
, 1, {FPUREG
,0,0}, "\1\xDA\10\xD8", IF_P6
|IF_FPU
},
935 {I_FCMOVU
, 2, {FPU0
,FPUREG
,0}, "\1\xDA\11\xD8", IF_P6
|IF_FPU
},
939 static struct itemplate instrux_FCOM
[] = {
940 {I_FCOM
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\202", IF_8086
|IF_FPU
},
941 {I_FCOM
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\202", IF_8086
|IF_FPU
},
942 {I_FCOM
, 1, {FPUREG
,0,0}, "\1\xD8\10\xD0", IF_8086
|IF_FPU
},
943 {I_FCOM
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xD0", IF_8086
|IF_FPU
},
947 static struct itemplate instrux_FCOMI
[] = {
948 {I_FCOMI
, 1, {FPUREG
,0,0}, "\1\xDB\10\xF0", IF_P6
|IF_FPU
},
949 {I_FCOMI
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xF0", IF_P6
|IF_FPU
},
953 static struct itemplate instrux_FCOMIP
[] = {
954 {I_FCOMIP
, 1, {FPUREG
,0,0}, "\1\xDF\10\xF0", IF_P6
|IF_FPU
},
955 {I_FCOMIP
, 2, {FPU0
,FPUREG
,0}, "\1\xDF\11\xF0", IF_P6
|IF_FPU
},
959 static struct itemplate instrux_FCOMP
[] = {
960 {I_FCOMP
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\203", IF_8086
|IF_FPU
},
961 {I_FCOMP
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\203", IF_8086
|IF_FPU
},
962 {I_FCOMP
, 1, {FPUREG
,0,0}, "\1\xD8\10\xD8", IF_8086
|IF_FPU
},
963 {I_FCOMP
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xD8", IF_8086
|IF_FPU
},
967 static struct itemplate instrux_FCOMPP
[] = {
968 {I_FCOMPP
, 0, {0,0,0}, "\2\xDE\xD9", IF_8086
|IF_FPU
},
972 static struct itemplate instrux_FCOS
[] = {
973 {I_FCOS
, 0, {0,0,0}, "\2\xD9\xFF", IF_386
|IF_FPU
},
977 static struct itemplate instrux_FDECSTP
[] = {
978 {I_FDECSTP
, 0, {0,0,0}, "\2\xD9\xF6", IF_8086
|IF_FPU
},
982 static struct itemplate instrux_FDISI
[] = {
983 {I_FDISI
, 0, {0,0,0}, "\3\x9B\xDB\xE1", IF_8086
|IF_FPU
},
987 static struct itemplate instrux_FDIV
[] = {
988 {I_FDIV
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\206", IF_8086
|IF_FPU
},
989 {I_FDIV
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\206", IF_8086
|IF_FPU
},
990 {I_FDIV
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xF8", IF_8086
|IF_FPU
},
991 {I_FDIV
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xF8", IF_8086
|IF_FPU
},
992 {I_FDIV
, 1, {FPUREG
,0,0}, "\1\xD8\10\xF0", IF_8086
|IF_FPU
},
993 {I_FDIV
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xF0", IF_8086
|IF_FPU
},
997 static struct itemplate instrux_FDIVP
[] = {
998 {I_FDIVP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xF8", IF_8086
|IF_FPU
},
999 {I_FDIVP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xF8", IF_8086
|IF_FPU
},
1003 static struct itemplate instrux_FDIVR
[] = {
1004 {I_FDIVR
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\207", IF_8086
|IF_FPU
},
1005 {I_FDIVR
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\207", IF_8086
|IF_FPU
},
1006 {I_FDIVR
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xF0", IF_8086
|IF_FPU
},
1007 {I_FDIVR
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xF0", IF_8086
|IF_FPU
},
1008 {I_FDIVR
, 1, {FPUREG
,0,0}, "\1\xD8\10\xF8", IF_8086
|IF_FPU
},
1009 {I_FDIVR
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xF8", IF_8086
|IF_FPU
},
1013 static struct itemplate instrux_FDIVRP
[] = {
1014 {I_FDIVRP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xF0", IF_8086
|IF_FPU
},
1015 {I_FDIVRP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xF0", IF_8086
|IF_FPU
},
1019 static struct itemplate instrux_FEMMS
[] = {
1020 {I_FEMMS
, 0, {0,0,0}, "\2\x0F\x0E", IF_PENT
|IF_3DNOW
},
1024 static struct itemplate instrux_FENI
[] = {
1025 {I_FENI
, 0, {0,0,0}, "\3\x9B\xDB\xE0", IF_8086
|IF_FPU
},
1029 static struct itemplate instrux_FFREE
[] = {
1030 {I_FFREE
, 1, {FPUREG
,0,0}, "\1\xDD\10\xC0", IF_8086
|IF_FPU
},
1034 static struct itemplate instrux_FFREEP
[] = {
1035 {I_FFREEP
, 1, {FPUREG
,0,0}, "\1\xDF\10\xC0", IF_286
|IF_FPU
|IF_UNDOC
},
1039 static struct itemplate instrux_FIADD
[] = {
1040 {I_FIADD
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\200", IF_8086
|IF_FPU
},
1041 {I_FIADD
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\200", IF_8086
|IF_FPU
},
1045 static struct itemplate instrux_FICOM
[] = {
1046 {I_FICOM
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\202", IF_8086
|IF_FPU
},
1047 {I_FICOM
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\202", IF_8086
|IF_FPU
},
1051 static struct itemplate instrux_FICOMP
[] = {
1052 {I_FICOMP
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\203", IF_8086
|IF_FPU
},
1053 {I_FICOMP
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\203", IF_8086
|IF_FPU
},
1057 static struct itemplate instrux_FIDIV
[] = {
1058 {I_FIDIV
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\206", IF_8086
|IF_FPU
},
1059 {I_FIDIV
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\206", IF_8086
|IF_FPU
},
1063 static struct itemplate instrux_FIDIVR
[] = {
1064 {I_FIDIVR
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\207", IF_8086
|IF_FPU
},
1065 {I_FIDIVR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\207", IF_8086
|IF_FPU
},
1069 static struct itemplate instrux_FILD
[] = {
1070 {I_FILD
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDB\200", IF_8086
|IF_FPU
},
1071 {I_FILD
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDF\200", IF_8086
|IF_FPU
},
1072 {I_FILD
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDF\205", IF_8086
|IF_FPU
},
1076 static struct itemplate instrux_FIMUL
[] = {
1077 {I_FIMUL
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\201", IF_8086
|IF_FPU
},
1078 {I_FIMUL
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\201", IF_8086
|IF_FPU
},
1082 static struct itemplate instrux_FINCSTP
[] = {
1083 {I_FINCSTP
, 0, {0,0,0}, "\2\xD9\xF7", IF_8086
|IF_FPU
},
1087 static struct itemplate instrux_FINIT
[] = {
1088 {I_FINIT
, 0, {0,0,0}, "\3\x9B\xDB\xE3", IF_8086
|IF_FPU
},
1092 static struct itemplate instrux_FIST
[] = {
1093 {I_FIST
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDB\202", IF_8086
|IF_FPU
},
1094 {I_FIST
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDF\202", IF_8086
|IF_FPU
},
1098 static struct itemplate instrux_FISTP
[] = {
1099 {I_FISTP
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDB\203", IF_8086
|IF_FPU
},
1100 {I_FISTP
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDF\203", IF_8086
|IF_FPU
},
1101 {I_FISTP
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDF\207", IF_8086
|IF_FPU
},
1105 static struct itemplate instrux_FISTTP
[] = {
1106 {I_FISTTP
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDD\201", IF_PRESCOTT
|IF_FPU
},
1107 {I_FISTTP
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDB\201", IF_PRESCOTT
|IF_FPU
},
1108 {I_FISTTP
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDF\201", IF_PRESCOTT
|IF_FPU
},
1112 static struct itemplate instrux_FISUB
[] = {
1113 {I_FISUB
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\204", IF_8086
|IF_FPU
},
1114 {I_FISUB
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\204", IF_8086
|IF_FPU
},
1118 static struct itemplate instrux_FISUBR
[] = {
1119 {I_FISUBR
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\205", IF_8086
|IF_FPU
},
1120 {I_FISUBR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\205", IF_8086
|IF_FPU
},
1124 static struct itemplate instrux_FLD
[] = {
1125 {I_FLD
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD9\200", IF_8086
|IF_FPU
},
1126 {I_FLD
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDD\200", IF_8086
|IF_FPU
},
1127 {I_FLD
, 1, {MEMORY
|BITS80
,0,0}, "\300\1\xDB\205", IF_8086
|IF_FPU
},
1128 {I_FLD
, 1, {FPUREG
,0,0}, "\1\xD9\10\xC0", IF_8086
|IF_FPU
},
1132 static struct itemplate instrux_FLD1
[] = {
1133 {I_FLD1
, 0, {0,0,0}, "\2\xD9\xE8", IF_8086
|IF_FPU
},
1137 static struct itemplate instrux_FLDCW
[] = {
1138 {I_FLDCW
, 1, {MEMORY
,0,0}, "\300\1\xD9\205", IF_8086
|IF_FPU
|IF_SW
},
1142 static struct itemplate instrux_FLDENV
[] = {
1143 {I_FLDENV
, 1, {MEMORY
,0,0}, "\300\1\xD9\204", IF_8086
|IF_FPU
},
1147 static struct itemplate instrux_FLDL2E
[] = {
1148 {I_FLDL2E
, 0, {0,0,0}, "\2\xD9\xEA", IF_8086
|IF_FPU
},
1152 static struct itemplate instrux_FLDL2T
[] = {
1153 {I_FLDL2T
, 0, {0,0,0}, "\2\xD9\xE9", IF_8086
|IF_FPU
},
1157 static struct itemplate instrux_FLDLG2
[] = {
1158 {I_FLDLG2
, 0, {0,0,0}, "\2\xD9\xEC", IF_8086
|IF_FPU
},
1162 static struct itemplate instrux_FLDLN2
[] = {
1163 {I_FLDLN2
, 0, {0,0,0}, "\2\xD9\xED", IF_8086
|IF_FPU
},
1167 static struct itemplate instrux_FLDPI
[] = {
1168 {I_FLDPI
, 0, {0,0,0}, "\2\xD9\xEB", IF_8086
|IF_FPU
},
1172 static struct itemplate instrux_FLDZ
[] = {
1173 {I_FLDZ
, 0, {0,0,0}, "\2\xD9\xEE", IF_8086
|IF_FPU
},
1177 static struct itemplate instrux_FMUL
[] = {
1178 {I_FMUL
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\201", IF_8086
|IF_FPU
},
1179 {I_FMUL
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\201", IF_8086
|IF_FPU
},
1180 {I_FMUL
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xC8", IF_8086
|IF_FPU
},
1181 {I_FMUL
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xC8", IF_8086
|IF_FPU
},
1182 {I_FMUL
, 1, {FPUREG
,0,0}, "\1\xD8\10\xC8", IF_8086
|IF_FPU
},
1183 {I_FMUL
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xC8", IF_8086
|IF_FPU
},
1187 static struct itemplate instrux_FMULP
[] = {
1188 {I_FMULP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xC8", IF_8086
|IF_FPU
},
1189 {I_FMULP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xC8", IF_8086
|IF_FPU
},
1193 static struct itemplate instrux_FNCLEX
[] = {
1194 {I_FNCLEX
, 0, {0,0,0}, "\2\xDB\xE2", IF_8086
|IF_FPU
},
1198 static struct itemplate instrux_FNDISI
[] = {
1199 {I_FNDISI
, 0, {0,0,0}, "\2\xDB\xE1", IF_8086
|IF_FPU
},
1203 static struct itemplate instrux_FNENI
[] = {
1204 {I_FNENI
, 0, {0,0,0}, "\2\xDB\xE0", IF_8086
|IF_FPU
},
1208 static struct itemplate instrux_FNINIT
[] = {
1209 {I_FNINIT
, 0, {0,0,0}, "\2\xDB\xE3", IF_8086
|IF_FPU
},
1213 static struct itemplate instrux_FNOP
[] = {
1214 {I_FNOP
, 0, {0,0,0}, "\2\xD9\xD0", IF_8086
|IF_FPU
},
1218 static struct itemplate instrux_FNSAVE
[] = {
1219 {I_FNSAVE
, 1, {MEMORY
,0,0}, "\300\1\xDD\206", IF_8086
|IF_FPU
},
1223 static struct itemplate instrux_FNSTCW
[] = {
1224 {I_FNSTCW
, 1, {MEMORY
,0,0}, "\300\1\xD9\207", IF_8086
|IF_FPU
|IF_SW
},
1228 static struct itemplate instrux_FNSTENV
[] = {
1229 {I_FNSTENV
, 1, {MEMORY
,0,0}, "\300\1\xD9\206", IF_8086
|IF_FPU
},
1233 static struct itemplate instrux_FNSTSW
[] = {
1234 {I_FNSTSW
, 1, {MEMORY
,0,0}, "\300\1\xDD\207", IF_8086
|IF_FPU
|IF_SW
},
1235 {I_FNSTSW
, 1, {REG_AX
,0,0}, "\2\xDF\xE0", IF_286
|IF_FPU
},
1239 static struct itemplate instrux_FPATAN
[] = {
1240 {I_FPATAN
, 0, {0,0,0}, "\2\xD9\xF3", IF_8086
|IF_FPU
},
1244 static struct itemplate instrux_FPREM
[] = {
1245 {I_FPREM
, 0, {0,0,0}, "\2\xD9\xF8", IF_8086
|IF_FPU
},
1249 static struct itemplate instrux_FPREM1
[] = {
1250 {I_FPREM1
, 0, {0,0,0}, "\2\xD9\xF5", IF_386
|IF_FPU
},
1254 static struct itemplate instrux_FPTAN
[] = {
1255 {I_FPTAN
, 0, {0,0,0}, "\2\xD9\xF2", IF_8086
|IF_FPU
},
1259 static struct itemplate instrux_FRNDINT
[] = {
1260 {I_FRNDINT
, 0, {0,0,0}, "\2\xD9\xFC", IF_8086
|IF_FPU
},
1264 static struct itemplate instrux_FRSTOR
[] = {
1265 {I_FRSTOR
, 1, {MEMORY
,0,0}, "\300\1\xDD\204", IF_8086
|IF_FPU
},
1269 static struct itemplate instrux_FSAVE
[] = {
1270 {I_FSAVE
, 1, {MEMORY
,0,0}, "\300\2\x9B\xDD\206", IF_8086
|IF_FPU
},
1274 static struct itemplate instrux_FSCALE
[] = {
1275 {I_FSCALE
, 0, {0,0,0}, "\2\xD9\xFD", IF_8086
|IF_FPU
},
1279 static struct itemplate instrux_FSETPM
[] = {
1280 {I_FSETPM
, 0, {0,0,0}, "\2\xDB\xE4", IF_286
|IF_FPU
},
1284 static struct itemplate instrux_FSIN
[] = {
1285 {I_FSIN
, 0, {0,0,0}, "\2\xD9\xFE", IF_386
|IF_FPU
},
1289 static struct itemplate instrux_FSINCOS
[] = {
1290 {I_FSINCOS
, 0, {0,0,0}, "\2\xD9\xFB", IF_386
|IF_FPU
},
1294 static struct itemplate instrux_FSQRT
[] = {
1295 {I_FSQRT
, 0, {0,0,0}, "\2\xD9\xFA", IF_8086
|IF_FPU
},
1299 static struct itemplate instrux_FST
[] = {
1300 {I_FST
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD9\202", IF_8086
|IF_FPU
},
1301 {I_FST
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDD\202", IF_8086
|IF_FPU
},
1302 {I_FST
, 1, {FPUREG
,0,0}, "\1\xDD\10\xD0", IF_8086
|IF_FPU
},
1306 static struct itemplate instrux_FSTCW
[] = {
1307 {I_FSTCW
, 1, {MEMORY
,0,0}, "\300\2\x9B\xD9\207", IF_8086
|IF_FPU
|IF_SW
},
1311 static struct itemplate instrux_FSTENV
[] = {
1312 {I_FSTENV
, 1, {MEMORY
,0,0}, "\300\2\x9B\xD9\206", IF_8086
|IF_FPU
},
1316 static struct itemplate instrux_FSTP
[] = {
1317 {I_FSTP
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD9\203", IF_8086
|IF_FPU
},
1318 {I_FSTP
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDD\203", IF_8086
|IF_FPU
},
1319 {I_FSTP
, 1, {MEMORY
|BITS80
,0,0}, "\300\1\xDB\207", IF_8086
|IF_FPU
},
1320 {I_FSTP
, 1, {FPUREG
,0,0}, "\1\xDD\10\xD8", IF_8086
|IF_FPU
},
1324 static struct itemplate instrux_FSTSW
[] = {
1325 {I_FSTSW
, 1, {MEMORY
,0,0}, "\300\2\x9B\xDD\207", IF_8086
|IF_FPU
|IF_SW
},
1326 {I_FSTSW
, 1, {REG_AX
,0,0}, "\3\x9B\xDF\xE0", IF_286
|IF_FPU
},
1330 static struct itemplate instrux_FSUB
[] = {
1331 {I_FSUB
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\204", IF_8086
|IF_FPU
},
1332 {I_FSUB
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\204", IF_8086
|IF_FPU
},
1333 {I_FSUB
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xE8", IF_8086
|IF_FPU
},
1334 {I_FSUB
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xE8", IF_8086
|IF_FPU
},
1335 {I_FSUB
, 1, {FPUREG
,0,0}, "\1\xD8\10\xE0", IF_8086
|IF_FPU
},
1336 {I_FSUB
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xE0", IF_8086
|IF_FPU
},
1340 static struct itemplate instrux_FSUBP
[] = {
1341 {I_FSUBP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xE8", IF_8086
|IF_FPU
},
1342 {I_FSUBP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xE8", IF_8086
|IF_FPU
},
1346 static struct itemplate instrux_FSUBR
[] = {
1347 {I_FSUBR
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\205", IF_8086
|IF_FPU
},
1348 {I_FSUBR
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\205", IF_8086
|IF_FPU
},
1349 {I_FSUBR
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xE0", IF_8086
|IF_FPU
},
1350 {I_FSUBR
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xE0", IF_8086
|IF_FPU
},
1351 {I_FSUBR
, 1, {FPUREG
,0,0}, "\1\xD8\10\xE8", IF_8086
|IF_FPU
},
1352 {I_FSUBR
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xE8", IF_8086
|IF_FPU
},
1356 static struct itemplate instrux_FSUBRP
[] = {
1357 {I_FSUBRP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xE0", IF_8086
|IF_FPU
},
1358 {I_FSUBRP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xE0", IF_8086
|IF_FPU
},
1362 static struct itemplate instrux_FTST
[] = {
1363 {I_FTST
, 0, {0,0,0}, "\2\xD9\xE4", IF_8086
|IF_FPU
},
1367 static struct itemplate instrux_FUCOM
[] = {
1368 {I_FUCOM
, 1, {FPUREG
,0,0}, "\1\xDD\10\xE0", IF_386
|IF_FPU
},
1369 {I_FUCOM
, 2, {FPU0
,FPUREG
,0}, "\1\xDD\11\xE0", IF_386
|IF_FPU
},
1373 static struct itemplate instrux_FUCOMI
[] = {
1374 {I_FUCOMI
, 1, {FPUREG
,0,0}, "\1\xDB\10\xE8", IF_P6
|IF_FPU
},
1375 {I_FUCOMI
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xE8", IF_P6
|IF_FPU
},
1379 static struct itemplate instrux_FUCOMIP
[] = {
1380 {I_FUCOMIP
, 1, {FPUREG
,0,0}, "\1\xDF\10\xE8", IF_P6
|IF_FPU
},
1381 {I_FUCOMIP
, 2, {FPU0
,FPUREG
,0}, "\1\xDF\11\xE8", IF_P6
|IF_FPU
},
1385 static struct itemplate instrux_FUCOMP
[] = {
1386 {I_FUCOMP
, 1, {FPUREG
,0,0}, "\1\xDD\10\xE8", IF_386
|IF_FPU
},
1387 {I_FUCOMP
, 2, {FPU0
,FPUREG
,0}, "\1\xDD\11\xE8", IF_386
|IF_FPU
},
1391 static struct itemplate instrux_FUCOMPP
[] = {
1392 {I_FUCOMPP
, 0, {0,0,0}, "\2\xDA\xE9", IF_386
|IF_FPU
},
1396 static struct itemplate instrux_FWAIT
[] = {
1397 {I_FWAIT
, 0, {0,0,0}, "\1\x9B", IF_8086
},
1401 static struct itemplate instrux_FXAM
[] = {
1402 {I_FXAM
, 0, {0,0,0}, "\2\xD9\xE5", IF_8086
|IF_FPU
},
1406 static struct itemplate instrux_FXCH
[] = {
1407 {I_FXCH
, 0, {0,0,0}, "\2\xD9\xC9", IF_8086
|IF_FPU
},
1408 {I_FXCH
, 1, {FPUREG
,0,0}, "\1\xD9\10\xC8", IF_8086
|IF_FPU
},
1409 {I_FXCH
, 2, {FPUREG
,FPU0
,0}, "\1\xD9\10\xC8", IF_8086
|IF_FPU
},
1410 {I_FXCH
, 2, {FPU0
,FPUREG
,0}, "\1\xD9\11\xC8", IF_8086
|IF_FPU
},
1414 static struct itemplate instrux_FXRSTOR
[] = {
1415 {I_FXRSTOR
, 1, {MEMORY
,0,0}, "\300\2\x0F\xAE\201", IF_P6
|IF_SSE
|IF_FPU
},
1419 static struct itemplate instrux_FXSAVE
[] = {
1420 {I_FXSAVE
, 1, {MEMORY
,0,0}, "\300\2\x0F\xAE\200", IF_P6
|IF_SSE
|IF_FPU
},
1424 static struct itemplate instrux_FXTRACT
[] = {
1425 {I_FXTRACT
, 0, {0,0,0}, "\2\xD9\xF4", IF_8086
|IF_FPU
},
1429 static struct itemplate instrux_FYL2X
[] = {
1430 {I_FYL2X
, 0, {0,0,0}, "\2\xD9\xF1", IF_8086
|IF_FPU
},
1434 static struct itemplate instrux_FYL2XP1
[] = {
1435 {I_FYL2XP1
, 0, {0,0,0}, "\2\xD9\xF9", IF_8086
|IF_FPU
},
1439 static struct itemplate instrux_HADDPD
[] = {
1440 {I_HADDPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x7C\110", IF_PRESCOTT
|IF_SSE3
|IF_SM
},
1441 {I_HADDPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x7C\110", IF_PRESCOTT
|IF_SSE3
},
1445 static struct itemplate instrux_HADDPS
[] = {
1446 {I_HADDPS
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x7C\110", IF_PRESCOTT
|IF_SSE3
|IF_SM
},
1447 {I_HADDPS
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x7C\110", IF_PRESCOTT
|IF_SSE3
},
1451 static struct itemplate instrux_HLT
[] = {
1452 {I_HLT
, 0, {0,0,0}, "\1\xF4", IF_8086
|IF_PRIV
},
1456 static struct itemplate instrux_HSUBPD
[] = {
1457 {I_HSUBPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x7D\110", IF_PRESCOTT
|IF_SSE3
|IF_SM
},
1458 {I_HSUBPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x7D\110", IF_PRESCOTT
|IF_SSE3
},
1462 static struct itemplate instrux_HSUBPS
[] = {
1463 {I_HSUBPS
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x7D\110", IF_PRESCOTT
|IF_SSE3
|IF_SM
},
1464 {I_HSUBPS
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x7D\110", IF_PRESCOTT
|IF_SSE3
},
1468 static struct itemplate instrux_IBTS
[] = {
1469 {I_IBTS
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xA7\101", IF_386
|IF_SW
|IF_UNDOC
},
1470 {I_IBTS
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xA7\101", IF_386
|IF_UNDOC
},
1471 {I_IBTS
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xA7\101", IF_386
|IF_SD
|IF_UNDOC
},
1472 {I_IBTS
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xA7\101", IF_386
|IF_UNDOC
},
1476 static struct itemplate instrux_ICEBP
[] = {
1477 {I_ICEBP
, 0, {0,0,0}, "\1\xF1", IF_386
},
1481 static struct itemplate instrux_IDIV
[] = {
1482 {I_IDIV
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\207", IF_8086
},
1483 {I_IDIV
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\207", IF_8086
},
1484 {I_IDIV
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\207", IF_386
},
1488 static struct itemplate instrux_IMUL
[] = {
1489 {I_IMUL
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\205", IF_8086
},
1490 {I_IMUL
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\205", IF_8086
},
1491 {I_IMUL
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\205", IF_386
},
1492 {I_IMUL
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xAF\110", IF_386
|IF_SM
},
1493 {I_IMUL
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xAF\110", IF_386
},
1494 {I_IMUL
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xAF\110", IF_386
|IF_SM
},
1495 {I_IMUL
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xAF\110", IF_386
},
1496 {I_IMUL
, 3, {REG16
,MEMORY
,IMMEDIATE
|BITS8
}, "\320\301\1\x6B\110\16", IF_186
|IF_SM
},
1497 {I_IMUL
, 3, {REG16
,MEMORY
,SBYTE
}, "\320\301\1\x6B\110\16", IF_186
|IF_SM
},
1498 {I_IMUL
, 3, {REG16
,MEMORY
,IMMEDIATE
|BITS16
}, "\320\301\1\x69\110\32", IF_186
|IF_SM
},
1499 {I_IMUL
, 3, {REG16
,MEMORY
,IMMEDIATE
}, "\320\301\135\1\x69\110\132", IF_186
|IF_SM
},
1500 {I_IMUL
, 3, {REG16
,REG16
,IMMEDIATE
|BITS8
}, "\320\1\x6B\110\16", IF_186
},
1501 {I_IMUL
, 3, {REG16
,REG16
,SBYTE
}, "\320\1\x6B\110\16", IF_186
|IF_SM
},
1502 {I_IMUL
, 3, {REG16
,REG16
,IMMEDIATE
|BITS16
}, "\320\1\x69\110\32", IF_186
},
1503 {I_IMUL
, 3, {REG16
,REG16
,IMMEDIATE
}, "\320\135\1\x69\110\132", IF_186
|IF_SM
},
1504 {I_IMUL
, 3, {REG32
,MEMORY
,IMMEDIATE
|BITS8
}, "\321\301\1\x6B\110\16", IF_386
|IF_SM
},
1505 {I_IMUL
, 3, {REG32
,MEMORY
,SBYTE
}, "\321\301\1\x6B\110\16", IF_386
|IF_SM
},
1506 {I_IMUL
, 3, {REG32
,MEMORY
,IMMEDIATE
|BITS32
}, "\321\301\1\x69\110\42", IF_386
|IF_SM
},
1507 {I_IMUL
, 3, {REG32
,MEMORY
,IMMEDIATE
}, "\321\301\145\1\x69\110\142", IF_386
|IF_SM
},
1508 {I_IMUL
, 3, {REG32
,REG32
,IMMEDIATE
|BITS8
}, "\321\1\x6B\110\16", IF_386
},
1509 {I_IMUL
, 3, {REG32
,REG32
,SBYTE
}, "\321\1\x6B\110\16", IF_386
|IF_SM
},
1510 {I_IMUL
, 3, {REG32
,REG32
,IMMEDIATE
|BITS32
}, "\321\1\x69\110\42", IF_386
},
1511 {I_IMUL
, 3, {REG32
,REG32
,IMMEDIATE
}, "\321\145\1\x69\110\142", IF_386
|IF_SM
},
1512 {I_IMUL
, 2, {REG16
,IMMEDIATE
|BITS8
,0}, "\320\1\x6B\100\15", IF_186
},
1513 {I_IMUL
, 2, {REG16
,SBYTE
,0}, "\320\1\x6B\100\15", IF_186
|IF_SM
},
1514 {I_IMUL
, 2, {REG16
,IMMEDIATE
|BITS16
,0}, "\320\1\x69\100\31", IF_186
},
1515 {I_IMUL
, 2, {REG16
,IMMEDIATE
,0}, "\320\134\1\x69\100\131", IF_186
|IF_SM
},
1516 {I_IMUL
, 2, {REG32
,IMMEDIATE
|BITS8
,0}, "\321\1\x6B\100\15", IF_386
},
1517 {I_IMUL
, 2, {REG32
,SBYTE
,0}, "\321\1\x6B\100\15", IF_386
|IF_SM
},
1518 {I_IMUL
, 2, {REG32
,IMMEDIATE
|BITS32
,0}, "\321\1\x69\100\41", IF_386
},
1519 {I_IMUL
, 2, {REG32
,IMMEDIATE
,0}, "\321\144\1\x69\100\141", IF_386
|IF_SM
},
1523 static struct itemplate instrux_IN
[] = {
1524 {I_IN
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\xE4\25", IF_8086
|IF_SB
},
1525 {I_IN
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\xE5\25", IF_8086
|IF_SB
},
1526 {I_IN
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\xE5\25", IF_386
|IF_SB
},
1527 {I_IN
, 2, {REG_AL
,REG_DX
,0}, "\1\xEC", IF_8086
},
1528 {I_IN
, 2, {REG_AX
,REG_DX
,0}, "\320\1\xED", IF_8086
},
1529 {I_IN
, 2, {REG_EAX
,REG_DX
,0}, "\321\1\xED", IF_386
},
1533 static struct itemplate instrux_INC
[] = {
1534 {I_INC
, 1, {REG16
,0,0}, "\320\10\x40", IF_8086
},
1535 {I_INC
, 1, {REG32
,0,0}, "\321\10\x40", IF_386
},
1536 {I_INC
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xFE\200", IF_8086
},
1537 {I_INC
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xFF\200", IF_8086
},
1538 {I_INC
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xFF\200", IF_386
},
1542 static struct itemplate instrux_INCBIN
[] = {
1546 static struct itemplate instrux_INSB
[] = {
1547 {I_INSB
, 0, {0,0,0}, "\1\x6C", IF_186
},
1551 static struct itemplate instrux_INSD
[] = {
1552 {I_INSD
, 0, {0,0,0}, "\321\1\x6D", IF_386
},
1556 static struct itemplate instrux_INSW
[] = {
1557 {I_INSW
, 0, {0,0,0}, "\320\1\x6D", IF_186
},
1561 static struct itemplate instrux_INT
[] = {
1562 {I_INT
, 1, {IMMEDIATE
,0,0}, "\1\xCD\24", IF_8086
|IF_SB
},
1566 static struct itemplate instrux_INT01
[] = {
1567 {I_INT01
, 0, {0,0,0}, "\1\xF1", IF_386
},
1571 static struct itemplate instrux_INT03
[] = {
1572 {I_INT03
, 0, {0,0,0}, "\1\xCC", IF_8086
},
1576 static struct itemplate instrux_INT1
[] = {
1577 {I_INT1
, 0, {0,0,0}, "\1\xF1", IF_386
},
1581 static struct itemplate instrux_INT3
[] = {
1582 {I_INT3
, 0, {0,0,0}, "\1\xCC", IF_8086
},
1586 static struct itemplate instrux_INTO
[] = {
1587 {I_INTO
, 0, {0,0,0}, "\1\xCE", IF_8086
},
1591 static struct itemplate instrux_INVD
[] = {
1592 {I_INVD
, 0, {0,0,0}, "\2\x0F\x08", IF_486
|IF_PRIV
},
1596 static struct itemplate instrux_INVLPG
[] = {
1597 {I_INVLPG
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\207", IF_486
|IF_PRIV
},
1601 static struct itemplate instrux_IRET
[] = {
1602 {I_IRET
, 0, {0,0,0}, "\322\1\xCF", IF_8086
},
1606 static struct itemplate instrux_IRETD
[] = {
1607 {I_IRETD
, 0, {0,0,0}, "\321\1\xCF", IF_386
},
1611 static struct itemplate instrux_IRETW
[] = {
1612 {I_IRETW
, 0, {0,0,0}, "\320\1\xCF", IF_8086
},
1616 static struct itemplate instrux_JCXZ
[] = {
1617 {I_JCXZ
, 1, {IMMEDIATE
,0,0}, "\310\1\xE3\50", IF_8086
},
1621 static struct itemplate instrux_JECXZ
[] = {
1622 {I_JECXZ
, 1, {IMMEDIATE
,0,0}, "\311\1\xE3\50", IF_386
},
1626 static struct itemplate instrux_JMP
[] = {
1627 {I_JMP
, 1, {IMMEDIATE
|SHORT
,0,0}, "\1\xEB\50", IF_8086
},
1628 {I_JMP
, 1, {IMMEDIATE
,0,0}, "\371\1\xEB\50", IF_8086
},
1629 {I_JMP
, 1, {IMMEDIATE
,0,0}, "\322\1\xE9\64", IF_8086
},
1630 {I_JMP
, 1, {IMMEDIATE
|NEAR
,0,0}, "\322\1\xE9\64", IF_8086
},
1631 {I_JMP
, 1, {IMMEDIATE
|FAR
,0,0}, "\322\1\xEA\34\37", IF_8086
},
1632 {I_JMP
, 1, {IMMEDIATE
|BITS16
,0,0}, "\320\1\xE9\64", IF_8086
},
1633 {I_JMP
, 1, {IMMEDIATE
|BITS16
|NEAR
,0,0}, "\320\1\xE9\64", IF_8086
},
1634 {I_JMP
, 1, {IMMEDIATE
|BITS16
|FAR
,0,0}, "\320\1\xEA\34\37", IF_8086
},
1635 {I_JMP
, 1, {IMMEDIATE
|BITS32
,0,0}, "\321\1\xE9\64", IF_386
},
1636 {I_JMP
, 1, {IMMEDIATE
|BITS32
|NEAR
,0,0}, "\321\1\xE9\64", IF_386
},
1637 {I_JMP
, 1, {IMMEDIATE
|BITS32
|FAR
,0,0}, "\321\1\xEA\34\37", IF_386
},
1638 {I_JMP
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
,0}, "\322\1\xEA\35\30", IF_8086
},
1639 {I_JMP
, 2, {IMMEDIATE
|BITS16
|COLON
,IMMEDIATE
,0}, "\320\1\xEA\31\30", IF_8086
},
1640 {I_JMP
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
|BITS16
,0}, "\320\1\xEA\31\30", IF_8086
},
1641 {I_JMP
, 2, {IMMEDIATE
|BITS32
|COLON
,IMMEDIATE
,0}, "\321\1\xEA\41\30", IF_386
},
1642 {I_JMP
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
|BITS32
,0}, "\321\1\xEA\41\30", IF_386
},
1643 {I_JMP
, 1, {MEMORY
|FAR
,0,0}, "\322\300\1\xFF\205", IF_8086
},
1644 {I_JMP
, 1, {MEMORY
|BITS16
|FAR
,0,0}, "\320\300\1\xFF\205", IF_8086
},
1645 {I_JMP
, 1, {MEMORY
|BITS32
|FAR
,0,0}, "\321\300\1\xFF\205", IF_386
},
1646 {I_JMP
, 1, {MEMORY
|NEAR
,0,0}, "\322\300\1\xFF\204", IF_8086
},
1647 {I_JMP
, 1, {MEMORY
|BITS16
|NEAR
,0,0}, "\320\300\1\xFF\204", IF_8086
},
1648 {I_JMP
, 1, {MEMORY
|BITS32
|NEAR
,0,0}, "\321\300\1\xFF\204", IF_386
},
1649 {I_JMP
, 1, {REG16
,0,0}, "\320\300\1\xFF\204", IF_8086
},
1650 {I_JMP
, 1, {REG32
,0,0}, "\321\300\1\xFF\204", IF_386
},
1651 {I_JMP
, 1, {MEMORY
,0,0}, "\322\300\1\xFF\204", IF_8086
},
1652 {I_JMP
, 1, {MEMORY
|BITS16
,0,0}, "\320\300\1\xFF\204", IF_8086
},
1653 {I_JMP
, 1, {MEMORY
|BITS32
,0,0}, "\321\300\1\xFF\204", IF_386
},
1657 static struct itemplate instrux_JMPE
[] = {
1658 {I_JMPE
, 1, {IMMEDIATE
,0,0}, "\322\2\x0F\xB8\64", IF_IA64
},
1659 {I_JMPE
, 1, {IMMEDIATE
|BITS16
,0,0}, "\320\2\x0F\xB8\64", IF_IA64
},
1660 {I_JMPE
, 1, {IMMEDIATE
|BITS32
,0,0}, "\321\2\x0F\xB8\64", IF_IA64
},
1661 {I_JMPE
, 1, {REGMEM
|BITS16
,0,0}, "\320\2\x0F\x00\206", IF_IA64
},
1662 {I_JMPE
, 1, {REGMEM
|BITS32
,0,0}, "\321\2\x0F\x00\206", IF_IA64
},
1666 static struct itemplate instrux_LAHF
[] = {
1667 {I_LAHF
, 0, {0,0,0}, "\1\x9F", IF_8086
},
1671 static struct itemplate instrux_LAR
[] = {
1672 {I_LAR
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\x02\110", IF_286
|IF_PROT
|IF_SM
},
1673 {I_LAR
, 2, {REG16
,REG16
,0}, "\320\2\x0F\x02\110", IF_286
|IF_PROT
},
1674 {I_LAR
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\x02\110", IF_386
|IF_PROT
|IF_SM
},
1675 {I_LAR
, 2, {REG32
,REG32
,0}, "\321\2\x0F\x02\110", IF_386
|IF_PROT
},
1679 static struct itemplate instrux_LDDQU
[] = {
1680 {I_LDDQU
, 2, {XMMREG
,MEMORY
,0}, "\3\xF2\x0F\xF0\110", IF_PRESCOTT
|IF_SSE3
},
1684 static struct itemplate instrux_LDMXCSR
[] = {
1685 {I_LDMXCSR
, 1, {MEMORY
,0,0}, "\300\2\x0F\xAE\202", IF_KATMAI
|IF_SSE
|IF_SD
},
1689 static struct itemplate instrux_LDS
[] = {
1690 {I_LDS
, 2, {REG16
,MEMORY
,0}, "\320\301\1\xC5\110", IF_8086
},
1691 {I_LDS
, 2, {REG32
,MEMORY
,0}, "\321\301\1\xC5\110", IF_386
},
1695 static struct itemplate instrux_LEA
[] = {
1696 {I_LEA
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x8D\110", IF_8086
},
1697 {I_LEA
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x8D\110", IF_386
},
1701 static struct itemplate instrux_LEAVE
[] = {
1702 {I_LEAVE
, 0, {0,0,0}, "\1\xC9", IF_186
},
1706 static struct itemplate instrux_LES
[] = {
1707 {I_LES
, 2, {REG16
,MEMORY
,0}, "\320\301\1\xC4\110", IF_8086
},
1708 {I_LES
, 2, {REG32
,MEMORY
,0}, "\321\301\1\xC4\110", IF_386
},
1712 static struct itemplate instrux_LFENCE
[] = {
1713 {I_LFENCE
, 0, {0,0,0}, "\3\x0F\xAE\xE8", IF_WILLAMETTE
|IF_SSE2
},
1717 static struct itemplate instrux_LFS
[] = {
1718 {I_LFS
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xB4\110", IF_386
},
1719 {I_LFS
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xB4\110", IF_386
},
1723 static struct itemplate instrux_LGDT
[] = {
1724 {I_LGDT
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\202", IF_286
|IF_PRIV
},
1728 static struct itemplate instrux_LGS
[] = {
1729 {I_LGS
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xB5\110", IF_386
},
1730 {I_LGS
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xB5\110", IF_386
},
1734 static struct itemplate instrux_LIDT
[] = {
1735 {I_LIDT
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\203", IF_286
|IF_PRIV
},
1739 static struct itemplate instrux_LLDT
[] = {
1740 {I_LLDT
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\202", IF_286
|IF_PROT
|IF_PRIV
},
1741 {I_LLDT
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\202", IF_286
|IF_PROT
|IF_PRIV
},
1742 {I_LLDT
, 1, {REG16
,0,0}, "\1\x0F\17\202", IF_286
|IF_PROT
|IF_PRIV
},
1746 static struct itemplate instrux_LMSW
[] = {
1747 {I_LMSW
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\206", IF_286
|IF_PRIV
},
1748 {I_LMSW
, 1, {MEMORY
|BITS16
,0,0}, "\300\2\x0F\x01\206", IF_286
|IF_PRIV
},
1749 {I_LMSW
, 1, {REG16
,0,0}, "\2\x0F\x01\206", IF_286
|IF_PRIV
},
1753 static struct itemplate instrux_LOADALL
[] = {
1754 {I_LOADALL
, 0, {0,0,0}, "\2\x0F\x07", IF_386
|IF_UNDOC
},
1758 static struct itemplate instrux_LOADALL286
[] = {
1759 {I_LOADALL286
, 0, {0,0,0}, "\2\x0F\x05", IF_286
|IF_UNDOC
},
1763 static struct itemplate instrux_LODSB
[] = {
1764 {I_LODSB
, 0, {0,0,0}, "\1\xAC", IF_8086
},
1768 static struct itemplate instrux_LODSD
[] = {
1769 {I_LODSD
, 0, {0,0,0}, "\321\1\xAD", IF_386
},
1773 static struct itemplate instrux_LODSW
[] = {
1774 {I_LODSW
, 0, {0,0,0}, "\320\1\xAD", IF_8086
},
1778 static struct itemplate instrux_LOOP
[] = {
1779 {I_LOOP
, 1, {IMMEDIATE
,0,0}, "\312\1\xE2\50", IF_8086
},
1780 {I_LOOP
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE2\50", IF_8086
},
1781 {I_LOOP
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE2\50", IF_386
},
1785 static struct itemplate instrux_LOOPE
[] = {
1786 {I_LOOPE
, 1, {IMMEDIATE
,0,0}, "\312\1\xE1\50", IF_8086
},
1787 {I_LOOPE
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE1\50", IF_8086
},
1788 {I_LOOPE
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE1\50", IF_386
},
1792 static struct itemplate instrux_LOOPNE
[] = {
1793 {I_LOOPNE
, 1, {IMMEDIATE
,0,0}, "\312\1\xE0\50", IF_8086
},
1794 {I_LOOPNE
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE0\50", IF_8086
},
1795 {I_LOOPNE
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE0\50", IF_386
},
1799 static struct itemplate instrux_LOOPNZ
[] = {
1800 {I_LOOPNZ
, 1, {IMMEDIATE
,0,0}, "\312\1\xE0\50", IF_8086
},
1801 {I_LOOPNZ
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE0\50", IF_8086
},
1802 {I_LOOPNZ
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE0\50", IF_386
},
1806 static struct itemplate instrux_LOOPZ
[] = {
1807 {I_LOOPZ
, 1, {IMMEDIATE
,0,0}, "\312\1\xE1\50", IF_8086
},
1808 {I_LOOPZ
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE1\50", IF_8086
},
1809 {I_LOOPZ
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE1\50", IF_386
},
1813 static struct itemplate instrux_LSL
[] = {
1814 {I_LSL
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\x03\110", IF_286
|IF_PROT
|IF_SM
},
1815 {I_LSL
, 2, {REG16
,REG16
,0}, "\320\2\x0F\x03\110", IF_286
|IF_PROT
},
1816 {I_LSL
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\x03\110", IF_386
|IF_PROT
|IF_SM
},
1817 {I_LSL
, 2, {REG32
,REG32
,0}, "\321\2\x0F\x03\110", IF_386
|IF_PROT
},
1821 static struct itemplate instrux_LSS
[] = {
1822 {I_LSS
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xB2\110", IF_386
},
1823 {I_LSS
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xB2\110", IF_386
},
1827 static struct itemplate instrux_LTR
[] = {
1828 {I_LTR
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\203", IF_286
|IF_PROT
|IF_PRIV
},
1829 {I_LTR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\203", IF_286
|IF_PROT
|IF_PRIV
},
1830 {I_LTR
, 1, {REG16
,0,0}, "\1\x0F\17\203", IF_286
|IF_PROT
|IF_PRIV
},
1834 static struct itemplate instrux_MASKMOVDQU
[] = {
1835 {I_MASKMOVDQU
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xF7\110", IF_WILLAMETTE
|IF_SSE2
},
1839 static struct itemplate instrux_MASKMOVQ
[] = {
1840 {I_MASKMOVQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF7\110", IF_KATMAI
|IF_MMX
},
1844 static struct itemplate instrux_MAXPD
[] = {
1845 {I_MAXPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x5F\110", IF_WILLAMETTE
|IF_SSE2
},
1846 {I_MAXPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x5F\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
1850 static struct itemplate instrux_MAXPS
[] = {
1851 {I_MAXPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x5F\110", IF_KATMAI
|IF_SSE
},
1852 {I_MAXPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x5F\110", IF_KATMAI
|IF_SSE
},
1856 static struct itemplate instrux_MAXSD
[] = {
1857 {I_MAXSD
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x5F\110", IF_WILLAMETTE
|IF_SSE2
},
1858 {I_MAXSD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x5F\110", IF_WILLAMETTE
|IF_SSE2
},
1862 static struct itemplate instrux_MAXSS
[] = {
1863 {I_MAXSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x5F\110", IF_KATMAI
|IF_SSE
},
1864 {I_MAXSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x5F\110", IF_KATMAI
|IF_SSE
},
1868 static struct itemplate instrux_MFENCE
[] = {
1869 {I_MFENCE
, 0, {0,0,0}, "\3\x0F\xAE\xF0", IF_WILLAMETTE
|IF_SSE2
},
1873 static struct itemplate instrux_MINPD
[] = {
1874 {I_MINPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x5D\110", IF_WILLAMETTE
|IF_SSE2
},
1875 {I_MINPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x5D\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
1879 static struct itemplate instrux_MINPS
[] = {
1880 {I_MINPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x5D\110", IF_KATMAI
|IF_SSE
},
1881 {I_MINPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x5D\110", IF_KATMAI
|IF_SSE
},
1885 static struct itemplate instrux_MINSD
[] = {
1886 {I_MINSD
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x5D\110", IF_WILLAMETTE
|IF_SSE2
},
1887 {I_MINSD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x5D\110", IF_WILLAMETTE
|IF_SSE2
},
1891 static struct itemplate instrux_MINSS
[] = {
1892 {I_MINSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x5D\110", IF_KATMAI
|IF_SSE
},
1893 {I_MINSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x5D\110", IF_KATMAI
|IF_SSE
},
1897 static struct itemplate instrux_MONITOR
[] = {
1898 {I_MONITOR
, 0, {0,0,0}, "\3\x0F\x01\xC8", IF_PRESCOTT
},
1899 {I_MONITOR
, 3, {REG_EAX
,REG_ECX
,REG_EDX
}, "\3\x0F\x01\xC8", IF_PRESCOTT
},
1903 static struct itemplate instrux_MOV
[] = {
1904 {I_MOV
, 2, {MEMORY
,REG_SREG
,0}, "\300\1\x8C\101", IF_8086
|IF_SM
},
1905 {I_MOV
, 2, {REG16
,REG_SREG
,0}, "\320\1\x8C\101", IF_8086
},
1906 {I_MOV
, 2, {REG32
,REG_SREG
,0}, "\321\1\x8C\101", IF_386
},
1907 {I_MOV
, 2, {REG_SREG
,MEMORY
,0}, "\301\1\x8E\110", IF_8086
|IF_SM
},
1908 {I_MOV
, 2, {REG_SREG
,REG16
,0}, "\1\x8E\110", IF_8086
},
1909 {I_MOV
, 2, {REG_SREG
,REG32
,0}, "\1\x8E\110", IF_386
},
1910 {I_MOV
, 2, {REG_AL
,MEM_OFFS
,0}, "\301\1\xA0\45", IF_8086
|IF_SM
},
1911 {I_MOV
, 2, {REG_AX
,MEM_OFFS
,0}, "\301\320\1\xA1\45", IF_8086
|IF_SM
},
1912 {I_MOV
, 2, {REG_EAX
,MEM_OFFS
,0}, "\301\321\1\xA1\45", IF_386
|IF_SM
},
1913 {I_MOV
, 2, {MEM_OFFS
,REG_AL
,0}, "\300\1\xA2\44", IF_8086
|IF_SM
},
1914 {I_MOV
, 2, {MEM_OFFS
,REG_AX
,0}, "\300\320\1\xA3\44", IF_8086
|IF_SM
},
1915 {I_MOV
, 2, {MEM_OFFS
,REG_EAX
,0}, "\300\321\1\xA3\44", IF_386
|IF_SM
},
1916 {I_MOV
, 2, {REG32
,REG_CREG
,0}, "\2\x0F\x20\101", IF_386
|IF_PRIV
},
1917 {I_MOV
, 2, {REG32
,REG_DREG
,0}, "\2\x0F\x21\101", IF_386
|IF_PRIV
},
1918 {I_MOV
, 2, {REG32
,REG_TREG
,0}, "\2\x0F\x24\101", IF_386
|IF_PRIV
},
1919 {I_MOV
, 2, {REG_CREG
,REG32
,0}, "\2\x0F\x22\110", IF_386
|IF_PRIV
},
1920 {I_MOV
, 2, {REG_DREG
,REG32
,0}, "\2\x0F\x23\110", IF_386
|IF_PRIV
},
1921 {I_MOV
, 2, {REG_TREG
,REG32
,0}, "\2\x0F\x26\110", IF_386
|IF_PRIV
},
1922 {I_MOV
, 2, {MEMORY
,REG8
,0}, "\300\1\x88\101", IF_8086
|IF_SM
},
1923 {I_MOV
, 2, {REG8
,REG8
,0}, "\1\x88\101", IF_8086
},
1924 {I_MOV
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x89\101", IF_8086
|IF_SM
},
1925 {I_MOV
, 2, {REG16
,REG16
,0}, "\320\1\x89\101", IF_8086
},
1926 {I_MOV
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x89\101", IF_386
|IF_SM
},
1927 {I_MOV
, 2, {REG32
,REG32
,0}, "\321\1\x89\101", IF_386
},
1928 {I_MOV
, 2, {REG8
,MEMORY
,0}, "\301\1\x8A\110", IF_8086
|IF_SM
},
1929 {I_MOV
, 2, {REG8
,REG8
,0}, "\1\x8A\110", IF_8086
},
1930 {I_MOV
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x8B\110", IF_8086
|IF_SM
},
1931 {I_MOV
, 2, {REG16
,REG16
,0}, "\320\1\x8B\110", IF_8086
},
1932 {I_MOV
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x8B\110", IF_386
|IF_SM
},
1933 {I_MOV
, 2, {REG32
,REG32
,0}, "\321\1\x8B\110", IF_386
},
1934 {I_MOV
, 2, {REG8
,IMMEDIATE
,0}, "\10\xB0\21", IF_8086
|IF_SM
},
1935 {I_MOV
, 2, {REG16
,IMMEDIATE
,0}, "\320\10\xB8\31", IF_8086
|IF_SM
},
1936 {I_MOV
, 2, {REG32
,IMMEDIATE
,0}, "\321\10\xB8\41", IF_386
|IF_SM
},
1937 {I_MOV
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC6\200\21", IF_8086
|IF_SM
},
1938 {I_MOV
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC7\200\31", IF_8086
|IF_SM
},
1939 {I_MOV
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC7\200\41", IF_386
|IF_SM
},
1940 {I_MOV
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\xC6\200\21", IF_8086
|IF_SM
},
1941 {I_MOV
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\xC7\200\31", IF_8086
|IF_SM
},
1942 {I_MOV
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\xC7\200\41", IF_386
|IF_SM
},
1946 static struct itemplate instrux_MOVAPD
[] = {
1947 {I_MOVAPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x28\110", IF_WILLAMETTE
|IF_SSE2
},
1948 {I_MOVAPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x29\110", IF_WILLAMETTE
|IF_SSE2
},
1949 {I_MOVAPD
, 2, {MEMORY
,XMMREG
,0}, "\300\3\x66\x0F\x29\101", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
1950 {I_MOVAPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x28\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
1954 static struct itemplate instrux_MOVAPS
[] = {
1955 {I_MOVAPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x28\110", IF_KATMAI
|IF_SSE
},
1956 {I_MOVAPS
, 2, {MEMORY
,XMMREG
,0}, "\300\2\x0F\x29\101", IF_KATMAI
|IF_SSE
},
1957 {I_MOVAPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x28\110", IF_KATMAI
|IF_SSE
},
1958 {I_MOVAPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x29\101", IF_KATMAI
|IF_SSE
},
1962 static struct itemplate instrux_MOVD
[] = {
1963 {I_MOVD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x6E\110", IF_PENT
|IF_MMX
|IF_SD
},
1964 {I_MOVD
, 2, {MMXREG
,REG32
,0}, "\2\x0F\x6E\110", IF_PENT
|IF_MMX
},
1965 {I_MOVD
, 2, {MEMORY
,MMXREG
,0}, "\300\2\x0F\x7E\101", IF_PENT
|IF_MMX
|IF_SD
},
1966 {I_MOVD
, 2, {REG32
,MMXREG
,0}, "\2\x0F\x7E\101", IF_PENT
|IF_MMX
},
1967 {I_MOVD
, 2, {XMMREG
,REG32
,0}, "\3\x66\x0F\x6E\110", IF_WILLAMETTE
|IF_SSE2
},
1968 {I_MOVD
, 2, {REG32
,XMMREG
,0}, "\3\x66\x0F\x7E\101", IF_WILLAMETTE
|IF_SSE2
},
1969 {I_MOVD
, 2, {MEMORY
,XMMREG
,0}, "\300\3\x66\x0F\x7E\101", IF_WILLAMETTE
|IF_SSE2
},
1970 {I_MOVD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x6E\110", IF_WILLAMETTE
|IF_SSE2
},
1974 static struct itemplate instrux_MOVDDUP
[] = {
1975 {I_MOVDDUP
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x12\110", IF_PRESCOTT
|IF_SSE3
},
1976 {I_MOVDDUP
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x12\110", IF_PRESCOTT
|IF_SSE3
},
1980 static struct itemplate instrux_MOVDQ2Q
[] = {
1981 {I_MOVDQ2Q
, 2, {MMXREG
,XMMREG
,0}, "\3\xF2\x0F\xD6\110", IF_WILLAMETTE
|IF_SSE2
},
1985 static struct itemplate instrux_MOVDQA
[] = {
1986 {I_MOVDQA
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x6F\110", IF_WILLAMETTE
|IF_SSE2
},
1987 {I_MOVDQA
, 2, {MEMORY
,XMMREG
,0}, "\300\3\x66\x0F\x7F\101", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
1988 {I_MOVDQA
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x6F\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
1989 {I_MOVDQA
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x7F\110", IF_WILLAMETTE
|IF_SSE2
},
1993 static struct itemplate instrux_MOVDQU
[] = {
1994 {I_MOVDQU
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x6F\110", IF_WILLAMETTE
|IF_SSE2
},
1995 {I_MOVDQU
, 2, {MEMORY
,XMMREG
,0}, "\333\300\2\x0F\x7F\101", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
1996 {I_MOVDQU
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x6F\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
1997 {I_MOVDQU
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x7F\110", IF_WILLAMETTE
|IF_SSE2
},
2001 static struct itemplate instrux_MOVHLPS
[] = {
2002 {I_MOVHLPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x12\110", IF_KATMAI
|IF_SSE
},
2006 static struct itemplate instrux_MOVHPD
[] = {
2007 {I_MOVHPD
, 2, {MEMORY
,XMMREG
,0}, "\300\3\x66\x0F\x17\101", IF_WILLAMETTE
|IF_SSE2
},
2008 {I_MOVHPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x16\110", IF_WILLAMETTE
|IF_SSE2
},
2012 static struct itemplate instrux_MOVHPS
[] = {
2013 {I_MOVHPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x16\110", IF_KATMAI
|IF_SSE
},
2014 {I_MOVHPS
, 2, {MEMORY
,XMMREG
,0}, "\300\2\x0F\x17\101", IF_KATMAI
|IF_SSE
},
2018 static struct itemplate instrux_MOVLHPS
[] = {
2019 {I_MOVLHPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x16\110", IF_KATMAI
|IF_SSE
},
2023 static struct itemplate instrux_MOVLPD
[] = {
2024 {I_MOVLPD
, 2, {MEMORY
,XMMREG
,0}, "\300\3\x66\x0F\x13\101", IF_WILLAMETTE
|IF_SSE2
},
2025 {I_MOVLPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x12\110", IF_WILLAMETTE
|IF_SSE2
},
2029 static struct itemplate instrux_MOVLPS
[] = {
2030 {I_MOVLPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x12\110", IF_KATMAI
|IF_SSE
},
2031 {I_MOVLPS
, 2, {MEMORY
,XMMREG
,0}, "\300\2\x0F\x13\101", IF_KATMAI
|IF_SSE
},
2035 static struct itemplate instrux_MOVMSKPD
[] = {
2036 {I_MOVMSKPD
, 2, {REG32
,XMMREG
,0}, "\3\x66\x0F\x50\110", IF_WILLAMETTE
|IF_SSE2
},
2040 static struct itemplate instrux_MOVMSKPS
[] = {
2041 {I_MOVMSKPS
, 2, {REG32
,XMMREG
,0}, "\2\x0F\x50\110", IF_KATMAI
|IF_SSE
},
2045 static struct itemplate instrux_MOVNTDQ
[] = {
2046 {I_MOVNTDQ
, 2, {MEMORY
,XMMREG
,0}, "\300\3\x66\x0F\xE7\101", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2050 static struct itemplate instrux_MOVNTI
[] = {
2051 {I_MOVNTI
, 2, {MEMORY
,REG32
,0}, "\300\2\x0F\xC3\101", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2055 static struct itemplate instrux_MOVNTPD
[] = {
2056 {I_MOVNTPD
, 2, {MEMORY
,XMMREG
,0}, "\300\3\x66\x0F\x2B\101", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2060 static struct itemplate instrux_MOVNTPS
[] = {
2061 {I_MOVNTPS
, 2, {MEMORY
,XMMREG
,0}, "\300\2\x0F\x2B\101", IF_KATMAI
|IF_SSE
},
2065 static struct itemplate instrux_MOVNTQ
[] = {
2066 {I_MOVNTQ
, 2, {MEMORY
,MMXREG
,0}, "\300\2\x0F\xE7\101", IF_KATMAI
|IF_MMX
|IF_SM
},
2070 static struct itemplate instrux_MOVQ
[] = {
2071 {I_MOVQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x6F\110", IF_PENT
|IF_MMX
|IF_SM
},
2072 {I_MOVQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x6F\110", IF_PENT
|IF_MMX
},
2073 {I_MOVQ
, 2, {MEMORY
,MMXREG
,0}, "\300\2\x0F\x7F\101", IF_PENT
|IF_MMX
|IF_SM
},
2074 {I_MOVQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x7F\101", IF_PENT
|IF_MMX
},
2075 {I_MOVQ
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x7E\110", IF_WILLAMETTE
|IF_SSE2
},
2076 {I_MOVQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xD6\110", IF_WILLAMETTE
|IF_SSE2
},
2077 {I_MOVQ
, 2, {MEMORY
,XMMREG
,0}, "\300\3\x66\x0F\xD6\101", IF_WILLAMETTE
|IF_SSE2
},
2078 {I_MOVQ
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x7E\110", IF_WILLAMETTE
|IF_SSE2
},
2082 static struct itemplate instrux_MOVQ2DQ
[] = {
2083 {I_MOVQ2DQ
, 2, {XMMREG
,MMXREG
,0}, "\333\2\x0F\xD6\110", IF_WILLAMETTE
|IF_SSE2
},
2087 static struct itemplate instrux_MOVSB
[] = {
2088 {I_MOVSB
, 0, {0,0,0}, "\1\xA4", IF_8086
},
2092 static struct itemplate instrux_MOVSD
[] = {
2093 {I_MOVSD
, 0, {0,0,0}, "\321\1\xA5", IF_386
},
2094 {I_MOVSD
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x10\110", IF_WILLAMETTE
|IF_SSE2
},
2095 {I_MOVSD
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x11\110", IF_WILLAMETTE
|IF_SSE2
},
2096 {I_MOVSD
, 2, {MEMORY
,XMMREG
,0}, "\300\3\xF2\x0F\x11\101", IF_WILLAMETTE
|IF_SSE2
},
2097 {I_MOVSD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x10\110", IF_WILLAMETTE
|IF_SSE2
},
2101 static struct itemplate instrux_MOVSHDUP
[] = {
2102 {I_MOVSHDUP
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF3\x0F\x16\110", IF_PRESCOTT
|IF_SSE3
},
2103 {I_MOVSHDUP
, 2, {XMMREG
,XMMREG
,0}, "\3\xF3\x0F\x16\110", IF_PRESCOTT
|IF_SSE3
},
2107 static struct itemplate instrux_MOVSLDUP
[] = {
2108 {I_MOVSLDUP
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF3\x0F\x12\110", IF_PRESCOTT
|IF_SSE3
},
2109 {I_MOVSLDUP
, 2, {XMMREG
,XMMREG
,0}, "\3\xF3\x0F\x12\110", IF_PRESCOTT
|IF_SSE3
},
2113 static struct itemplate instrux_MOVSS
[] = {
2114 {I_MOVSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x10\110", IF_KATMAI
|IF_SSE
},
2115 {I_MOVSS
, 2, {MEMORY
,XMMREG
,0}, "\300\333\2\x0F\x11\101", IF_KATMAI
|IF_SSE
},
2116 {I_MOVSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x10\110", IF_KATMAI
|IF_SSE
},
2117 {I_MOVSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x11\101", IF_KATMAI
|IF_SSE
},
2121 static struct itemplate instrux_MOVSW
[] = {
2122 {I_MOVSW
, 0, {0,0,0}, "\320\1\xA5", IF_8086
},
2126 static struct itemplate instrux_MOVSX
[] = {
2127 {I_MOVSX
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xBE\110", IF_386
|IF_SB
},
2128 {I_MOVSX
, 2, {REG16
,REG8
,0}, "\320\2\x0F\xBE\110", IF_386
},
2129 {I_MOVSX
, 2, {REG32
,REGMEM
|BITS8
,0}, "\321\301\2\x0F\xBE\110", IF_386
},
2130 {I_MOVSX
, 2, {REG32
,REGMEM
|BITS16
,0}, "\321\301\2\x0F\xBF\110", IF_386
},
2134 static struct itemplate instrux_MOVUPD
[] = {
2135 {I_MOVUPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x10\110", IF_WILLAMETTE
|IF_SSE2
},
2136 {I_MOVUPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x11\110", IF_WILLAMETTE
|IF_SSE2
},
2137 {I_MOVUPD
, 2, {MEMORY
,XMMREG
,0}, "\300\3\x66\x0F\x11\101", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2138 {I_MOVUPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x10\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2142 static struct itemplate instrux_MOVUPS
[] = {
2143 {I_MOVUPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x10\110", IF_KATMAI
|IF_SSE
},
2144 {I_MOVUPS
, 2, {MEMORY
,XMMREG
,0}, "\300\331\2\x0F\x11\101", IF_KATMAI
|IF_SSE
},
2145 {I_MOVUPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x10\110", IF_KATMAI
|IF_SSE
},
2146 {I_MOVUPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x11\101", IF_KATMAI
|IF_SSE
},
2150 static struct itemplate instrux_MOVZX
[] = {
2151 {I_MOVZX
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xB6\110", IF_386
|IF_SB
},
2152 {I_MOVZX
, 2, {REG16
,REG8
,0}, "\320\2\x0F\xB6\110", IF_386
},
2153 {I_MOVZX
, 2, {REG32
,REGMEM
|BITS8
,0}, "\321\301\2\x0F\xB6\110", IF_386
},
2154 {I_MOVZX
, 2, {REG32
,REGMEM
|BITS16
,0}, "\321\301\2\x0F\xB7\110", IF_386
},
2158 static struct itemplate instrux_MUL
[] = {
2159 {I_MUL
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\204", IF_8086
},
2160 {I_MUL
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\204", IF_8086
},
2161 {I_MUL
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\204", IF_386
},
2165 static struct itemplate instrux_MULPD
[] = {
2166 {I_MULPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x59\110", IF_WILLAMETTE
|IF_SSE2
},
2167 {I_MULPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x59\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2171 static struct itemplate instrux_MULPS
[] = {
2172 {I_MULPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x59\110", IF_KATMAI
|IF_SSE
},
2173 {I_MULPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x59\110", IF_KATMAI
|IF_SSE
},
2177 static struct itemplate instrux_MULSD
[] = {
2178 {I_MULSD
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x59\110", IF_WILLAMETTE
|IF_SSE2
},
2179 {I_MULSD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x59\110", IF_WILLAMETTE
|IF_SSE2
},
2183 static struct itemplate instrux_MULSS
[] = {
2184 {I_MULSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x59\110", IF_KATMAI
|IF_SSE
},
2185 {I_MULSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x59\110", IF_KATMAI
|IF_SSE
},
2189 static struct itemplate instrux_MWAIT
[] = {
2190 {I_MWAIT
, 0, {0,0,0}, "\3\x0F\x01\xC9", IF_PRESCOTT
},
2191 {I_MWAIT
, 2, {REG_EAX
,REG_ECX
,0}, "\3\x0F\x01\xC9", IF_PRESCOTT
},
2195 static struct itemplate instrux_NEG
[] = {
2196 {I_NEG
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\203", IF_8086
},
2197 {I_NEG
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\203", IF_8086
},
2198 {I_NEG
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\203", IF_386
},
2202 static struct itemplate instrux_NOP
[] = {
2203 {I_NOP
, 0, {0,0,0}, "\1\x90", IF_8086
},
2207 static struct itemplate instrux_NOT
[] = {
2208 {I_NOT
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\202", IF_8086
},
2209 {I_NOT
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\202", IF_8086
},
2210 {I_NOT
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\202", IF_386
},
2214 static struct itemplate instrux_OR
[] = {
2215 {I_OR
, 2, {MEMORY
,REG8
,0}, "\300\1\x08\101", IF_8086
|IF_SM
},
2216 {I_OR
, 2, {REG8
,REG8
,0}, "\1\x08\101", IF_8086
},
2217 {I_OR
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x09\101", IF_8086
|IF_SM
},
2218 {I_OR
, 2, {REG16
,REG16
,0}, "\320\1\x09\101", IF_8086
},
2219 {I_OR
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x09\101", IF_386
|IF_SM
},
2220 {I_OR
, 2, {REG32
,REG32
,0}, "\321\1\x09\101", IF_386
},
2221 {I_OR
, 2, {REG8
,MEMORY
,0}, "\301\1\x0A\110", IF_8086
|IF_SM
},
2222 {I_OR
, 2, {REG8
,REG8
,0}, "\1\x0A\110", IF_8086
},
2223 {I_OR
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x0B\110", IF_8086
|IF_SM
},
2224 {I_OR
, 2, {REG16
,REG16
,0}, "\320\1\x0B\110", IF_8086
},
2225 {I_OR
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x0B\110", IF_386
|IF_SM
},
2226 {I_OR
, 2, {REG32
,REG32
,0}, "\321\1\x0B\110", IF_386
},
2227 {I_OR
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\201\15", IF_8086
},
2228 {I_OR
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\201\15", IF_386
},
2229 {I_OR
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x0C\21", IF_8086
|IF_SM
},
2230 {I_OR
, 2, {REG_AX
,SBYTE
,0}, "\320\1\x83\201\15", IF_8086
|IF_SM
},
2231 {I_OR
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x0D\31", IF_8086
|IF_SM
},
2232 {I_OR
, 2, {REG_EAX
,SBYTE
,0}, "\321\1\x83\201\15", IF_386
|IF_SM
},
2233 {I_OR
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x0D\41", IF_386
|IF_SM
},
2234 {I_OR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\201\21", IF_8086
|IF_SM
},
2235 {I_OR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\134\1\x81\201\131", IF_8086
|IF_SM
},
2236 {I_OR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\144\1\x81\201\141", IF_386
|IF_SM
},
2237 {I_OR
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\201\21", IF_8086
|IF_SM
},
2238 {I_OR
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\134\1\x81\201\131", IF_8086
|IF_SM
},
2239 {I_OR
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\144\1\x81\201\141", IF_386
|IF_SM
},
2243 static struct itemplate instrux_ORPD
[] = {
2244 {I_ORPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x56\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2245 {I_ORPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x56\110", IF_WILLAMETTE
|IF_SSE2
},
2249 static struct itemplate instrux_ORPS
[] = {
2250 {I_ORPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x56\110", IF_KATMAI
|IF_SSE
},
2251 {I_ORPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x56\110", IF_KATMAI
|IF_SSE
},
2255 static struct itemplate instrux_OUT
[] = {
2256 {I_OUT
, 2, {IMMEDIATE
,REG_AL
,0}, "\1\xE6\24", IF_8086
|IF_SB
},
2257 {I_OUT
, 2, {IMMEDIATE
,REG_AX
,0}, "\320\1\xE7\24", IF_8086
|IF_SB
},
2258 {I_OUT
, 2, {IMMEDIATE
,REG_EAX
,0}, "\321\1\xE7\24", IF_386
|IF_SB
},
2259 {I_OUT
, 2, {REG_DX
,REG_AL
,0}, "\1\xEE", IF_8086
},
2260 {I_OUT
, 2, {REG_DX
,REG_AX
,0}, "\320\1\xEF", IF_8086
},
2261 {I_OUT
, 2, {REG_DX
,REG_EAX
,0}, "\321\1\xEF", IF_386
},
2265 static struct itemplate instrux_OUTSB
[] = {
2266 {I_OUTSB
, 0, {0,0,0}, "\1\x6E", IF_186
},
2270 static struct itemplate instrux_OUTSD
[] = {
2271 {I_OUTSD
, 0, {0,0,0}, "\321\1\x6F", IF_386
},
2275 static struct itemplate instrux_OUTSW
[] = {
2276 {I_OUTSW
, 0, {0,0,0}, "\320\1\x6F", IF_186
},
2280 static struct itemplate instrux_PACKSSDW
[] = {
2281 {I_PACKSSDW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x6B\110", IF_PENT
|IF_MMX
|IF_SM
},
2282 {I_PACKSSDW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x6B\110", IF_PENT
|IF_MMX
},
2283 {I_PACKSSDW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x6B\110", IF_WILLAMETTE
|IF_SSE2
},
2284 {I_PACKSSDW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x6B\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2288 static struct itemplate instrux_PACKSSWB
[] = {
2289 {I_PACKSSWB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x63\110", IF_PENT
|IF_MMX
|IF_SM
},
2290 {I_PACKSSWB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x63\110", IF_PENT
|IF_MMX
},
2291 {I_PACKSSWB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x63\110", IF_WILLAMETTE
|IF_SSE2
},
2292 {I_PACKSSWB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x63\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2296 static struct itemplate instrux_PACKUSWB
[] = {
2297 {I_PACKUSWB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x67\110", IF_PENT
|IF_MMX
|IF_SM
},
2298 {I_PACKUSWB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x67\110", IF_PENT
|IF_MMX
},
2299 {I_PACKUSWB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x67\110", IF_WILLAMETTE
|IF_SSE2
},
2300 {I_PACKUSWB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x67\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2304 static struct itemplate instrux_PADDB
[] = {
2305 {I_PADDB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xFC\110", IF_PENT
|IF_MMX
|IF_SM
},
2306 {I_PADDB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xFC\110", IF_PENT
|IF_MMX
},
2307 {I_PADDB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xFC\110", IF_WILLAMETTE
|IF_SSE2
},
2308 {I_PADDB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xFC\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2312 static struct itemplate instrux_PADDD
[] = {
2313 {I_PADDD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xFE\110", IF_PENT
|IF_MMX
|IF_SM
},
2314 {I_PADDD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xFE\110", IF_PENT
|IF_MMX
},
2315 {I_PADDD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xFE\110", IF_WILLAMETTE
|IF_SSE2
},
2316 {I_PADDD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xFE\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2320 static struct itemplate instrux_PADDQ
[] = {
2321 {I_PADDQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD4\110", IF_WILLAMETTE
|IF_SSE2
},
2322 {I_PADDQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD4\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2323 {I_PADDQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xD4\110", IF_WILLAMETTE
|IF_SSE2
},
2324 {I_PADDQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xD4\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2328 static struct itemplate instrux_PADDSB
[] = {
2329 {I_PADDSB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xEC\110", IF_PENT
|IF_MMX
|IF_SM
},
2330 {I_PADDSB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xEC\110", IF_PENT
|IF_MMX
},
2331 {I_PADDSB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xEC\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2332 {I_PADDSB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xEC\110", IF_WILLAMETTE
|IF_SSE2
},
2336 static struct itemplate instrux_PADDSIW
[] = {
2337 {I_PADDSIW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x51\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2338 {I_PADDSIW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x51\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
2342 static struct itemplate instrux_PADDSW
[] = {
2343 {I_PADDSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xED\110", IF_PENT
|IF_MMX
|IF_SM
},
2344 {I_PADDSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xED\110", IF_PENT
|IF_MMX
},
2345 {I_PADDSW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xED\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2346 {I_PADDSW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xED\110", IF_WILLAMETTE
|IF_SSE2
},
2350 static struct itemplate instrux_PADDUSB
[] = {
2351 {I_PADDUSB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDC\110", IF_PENT
|IF_MMX
|IF_SM
},
2352 {I_PADDUSB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDC\110", IF_PENT
|IF_MMX
},
2353 {I_PADDUSB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xDC\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2354 {I_PADDUSB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xDC\110", IF_WILLAMETTE
|IF_SSE2
},
2358 static struct itemplate instrux_PADDUSW
[] = {
2359 {I_PADDUSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDD\110", IF_PENT
|IF_MMX
|IF_SM
},
2360 {I_PADDUSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDD\110", IF_PENT
|IF_MMX
},
2361 {I_PADDUSW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xDD\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2362 {I_PADDUSW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xDD\110", IF_WILLAMETTE
|IF_SSE2
},
2366 static struct itemplate instrux_PADDW
[] = {
2367 {I_PADDW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xFD\110", IF_PENT
|IF_MMX
|IF_SM
},
2368 {I_PADDW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xFD\110", IF_PENT
|IF_MMX
},
2369 {I_PADDW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xFD\110", IF_WILLAMETTE
|IF_SSE2
},
2370 {I_PADDW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xFD\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2374 static struct itemplate instrux_PAND
[] = {
2375 {I_PAND
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDB\110", IF_PENT
|IF_MMX
|IF_SM
},
2376 {I_PAND
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDB\110", IF_PENT
|IF_MMX
},
2377 {I_PAND
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xDB\110", IF_WILLAMETTE
|IF_SSE2
},
2378 {I_PAND
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xDB\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2382 static struct itemplate instrux_PANDN
[] = {
2383 {I_PANDN
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDF\110", IF_PENT
|IF_MMX
|IF_SM
},
2384 {I_PANDN
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDF\110", IF_PENT
|IF_MMX
},
2385 {I_PANDN
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xDF\110", IF_WILLAMETTE
|IF_SSE2
},
2386 {I_PANDN
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xDF\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2390 static struct itemplate instrux_PAUSE
[] = {
2391 {I_PAUSE
, 0, {0,0,0}, "\333\1\x90", IF_WILLAMETTE
|IF_SSE2
},
2395 static struct itemplate instrux_PAVEB
[] = {
2396 {I_PAVEB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x50\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2397 {I_PAVEB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x50\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
2401 static struct itemplate instrux_PAVGB
[] = {
2402 {I_PAVGB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE0\110", IF_KATMAI
|IF_MMX
},
2403 {I_PAVGB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE0\110", IF_KATMAI
|IF_MMX
|IF_SM
},
2404 {I_PAVGB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xE0\110", IF_WILLAMETTE
|IF_SSE2
},
2405 {I_PAVGB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xE0\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2409 static struct itemplate instrux_PAVGUSB
[] = {
2410 {I_PAVGUSB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xBF", IF_PENT
|IF_3DNOW
|IF_SM
},
2411 {I_PAVGUSB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xBF", IF_PENT
|IF_3DNOW
},
2415 static struct itemplate instrux_PAVGW
[] = {
2416 {I_PAVGW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE3\110", IF_KATMAI
|IF_MMX
},
2417 {I_PAVGW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE3\110", IF_KATMAI
|IF_MMX
|IF_SM
},
2418 {I_PAVGW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xE3\110", IF_WILLAMETTE
|IF_SSE2
},
2419 {I_PAVGW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xE3\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2423 static struct itemplate instrux_PCMPEQB
[] = {
2424 {I_PCMPEQB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x74\110", IF_PENT
|IF_MMX
|IF_SM
},
2425 {I_PCMPEQB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x74\110", IF_PENT
|IF_MMX
},
2426 {I_PCMPEQB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x74\110", IF_WILLAMETTE
|IF_SSE2
},
2427 {I_PCMPEQB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x74\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2431 static struct itemplate instrux_PCMPEQD
[] = {
2432 {I_PCMPEQD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x76\110", IF_PENT
|IF_MMX
|IF_SM
},
2433 {I_PCMPEQD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x76\110", IF_PENT
|IF_MMX
},
2434 {I_PCMPEQD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x76\110", IF_WILLAMETTE
|IF_SSE2
},
2435 {I_PCMPEQD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x76\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2439 static struct itemplate instrux_PCMPEQW
[] = {
2440 {I_PCMPEQW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x75\110", IF_PENT
|IF_MMX
|IF_SM
},
2441 {I_PCMPEQW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x75\110", IF_PENT
|IF_MMX
},
2442 {I_PCMPEQW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x75\110", IF_WILLAMETTE
|IF_SSE2
},
2443 {I_PCMPEQW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x75\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2447 static struct itemplate instrux_PCMPGTB
[] = {
2448 {I_PCMPGTB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x64\110", IF_PENT
|IF_MMX
|IF_SM
},
2449 {I_PCMPGTB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x64\110", IF_PENT
|IF_MMX
},
2450 {I_PCMPGTB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x64\110", IF_WILLAMETTE
|IF_SSE2
},
2451 {I_PCMPGTB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x64\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2455 static struct itemplate instrux_PCMPGTD
[] = {
2456 {I_PCMPGTD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x66\110", IF_PENT
|IF_MMX
|IF_SM
},
2457 {I_PCMPGTD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x66\110", IF_PENT
|IF_MMX
},
2458 {I_PCMPGTD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x66\110", IF_WILLAMETTE
|IF_SSE2
},
2459 {I_PCMPGTD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x66\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2463 static struct itemplate instrux_PCMPGTW
[] = {
2464 {I_PCMPGTW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x65\110", IF_PENT
|IF_MMX
|IF_SM
},
2465 {I_PCMPGTW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x65\110", IF_PENT
|IF_MMX
},
2466 {I_PCMPGTW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x65\110", IF_WILLAMETTE
|IF_SSE2
},
2467 {I_PCMPGTW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x65\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2471 static struct itemplate instrux_PDISTIB
[] = {
2472 {I_PDISTIB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x54\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2476 static struct itemplate instrux_PEXTRW
[] = {
2477 {I_PEXTRW
, 3, {REG32
,MMXREG
,IMMEDIATE
}, "\2\x0F\xC5\110\26", IF_KATMAI
|IF_MMX
|IF_SB
|IF_AR2
},
2478 {I_PEXTRW
, 3, {REG32
,XMMREG
,IMMEDIATE
}, "\3\x66\x0F\xC5\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
2482 static struct itemplate instrux_PF2ID
[] = {
2483 {I_PF2ID
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x1D", IF_PENT
|IF_3DNOW
|IF_SM
},
2484 {I_PF2ID
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x1D", IF_PENT
|IF_3DNOW
},
2488 static struct itemplate instrux_PF2IW
[] = {
2489 {I_PF2IW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x1C", IF_PENT
|IF_3DNOW
|IF_SM
},
2490 {I_PF2IW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x1C", IF_PENT
|IF_3DNOW
},
2494 static struct itemplate instrux_PFACC
[] = {
2495 {I_PFACC
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xAE", IF_PENT
|IF_3DNOW
|IF_SM
},
2496 {I_PFACC
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xAE", IF_PENT
|IF_3DNOW
},
2500 static struct itemplate instrux_PFADD
[] = {
2501 {I_PFADD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x9E", IF_PENT
|IF_3DNOW
|IF_SM
},
2502 {I_PFADD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x9E", IF_PENT
|IF_3DNOW
},
2506 static struct itemplate instrux_PFCMPEQ
[] = {
2507 {I_PFCMPEQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xB0", IF_PENT
|IF_3DNOW
|IF_SM
},
2508 {I_PFCMPEQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xB0", IF_PENT
|IF_3DNOW
},
2512 static struct itemplate instrux_PFCMPGE
[] = {
2513 {I_PFCMPGE
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x90", IF_PENT
|IF_3DNOW
|IF_SM
},
2514 {I_PFCMPGE
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x90", IF_PENT
|IF_3DNOW
},
2518 static struct itemplate instrux_PFCMPGT
[] = {
2519 {I_PFCMPGT
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xA0", IF_PENT
|IF_3DNOW
|IF_SM
},
2520 {I_PFCMPGT
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xA0", IF_PENT
|IF_3DNOW
},
2524 static struct itemplate instrux_PFMAX
[] = {
2525 {I_PFMAX
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xA4", IF_PENT
|IF_3DNOW
|IF_SM
},
2526 {I_PFMAX
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xA4", IF_PENT
|IF_3DNOW
},
2530 static struct itemplate instrux_PFMIN
[] = {
2531 {I_PFMIN
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x94", IF_PENT
|IF_3DNOW
|IF_SM
},
2532 {I_PFMIN
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x94", IF_PENT
|IF_3DNOW
},
2536 static struct itemplate instrux_PFMUL
[] = {
2537 {I_PFMUL
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xB4", IF_PENT
|IF_3DNOW
|IF_SM
},
2538 {I_PFMUL
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xB4", IF_PENT
|IF_3DNOW
},
2542 static struct itemplate instrux_PFNACC
[] = {
2543 {I_PFNACC
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x8A", IF_PENT
|IF_3DNOW
|IF_SM
},
2544 {I_PFNACC
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x8A", IF_PENT
|IF_3DNOW
},
2548 static struct itemplate instrux_PFPNACC
[] = {
2549 {I_PFPNACC
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x8E", IF_PENT
|IF_3DNOW
|IF_SM
},
2550 {I_PFPNACC
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x8E", IF_PENT
|IF_3DNOW
},
2554 static struct itemplate instrux_PFRCP
[] = {
2555 {I_PFRCP
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x96", IF_PENT
|IF_3DNOW
|IF_SM
},
2556 {I_PFRCP
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x96", IF_PENT
|IF_3DNOW
},
2560 static struct itemplate instrux_PFRCPIT1
[] = {
2561 {I_PFRCPIT1
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xA6", IF_PENT
|IF_3DNOW
|IF_SM
},
2562 {I_PFRCPIT1
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xA6", IF_PENT
|IF_3DNOW
},
2566 static struct itemplate instrux_PFRCPIT2
[] = {
2567 {I_PFRCPIT2
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xB6", IF_PENT
|IF_3DNOW
|IF_SM
},
2568 {I_PFRCPIT2
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xB6", IF_PENT
|IF_3DNOW
},
2572 static struct itemplate instrux_PFRSQIT1
[] = {
2573 {I_PFRSQIT1
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xA7", IF_PENT
|IF_3DNOW
|IF_SM
},
2574 {I_PFRSQIT1
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xA7", IF_PENT
|IF_3DNOW
},
2578 static struct itemplate instrux_PFRSQRT
[] = {
2579 {I_PFRSQRT
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x97", IF_PENT
|IF_3DNOW
|IF_SM
},
2580 {I_PFRSQRT
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x97", IF_PENT
|IF_3DNOW
},
2584 static struct itemplate instrux_PFSUB
[] = {
2585 {I_PFSUB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x9A", IF_PENT
|IF_3DNOW
|IF_SM
},
2586 {I_PFSUB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x9A", IF_PENT
|IF_3DNOW
},
2590 static struct itemplate instrux_PFSUBR
[] = {
2591 {I_PFSUBR
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xAA", IF_PENT
|IF_3DNOW
|IF_SM
},
2592 {I_PFSUBR
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xAA", IF_PENT
|IF_3DNOW
},
2596 static struct itemplate instrux_PI2FD
[] = {
2597 {I_PI2FD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x0D", IF_PENT
|IF_3DNOW
|IF_SM
},
2598 {I_PI2FD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x0D", IF_PENT
|IF_3DNOW
},
2602 static struct itemplate instrux_PI2FW
[] = {
2603 {I_PI2FW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\x0C", IF_PENT
|IF_3DNOW
|IF_SM
},
2604 {I_PI2FW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\x0C", IF_PENT
|IF_3DNOW
},
2608 static struct itemplate instrux_PINSRW
[] = {
2609 {I_PINSRW
, 3, {MMXREG
,REG16
,IMMEDIATE
}, "\2\x0F\xC4\110\26", IF_KATMAI
|IF_MMX
|IF_SB
|IF_AR2
},
2610 {I_PINSRW
, 3, {MMXREG
,REG32
,IMMEDIATE
}, "\2\x0F\xC4\110\26", IF_KATMAI
|IF_MMX
|IF_SB
|IF_AR2
},
2611 {I_PINSRW
, 3, {MMXREG
,MEMORY
,IMMEDIATE
}, "\301\2\x0F\xC4\110\26", IF_KATMAI
|IF_MMX
|IF_SB
|IF_AR2
},
2612 {I_PINSRW
, 3, {MMXREG
,MEMORY
|BITS16
,IMMEDIATE
}, "\301\2\x0F\xC4\110\26", IF_KATMAI
|IF_MMX
|IF_SB
|IF_AR2
},
2613 {I_PINSRW
, 3, {XMMREG
,REG16
,IMMEDIATE
}, "\3\x66\x0F\xC4\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
2614 {I_PINSRW
, 3, {XMMREG
,REG32
,IMMEDIATE
}, "\3\x66\x0F\xC4\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
2615 {I_PINSRW
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\3\x66\x0F\xC4\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
2616 {I_PINSRW
, 3, {XMMREG
,MEMORY
|BITS16
,IMMEDIATE
}, "\301\3\x66\x0F\xC4\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
2620 static struct itemplate instrux_PMACHRIW
[] = {
2621 {I_PMACHRIW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5E\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2625 static struct itemplate instrux_PMADDWD
[] = {
2626 {I_PMADDWD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF5\110", IF_PENT
|IF_MMX
|IF_SM
},
2627 {I_PMADDWD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF5\110", IF_PENT
|IF_MMX
},
2628 {I_PMADDWD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xF5\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2629 {I_PMADDWD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xF5\110", IF_WILLAMETTE
|IF_SSE2
},
2633 static struct itemplate instrux_PMAGW
[] = {
2634 {I_PMAGW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x52\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2635 {I_PMAGW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x52\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
2639 static struct itemplate instrux_PMAXSW
[] = {
2640 {I_PMAXSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xEE\110", IF_KATMAI
|IF_MMX
},
2641 {I_PMAXSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xEE\110", IF_KATMAI
|IF_MMX
|IF_SM
},
2642 {I_PMAXSW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xEE\110", IF_WILLAMETTE
|IF_SSE2
},
2643 {I_PMAXSW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xEE\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2647 static struct itemplate instrux_PMAXUB
[] = {
2648 {I_PMAXUB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDE\110", IF_KATMAI
|IF_MMX
},
2649 {I_PMAXUB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDE\110", IF_KATMAI
|IF_MMX
|IF_SM
},
2650 {I_PMAXUB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xDE\110", IF_WILLAMETTE
|IF_SSE2
},
2651 {I_PMAXUB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xDE\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2655 static struct itemplate instrux_PMINSW
[] = {
2656 {I_PMINSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xEA\110", IF_KATMAI
|IF_MMX
},
2657 {I_PMINSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xEA\110", IF_KATMAI
|IF_MMX
|IF_SM
},
2658 {I_PMINSW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xEA\110", IF_WILLAMETTE
|IF_SSE2
},
2659 {I_PMINSW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xEA\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2663 static struct itemplate instrux_PMINUB
[] = {
2664 {I_PMINUB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDA\110", IF_KATMAI
|IF_MMX
},
2665 {I_PMINUB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDA\110", IF_KATMAI
|IF_MMX
|IF_SM
},
2666 {I_PMINUB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xDA\110", IF_WILLAMETTE
|IF_SSE2
},
2667 {I_PMINUB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xDA\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2671 static struct itemplate instrux_PMOVMSKB
[] = {
2672 {I_PMOVMSKB
, 2, {REG32
,MMXREG
,0}, "\2\x0F\xD7\110", IF_KATMAI
|IF_MMX
},
2673 {I_PMOVMSKB
, 2, {REG32
,XMMREG
,0}, "\3\x66\x0F\xD7\110", IF_WILLAMETTE
|IF_SSE2
},
2677 static struct itemplate instrux_PMULHRIW
[] = {
2678 {I_PMULHRIW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5D\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2679 {I_PMULHRIW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x5D\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
2683 static struct itemplate instrux_PMULHRWA
[] = {
2684 {I_PMULHRWA
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\1\xB7", IF_PENT
|IF_3DNOW
|IF_SM
},
2685 {I_PMULHRWA
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\1\xB7", IF_PENT
|IF_3DNOW
},
2689 static struct itemplate instrux_PMULHRWC
[] = {
2690 {I_PMULHRWC
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x59\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2691 {I_PMULHRWC
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x59\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
2695 static struct itemplate instrux_PMULHUW
[] = {
2696 {I_PMULHUW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE4\110", IF_KATMAI
|IF_MMX
},
2697 {I_PMULHUW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE4\110", IF_KATMAI
|IF_MMX
|IF_SM
},
2698 {I_PMULHUW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xE4\110", IF_WILLAMETTE
|IF_SSE2
},
2699 {I_PMULHUW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xE4\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2703 static struct itemplate instrux_PMULHW
[] = {
2704 {I_PMULHW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE5\110", IF_PENT
|IF_MMX
|IF_SM
},
2705 {I_PMULHW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE5\110", IF_PENT
|IF_MMX
},
2706 {I_PMULHW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xE5\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2707 {I_PMULHW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xE5\110", IF_WILLAMETTE
|IF_SSE2
},
2711 static struct itemplate instrux_PMULLW
[] = {
2712 {I_PMULLW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD5\110", IF_PENT
|IF_MMX
|IF_SM
},
2713 {I_PMULLW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD5\110", IF_PENT
|IF_MMX
},
2714 {I_PMULLW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xD5\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2715 {I_PMULLW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xD5\110", IF_WILLAMETTE
|IF_SSE2
},
2719 static struct itemplate instrux_PMULUDQ
[] = {
2720 {I_PMULUDQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF4\110", IF_WILLAMETTE
|IF_SSE2
},
2721 {I_PMULUDQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF4\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2722 {I_PMULUDQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xF4\110", IF_WILLAMETTE
|IF_SSE2
},
2723 {I_PMULUDQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xF4\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2727 static struct itemplate instrux_PMVGEZB
[] = {
2728 {I_PMVGEZB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5C\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2732 static struct itemplate instrux_PMVLZB
[] = {
2733 {I_PMVLZB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5B\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2737 static struct itemplate instrux_PMVNZB
[] = {
2738 {I_PMVNZB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5A\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2742 static struct itemplate instrux_PMVZB
[] = {
2743 {I_PMVZB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x58\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2747 static struct itemplate instrux_POP
[] = {
2748 {I_POP
, 1, {REG16
,0,0}, "\320\10\x58", IF_8086
},
2749 {I_POP
, 1, {REG32
,0,0}, "\321\10\x58", IF_386
},
2750 {I_POP
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\x8F\200", IF_8086
},
2751 {I_POP
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\x8F\200", IF_386
},
2752 {I_POP
, 1, {REG_CS
,0,0}, "\1\x0F", IF_8086
|IF_UNDOC
},
2753 {I_POP
, 1, {REG_DESS
,0,0}, "\4", IF_8086
},
2754 {I_POP
, 1, {REG_FSGS
,0,0}, "\1\x0F\5", IF_386
},
2758 static struct itemplate instrux_POPA
[] = {
2759 {I_POPA
, 0, {0,0,0}, "\322\1\x61", IF_186
},
2763 static struct itemplate instrux_POPAD
[] = {
2764 {I_POPAD
, 0, {0,0,0}, "\321\1\x61", IF_386
},
2768 static struct itemplate instrux_POPAW
[] = {
2769 {I_POPAW
, 0, {0,0,0}, "\320\1\x61", IF_186
},
2773 static struct itemplate instrux_POPF
[] = {
2774 {I_POPF
, 0, {0,0,0}, "\322\1\x9D", IF_8086
},
2778 static struct itemplate instrux_POPFD
[] = {
2779 {I_POPFD
, 0, {0,0,0}, "\321\1\x9D", IF_386
},
2783 static struct itemplate instrux_POPFW
[] = {
2784 {I_POPFW
, 0, {0,0,0}, "\320\1\x9D", IF_8086
},
2788 static struct itemplate instrux_POR
[] = {
2789 {I_POR
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xEB\110", IF_PENT
|IF_MMX
|IF_SM
},
2790 {I_POR
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xEB\110", IF_PENT
|IF_MMX
},
2791 {I_POR
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xEB\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2792 {I_POR
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xEB\110", IF_WILLAMETTE
|IF_SSE2
},
2796 static struct itemplate instrux_PREFETCH
[] = {
2797 {I_PREFETCH
, 1, {MEMORY
,0,0}, "\2\x0F\x0D\200", IF_PENT
|IF_3DNOW
|IF_SM
},
2801 static struct itemplate instrux_PREFETCHNTA
[] = {
2802 {I_PREFETCHNTA
, 1, {MEMORY
,0,0}, "\300\2\x0F\x18\200", IF_KATMAI
},
2806 static struct itemplate instrux_PREFETCHT0
[] = {
2807 {I_PREFETCHT0
, 1, {MEMORY
,0,0}, "\300\2\x0F\x18\201", IF_KATMAI
},
2811 static struct itemplate instrux_PREFETCHT1
[] = {
2812 {I_PREFETCHT1
, 1, {MEMORY
,0,0}, "\300\2\x0F\x18\202", IF_KATMAI
},
2816 static struct itemplate instrux_PREFETCHT2
[] = {
2817 {I_PREFETCHT2
, 1, {MEMORY
,0,0}, "\300\2\x0F\x18\203", IF_KATMAI
},
2821 static struct itemplate instrux_PREFETCHW
[] = {
2822 {I_PREFETCHW
, 1, {MEMORY
,0,0}, "\2\x0F\x0D\201", IF_PENT
|IF_3DNOW
|IF_SM
},
2826 static struct itemplate instrux_PSADBW
[] = {
2827 {I_PSADBW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF6\110", IF_KATMAI
|IF_MMX
},
2828 {I_PSADBW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF6\110", IF_KATMAI
|IF_MMX
|IF_SM
},
2829 {I_PSADBW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xF6\110", IF_WILLAMETTE
|IF_SSE2
},
2830 {I_PSADBW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xF6\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2834 static struct itemplate instrux_PSHUFD
[] = {
2835 {I_PSHUFD
, 3, {XMMREG
,XMMREG
,IMMEDIATE
}, "\3\x66\x0F\x70\110\22", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
2836 {I_PSHUFD
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\3\x66\x0F\x70\110\22", IF_WILLAMETTE
|IF_SSE2
|IF_SM2
|IF_SB
|IF_AR2
},
2840 static struct itemplate instrux_PSHUFHW
[] = {
2841 {I_PSHUFHW
, 3, {XMMREG
,XMMREG
,IMMEDIATE
}, "\333\2\x0F\x70\110\22", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
2842 {I_PSHUFHW
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\333\2\x0F\x70\110\22", IF_WILLAMETTE
|IF_SSE2
|IF_SM2
|IF_SB
|IF_AR2
},
2846 static struct itemplate instrux_PSHUFLW
[] = {
2847 {I_PSHUFLW
, 3, {XMMREG
,XMMREG
,IMMEDIATE
}, "\3\xF2\x0F\x70\110\22", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
2848 {I_PSHUFLW
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\3\xF2\x0F\x70\110\22", IF_WILLAMETTE
|IF_SSE2
|IF_SM2
|IF_SB
|IF_AR2
},
2852 static struct itemplate instrux_PSHUFW
[] = {
2853 {I_PSHUFW
, 3, {MMXREG
,MMXREG
,IMMEDIATE
}, "\2\x0F\x70\110\22", IF_KATMAI
|IF_MMX
|IF_SB
|IF_AR2
},
2854 {I_PSHUFW
, 3, {MMXREG
,MEMORY
,IMMEDIATE
}, "\301\2\x0F\x70\110\22", IF_KATMAI
|IF_MMX
|IF_SM2
|IF_SB
|IF_AR2
},
2858 static struct itemplate instrux_PSLLD
[] = {
2859 {I_PSLLD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF2\110", IF_PENT
|IF_MMX
|IF_SM
},
2860 {I_PSLLD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF2\110", IF_PENT
|IF_MMX
},
2861 {I_PSLLD
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x72\206\25", IF_PENT
|IF_MMX
},
2862 {I_PSLLD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xF2\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2863 {I_PSLLD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xF2\110", IF_WILLAMETTE
|IF_SSE2
},
2864 {I_PSLLD
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x72\206\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2868 static struct itemplate instrux_PSLLDQ
[] = {
2869 {I_PSLLDQ
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x73\207\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2873 static struct itemplate instrux_PSLLQ
[] = {
2874 {I_PSLLQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF3\110", IF_PENT
|IF_MMX
|IF_SM
},
2875 {I_PSLLQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF3\110", IF_PENT
|IF_MMX
},
2876 {I_PSLLQ
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x73\206\25", IF_PENT
|IF_MMX
},
2877 {I_PSLLQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xF3\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2878 {I_PSLLQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xF3\110", IF_WILLAMETTE
|IF_SSE2
},
2879 {I_PSLLQ
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x73\206\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2883 static struct itemplate instrux_PSLLW
[] = {
2884 {I_PSLLW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF1\110", IF_PENT
|IF_MMX
|IF_SM
},
2885 {I_PSLLW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF1\110", IF_PENT
|IF_MMX
},
2886 {I_PSLLW
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x71\206\25", IF_PENT
|IF_MMX
},
2887 {I_PSLLW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xF1\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2888 {I_PSLLW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xF1\110", IF_WILLAMETTE
|IF_SSE2
},
2889 {I_PSLLW
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x71\206\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2893 static struct itemplate instrux_PSRAD
[] = {
2894 {I_PSRAD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE2\110", IF_PENT
|IF_MMX
|IF_SM
},
2895 {I_PSRAD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE2\110", IF_PENT
|IF_MMX
},
2896 {I_PSRAD
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x72\204\25", IF_PENT
|IF_MMX
},
2897 {I_PSRAD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xE2\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2898 {I_PSRAD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xE2\110", IF_WILLAMETTE
|IF_SSE2
},
2899 {I_PSRAD
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x72\204\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2903 static struct itemplate instrux_PSRAW
[] = {
2904 {I_PSRAW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE1\110", IF_PENT
|IF_MMX
|IF_SM
},
2905 {I_PSRAW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE1\110", IF_PENT
|IF_MMX
},
2906 {I_PSRAW
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x71\204\25", IF_PENT
|IF_MMX
},
2907 {I_PSRAW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xE1\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2908 {I_PSRAW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xE1\110", IF_WILLAMETTE
|IF_SSE2
},
2909 {I_PSRAW
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x71\204\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2913 static struct itemplate instrux_PSRLD
[] = {
2914 {I_PSRLD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD2\110", IF_PENT
|IF_MMX
|IF_SM
},
2915 {I_PSRLD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD2\110", IF_PENT
|IF_MMX
},
2916 {I_PSRLD
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x72\202\25", IF_PENT
|IF_MMX
},
2917 {I_PSRLD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xD2\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2918 {I_PSRLD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xD2\110", IF_WILLAMETTE
|IF_SSE2
},
2919 {I_PSRLD
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x72\202\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2923 static struct itemplate instrux_PSRLDQ
[] = {
2924 {I_PSRLDQ
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x73\203\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2928 static struct itemplate instrux_PSRLQ
[] = {
2929 {I_PSRLQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD3\110", IF_PENT
|IF_MMX
|IF_SM
},
2930 {I_PSRLQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD3\110", IF_PENT
|IF_MMX
},
2931 {I_PSRLQ
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x73\202\25", IF_PENT
|IF_MMX
},
2932 {I_PSRLQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xD3\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2933 {I_PSRLQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xD3\110", IF_WILLAMETTE
|IF_SSE2
},
2934 {I_PSRLQ
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x73\202\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2938 static struct itemplate instrux_PSRLW
[] = {
2939 {I_PSRLW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD1\110", IF_PENT
|IF_MMX
|IF_SM
},
2940 {I_PSRLW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD1\110", IF_PENT
|IF_MMX
},
2941 {I_PSRLW
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x71\202\25", IF_PENT
|IF_MMX
},
2942 {I_PSRLW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xD1\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2943 {I_PSRLW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xD1\110", IF_WILLAMETTE
|IF_SSE2
},
2944 {I_PSRLW
, 2, {XMMREG
,IMMEDIATE
,0}, "\3\x66\x0F\x71\202\25", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR1
},
2948 static struct itemplate instrux_PSUBB
[] = {
2949 {I_PSUBB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF8\110", IF_PENT
|IF_MMX
|IF_SM
},
2950 {I_PSUBB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF8\110", IF_PENT
|IF_MMX
},
2951 {I_PSUBB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xF8\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2952 {I_PSUBB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xF8\110", IF_WILLAMETTE
|IF_SSE2
},
2956 static struct itemplate instrux_PSUBD
[] = {
2957 {I_PSUBD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xFA\110", IF_PENT
|IF_MMX
|IF_SM
},
2958 {I_PSUBD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xFA\110", IF_PENT
|IF_MMX
},
2959 {I_PSUBD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xFA\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2960 {I_PSUBD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xFA\110", IF_WILLAMETTE
|IF_SSE2
},
2964 static struct itemplate instrux_PSUBQ
[] = {
2965 {I_PSUBQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xFB\110", IF_WILLAMETTE
|IF_SSE2
},
2966 {I_PSUBQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xFB\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2967 {I_PSUBQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xFB\110", IF_WILLAMETTE
|IF_SSE2
},
2968 {I_PSUBQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xFB\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2972 static struct itemplate instrux_PSUBSB
[] = {
2973 {I_PSUBSB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE8\110", IF_PENT
|IF_MMX
|IF_SM
},
2974 {I_PSUBSB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE8\110", IF_PENT
|IF_MMX
},
2975 {I_PSUBSB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xE8\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2976 {I_PSUBSB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xE8\110", IF_WILLAMETTE
|IF_SSE2
},
2980 static struct itemplate instrux_PSUBSIW
[] = {
2981 {I_PSUBSIW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x55\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
2982 {I_PSUBSIW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x55\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
2986 static struct itemplate instrux_PSUBSW
[] = {
2987 {I_PSUBSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE9\110", IF_PENT
|IF_MMX
|IF_SM
},
2988 {I_PSUBSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE9\110", IF_PENT
|IF_MMX
},
2989 {I_PSUBSW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xE9\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2990 {I_PSUBSW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xE9\110", IF_WILLAMETTE
|IF_SSE2
},
2994 static struct itemplate instrux_PSUBUSB
[] = {
2995 {I_PSUBUSB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD8\110", IF_PENT
|IF_MMX
|IF_SM
},
2996 {I_PSUBUSB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD8\110", IF_PENT
|IF_MMX
},
2997 {I_PSUBUSB
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xD8\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
2998 {I_PSUBUSB
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xD8\110", IF_WILLAMETTE
|IF_SSE2
},
3002 static struct itemplate instrux_PSUBUSW
[] = {
3003 {I_PSUBUSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD9\110", IF_PENT
|IF_MMX
|IF_SM
},
3004 {I_PSUBUSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD9\110", IF_PENT
|IF_MMX
},
3005 {I_PSUBUSW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xD9\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3006 {I_PSUBUSW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xD9\110", IF_WILLAMETTE
|IF_SSE2
},
3010 static struct itemplate instrux_PSUBW
[] = {
3011 {I_PSUBW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF9\110", IF_PENT
|IF_MMX
|IF_SM
},
3012 {I_PSUBW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF9\110", IF_PENT
|IF_MMX
},
3013 {I_PSUBW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xF9\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3014 {I_PSUBW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xF9\110", IF_WILLAMETTE
|IF_SSE2
},
3018 static struct itemplate instrux_PSWAPD
[] = {
3019 {I_PSWAPD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x0F\110\01\xBB", IF_PENT
|IF_3DNOW
|IF_SM
},
3020 {I_PSWAPD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x0F\110\01\xBB", IF_PENT
|IF_3DNOW
},
3024 static struct itemplate instrux_PUNPCKHBW
[] = {
3025 {I_PUNPCKHBW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x68\110", IF_PENT
|IF_MMX
|IF_SM
},
3026 {I_PUNPCKHBW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x68\110", IF_PENT
|IF_MMX
},
3027 {I_PUNPCKHBW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x68\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3028 {I_PUNPCKHBW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x68\110", IF_WILLAMETTE
|IF_SSE2
},
3032 static struct itemplate instrux_PUNPCKHDQ
[] = {
3033 {I_PUNPCKHDQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x6A\110", IF_PENT
|IF_MMX
|IF_SM
},
3034 {I_PUNPCKHDQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x6A\110", IF_PENT
|IF_MMX
},
3035 {I_PUNPCKHDQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x6A\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3036 {I_PUNPCKHDQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x6A\110", IF_WILLAMETTE
|IF_SSE2
},
3040 static struct itemplate instrux_PUNPCKHQDQ
[] = {
3041 {I_PUNPCKHQDQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x6D\110", IF_WILLAMETTE
|IF_SSE2
},
3042 {I_PUNPCKHQDQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x6D\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3046 static struct itemplate instrux_PUNPCKHWD
[] = {
3047 {I_PUNPCKHWD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x69\110", IF_PENT
|IF_MMX
|IF_SM
},
3048 {I_PUNPCKHWD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x69\110", IF_PENT
|IF_MMX
},
3049 {I_PUNPCKHWD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x69\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3050 {I_PUNPCKHWD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x69\110", IF_WILLAMETTE
|IF_SSE2
},
3054 static struct itemplate instrux_PUNPCKLBW
[] = {
3055 {I_PUNPCKLBW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x60\110", IF_PENT
|IF_MMX
|IF_SM
},
3056 {I_PUNPCKLBW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x60\110", IF_PENT
|IF_MMX
},
3057 {I_PUNPCKLBW
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x60\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3058 {I_PUNPCKLBW
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x60\110", IF_WILLAMETTE
|IF_SSE2
},
3062 static struct itemplate instrux_PUNPCKLDQ
[] = {
3063 {I_PUNPCKLDQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x62\110", IF_PENT
|IF_MMX
|IF_SM
},
3064 {I_PUNPCKLDQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x62\110", IF_PENT
|IF_MMX
},
3065 {I_PUNPCKLDQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x62\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3066 {I_PUNPCKLDQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x62\110", IF_WILLAMETTE
|IF_SSE2
},
3070 static struct itemplate instrux_PUNPCKLQDQ
[] = {
3071 {I_PUNPCKLQDQ
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x6C\110", IF_WILLAMETTE
|IF_SSE2
},
3072 {I_PUNPCKLQDQ
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x6C\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3076 static struct itemplate instrux_PUNPCKLWD
[] = {
3077 {I_PUNPCKLWD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x61\110", IF_PENT
|IF_MMX
|IF_SM
},
3078 {I_PUNPCKLWD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x61\110", IF_PENT
|IF_MMX
},
3079 {I_PUNPCKLWD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x61\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3080 {I_PUNPCKLWD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x61\110", IF_WILLAMETTE
|IF_SSE2
},
3084 static struct itemplate instrux_PUSH
[] = {
3085 {I_PUSH
, 1, {REG16
,0,0}, "\320\10\x50", IF_8086
},
3086 {I_PUSH
, 1, {REG32
,0,0}, "\321\10\x50", IF_386
},
3087 {I_PUSH
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xFF\206", IF_8086
},
3088 {I_PUSH
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xFF\206", IF_386
},
3089 {I_PUSH
, 1, {REG_CS
,0,0}, "\6", IF_8086
},
3090 {I_PUSH
, 1, {REG_DESS
,0,0}, "\6", IF_8086
},
3091 {I_PUSH
, 1, {REG_FSGS
,0,0}, "\1\x0F\7", IF_386
},
3092 {I_PUSH
, 1, {IMMEDIATE
|BITS8
,0,0}, "\1\x6A\14", IF_186
},
3093 {I_PUSH
, 1, {SBYTE
,0,0}, "\1\x6A\14", IF_186
},
3094 {I_PUSH
, 1, {IMMEDIATE
|BITS16
,0,0}, "\320\133\1\x68\130", IF_186
},
3095 {I_PUSH
, 1, {IMMEDIATE
|BITS32
,0,0}, "\321\143\1\x68\140", IF_386
},
3096 {I_PUSH
, 1, {IMMEDIATE
,0,0}, "\1\x68\34", IF_186
},
3100 static struct itemplate instrux_PUSHA
[] = {
3101 {I_PUSHA
, 0, {0,0,0}, "\322\1\x60", IF_186
},
3105 static struct itemplate instrux_PUSHAD
[] = {
3106 {I_PUSHAD
, 0, {0,0,0}, "\321\1\x60", IF_386
},
3110 static struct itemplate instrux_PUSHAW
[] = {
3111 {I_PUSHAW
, 0, {0,0,0}, "\320\1\x60", IF_186
},
3115 static struct itemplate instrux_PUSHF
[] = {
3116 {I_PUSHF
, 0, {0,0,0}, "\322\1\x9C", IF_8086
},
3120 static struct itemplate instrux_PUSHFD
[] = {
3121 {I_PUSHFD
, 0, {0,0,0}, "\321\1\x9C", IF_386
},
3125 static struct itemplate instrux_PUSHFW
[] = {
3126 {I_PUSHFW
, 0, {0,0,0}, "\320\1\x9C", IF_8086
},
3130 static struct itemplate instrux_PXOR
[] = {
3131 {I_PXOR
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xEF\110", IF_PENT
|IF_MMX
|IF_SM
},
3132 {I_PXOR
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xEF\110", IF_PENT
|IF_MMX
},
3133 {I_PXOR
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\xEF\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3134 {I_PXOR
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\xEF\110", IF_WILLAMETTE
|IF_SSE2
},
3138 static struct itemplate instrux_RCL
[] = {
3139 {I_RCL
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\202", IF_8086
},
3140 {I_RCL
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\202", IF_8086
},
3141 {I_RCL
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\202\25", IF_186
|IF_SB
},
3142 {I_RCL
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\202", IF_8086
},
3143 {I_RCL
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\202", IF_8086
},
3144 {I_RCL
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\202\25", IF_186
|IF_SB
},
3145 {I_RCL
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\202", IF_386
},
3146 {I_RCL
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\202", IF_386
},
3147 {I_RCL
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\202\25", IF_386
|IF_SB
},
3151 static struct itemplate instrux_RCPPS
[] = {
3152 {I_RCPPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x53\110", IF_KATMAI
|IF_SSE
},
3153 {I_RCPPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x53\110", IF_KATMAI
|IF_SSE
},
3157 static struct itemplate instrux_RCPSS
[] = {
3158 {I_RCPSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x53\110", IF_KATMAI
|IF_SSE
},
3159 {I_RCPSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x53\110", IF_KATMAI
|IF_SSE
},
3163 static struct itemplate instrux_RCR
[] = {
3164 {I_RCR
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\203", IF_8086
},
3165 {I_RCR
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\203", IF_8086
},
3166 {I_RCR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\203\25", IF_186
|IF_SB
},
3167 {I_RCR
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\203", IF_8086
},
3168 {I_RCR
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\203", IF_8086
},
3169 {I_RCR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\203\25", IF_186
|IF_SB
},
3170 {I_RCR
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\203", IF_386
},
3171 {I_RCR
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\203", IF_386
},
3172 {I_RCR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\203\25", IF_386
|IF_SB
},
3176 static struct itemplate instrux_RDMSR
[] = {
3177 {I_RDMSR
, 0, {0,0,0}, "\2\x0F\x32", IF_PENT
|IF_PRIV
},
3181 static struct itemplate instrux_RDPMC
[] = {
3182 {I_RDPMC
, 0, {0,0,0}, "\2\x0F\x33", IF_P6
},
3186 static struct itemplate instrux_RDSHR
[] = {
3187 {I_RDSHR
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\2\x0F\x36\200", IF_P6
|IF_CYRIX
|IF_SMM
},
3191 static struct itemplate instrux_RDTSC
[] = {
3192 {I_RDTSC
, 0, {0,0,0}, "\2\x0F\x31", IF_PENT
},
3196 static struct itemplate instrux_RESB
[] = {
3197 {I_RESB
, 1, {IMMEDIATE
,0,0}, "\340", IF_8086
},
3201 static struct itemplate instrux_RESD
[] = {
3205 static struct itemplate instrux_RESQ
[] = {
3209 static struct itemplate instrux_REST
[] = {
3213 static struct itemplate instrux_RESW
[] = {
3217 static struct itemplate instrux_RET
[] = {
3218 {I_RET
, 0, {0,0,0}, "\1\xC3", IF_8086
},
3219 {I_RET
, 1, {IMMEDIATE
,0,0}, "\1\xC2\30", IF_8086
|IF_SW
},
3223 static struct itemplate instrux_RETF
[] = {
3224 {I_RETF
, 0, {0,0,0}, "\1\xCB", IF_8086
},
3225 {I_RETF
, 1, {IMMEDIATE
,0,0}, "\1\xCA\30", IF_8086
|IF_SW
},
3229 static struct itemplate instrux_RETN
[] = {
3230 {I_RETN
, 0, {0,0,0}, "\1\xC3", IF_8086
},
3231 {I_RETN
, 1, {IMMEDIATE
,0,0}, "\1\xC2\30", IF_8086
|IF_SW
},
3235 static struct itemplate instrux_ROL
[] = {
3236 {I_ROL
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\200", IF_8086
},
3237 {I_ROL
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\200", IF_8086
},
3238 {I_ROL
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\200\25", IF_186
|IF_SB
},
3239 {I_ROL
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\200", IF_8086
},
3240 {I_ROL
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\200", IF_8086
},
3241 {I_ROL
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\200\25", IF_186
|IF_SB
},
3242 {I_ROL
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\200", IF_386
},
3243 {I_ROL
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\200", IF_386
},
3244 {I_ROL
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\200\25", IF_386
|IF_SB
},
3248 static struct itemplate instrux_ROR
[] = {
3249 {I_ROR
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\201", IF_8086
},
3250 {I_ROR
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\201", IF_8086
},
3251 {I_ROR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\201\25", IF_186
|IF_SB
},
3252 {I_ROR
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\201", IF_8086
},
3253 {I_ROR
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\201", IF_8086
},
3254 {I_ROR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\201\25", IF_186
|IF_SB
},
3255 {I_ROR
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\201", IF_386
},
3256 {I_ROR
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\201", IF_386
},
3257 {I_ROR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\201\25", IF_386
|IF_SB
},
3261 static struct itemplate instrux_RSDC
[] = {
3262 {I_RSDC
, 2, {REG_SREG
,MEMORY
|BITS80
,0}, "\301\2\x0F\x79\110", IF_486
|IF_CYRIX
|IF_SMM
},
3266 static struct itemplate instrux_RSLDT
[] = {
3267 {I_RSLDT
, 1, {MEMORY
|BITS80
,0,0}, "\300\2\x0F\x7B\200", IF_486
|IF_CYRIX
|IF_SMM
},
3271 static struct itemplate instrux_RSM
[] = {
3272 {I_RSM
, 0, {0,0,0}, "\2\x0F\xAA", IF_PENT
|IF_SMM
},
3276 static struct itemplate instrux_RSQRTPS
[] = {
3277 {I_RSQRTPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x52\110", IF_KATMAI
|IF_SSE
},
3278 {I_RSQRTPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x52\110", IF_KATMAI
|IF_SSE
},
3282 static struct itemplate instrux_RSQRTSS
[] = {
3283 {I_RSQRTSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x52\110", IF_KATMAI
|IF_SSE
},
3284 {I_RSQRTSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x52\110", IF_KATMAI
|IF_SSE
},
3288 static struct itemplate instrux_RSTS
[] = {
3289 {I_RSTS
, 1, {MEMORY
|BITS80
,0,0}, "\300\2\x0F\x7D\200", IF_486
|IF_CYRIX
|IF_SMM
},
3293 static struct itemplate instrux_SAHF
[] = {
3294 {I_SAHF
, 0, {0,0,0}, "\1\x9E", IF_8086
},
3298 static struct itemplate instrux_SAL
[] = {
3299 {I_SAL
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\204", IF_8086
},
3300 {I_SAL
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\204", IF_8086
},
3301 {I_SAL
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\204\25", IF_186
|IF_SB
},
3302 {I_SAL
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\204", IF_8086
},
3303 {I_SAL
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\204", IF_8086
},
3304 {I_SAL
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\204\25", IF_186
|IF_SB
},
3305 {I_SAL
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\204", IF_386
},
3306 {I_SAL
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\204", IF_386
},
3307 {I_SAL
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\204\25", IF_386
|IF_SB
},
3311 static struct itemplate instrux_SALC
[] = {
3312 {I_SALC
, 0, {0,0,0}, "\1\xD6", IF_8086
|IF_UNDOC
},
3316 static struct itemplate instrux_SAR
[] = {
3317 {I_SAR
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\207", IF_8086
},
3318 {I_SAR
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\207", IF_8086
},
3319 {I_SAR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\207\25", IF_186
|IF_SB
},
3320 {I_SAR
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\207", IF_8086
},
3321 {I_SAR
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\207", IF_8086
},
3322 {I_SAR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\207\25", IF_186
|IF_SB
},
3323 {I_SAR
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\207", IF_386
},
3324 {I_SAR
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\207", IF_386
},
3325 {I_SAR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\207\25", IF_386
|IF_SB
},
3329 static struct itemplate instrux_SBB
[] = {
3330 {I_SBB
, 2, {MEMORY
,REG8
,0}, "\300\1\x18\101", IF_8086
|IF_SM
},
3331 {I_SBB
, 2, {REG8
,REG8
,0}, "\1\x18\101", IF_8086
},
3332 {I_SBB
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x19\101", IF_8086
|IF_SM
},
3333 {I_SBB
, 2, {REG16
,REG16
,0}, "\320\1\x19\101", IF_8086
},
3334 {I_SBB
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x19\101", IF_386
|IF_SM
},
3335 {I_SBB
, 2, {REG32
,REG32
,0}, "\321\1\x19\101", IF_386
},
3336 {I_SBB
, 2, {REG8
,MEMORY
,0}, "\301\1\x1A\110", IF_8086
|IF_SM
},
3337 {I_SBB
, 2, {REG8
,REG8
,0}, "\1\x1A\110", IF_8086
},
3338 {I_SBB
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x1B\110", IF_8086
|IF_SM
},
3339 {I_SBB
, 2, {REG16
,REG16
,0}, "\320\1\x1B\110", IF_8086
},
3340 {I_SBB
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x1B\110", IF_386
|IF_SM
},
3341 {I_SBB
, 2, {REG32
,REG32
,0}, "\321\1\x1B\110", IF_386
},
3342 {I_SBB
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\203\15", IF_8086
},
3343 {I_SBB
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\203\15", IF_386
},
3344 {I_SBB
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x1C\21", IF_8086
|IF_SM
},
3345 {I_SBB
, 2, {REG_AX
,SBYTE
,0}, "\320\1\x83\203\15", IF_8086
|IF_SM
},
3346 {I_SBB
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x1D\31", IF_8086
|IF_SM
},
3347 {I_SBB
, 2, {REG_EAX
,SBYTE
,0}, "\321\1\x83\203\15", IF_386
|IF_SM
},
3348 {I_SBB
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x1D\41", IF_386
|IF_SM
},
3349 {I_SBB
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\203\21", IF_8086
|IF_SM
},
3350 {I_SBB
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\134\1\x81\203\131", IF_8086
|IF_SM
},
3351 {I_SBB
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\144\1\x81\203\141", IF_386
|IF_SM
},
3352 {I_SBB
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\203\21", IF_8086
|IF_SM
},
3353 {I_SBB
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\134\1\x81\203\131", IF_8086
|IF_SM
},
3354 {I_SBB
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\144\1\x81\203\141", IF_386
|IF_SM
},
3358 static struct itemplate instrux_SCASB
[] = {
3359 {I_SCASB
, 0, {0,0,0}, "\332\1\xAE", IF_8086
},
3363 static struct itemplate instrux_SCASD
[] = {
3364 {I_SCASD
, 0, {0,0,0}, "\332\321\1\xAF", IF_386
},
3368 static struct itemplate instrux_SCASW
[] = {
3369 {I_SCASW
, 0, {0,0,0}, "\332\320\1\xAF", IF_8086
},
3373 static struct itemplate instrux_SFENCE
[] = {
3374 {I_SFENCE
, 0, {0,0,0}, "\3\x0F\xAE\xF8", IF_KATMAI
},
3378 static struct itemplate instrux_SGDT
[] = {
3379 {I_SGDT
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\200", IF_286
},
3383 static struct itemplate instrux_SHL
[] = {
3384 {I_SHL
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\204", IF_8086
},
3385 {I_SHL
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\204", IF_8086
},
3386 {I_SHL
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\204\25", IF_186
|IF_SB
},
3387 {I_SHL
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\204", IF_8086
},
3388 {I_SHL
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\204", IF_8086
},
3389 {I_SHL
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\204\25", IF_186
|IF_SB
},
3390 {I_SHL
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\204", IF_386
},
3391 {I_SHL
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\204", IF_386
},
3392 {I_SHL
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\204\25", IF_386
|IF_SB
},
3396 static struct itemplate instrux_SHLD
[] = {
3397 {I_SHLD
, 3, {MEMORY
,REG16
,IMMEDIATE
}, "\300\320\2\x0F\xA4\101\26", IF_386
|IF_SM2
|IF_SB
|IF_AR2
},
3398 {I_SHLD
, 3, {REG16
,REG16
,IMMEDIATE
}, "\320\2\x0F\xA4\101\26", IF_386
|IF_SM2
|IF_SB
|IF_AR2
},
3399 {I_SHLD
, 3, {MEMORY
,REG32
,IMMEDIATE
}, "\300\321\2\x0F\xA4\101\26", IF_386
|IF_SM2
|IF_SB
|IF_AR2
},
3400 {I_SHLD
, 3, {REG32
,REG32
,IMMEDIATE
}, "\321\2\x0F\xA4\101\26", IF_386
|IF_SM2
|IF_SB
|IF_AR2
},
3401 {I_SHLD
, 3, {MEMORY
,REG16
,REG_CL
}, "\300\320\2\x0F\xA5\101", IF_386
|IF_SM
},
3402 {I_SHLD
, 3, {REG16
,REG16
,REG_CL
}, "\320\2\x0F\xA5\101", IF_386
},
3403 {I_SHLD
, 3, {MEMORY
,REG32
,REG_CL
}, "\300\321\2\x0F\xA5\101", IF_386
|IF_SM
},
3404 {I_SHLD
, 3, {REG32
,REG32
,REG_CL
}, "\321\2\x0F\xA5\101", IF_386
},
3408 static struct itemplate instrux_SHR
[] = {
3409 {I_SHR
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\205", IF_8086
},
3410 {I_SHR
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\205", IF_8086
},
3411 {I_SHR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\205\25", IF_186
|IF_SB
},
3412 {I_SHR
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\205", IF_8086
},
3413 {I_SHR
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\205", IF_8086
},
3414 {I_SHR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\205\25", IF_186
|IF_SB
},
3415 {I_SHR
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\205", IF_386
},
3416 {I_SHR
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\205", IF_386
},
3417 {I_SHR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\205\25", IF_386
|IF_SB
},
3421 static struct itemplate instrux_SHRD
[] = {
3422 {I_SHRD
, 3, {MEMORY
,REG16
,IMMEDIATE
}, "\300\320\2\x0F\xAC\101\26", IF_386
|IF_SM2
|IF_SB
|IF_AR2
},
3423 {I_SHRD
, 3, {REG16
,REG16
,IMMEDIATE
}, "\320\2\x0F\xAC\101\26", IF_386
|IF_SM2
|IF_SB
|IF_AR2
},
3424 {I_SHRD
, 3, {MEMORY
,REG32
,IMMEDIATE
}, "\300\321\2\x0F\xAC\101\26", IF_386
|IF_SM2
|IF_SB
|IF_AR2
},
3425 {I_SHRD
, 3, {REG32
,REG32
,IMMEDIATE
}, "\321\2\x0F\xAC\101\26", IF_386
|IF_SM2
|IF_SB
|IF_AR2
},
3426 {I_SHRD
, 3, {MEMORY
,REG16
,REG_CL
}, "\300\320\2\x0F\xAD\101", IF_386
|IF_SM
},
3427 {I_SHRD
, 3, {REG16
,REG16
,REG_CL
}, "\320\2\x0F\xAD\101", IF_386
},
3428 {I_SHRD
, 3, {MEMORY
,REG32
,REG_CL
}, "\300\321\2\x0F\xAD\101", IF_386
|IF_SM
},
3429 {I_SHRD
, 3, {REG32
,REG32
,REG_CL
}, "\321\2\x0F\xAD\101", IF_386
},
3433 static struct itemplate instrux_SHUFPD
[] = {
3434 {I_SHUFPD
, 3, {XMMREG
,XMMREG
,IMMEDIATE
}, "\3\x66\x0F\xC6\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SB
|IF_AR2
},
3435 {I_SHUFPD
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\3\x66\x0F\xC6\110\26", IF_WILLAMETTE
|IF_SSE2
|IF_SM
|IF_SB
|IF_AR2
},
3439 static struct itemplate instrux_SHUFPS
[] = {
3440 {I_SHUFPS
, 3, {XMMREG
,MEMORY
,IMMEDIATE
}, "\301\2\x0F\xC6\110\26", IF_KATMAI
|IF_SSE
|IF_SB
|IF_AR2
},
3441 {I_SHUFPS
, 3, {XMMREG
,XMMREG
,IMMEDIATE
}, "\2\x0F\xC6\110\26", IF_KATMAI
|IF_SSE
|IF_SB
|IF_AR2
},
3445 static struct itemplate instrux_SIDT
[] = {
3446 {I_SIDT
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\201", IF_286
},
3450 static struct itemplate instrux_SLDT
[] = {
3451 {I_SLDT
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\200", IF_286
},
3452 {I_SLDT
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\200", IF_286
},
3453 {I_SLDT
, 1, {REG16
,0,0}, "\320\1\x0F\17\200", IF_286
},
3454 {I_SLDT
, 1, {REG32
,0,0}, "\321\1\x0F\17\200", IF_386
},
3458 static struct itemplate instrux_SMI
[] = {
3459 {I_SMI
, 0, {0,0,0}, "\1\xF1", IF_386
|IF_UNDOC
},
3463 static struct itemplate instrux_SMINT
[] = {
3464 {I_SMINT
, 0, {0,0,0}, "\2\x0F\x38", IF_P6
|IF_CYRIX
},
3468 static struct itemplate instrux_SMINTOLD
[] = {
3469 {I_SMINTOLD
, 0, {0,0,0}, "\2\x0F\x7E", IF_486
|IF_CYRIX
},
3473 static struct itemplate instrux_SMSW
[] = {
3474 {I_SMSW
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\204", IF_286
},
3475 {I_SMSW
, 1, {MEMORY
|BITS16
,0,0}, "\300\2\x0F\x01\204", IF_286
},
3476 {I_SMSW
, 1, {REG16
,0,0}, "\320\2\x0F\x01\204", IF_286
},
3477 {I_SMSW
, 1, {REG32
,0,0}, "\321\2\x0F\x01\204", IF_386
},
3481 static struct itemplate instrux_SQRTPD
[] = {
3482 {I_SQRTPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x51\110", IF_WILLAMETTE
|IF_SSE2
},
3483 {I_SQRTPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x51\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3487 static struct itemplate instrux_SQRTPS
[] = {
3488 {I_SQRTPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x51\110", IF_KATMAI
|IF_SSE
},
3489 {I_SQRTPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x51\110", IF_KATMAI
|IF_SSE
},
3493 static struct itemplate instrux_SQRTSD
[] = {
3494 {I_SQRTSD
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x51\110", IF_WILLAMETTE
|IF_SSE2
},
3495 {I_SQRTSD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x51\110", IF_WILLAMETTE
|IF_SSE2
},
3499 static struct itemplate instrux_SQRTSS
[] = {
3500 {I_SQRTSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x51\110", IF_KATMAI
|IF_SSE
},
3501 {I_SQRTSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x51\110", IF_KATMAI
|IF_SSE
},
3505 static struct itemplate instrux_STC
[] = {
3506 {I_STC
, 0, {0,0,0}, "\1\xF9", IF_8086
},
3510 static struct itemplate instrux_STD
[] = {
3511 {I_STD
, 0, {0,0,0}, "\1\xFD", IF_8086
},
3515 static struct itemplate instrux_STI
[] = {
3516 {I_STI
, 0, {0,0,0}, "\1\xFB", IF_8086
},
3520 static struct itemplate instrux_STMXCSR
[] = {
3521 {I_STMXCSR
, 1, {MEMORY
,0,0}, "\300\2\x0F\xAE\203", IF_KATMAI
|IF_SSE
|IF_SD
},
3525 static struct itemplate instrux_STOSB
[] = {
3526 {I_STOSB
, 0, {0,0,0}, "\1\xAA", IF_8086
},
3530 static struct itemplate instrux_STOSD
[] = {
3531 {I_STOSD
, 0, {0,0,0}, "\321\1\xAB", IF_386
},
3535 static struct itemplate instrux_STOSW
[] = {
3536 {I_STOSW
, 0, {0,0,0}, "\320\1\xAB", IF_8086
},
3540 static struct itemplate instrux_STR
[] = {
3541 {I_STR
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\201", IF_286
|IF_PROT
},
3542 {I_STR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\201", IF_286
|IF_PROT
},
3543 {I_STR
, 1, {REG16
,0,0}, "\320\1\x0F\17\201", IF_286
|IF_PROT
},
3544 {I_STR
, 1, {REG32
,0,0}, "\321\1\x0F\17\201", IF_386
|IF_PROT
},
3548 static struct itemplate instrux_SUB
[] = {
3549 {I_SUB
, 2, {MEMORY
,REG8
,0}, "\300\1\x28\101", IF_8086
|IF_SM
},
3550 {I_SUB
, 2, {REG8
,REG8
,0}, "\1\x28\101", IF_8086
},
3551 {I_SUB
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x29\101", IF_8086
|IF_SM
},
3552 {I_SUB
, 2, {REG16
,REG16
,0}, "\320\1\x29\101", IF_8086
},
3553 {I_SUB
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x29\101", IF_386
|IF_SM
},
3554 {I_SUB
, 2, {REG32
,REG32
,0}, "\321\1\x29\101", IF_386
},
3555 {I_SUB
, 2, {REG8
,MEMORY
,0}, "\301\1\x2A\110", IF_8086
|IF_SM
},
3556 {I_SUB
, 2, {REG8
,REG8
,0}, "\1\x2A\110", IF_8086
},
3557 {I_SUB
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x2B\110", IF_8086
|IF_SM
},
3558 {I_SUB
, 2, {REG16
,REG16
,0}, "\320\1\x2B\110", IF_8086
},
3559 {I_SUB
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x2B\110", IF_386
|IF_SM
},
3560 {I_SUB
, 2, {REG32
,REG32
,0}, "\321\1\x2B\110", IF_386
},
3561 {I_SUB
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\205\15", IF_8086
},
3562 {I_SUB
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\205\15", IF_386
},
3563 {I_SUB
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x2C\21", IF_8086
|IF_SM
},
3564 {I_SUB
, 2, {REG_AX
,SBYTE
,0}, "\320\1\x83\205\15", IF_8086
|IF_SM
},
3565 {I_SUB
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x2D\31", IF_8086
|IF_SM
},
3566 {I_SUB
, 2, {REG_EAX
,SBYTE
,0}, "\321\1\x83\205\15", IF_386
|IF_SM
},
3567 {I_SUB
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x2D\41", IF_386
|IF_SM
},
3568 {I_SUB
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\205\21", IF_8086
|IF_SM
},
3569 {I_SUB
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\134\1\x81\205\131", IF_8086
|IF_SM
},
3570 {I_SUB
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\144\1\x81\205\141", IF_386
|IF_SM
},
3571 {I_SUB
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\205\21", IF_8086
|IF_SM
},
3572 {I_SUB
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\134\1\x81\205\131", IF_8086
|IF_SM
},
3573 {I_SUB
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\144\1\x81\205\141", IF_386
|IF_SM
},
3577 static struct itemplate instrux_SUBPD
[] = {
3578 {I_SUBPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x5C\110", IF_WILLAMETTE
|IF_SSE2
},
3579 {I_SUBPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x5C\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3583 static struct itemplate instrux_SUBPS
[] = {
3584 {I_SUBPS
, 2, {XMMREG
,MEMORY
,0}, "\301\331\2\x0F\x5C\110", IF_KATMAI
|IF_SSE
},
3585 {I_SUBPS
, 2, {XMMREG
,XMMREG
,0}, "\331\2\x0F\x5C\110", IF_KATMAI
|IF_SSE
},
3589 static struct itemplate instrux_SUBSD
[] = {
3590 {I_SUBSD
, 2, {XMMREG
,XMMREG
,0}, "\3\xF2\x0F\x5C\110", IF_WILLAMETTE
|IF_SSE2
},
3591 {I_SUBSD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\xF2\x0F\x5C\110", IF_WILLAMETTE
|IF_SSE2
},
3595 static struct itemplate instrux_SUBSS
[] = {
3596 {I_SUBSS
, 2, {XMMREG
,MEMORY
,0}, "\301\333\2\x0F\x5C\110", IF_KATMAI
|IF_SSE
},
3597 {I_SUBSS
, 2, {XMMREG
,XMMREG
,0}, "\333\2\x0F\x5C\110", IF_KATMAI
|IF_SSE
},
3601 static struct itemplate instrux_SVDC
[] = {
3602 {I_SVDC
, 2, {MEMORY
|BITS80
,REG_SREG
,0}, "\300\2\x0F\x78\101", IF_486
|IF_CYRIX
|IF_SMM
},
3606 static struct itemplate instrux_SVLDT
[] = {
3607 {I_SVLDT
, 1, {MEMORY
|BITS80
,0,0}, "\300\2\x0F\x7A\200", IF_486
|IF_CYRIX
|IF_SMM
},
3611 static struct itemplate instrux_SVTS
[] = {
3612 {I_SVTS
, 1, {MEMORY
|BITS80
,0,0}, "\300\2\x0F\x7C\200", IF_486
|IF_CYRIX
|IF_SMM
},
3616 static struct itemplate instrux_SYSCALL
[] = {
3617 {I_SYSCALL
, 0, {0,0,0}, "\2\x0F\x05", IF_P6
|IF_AMD
},
3621 static struct itemplate instrux_SYSENTER
[] = {
3622 {I_SYSENTER
, 0, {0,0,0}, "\2\x0F\x34", IF_P6
},
3626 static struct itemplate instrux_SYSEXIT
[] = {
3627 {I_SYSEXIT
, 0, {0,0,0}, "\2\x0F\x35", IF_P6
|IF_PRIV
},
3631 static struct itemplate instrux_SYSRET
[] = {
3632 {I_SYSRET
, 0, {0,0,0}, "\2\x0F\x07", IF_P6
|IF_PRIV
|IF_AMD
},
3636 static struct itemplate instrux_TEST
[] = {
3637 {I_TEST
, 2, {MEMORY
,REG8
,0}, "\300\1\x84\101", IF_8086
|IF_SM
},
3638 {I_TEST
, 2, {REG8
,REG8
,0}, "\1\x84\101", IF_8086
},
3639 {I_TEST
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x85\101", IF_8086
|IF_SM
},
3640 {I_TEST
, 2, {REG16
,REG16
,0}, "\320\1\x85\101", IF_8086
},
3641 {I_TEST
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x85\101", IF_386
|IF_SM
},
3642 {I_TEST
, 2, {REG32
,REG32
,0}, "\321\1\x85\101", IF_386
},
3643 {I_TEST
, 2, {REG8
,MEMORY
,0}, "\301\1\x84\110", IF_8086
|IF_SM
},
3644 {I_TEST
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x85\110", IF_8086
|IF_SM
},
3645 {I_TEST
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x85\110", IF_386
|IF_SM
},
3646 {I_TEST
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\xA8\21", IF_8086
|IF_SM
},
3647 {I_TEST
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\xA9\31", IF_8086
|IF_SM
},
3648 {I_TEST
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\xA9\41", IF_386
|IF_SM
},
3649 {I_TEST
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xF6\200\21", IF_8086
|IF_SM
},
3650 {I_TEST
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xF7\200\31", IF_8086
|IF_SM
},
3651 {I_TEST
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xF7\200\41", IF_386
|IF_SM
},
3652 {I_TEST
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\xF6\200\21", IF_8086
|IF_SM
},
3653 {I_TEST
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\xF7\200\31", IF_8086
|IF_SM
},
3654 {I_TEST
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\xF7\200\41", IF_386
|IF_SM
},
3658 static struct itemplate instrux_UCOMISD
[] = {
3659 {I_UCOMISD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x2E\110", IF_WILLAMETTE
|IF_SSE2
},
3660 {I_UCOMISD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x2E\110", IF_WILLAMETTE
|IF_SSE2
},
3664 static struct itemplate instrux_UCOMISS
[] = {
3665 {I_UCOMISS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x2E\110", IF_KATMAI
|IF_SSE
},
3666 {I_UCOMISS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x2E\110", IF_KATMAI
|IF_SSE
},
3670 static struct itemplate instrux_UD0
[] = {
3671 {I_UD0
, 0, {0,0,0}, "\2\x0F\xFF", IF_286
|IF_UNDOC
},
3675 static struct itemplate instrux_UD1
[] = {
3676 {I_UD1
, 0, {0,0,0}, "\2\x0F\xB9", IF_286
|IF_UNDOC
},
3680 static struct itemplate instrux_UD2
[] = {
3681 {I_UD2
, 0, {0,0,0}, "\2\x0F\x0B", IF_286
},
3685 static struct itemplate instrux_UMOV
[] = {
3686 {I_UMOV
, 2, {MEMORY
,REG8
,0}, "\300\2\x0F\x10\101", IF_386
|IF_UNDOC
|IF_SM
},
3687 {I_UMOV
, 2, {REG8
,REG8
,0}, "\2\x0F\x10\101", IF_386
|IF_UNDOC
},
3688 {I_UMOV
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\x11\101", IF_386
|IF_UNDOC
|IF_SM
},
3689 {I_UMOV
, 2, {REG16
,REG16
,0}, "\320\2\x0F\x11\101", IF_386
|IF_UNDOC
},
3690 {I_UMOV
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\x11\101", IF_386
|IF_UNDOC
|IF_SM
},
3691 {I_UMOV
, 2, {REG32
,REG32
,0}, "\321\2\x0F\x11\101", IF_386
|IF_UNDOC
},
3692 {I_UMOV
, 2, {REG8
,MEMORY
,0}, "\301\2\x0F\x12\110", IF_386
|IF_UNDOC
|IF_SM
},
3693 {I_UMOV
, 2, {REG8
,REG8
,0}, "\2\x0F\x12\110", IF_386
|IF_UNDOC
},
3694 {I_UMOV
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\x13\110", IF_386
|IF_UNDOC
|IF_SM
},
3695 {I_UMOV
, 2, {REG16
,REG16
,0}, "\320\2\x0F\x13\110", IF_386
|IF_UNDOC
},
3696 {I_UMOV
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\x13\110", IF_386
|IF_UNDOC
|IF_SM
},
3697 {I_UMOV
, 2, {REG32
,REG32
,0}, "\321\2\x0F\x13\110", IF_386
|IF_UNDOC
},
3701 static struct itemplate instrux_UNPCKHPD
[] = {
3702 {I_UNPCKHPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x15\110", IF_WILLAMETTE
|IF_SSE2
},
3703 {I_UNPCKHPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x15\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3707 static struct itemplate instrux_UNPCKHPS
[] = {
3708 {I_UNPCKHPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x15\110", IF_KATMAI
|IF_SSE
},
3709 {I_UNPCKHPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x15\110", IF_KATMAI
|IF_SSE
},
3713 static struct itemplate instrux_UNPCKLPD
[] = {
3714 {I_UNPCKLPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x14\110", IF_WILLAMETTE
|IF_SSE2
},
3715 {I_UNPCKLPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x14\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3719 static struct itemplate instrux_UNPCKLPS
[] = {
3720 {I_UNPCKLPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x14\110", IF_KATMAI
|IF_SSE
},
3721 {I_UNPCKLPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x14\110", IF_KATMAI
|IF_SSE
},
3725 static struct itemplate instrux_VERR
[] = {
3726 {I_VERR
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\204", IF_286
|IF_PROT
},
3727 {I_VERR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\204", IF_286
|IF_PROT
},
3728 {I_VERR
, 1, {REG16
,0,0}, "\1\x0F\17\204", IF_286
|IF_PROT
},
3732 static struct itemplate instrux_VERW
[] = {
3733 {I_VERW
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\205", IF_286
|IF_PROT
},
3734 {I_VERW
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\205", IF_286
|IF_PROT
},
3735 {I_VERW
, 1, {REG16
,0,0}, "\1\x0F\17\205", IF_286
|IF_PROT
},
3739 static struct itemplate instrux_WAIT
[] = {
3740 {I_WAIT
, 0, {0,0,0}, "\1\x9B", IF_8086
},
3744 static struct itemplate instrux_WBINVD
[] = {
3745 {I_WBINVD
, 0, {0,0,0}, "\2\x0F\x09", IF_486
|IF_PRIV
},
3749 static struct itemplate instrux_WRMSR
[] = {
3750 {I_WRMSR
, 0, {0,0,0}, "\2\x0F\x30", IF_PENT
|IF_PRIV
},
3754 static struct itemplate instrux_WRSHR
[] = {
3755 {I_WRSHR
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\2\x0F\x37\200", IF_P6
|IF_CYRIX
|IF_SMM
},
3759 static struct itemplate instrux_XADD
[] = {
3760 {I_XADD
, 2, {MEMORY
,REG8
,0}, "\300\2\x0F\xC0\101", IF_486
|IF_SM
},
3761 {I_XADD
, 2, {REG8
,REG8
,0}, "\2\x0F\xC0\101", IF_486
},
3762 {I_XADD
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xC1\101", IF_486
|IF_SM
},
3763 {I_XADD
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xC1\101", IF_486
},
3764 {I_XADD
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xC1\101", IF_486
|IF_SM
},
3765 {I_XADD
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xC1\101", IF_486
},
3769 static struct itemplate instrux_XBTS
[] = {
3770 {I_XBTS
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xA6\110", IF_386
|IF_SW
|IF_UNDOC
},
3771 {I_XBTS
, 2, {REG16
,REG16
,0}, "\320\2\x0F\xA6\110", IF_386
|IF_UNDOC
},
3772 {I_XBTS
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xA6\110", IF_386
|IF_SD
|IF_UNDOC
},
3773 {I_XBTS
, 2, {REG32
,REG32
,0}, "\321\2\x0F\xA6\110", IF_386
|IF_UNDOC
},
3777 static struct itemplate instrux_XCHG
[] = {
3778 {I_XCHG
, 2, {REG_AX
,REG16
,0}, "\320\11\x90", IF_8086
},
3779 {I_XCHG
, 2, {REG_EAX
,REG32
,0}, "\321\11\x90", IF_386
},
3780 {I_XCHG
, 2, {REG16
,REG_AX
,0}, "\320\10\x90", IF_8086
},
3781 {I_XCHG
, 2, {REG32
,REG_EAX
,0}, "\321\10\x90", IF_386
},
3782 {I_XCHG
, 2, {REG8
,MEMORY
,0}, "\301\1\x86\110", IF_8086
|IF_SM
},
3783 {I_XCHG
, 2, {REG8
,REG8
,0}, "\1\x86\110", IF_8086
},
3784 {I_XCHG
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x87\110", IF_8086
|IF_SM
},
3785 {I_XCHG
, 2, {REG16
,REG16
,0}, "\320\1\x87\110", IF_8086
},
3786 {I_XCHG
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x87\110", IF_386
|IF_SM
},
3787 {I_XCHG
, 2, {REG32
,REG32
,0}, "\321\1\x87\110", IF_386
},
3788 {I_XCHG
, 2, {MEMORY
,REG8
,0}, "\300\1\x86\101", IF_8086
|IF_SM
},
3789 {I_XCHG
, 2, {REG8
,REG8
,0}, "\1\x86\101", IF_8086
},
3790 {I_XCHG
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x87\101", IF_8086
|IF_SM
},
3791 {I_XCHG
, 2, {REG16
,REG16
,0}, "\320\1\x87\101", IF_8086
},
3792 {I_XCHG
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x87\101", IF_386
|IF_SM
},
3793 {I_XCHG
, 2, {REG32
,REG32
,0}, "\321\1\x87\101", IF_386
},
3797 static struct itemplate instrux_XLAT
[] = {
3798 {I_XLAT
, 0, {0,0,0}, "\1\xD7", IF_8086
},
3802 static struct itemplate instrux_XLATB
[] = {
3803 {I_XLATB
, 0, {0,0,0}, "\1\xD7", IF_8086
},
3807 static struct itemplate instrux_XOR
[] = {
3808 {I_XOR
, 2, {MEMORY
,REG8
,0}, "\300\1\x30\101", IF_8086
|IF_SM
},
3809 {I_XOR
, 2, {REG8
,REG8
,0}, "\1\x30\101", IF_8086
},
3810 {I_XOR
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x31\101", IF_8086
|IF_SM
},
3811 {I_XOR
, 2, {REG16
,REG16
,0}, "\320\1\x31\101", IF_8086
},
3812 {I_XOR
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x31\101", IF_386
|IF_SM
},
3813 {I_XOR
, 2, {REG32
,REG32
,0}, "\321\1\x31\101", IF_386
},
3814 {I_XOR
, 2, {REG8
,MEMORY
,0}, "\301\1\x32\110", IF_8086
|IF_SM
},
3815 {I_XOR
, 2, {REG8
,REG8
,0}, "\1\x32\110", IF_8086
},
3816 {I_XOR
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x33\110", IF_8086
|IF_SM
},
3817 {I_XOR
, 2, {REG16
,REG16
,0}, "\320\1\x33\110", IF_8086
},
3818 {I_XOR
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x33\110", IF_386
|IF_SM
},
3819 {I_XOR
, 2, {REG32
,REG32
,0}, "\321\1\x33\110", IF_386
},
3820 {I_XOR
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\206\15", IF_8086
},
3821 {I_XOR
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\206\15", IF_386
},
3822 {I_XOR
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x34\21", IF_8086
|IF_SM
},
3823 {I_XOR
, 2, {REG_AX
,SBYTE
,0}, "\320\1\x83\206\15", IF_8086
|IF_SM
},
3824 {I_XOR
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x35\31", IF_8086
|IF_SM
},
3825 {I_XOR
, 2, {REG_EAX
,SBYTE
,0}, "\321\1\x83\206\15", IF_386
|IF_SM
},
3826 {I_XOR
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x35\41", IF_386
|IF_SM
},
3827 {I_XOR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\206\21", IF_8086
|IF_SM
},
3828 {I_XOR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\134\1\x81\206\131", IF_8086
|IF_SM
},
3829 {I_XOR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\144\1\x81\206\141", IF_386
|IF_SM
},
3830 {I_XOR
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\206\21", IF_8086
|IF_SM
},
3831 {I_XOR
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\134\1\x81\206\131", IF_8086
|IF_SM
},
3832 {I_XOR
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\144\1\x81\206\141", IF_386
|IF_SM
},
3836 static struct itemplate instrux_XORPD
[] = {
3837 {I_XORPD
, 2, {XMMREG
,XMMREG
,0}, "\3\x66\x0F\x57\110", IF_WILLAMETTE
|IF_SSE2
},
3838 {I_XORPD
, 2, {XMMREG
,MEMORY
,0}, "\301\3\x66\x0F\x57\110", IF_WILLAMETTE
|IF_SSE2
|IF_SM
},
3842 static struct itemplate instrux_XORPS
[] = {
3843 {I_XORPS
, 2, {XMMREG
,MEMORY
,0}, "\301\2\x0F\x57\110", IF_KATMAI
|IF_SSE
},
3844 {I_XORPS
, 2, {XMMREG
,XMMREG
,0}, "\2\x0F\x57\110", IF_KATMAI
|IF_SSE
},
3848 static struct itemplate instrux_XSTORE
[] = {
3849 {I_XSTORE
, 0, {0,0,0}, "\3\x0F\xA7\xC0", IF_P6
|IF_CYRIX
},
3853 static struct itemplate instrux_CMOVcc
[] = {
3854 {I_CMOVcc
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x0F\330\x40\110", IF_P6
|IF_SM
},
3855 {I_CMOVcc
, 2, {REG16
,REG16
,0}, "\320\1\x0F\330\x40\110", IF_P6
},
3856 {I_CMOVcc
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x0F\330\x40\110", IF_P6
|IF_SM
},
3857 {I_CMOVcc
, 2, {REG32
,REG32
,0}, "\321\1\x0F\330\x40\110", IF_P6
},
3861 static struct itemplate instrux_Jcc
[] = {
3862 {I_Jcc
, 1, {IMMEDIATE
|NEAR
,0,0}, "\322\1\x0F\330\x80\64", IF_386
},
3863 {I_Jcc
, 1, {IMMEDIATE
|BITS16
|NEAR
,0,0}, "\320\1\x0F\330\x80\64", IF_386
},
3864 {I_Jcc
, 1, {IMMEDIATE
|BITS32
|NEAR
,0,0}, "\321\1\x0F\330\x80\64", IF_386
},
3865 {I_Jcc
, 1, {IMMEDIATE
|SHORT
,0,0}, "\330\x70\50", IF_8086
},
3866 {I_Jcc
, 1, {IMMEDIATE
,0,0}, "\370\330\x70\50", IF_8086
},
3867 {I_Jcc
, 1, {IMMEDIATE
,0,0}, "\1\x0F\330\x80\64", IF_386
},
3868 {I_Jcc
, 1, {IMMEDIATE
,0,0}, "\330\x71\373\1\xE9\64", IF_8086
},
3869 {I_Jcc
, 1, {IMMEDIATE
,0,0}, "\330\x70\50", IF_8086
},
3873 static struct itemplate instrux_SETcc
[] = {
3874 {I_SETcc
, 1, {MEMORY
,0,0}, "\300\1\x0F\330\x90\200", IF_386
|IF_SB
},
3875 {I_SETcc
, 1, {REG8
,0,0}, "\300\1\x0F\330\x90\200", IF_386
},
3879 struct itemplate
*nasm_instructions
[] = {
4298 instrux_PREFETCHNTA
,