2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
7 * Reserved. This file contains Original Code and/or Modifications of
8 * Original Code as defined in and that are subject to the Apple Public
9 * Source License Version 1.1 (the "License"). You may not use this file
10 * except in compliance with the License. Please obtain a copy of the
11 * License at http://www.apple.com/publicsource and read it before using
14 * The Original Code and all software distributed under the License are
15 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
19 * License for the specific language governing rights and limitations
22 * @APPLE_LICENSE_HEADER_END@
24 /* This file auto-generated from insns.dat by insns.pl - don't edit it */
30 static struct itemplate instrux_AAA
[] = {
31 {I_AAA
, 0, {0,0,0}, "\1\x37", IF_8086
},
35 static struct itemplate instrux_AAD
[] = {
36 {I_AAD
, 0, {0,0,0}, "\2\xD5\x0A", IF_8086
},
37 {I_AAD
, 1, {IMMEDIATE
,0,0}, "\1\xD5\24", IF_8086
},
41 static struct itemplate instrux_AAM
[] = {
42 {I_AAM
, 0, {0,0,0}, "\2\xD4\x0A", IF_8086
},
43 {I_AAM
, 1, {IMMEDIATE
,0,0}, "\1\xD4\24", IF_8086
},
47 static struct itemplate instrux_AAS
[] = {
48 {I_AAS
, 0, {0,0,0}, "\1\x3F", IF_8086
},
52 static struct itemplate instrux_ADC
[] = {
53 {I_ADC
, 2, {MEMORY
,REG8
,0}, "\300\1\x10\101", IF_8086
|IF_SM
},
54 {I_ADC
, 2, {REG8
,REG8
,0}, "\300\1\x10\101", IF_8086
},
55 {I_ADC
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x11\101", IF_8086
|IF_SM
},
56 {I_ADC
, 2, {REG16
,REG16
,0}, "\320\300\1\x11\101", IF_8086
},
57 {I_ADC
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x11\101", IF_386
|IF_SM
},
58 {I_ADC
, 2, {REG32
,REG32
,0}, "\321\300\1\x11\101", IF_386
},
59 {I_ADC
, 2, {REG8
,MEMORY
,0}, "\301\1\x12\110", IF_8086
|IF_SM
},
60 {I_ADC
, 2, {REG8
,REG8
,0}, "\301\1\x12\110", IF_8086
},
61 {I_ADC
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x13\110", IF_8086
|IF_SM
},
62 {I_ADC
, 2, {REG16
,REG16
,0}, "\320\301\1\x13\110", IF_8086
},
63 {I_ADC
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x13\110", IF_386
|IF_SM
},
64 {I_ADC
, 2, {REG32
,REG32
,0}, "\321\301\1\x13\110", IF_386
},
65 {I_ADC
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\202\15", IF_8086
},
66 {I_ADC
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\202\15", IF_386
},
67 {I_ADC
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x14\21", IF_8086
|IF_SM
},
68 {I_ADC
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x15\31", IF_8086
|IF_SM
},
69 {I_ADC
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x15\41", IF_386
|IF_SM
},
70 {I_ADC
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\202\21", IF_8086
|IF_SM
},
71 {I_ADC
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\x81\202\31", IF_8086
|IF_SM
},
72 {I_ADC
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\x81\202\41", IF_386
|IF_SM
},
73 {I_ADC
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\202\21", IF_8086
|IF_SM
},
74 {I_ADC
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\x81\202\31", IF_8086
|IF_SM
},
75 {I_ADC
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\x81\202\41", IF_386
|IF_SM
},
79 static struct itemplate instrux_ADD
[] = {
80 {I_ADD
, 2, {MEMORY
,REG8
,0}, "\300\17\101", IF_8086
|IF_SM
},
81 {I_ADD
, 2, {REG8
,REG8
,0}, "\300\17\101", IF_8086
},
82 {I_ADD
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x01\101", IF_8086
|IF_SM
},
83 {I_ADD
, 2, {REG16
,REG16
,0}, "\320\300\1\x01\101", IF_8086
},
84 {I_ADD
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x01\101", IF_386
|IF_SM
},
85 {I_ADD
, 2, {REG32
,REG32
,0}, "\321\300\1\x01\101", IF_386
},
86 {I_ADD
, 2, {REG8
,MEMORY
,0}, "\301\1\x02\110", IF_8086
|IF_SM
},
87 {I_ADD
, 2, {REG8
,REG8
,0}, "\301\1\x02\110", IF_8086
},
88 {I_ADD
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x03\110", IF_8086
|IF_SM
},
89 {I_ADD
, 2, {REG16
,REG16
,0}, "\320\301\1\x03\110", IF_8086
},
90 {I_ADD
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x03\110", IF_386
|IF_SM
},
91 {I_ADD
, 2, {REG32
,REG32
,0}, "\321\301\1\x03\110", IF_386
},
92 {I_ADD
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\200\15", IF_8086
},
93 {I_ADD
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\200\15", IF_386
},
94 {I_ADD
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x04\21", IF_8086
|IF_SM
},
95 {I_ADD
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x05\31", IF_8086
|IF_SM
},
96 {I_ADD
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x05\41", IF_386
|IF_SM
},
97 {I_ADD
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\200\21", IF_8086
|IF_SM
},
98 {I_ADD
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\x81\200\31", IF_8086
|IF_SM
},
99 {I_ADD
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\x81\200\41", IF_386
|IF_SM
},
100 {I_ADD
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\200\21", IF_8086
|IF_SM
},
101 {I_ADD
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\x81\200\31", IF_8086
|IF_SM
},
102 {I_ADD
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\x81\200\41", IF_386
|IF_SM
},
106 static struct itemplate instrux_AND
[] = {
107 {I_AND
, 2, {MEMORY
,REG8
,0}, "\300\1\x20\101", IF_8086
|IF_SM
},
108 {I_AND
, 2, {REG8
,REG8
,0}, "\300\1\x20\101", IF_8086
},
109 {I_AND
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x21\101", IF_8086
|IF_SM
},
110 {I_AND
, 2, {REG16
,REG16
,0}, "\320\300\1\x21\101", IF_8086
},
111 {I_AND
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x21\101", IF_386
|IF_SM
},
112 {I_AND
, 2, {REG32
,REG32
,0}, "\321\300\1\x21\101", IF_386
},
113 {I_AND
, 2, {REG8
,MEMORY
,0}, "\301\1\x22\110", IF_8086
|IF_SM
},
114 {I_AND
, 2, {REG8
,REG8
,0}, "\301\1\x22\110", IF_8086
},
115 {I_AND
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x23\110", IF_8086
|IF_SM
},
116 {I_AND
, 2, {REG16
,REG16
,0}, "\320\301\1\x23\110", IF_8086
},
117 {I_AND
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x23\110", IF_386
|IF_SM
},
118 {I_AND
, 2, {REG32
,REG32
,0}, "\321\301\1\x23\110", IF_386
},
119 {I_AND
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\204\15", IF_8086
},
120 {I_AND
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\204\15", IF_386
},
121 {I_AND
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x24\21", IF_8086
|IF_SM
},
122 {I_AND
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x25\31", IF_8086
|IF_SM
},
123 {I_AND
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x25\41", IF_386
|IF_SM
},
124 {I_AND
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\204\21", IF_8086
|IF_SM
},
125 {I_AND
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\x81\204\31", IF_8086
|IF_SM
},
126 {I_AND
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\x81\204\41", IF_386
|IF_SM
},
127 {I_AND
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\204\21", IF_8086
|IF_SM
},
128 {I_AND
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\x81\204\31", IF_8086
|IF_SM
},
129 {I_AND
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\x81\204\41", IF_386
|IF_SM
},
133 static struct itemplate instrux_ARPL
[] = {
134 {I_ARPL
, 2, {MEMORY
,REG16
,0}, "\300\1\x63\101", IF_286
|IF_PRIV
|IF_SM
},
135 {I_ARPL
, 2, {REG16
,REG16
,0}, "\300\1\x63\101", IF_286
|IF_PRIV
},
139 static struct itemplate instrux_BOUND
[] = {
140 {I_BOUND
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x62\110", IF_186
},
141 {I_BOUND
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x62\110", IF_386
},
145 static struct itemplate instrux_BSF
[] = {
146 {I_BSF
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xBC\110", IF_386
|IF_SM
},
147 {I_BSF
, 2, {REG16
,REG16
,0}, "\320\301\2\x0F\xBC\110", IF_386
},
148 {I_BSF
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xBC\110", IF_386
|IF_SM
},
149 {I_BSF
, 2, {REG32
,REG32
,0}, "\321\301\2\x0F\xBC\110", IF_386
},
153 static struct itemplate instrux_BSR
[] = {
154 {I_BSR
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xBD\110", IF_386
|IF_SM
},
155 {I_BSR
, 2, {REG16
,REG16
,0}, "\320\301\2\x0F\xBD\110", IF_386
},
156 {I_BSR
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xBD\110", IF_386
|IF_SM
},
157 {I_BSR
, 2, {REG32
,REG32
,0}, "\321\301\2\x0F\xBD\110", IF_386
},
161 static struct itemplate instrux_BSWAP
[] = {
162 {I_BSWAP
, 1, {REG32
,0,0}, "\321\1\x0F\10\xC8", IF_486
},
166 static struct itemplate instrux_BT
[] = {
167 {I_BT
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xA3\101", IF_386
|IF_SM
},
168 {I_BT
, 2, {REG16
,REG16
,0}, "\320\300\2\x0F\xA3\101", IF_386
},
169 {I_BT
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xA3\101", IF_386
|IF_SM
},
170 {I_BT
, 2, {REG32
,REG32
,0}, "\321\300\2\x0F\xA3\101", IF_386
},
171 {I_BT
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\2\x0F\xBA\204\25", IF_386
},
172 {I_BT
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\2\x0F\xBA\204\25", IF_386
},
176 static struct itemplate instrux_BTC
[] = {
177 {I_BTC
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xBB\101", IF_386
|IF_SM
},
178 {I_BTC
, 2, {REG16
,REG16
,0}, "\320\300\2\x0F\xBB\101", IF_386
},
179 {I_BTC
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xBB\101", IF_386
|IF_SM
},
180 {I_BTC
, 2, {REG32
,REG32
,0}, "\321\300\2\x0F\xBB\101", IF_386
},
181 {I_BTC
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\2\x0F\xBA\207\25", IF_386
},
182 {I_BTC
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\2\x0F\xBA\207\25", IF_386
},
186 static struct itemplate instrux_BTR
[] = {
187 {I_BTR
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xB3\101", IF_386
|IF_SM
},
188 {I_BTR
, 2, {REG16
,REG16
,0}, "\320\300\2\x0F\xB3\101", IF_386
},
189 {I_BTR
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xB3\101", IF_386
|IF_SM
},
190 {I_BTR
, 2, {REG32
,REG32
,0}, "\321\300\2\x0F\xB3\101", IF_386
},
191 {I_BTR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\2\x0F\xBA\206\25", IF_386
},
192 {I_BTR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\2\x0F\xBA\206\25", IF_386
},
196 static struct itemplate instrux_BTS
[] = {
197 {I_BTS
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xAB\101", IF_386
|IF_SM
},
198 {I_BTS
, 2, {REG16
,REG16
,0}, "\320\300\2\x0F\xAB\101", IF_386
},
199 {I_BTS
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xAB\101", IF_386
|IF_SM
},
200 {I_BTS
, 2, {REG32
,REG32
,0}, "\321\300\2\x0F\xAB\101", IF_386
},
201 {I_BTS
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\2\x0F\xBA\205\25", IF_386
},
202 {I_BTS
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\2\x0F\xBA\205\25", IF_386
},
206 static struct itemplate instrux_CALL
[] = {
207 {I_CALL
, 1, {IMMEDIATE
,0,0}, "\322\1\xE8\64", IF_8086
},
208 {I_CALL
, 1, {IMMEDIATE
|FAR
,0,0}, "\322\1\x9A\34\37", IF_8086
},
209 {I_CALL
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
,0}, "\322\1\x9A\35\30", IF_8086
},
210 {I_CALL
, 2, {IMMEDIATE
|BITS16
|COLON
,IMMEDIATE
,0}, "\320\1\x9A\31\30", IF_8086
},
211 {I_CALL
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
|BITS16
,0}, "\320\1\x9A\31\30", IF_8086
},
212 {I_CALL
, 2, {IMMEDIATE
|BITS32
|COLON
,IMMEDIATE
,0}, "\321\1\x9A\41\30", IF_386
},
213 {I_CALL
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
|BITS32
,0}, "\321\1\x9A\41\30", IF_386
},
214 {I_CALL
, 1, {MEMORY
|FAR
,0,0}, "\322\300\1\xFF\203", IF_8086
},
215 {I_CALL
, 1, {MEMORY
|BITS16
|FAR
,0,0}, "\320\300\1\xFF\203", IF_8086
},
216 {I_CALL
, 1, {MEMORY
|BITS32
|FAR
,0,0}, "\321\300\1\xFF\203", IF_386
},
217 {I_CALL
, 1, {MEMORY
|NEAR
,0,0}, "\322\300\1\xFF\202", IF_8086
},
218 {I_CALL
, 1, {MEMORY
|BITS16
|NEAR
,0,0}, "\320\300\1\xFF\202", IF_8086
},
219 {I_CALL
, 1, {MEMORY
|BITS32
|NEAR
,0,0}, "\321\300\1\xFF\202", IF_386
},
220 {I_CALL
, 1, {REG16
,0,0}, "\320\300\1\xFF\202", IF_8086
},
221 {I_CALL
, 1, {REG32
,0,0}, "\321\300\1\xFF\202", IF_386
},
222 {I_CALL
, 1, {MEMORY
,0,0}, "\322\300\1\xFF\202", IF_8086
},
223 {I_CALL
, 1, {MEMORY
|BITS16
,0,0}, "\320\300\1\xFF\202", IF_8086
},
224 {I_CALL
, 1, {MEMORY
|BITS32
,0,0}, "\321\300\1\xFF\202", IF_386
},
228 static struct itemplate instrux_CBW
[] = {
229 {I_CBW
, 0, {0,0,0}, "\320\1\x98", IF_8086
},
233 static struct itemplate instrux_CDQ
[] = {
234 {I_CDQ
, 0, {0,0,0}, "\321\1\x99", IF_386
},
238 static struct itemplate instrux_CLC
[] = {
239 {I_CLC
, 0, {0,0,0}, "\1\xF8", IF_8086
},
243 static struct itemplate instrux_CLD
[] = {
244 {I_CLD
, 0, {0,0,0}, "\1\xFC", IF_8086
},
248 static struct itemplate instrux_CLI
[] = {
249 {I_CLI
, 0, {0,0,0}, "\1\xFA", IF_8086
},
253 static struct itemplate instrux_CLTS
[] = {
254 {I_CLTS
, 0, {0,0,0}, "\2\x0F\x06", IF_286
|IF_PRIV
},
258 static struct itemplate instrux_CMC
[] = {
259 {I_CMC
, 0, {0,0,0}, "\1\xF5", IF_8086
},
263 static struct itemplate instrux_CMP
[] = {
264 {I_CMP
, 2, {MEMORY
,REG8
,0}, "\300\1\x38\101", IF_8086
|IF_SM
},
265 {I_CMP
, 2, {REG8
,REG8
,0}, "\300\1\x38\101", IF_8086
},
266 {I_CMP
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x39\101", IF_8086
|IF_SM
},
267 {I_CMP
, 2, {REG16
,REG16
,0}, "\320\300\1\x39\101", IF_8086
},
268 {I_CMP
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x39\101", IF_386
|IF_SM
},
269 {I_CMP
, 2, {REG32
,REG32
,0}, "\321\300\1\x39\101", IF_386
},
270 {I_CMP
, 2, {REG8
,MEMORY
,0}, "\301\1\x3A\110", IF_8086
|IF_SM
},
271 {I_CMP
, 2, {REG8
,REG8
,0}, "\301\1\x3A\110", IF_8086
},
272 {I_CMP
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x3B\110", IF_8086
|IF_SM
},
273 {I_CMP
, 2, {REG16
,REG16
,0}, "\320\301\1\x3B\110", IF_8086
},
274 {I_CMP
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x3B\110", IF_386
|IF_SM
},
275 {I_CMP
, 2, {REG32
,REG32
,0}, "\321\301\1\x3B\110", IF_386
},
276 {I_CMP
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\207\15", IF_8086
},
277 {I_CMP
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\207\15", IF_386
},
278 {I_CMP
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x3C\21", IF_8086
|IF_SM
},
279 {I_CMP
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x3D\31", IF_8086
|IF_SM
},
280 {I_CMP
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x3D\41", IF_386
|IF_SM
},
281 {I_CMP
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\207\21", IF_8086
|IF_SM
},
282 {I_CMP
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\x81\207\31", IF_8086
|IF_SM
},
283 {I_CMP
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\x81\207\41", IF_386
|IF_SM
},
284 {I_CMP
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\207\21", IF_8086
|IF_SM
},
285 {I_CMP
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\x81\207\31", IF_8086
|IF_SM
},
286 {I_CMP
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\x81\207\41", IF_386
|IF_SM
},
290 static struct itemplate instrux_CMPSB
[] = {
291 {I_CMPSB
, 0, {0,0,0}, "\1\xA6", IF_8086
},
295 static struct itemplate instrux_CMPSD
[] = {
296 {I_CMPSD
, 0, {0,0,0}, "\321\1\xA7", IF_386
},
300 static struct itemplate instrux_CMPSW
[] = {
301 {I_CMPSW
, 0, {0,0,0}, "\320\1\xA7", IF_8086
},
305 static struct itemplate instrux_CMPXCHG
[] = {
306 {I_CMPXCHG
, 2, {MEMORY
,REG8
,0}, "\300\2\x0F\xB0\101", IF_PENT
|IF_SM
},
307 {I_CMPXCHG
, 2, {REG8
,REG8
,0}, "\300\2\x0F\xB0\101", IF_PENT
},
308 {I_CMPXCHG
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xB1\101", IF_PENT
|IF_SM
},
309 {I_CMPXCHG
, 2, {REG16
,REG16
,0}, "\320\300\2\x0F\xB1\101", IF_PENT
},
310 {I_CMPXCHG
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xB1\101", IF_PENT
|IF_SM
},
311 {I_CMPXCHG
, 2, {REG32
,REG32
,0}, "\321\300\2\x0F\xB1\101", IF_PENT
},
315 static struct itemplate instrux_CMPXCHG486
[] = {
316 {I_CMPXCHG486
, 2, {MEMORY
,REG8
,0}, "\300\2\x0F\xA6\101", IF_486
|IF_SM
|IF_UNDOC
},
317 {I_CMPXCHG486
, 2, {REG8
,REG8
,0}, "\300\2\x0F\xA6\101", IF_486
|IF_UNDOC
},
318 {I_CMPXCHG486
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xA7\101", IF_486
|IF_SM
|IF_UNDOC
},
319 {I_CMPXCHG486
, 2, {REG16
,REG16
,0}, "\320\300\2\x0F\xA7\101", IF_486
|IF_UNDOC
},
320 {I_CMPXCHG486
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xA7\101", IF_486
|IF_SM
|IF_UNDOC
},
321 {I_CMPXCHG486
, 2, {REG32
,REG32
,0}, "\321\300\2\x0F\xA7\101", IF_486
|IF_UNDOC
},
325 static struct itemplate instrux_CMPXCHG8B
[] = {
326 {I_CMPXCHG8B
, 1, {MEMORY
,0,0}, "\300\2\x0F\xC7\201", IF_PENT
},
330 static struct itemplate instrux_CPUID
[] = {
331 {I_CPUID
, 0, {0,0,0}, "\2\x0F\xA2", IF_PENT
},
335 static struct itemplate instrux_CWD
[] = {
336 {I_CWD
, 0, {0,0,0}, "\320\1\x99", IF_8086
},
340 static struct itemplate instrux_CWDE
[] = {
341 {I_CWDE
, 0, {0,0,0}, "\321\1\x98", IF_386
},
345 static struct itemplate instrux_DAA
[] = {
346 {I_DAA
, 0, {0,0,0}, "\1\x27", IF_8086
},
350 static struct itemplate instrux_DAS
[] = {
351 {I_DAS
, 0, {0,0,0}, "\1\x2F", IF_8086
},
355 static struct itemplate instrux_DB
[] = {
359 static struct itemplate instrux_DD
[] = {
363 static struct itemplate instrux_DEC
[] = {
364 {I_DEC
, 1, {REG16
,0,0}, "\320\10\x48", IF_8086
},
365 {I_DEC
, 1, {REG32
,0,0}, "\321\10\x48", IF_386
},
366 {I_DEC
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xFE\201", IF_8086
},
367 {I_DEC
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xFF\201", IF_8086
},
368 {I_DEC
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xFF\201", IF_386
},
372 static struct itemplate instrux_DIV
[] = {
373 {I_DIV
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\206", IF_8086
},
374 {I_DIV
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\206", IF_8086
},
375 {I_DIV
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\206", IF_386
},
379 static struct itemplate instrux_DQ
[] = {
383 static struct itemplate instrux_DT
[] = {
387 static struct itemplate instrux_DW
[] = {
391 static struct itemplate instrux_EMMS
[] = {
392 {I_EMMS
, 0, {0,0,0}, "\2\x0F\x77", IF_PENT
|IF_MMX
},
396 static struct itemplate instrux_ENTER
[] = {
397 {I_ENTER
, 2, {IMMEDIATE
,IMMEDIATE
,0}, "\1\xC8\30\25", IF_186
},
401 static struct itemplate instrux_EQU
[] = {
402 {I_EQU
, 1, {IMMEDIATE
,0,0}, "\0", IF_8086
},
403 {I_EQU
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
,0}, "\0", IF_8086
},
407 static struct itemplate instrux_F2XM1
[] = {
408 {I_F2XM1
, 0, {0,0,0}, "\2\xD9\xF0", IF_8086
|IF_FPU
},
412 static struct itemplate instrux_FABS
[] = {
413 {I_FABS
, 0, {0,0,0}, "\2\xD9\xE1", IF_8086
|IF_FPU
},
417 static struct itemplate instrux_FADD
[] = {
418 {I_FADD
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\200", IF_8086
|IF_FPU
},
419 {I_FADD
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\200", IF_8086
|IF_FPU
},
420 {I_FADD
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xC0", IF_8086
|IF_FPU
},
421 {I_FADD
, 1, {FPUREG
,0,0}, "\1\xD8\10\xC0", IF_8086
|IF_FPU
},
422 {I_FADD
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xC0", IF_8086
|IF_FPU
},
423 {I_FADD
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xC0", IF_8086
|IF_FPU
},
427 static struct itemplate instrux_FADDP
[] = {
428 {I_FADDP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xC0", IF_8086
|IF_FPU
},
429 {I_FADDP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xC0", IF_8086
|IF_FPU
},
433 static struct itemplate instrux_FBLD
[] = {
434 {I_FBLD
, 1, {MEMORY
|BITS80
,0,0}, "\300\1\xDF\204", IF_8086
|IF_FPU
},
435 {I_FBLD
, 1, {MEMORY
,0,0}, "\300\1\xDF\204", IF_8086
|IF_FPU
},
439 static struct itemplate instrux_FBSTP
[] = {
440 {I_FBSTP
, 1, {MEMORY
|BITS80
,0,0}, "\300\1\xDF\206", IF_8086
|IF_FPU
},
441 {I_FBSTP
, 1, {MEMORY
,0,0}, "\300\1\xDF\206", IF_8086
|IF_FPU
},
445 static struct itemplate instrux_FCHS
[] = {
446 {I_FCHS
, 0, {0,0,0}, "\2\xD9\xE0", IF_8086
|IF_FPU
},
450 static struct itemplate instrux_FCLEX
[] = {
451 {I_FCLEX
, 0, {0,0,0}, "\3\x9B\xDB\xE2", IF_8086
|IF_FPU
},
455 static struct itemplate instrux_FCMOVB
[] = {
456 {I_FCMOVB
, 1, {FPUREG
,0,0}, "\1\xDA\10\xC0", IF_P6
|IF_FPU
},
457 {I_FCMOVB
, 2, {FPU0
,FPUREG
,0}, "\1\xDA\11\xC0", IF_P6
|IF_FPU
},
461 static struct itemplate instrux_FCMOVBE
[] = {
462 {I_FCMOVBE
, 1, {FPUREG
,0,0}, "\1\xDA\10\xD0", IF_P6
|IF_FPU
},
463 {I_FCMOVBE
, 2, {FPU0
,FPUREG
,0}, "\1\xDA\11\xD0", IF_P6
|IF_FPU
},
467 static struct itemplate instrux_FCMOVE
[] = {
468 {I_FCMOVE
, 1, {FPUREG
,0,0}, "\1\xDA\10\xC8", IF_P6
|IF_FPU
},
469 {I_FCMOVE
, 2, {FPU0
,FPUREG
,0}, "\1\xDA\11\xC8", IF_P6
|IF_FPU
},
473 static struct itemplate instrux_FCMOVNB
[] = {
474 {I_FCMOVNB
, 1, {FPUREG
,0,0}, "\1\xDB\10\xC0", IF_P6
|IF_FPU
},
475 {I_FCMOVNB
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xC0", IF_P6
|IF_FPU
},
479 static struct itemplate instrux_FCMOVNBE
[] = {
480 {I_FCMOVNBE
, 1, {FPUREG
,0,0}, "\1\xDB\10\xD0", IF_P6
|IF_FPU
},
481 {I_FCMOVNBE
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xD0", IF_P6
|IF_FPU
},
485 static struct itemplate instrux_FCMOVNE
[] = {
486 {I_FCMOVNE
, 1, {FPUREG
,0,0}, "\1\xDB\10\xC8", IF_P6
|IF_FPU
},
487 {I_FCMOVNE
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xC8", IF_P6
|IF_FPU
},
491 static struct itemplate instrux_FCMOVNU
[] = {
492 {I_FCMOVNU
, 1, {FPUREG
,0,0}, "\1\xDB\10\xD8", IF_P6
|IF_FPU
},
493 {I_FCMOVNU
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xD8", IF_P6
|IF_FPU
},
497 static struct itemplate instrux_FCMOVU
[] = {
498 {I_FCMOVU
, 1, {FPUREG
,0,0}, "\1\xDA\10\xD8", IF_P6
|IF_FPU
},
499 {I_FCMOVU
, 2, {FPU0
,FPUREG
,0}, "\1\xDA\11\xD8", IF_P6
|IF_FPU
},
503 static struct itemplate instrux_FCOM
[] = {
504 {I_FCOM
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\202", IF_8086
|IF_FPU
},
505 {I_FCOM
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\202", IF_8086
|IF_FPU
},
506 {I_FCOM
, 1, {FPUREG
,0,0}, "\1\xD8\10\xD0", IF_8086
|IF_FPU
},
507 {I_FCOM
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xD0", IF_8086
|IF_FPU
},
511 static struct itemplate instrux_FCOMI
[] = {
512 {I_FCOMI
, 1, {FPUREG
,0,0}, "\1\xDB\10\xF0", IF_P6
|IF_FPU
},
513 {I_FCOMI
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xF0", IF_P6
|IF_FPU
},
517 static struct itemplate instrux_FCOMIP
[] = {
518 {I_FCOMIP
, 1, {FPUREG
,0,0}, "\1\xDF\10\xF0", IF_P6
|IF_FPU
},
519 {I_FCOMIP
, 2, {FPU0
,FPUREG
,0}, "\1\xDF\11\xF0", IF_P6
|IF_FPU
},
523 static struct itemplate instrux_FCOMP
[] = {
524 {I_FCOMP
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\203", IF_8086
|IF_FPU
},
525 {I_FCOMP
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\203", IF_8086
|IF_FPU
},
526 {I_FCOMP
, 1, {FPUREG
,0,0}, "\1\xD8\10\xD8", IF_8086
|IF_FPU
},
527 {I_FCOMP
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xD8", IF_8086
|IF_FPU
},
531 static struct itemplate instrux_FCOMPP
[] = {
532 {I_FCOMPP
, 0, {0,0,0}, "\2\xDE\xD9", IF_8086
|IF_FPU
},
536 static struct itemplate instrux_FCOS
[] = {
537 {I_FCOS
, 0, {0,0,0}, "\2\xD9\xFF", IF_386
|IF_FPU
},
541 static struct itemplate instrux_FDECSTP
[] = {
542 {I_FDECSTP
, 0, {0,0,0}, "\2\xD9\xF6", IF_8086
|IF_FPU
},
546 static struct itemplate instrux_FDISI
[] = {
547 {I_FDISI
, 0, {0,0,0}, "\3\x9B\xDB\xE1", IF_8086
|IF_FPU
},
551 static struct itemplate instrux_FDIV
[] = {
552 {I_FDIV
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\206", IF_8086
|IF_FPU
},
553 {I_FDIV
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\206", IF_8086
|IF_FPU
},
554 {I_FDIV
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xF8", IF_8086
|IF_FPU
},
555 {I_FDIV
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xF8", IF_8086
|IF_FPU
},
556 {I_FDIV
, 1, {FPUREG
,0,0}, "\1\xD8\10\xF0", IF_8086
|IF_FPU
},
557 {I_FDIV
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xF0", IF_8086
|IF_FPU
},
561 static struct itemplate instrux_FDIVP
[] = {
562 {I_FDIVP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xF8", IF_8086
|IF_FPU
},
563 {I_FDIVP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xF8", IF_8086
|IF_FPU
},
567 static struct itemplate instrux_FDIVR
[] = {
568 {I_FDIVR
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\207", IF_8086
|IF_FPU
},
569 {I_FDIVR
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\207", IF_8086
|IF_FPU
},
570 {I_FDIVR
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xF0", IF_8086
|IF_FPU
},
571 {I_FDIVR
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xF0", IF_8086
|IF_FPU
},
572 {I_FDIVR
, 1, {FPUREG
,0,0}, "\1\xD8\10\xF8", IF_8086
|IF_FPU
},
573 {I_FDIVR
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xF8", IF_8086
|IF_FPU
},
577 static struct itemplate instrux_FDIVRP
[] = {
578 {I_FDIVRP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xF0", IF_8086
|IF_FPU
},
579 {I_FDIVRP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xF0", IF_8086
|IF_FPU
},
583 static struct itemplate instrux_FENI
[] = {
584 {I_FENI
, 0, {0,0,0}, "\3\x9B\xDB\xE0", IF_8086
|IF_FPU
},
588 static struct itemplate instrux_FFREE
[] = {
589 {I_FFREE
, 1, {FPUREG
,0,0}, "\1\xDD\10\xC0", IF_8086
|IF_FPU
},
593 static struct itemplate instrux_FIADD
[] = {
594 {I_FIADD
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\200", IF_8086
|IF_FPU
},
595 {I_FIADD
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\200", IF_8086
|IF_FPU
},
599 static struct itemplate instrux_FICOM
[] = {
600 {I_FICOM
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\202", IF_8086
|IF_FPU
},
601 {I_FICOM
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\202", IF_8086
|IF_FPU
},
605 static struct itemplate instrux_FICOMP
[] = {
606 {I_FICOMP
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\203", IF_8086
|IF_FPU
},
607 {I_FICOMP
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\203", IF_8086
|IF_FPU
},
611 static struct itemplate instrux_FIDIV
[] = {
612 {I_FIDIV
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\206", IF_8086
|IF_FPU
},
613 {I_FIDIV
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\206", IF_8086
|IF_FPU
},
617 static struct itemplate instrux_FIDIVR
[] = {
618 {I_FIDIVR
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\207", IF_8086
|IF_FPU
},
619 {I_FIDIVR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\207", IF_8086
|IF_FPU
},
623 static struct itemplate instrux_FILD
[] = {
624 {I_FILD
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDB\200", IF_8086
|IF_FPU
},
625 {I_FILD
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDF\200", IF_8086
|IF_FPU
},
626 {I_FILD
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDF\205", IF_8086
|IF_FPU
},
630 static struct itemplate instrux_FIMUL
[] = {
631 {I_FIMUL
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\201", IF_8086
|IF_FPU
},
632 {I_FIMUL
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\201", IF_8086
|IF_FPU
},
636 static struct itemplate instrux_FINCSTP
[] = {
637 {I_FINCSTP
, 0, {0,0,0}, "\2\xD9\xF7", IF_8086
|IF_FPU
},
641 static struct itemplate instrux_FINIT
[] = {
642 {I_FINIT
, 0, {0,0,0}, "\3\x9B\xDB\xE3", IF_8086
|IF_FPU
},
646 static struct itemplate instrux_FIST
[] = {
647 {I_FIST
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDB\202", IF_8086
|IF_FPU
},
648 {I_FIST
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDF\202", IF_8086
|IF_FPU
},
652 static struct itemplate instrux_FISTP
[] = {
653 {I_FISTP
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDB\203", IF_8086
|IF_FPU
},
654 {I_FISTP
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDF\203", IF_8086
|IF_FPU
},
655 {I_FISTP
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDF\207", IF_8086
|IF_FPU
},
659 static struct itemplate instrux_FISUB
[] = {
660 {I_FISUB
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\204", IF_8086
|IF_FPU
},
661 {I_FISUB
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\204", IF_8086
|IF_FPU
},
665 static struct itemplate instrux_FISUBR
[] = {
666 {I_FISUBR
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xDA\205", IF_8086
|IF_FPU
},
667 {I_FISUBR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\xDE\205", IF_8086
|IF_FPU
},
671 static struct itemplate instrux_FLD
[] = {
672 {I_FLD
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD9\200", IF_8086
|IF_FPU
},
673 {I_FLD
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDD\200", IF_8086
|IF_FPU
},
674 {I_FLD
, 1, {MEMORY
|BITS80
,0,0}, "\300\1\xDB\205", IF_8086
|IF_FPU
},
675 {I_FLD
, 1, {FPUREG
,0,0}, "\1\xD9\10\xC0", IF_8086
|IF_FPU
},
679 static struct itemplate instrux_FLD1
[] = {
680 {I_FLD1
, 0, {0,0,0}, "\2\xD9\xE8", IF_8086
|IF_FPU
},
684 static struct itemplate instrux_FLDCW
[] = {
685 {I_FLDCW
, 1, {MEMORY
,0,0}, "\300\1\xD9\205", IF_8086
|IF_FPU
|IF_SW
},
689 static struct itemplate instrux_FLDENV
[] = {
690 {I_FLDENV
, 1, {MEMORY
,0,0}, "\300\1\xD9\204", IF_8086
|IF_FPU
},
694 static struct itemplate instrux_FLDL2E
[] = {
695 {I_FLDL2E
, 0, {0,0,0}, "\2\xD9\xEA", IF_8086
|IF_FPU
},
699 static struct itemplate instrux_FLDL2T
[] = {
700 {I_FLDL2T
, 0, {0,0,0}, "\2\xD9\xE9", IF_8086
|IF_FPU
},
704 static struct itemplate instrux_FLDLG2
[] = {
705 {I_FLDLG2
, 0, {0,0,0}, "\2\xD9\xEC", IF_8086
|IF_FPU
},
709 static struct itemplate instrux_FLDLN2
[] = {
710 {I_FLDLN2
, 0, {0,0,0}, "\2\xD9\xED", IF_8086
|IF_FPU
},
714 static struct itemplate instrux_FLDPI
[] = {
715 {I_FLDPI
, 0, {0,0,0}, "\2\xD9\xEB", IF_8086
|IF_FPU
},
719 static struct itemplate instrux_FLDZ
[] = {
720 {I_FLDZ
, 0, {0,0,0}, "\2\xD9\xEE", IF_8086
|IF_FPU
},
724 static struct itemplate instrux_FMUL
[] = {
725 {I_FMUL
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\201", IF_8086
|IF_FPU
},
726 {I_FMUL
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\201", IF_8086
|IF_FPU
},
727 {I_FMUL
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xC8", IF_8086
|IF_FPU
},
728 {I_FMUL
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xC8", IF_8086
|IF_FPU
},
729 {I_FMUL
, 1, {FPUREG
,0,0}, "\1\xD8\10\xC8", IF_8086
|IF_FPU
},
730 {I_FMUL
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xC8", IF_8086
|IF_FPU
},
734 static struct itemplate instrux_FMULP
[] = {
735 {I_FMULP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xC8", IF_8086
|IF_FPU
},
736 {I_FMULP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xC8", IF_8086
|IF_FPU
},
740 static struct itemplate instrux_FNCLEX
[] = {
741 {I_FNCLEX
, 0, {0,0,0}, "\2\xDB\xE2", IF_8086
|IF_FPU
},
745 static struct itemplate instrux_FNDISI
[] = {
746 {I_FNDISI
, 0, {0,0,0}, "\2\xDB\xE1", IF_8086
|IF_FPU
},
750 static struct itemplate instrux_FNENI
[] = {
751 {I_FNENI
, 0, {0,0,0}, "\2\xDB\xE0", IF_8086
|IF_FPU
},
755 static struct itemplate instrux_FNINIT
[] = {
756 {I_FNINIT
, 0, {0,0,0}, "\2\xDB\xE3", IF_8086
|IF_FPU
},
760 static struct itemplate instrux_FNOP
[] = {
761 {I_FNOP
, 0, {0,0,0}, "\2\xD9\xD0", IF_8086
|IF_FPU
},
765 static struct itemplate instrux_FNSAVE
[] = {
766 {I_FNSAVE
, 1, {MEMORY
,0,0}, "\300\1\xDD\206", IF_8086
|IF_FPU
},
770 static struct itemplate instrux_FNSTCW
[] = {
771 {I_FNSTCW
, 1, {MEMORY
,0,0}, "\300\1\xD9\207", IF_8086
|IF_FPU
|IF_SW
},
775 static struct itemplate instrux_FNSTENV
[] = {
776 {I_FNSTENV
, 1, {MEMORY
,0,0}, "\300\1\xD9\206", IF_8086
|IF_FPU
},
780 static struct itemplate instrux_FNSTSW
[] = {
781 {I_FNSTSW
, 1, {MEMORY
,0,0}, "\300\1\xDD\207", IF_8086
|IF_FPU
|IF_SW
},
782 {I_FNSTSW
, 1, {REG_AX
,0,0}, "\2\xDF\xE0", IF_286
|IF_FPU
},
786 static struct itemplate instrux_FPATAN
[] = {
787 {I_FPATAN
, 0, {0,0,0}, "\2\xD9\xF3", IF_8086
|IF_FPU
},
791 static struct itemplate instrux_FPREM
[] = {
792 {I_FPREM
, 0, {0,0,0}, "\2\xD9\xF8", IF_8086
|IF_FPU
},
796 static struct itemplate instrux_FPREM1
[] = {
797 {I_FPREM1
, 0, {0,0,0}, "\2\xD9\xF5", IF_386
|IF_FPU
},
801 static struct itemplate instrux_FPTAN
[] = {
802 {I_FPTAN
, 0, {0,0,0}, "\2\xD9\xF2", IF_8086
|IF_FPU
},
806 static struct itemplate instrux_FRNDINT
[] = {
807 {I_FRNDINT
, 0, {0,0,0}, "\2\xD9\xFC", IF_8086
|IF_FPU
},
811 static struct itemplate instrux_FRSTOR
[] = {
812 {I_FRSTOR
, 1, {MEMORY
,0,0}, "\300\1\xDD\204", IF_8086
|IF_FPU
},
816 static struct itemplate instrux_FSAVE
[] = {
817 {I_FSAVE
, 1, {MEMORY
,0,0}, "\300\2\x9B\xDD\206", IF_8086
|IF_FPU
},
821 static struct itemplate instrux_FSCALE
[] = {
822 {I_FSCALE
, 0, {0,0,0}, "\2\xD9\xFD", IF_8086
|IF_FPU
},
826 static struct itemplate instrux_FSETPM
[] = {
827 {I_FSETPM
, 0, {0,0,0}, "\2\xDB\xE4", IF_286
|IF_FPU
},
831 static struct itemplate instrux_FSIN
[] = {
832 {I_FSIN
, 0, {0,0,0}, "\2\xD9\xFE", IF_386
|IF_FPU
},
836 static struct itemplate instrux_FSINCOS
[] = {
837 {I_FSINCOS
, 0, {0,0,0}, "\2\xD9\xFB", IF_386
|IF_FPU
},
841 static struct itemplate instrux_FSQRT
[] = {
842 {I_FSQRT
, 0, {0,0,0}, "\2\xD9\xFA", IF_8086
|IF_FPU
},
846 static struct itemplate instrux_FST
[] = {
847 {I_FST
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD9\202", IF_8086
|IF_FPU
},
848 {I_FST
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDD\202", IF_8086
|IF_FPU
},
849 {I_FST
, 1, {FPUREG
,0,0}, "\1\xDD\10\xD0", IF_8086
|IF_FPU
},
853 static struct itemplate instrux_FSTCW
[] = {
854 {I_FSTCW
, 1, {MEMORY
,0,0}, "\300\2\x9B\xD9\207", IF_8086
|IF_FPU
|IF_SW
},
858 static struct itemplate instrux_FSTENV
[] = {
859 {I_FSTENV
, 1, {MEMORY
,0,0}, "\300\2\x9B\xD9\206", IF_8086
|IF_FPU
},
863 static struct itemplate instrux_FSTP
[] = {
864 {I_FSTP
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD9\203", IF_8086
|IF_FPU
},
865 {I_FSTP
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDD\203", IF_8086
|IF_FPU
},
866 {I_FSTP
, 1, {MEMORY
|BITS80
,0,0}, "\300\1\xDB\207", IF_8086
|IF_FPU
},
867 {I_FSTP
, 1, {FPUREG
,0,0}, "\1\xDD\10\xD8", IF_8086
|IF_FPU
},
871 static struct itemplate instrux_FSTSW
[] = {
872 {I_FSTSW
, 1, {MEMORY
,0,0}, "\300\2\x9B\xDD\207", IF_8086
|IF_FPU
|IF_SW
},
873 {I_FSTSW
, 1, {REG_AX
,0,0}, "\3\x9B\xDF\xE0", IF_286
|IF_FPU
},
877 static struct itemplate instrux_FSUB
[] = {
878 {I_FSUB
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\204", IF_8086
|IF_FPU
},
879 {I_FSUB
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\204", IF_8086
|IF_FPU
},
880 {I_FSUB
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xE8", IF_8086
|IF_FPU
},
881 {I_FSUB
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xE8", IF_8086
|IF_FPU
},
882 {I_FSUB
, 1, {FPUREG
,0,0}, "\1\xD8\10\xE0", IF_8086
|IF_FPU
},
883 {I_FSUB
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xE0", IF_8086
|IF_FPU
},
887 static struct itemplate instrux_FSUBP
[] = {
888 {I_FSUBP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xE8", IF_8086
|IF_FPU
},
889 {I_FSUBP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xE8", IF_8086
|IF_FPU
},
893 static struct itemplate instrux_FSUBR
[] = {
894 {I_FSUBR
, 1, {MEMORY
|BITS32
,0,0}, "\300\1\xD8\205", IF_8086
|IF_FPU
},
895 {I_FSUBR
, 1, {MEMORY
|BITS64
,0,0}, "\300\1\xDC\205", IF_8086
|IF_FPU
},
896 {I_FSUBR
, 1, {FPUREG
|TO
,0,0}, "\1\xDC\10\xE0", IF_8086
|IF_FPU
},
897 {I_FSUBR
, 2, {FPUREG
,FPU0
,0}, "\1\xDC\10\xE0", IF_8086
|IF_FPU
},
898 {I_FSUBR
, 1, {FPUREG
,0,0}, "\1\xD8\10\xE8", IF_8086
|IF_FPU
},
899 {I_FSUBR
, 2, {FPU0
,FPUREG
,0}, "\1\xD8\11\xE8", IF_8086
|IF_FPU
},
903 static struct itemplate instrux_FSUBRP
[] = {
904 {I_FSUBRP
, 1, {FPUREG
,0,0}, "\1\xDE\10\xE0", IF_8086
|IF_FPU
},
905 {I_FSUBRP
, 2, {FPUREG
,FPU0
,0}, "\1\xDE\10\xE0", IF_8086
|IF_FPU
},
909 static struct itemplate instrux_FTST
[] = {
910 {I_FTST
, 0, {0,0,0}, "\2\xD9\xE4", IF_8086
|IF_FPU
},
914 static struct itemplate instrux_FUCOM
[] = {
915 {I_FUCOM
, 1, {FPUREG
,0,0}, "\1\xDD\10\xE0", IF_386
|IF_FPU
},
916 {I_FUCOM
, 2, {FPU0
,FPUREG
,0}, "\1\xDD\11\xE0", IF_386
|IF_FPU
},
920 static struct itemplate instrux_FUCOMI
[] = {
921 {I_FUCOMI
, 1, {FPUREG
,0,0}, "\1\xDB\10\xE8", IF_P6
|IF_FPU
},
922 {I_FUCOMI
, 2, {FPU0
,FPUREG
,0}, "\1\xDB\11\xE8", IF_P6
|IF_FPU
},
926 static struct itemplate instrux_FUCOMIP
[] = {
927 {I_FUCOMIP
, 1, {FPUREG
,0,0}, "\1\xDF\10\xE8", IF_P6
|IF_FPU
},
928 {I_FUCOMIP
, 2, {FPU0
,FPUREG
,0}, "\1\xDF\11\xE8", IF_P6
|IF_FPU
},
932 static struct itemplate instrux_FUCOMP
[] = {
933 {I_FUCOMP
, 1, {FPUREG
,0,0}, "\1\xDD\10\xE8", IF_386
|IF_FPU
},
934 {I_FUCOMP
, 2, {FPU0
,FPUREG
,0}, "\1\xDD\11\xE8", IF_386
|IF_FPU
},
938 static struct itemplate instrux_FUCOMPP
[] = {
939 {I_FUCOMPP
, 0, {0,0,0}, "\2\xDA\xE9", IF_386
|IF_FPU
},
943 static struct itemplate instrux_FXAM
[] = {
944 {I_FXAM
, 0, {0,0,0}, "\2\xD9\xE5", IF_8086
|IF_FPU
},
948 static struct itemplate instrux_FXCH
[] = {
949 {I_FXCH
, 0, {0,0,0}, "\2\xD9\xC9", IF_8086
|IF_FPU
},
950 {I_FXCH
, 1, {FPUREG
,0,0}, "\1\xD9\10\xC8", IF_8086
|IF_FPU
},
951 {I_FXCH
, 2, {FPUREG
,FPU0
,0}, "\1\xD9\10\xC8", IF_8086
|IF_FPU
},
952 {I_FXCH
, 2, {FPU0
,FPUREG
,0}, "\1\xD9\11\xC8", IF_8086
|IF_FPU
},
956 static struct itemplate instrux_FXTRACT
[] = {
957 {I_FXTRACT
, 0, {0,0,0}, "\2\xD9\xF4", IF_8086
|IF_FPU
},
961 static struct itemplate instrux_FYL2X
[] = {
962 {I_FYL2X
, 0, {0,0,0}, "\2\xD9\xF1", IF_8086
|IF_FPU
},
966 static struct itemplate instrux_FYL2XP1
[] = {
967 {I_FYL2XP1
, 0, {0,0,0}, "\2\xD9\xF9", IF_8086
|IF_FPU
},
971 static struct itemplate instrux_HLT
[] = {
972 {I_HLT
, 0, {0,0,0}, "\1\xF4", IF_8086
},
976 static struct itemplate instrux_IBTS
[] = {
977 {I_IBTS
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xA7\101", IF_386
|IF_SW
|IF_UNDOC
},
978 {I_IBTS
, 2, {REG16
,REG16
,0}, "\320\300\2\x0F\xA7\101", IF_386
|IF_UNDOC
},
979 {I_IBTS
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xA7\101", IF_386
|IF_SD
|IF_UNDOC
},
980 {I_IBTS
, 2, {REG32
,REG32
,0}, "\321\300\2\x0F\xA7\101", IF_386
|IF_UNDOC
},
984 static struct itemplate instrux_ICEBP
[] = {
985 {I_ICEBP
, 0, {0,0,0}, "\1\xF1", IF_P6
},
989 static struct itemplate instrux_IDIV
[] = {
990 {I_IDIV
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\207", IF_8086
},
991 {I_IDIV
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\207", IF_8086
},
992 {I_IDIV
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\207", IF_386
},
996 static struct itemplate instrux_IMUL
[] = {
997 {I_IMUL
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\205", IF_8086
},
998 {I_IMUL
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\205", IF_8086
},
999 {I_IMUL
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\205", IF_386
},
1000 {I_IMUL
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xAF\110", IF_386
|IF_SM
},
1001 {I_IMUL
, 2, {REG16
,REG16
,0}, "\320\301\2\x0F\xAF\110", IF_386
},
1002 {I_IMUL
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xAF\110", IF_386
|IF_SM
},
1003 {I_IMUL
, 2, {REG32
,REG32
,0}, "\321\301\2\x0F\xAF\110", IF_386
},
1004 {I_IMUL
, 3, {REG16
,MEMORY
,IMMEDIATE
|BITS8
}, "\320\301\1\x6B\110\16", IF_286
|IF_SM
},
1005 {I_IMUL
, 3, {REG16
,REG16
,IMMEDIATE
|BITS8
}, "\320\301\1\x6B\110\16", IF_286
},
1006 {I_IMUL
, 3, {REG16
,MEMORY
,IMMEDIATE
}, "\320\301\1\x69\110\32", IF_286
|IF_SM
},
1007 {I_IMUL
, 3, {REG16
,REG16
,IMMEDIATE
}, "\320\301\1\x69\110\32", IF_286
|IF_SM
},
1008 {I_IMUL
, 3, {REG32
,MEMORY
,IMMEDIATE
|BITS8
}, "\321\301\1\x6B\110\16", IF_386
|IF_SM
},
1009 {I_IMUL
, 3, {REG32
,REG32
,IMMEDIATE
|BITS8
}, "\321\301\1\x6B\110\16", IF_386
},
1010 {I_IMUL
, 3, {REG32
,MEMORY
,IMMEDIATE
}, "\321\301\1\x69\110\42", IF_386
|IF_SM
},
1011 {I_IMUL
, 3, {REG32
,REG32
,IMMEDIATE
}, "\321\301\1\x69\110\42", IF_386
|IF_SM
},
1012 {I_IMUL
, 2, {REG16
,IMMEDIATE
|BITS8
,0}, "\320\1\x6B\100\15", IF_286
},
1013 {I_IMUL
, 2, {REG16
,IMMEDIATE
,0}, "\320\1\x69\100\31", IF_286
|IF_SM
},
1014 {I_IMUL
, 2, {REG32
,IMMEDIATE
|BITS8
,0}, "\321\1\x6B\100\15", IF_386
},
1015 {I_IMUL
, 2, {REG32
,IMMEDIATE
,0}, "\321\1\x69\100\41", IF_386
|IF_SM
},
1019 static struct itemplate instrux_IN
[] = {
1020 {I_IN
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\xE4\25", IF_8086
},
1021 {I_IN
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\xE5\25", IF_8086
},
1022 {I_IN
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\xE5\25", IF_386
},
1023 {I_IN
, 2, {REG_AL
,REG_DX
,0}, "\1\xEC", IF_8086
},
1024 {I_IN
, 2, {REG_AX
,REG_DX
,0}, "\320\1\xED", IF_8086
},
1025 {I_IN
, 2, {REG_EAX
,REG_DX
,0}, "\321\1\xED", IF_386
},
1029 static struct itemplate instrux_INC
[] = {
1030 {I_INC
, 1, {REG16
,0,0}, "\320\10\x40", IF_8086
},
1031 {I_INC
, 1, {REG32
,0,0}, "\321\10\x40", IF_386
},
1032 {I_INC
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xFE\200", IF_8086
},
1033 {I_INC
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xFF\200", IF_8086
},
1034 {I_INC
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xFF\200", IF_386
},
1038 static struct itemplate instrux_INCBIN
[] = {
1042 static struct itemplate instrux_INSB
[] = {
1043 {I_INSB
, 0, {0,0,0}, "\1\x6C", IF_186
},
1047 static struct itemplate instrux_INSD
[] = {
1048 {I_INSD
, 0, {0,0,0}, "\321\1\x6D", IF_386
},
1052 static struct itemplate instrux_INSW
[] = {
1053 {I_INSW
, 0, {0,0,0}, "\320\1\x6D", IF_186
},
1057 static struct itemplate instrux_INT
[] = {
1058 {I_INT
, 1, {IMMEDIATE
,0,0}, "\1\xCD\24", IF_8086
},
1062 static struct itemplate instrux_INT01
[] = {
1063 {I_INT01
, 0, {0,0,0}, "\1\xF1", IF_P6
},
1067 static struct itemplate instrux_INT1
[] = {
1068 {I_INT1
, 0, {0,0,0}, "\1\xF1", IF_P6
},
1072 static struct itemplate instrux_INT3
[] = {
1073 {I_INT3
, 0, {0,0,0}, "\1\xCC", IF_8086
},
1077 static struct itemplate instrux_INTO
[] = {
1078 {I_INTO
, 0, {0,0,0}, "\1\xCE", IF_8086
},
1082 static struct itemplate instrux_INVD
[] = {
1083 {I_INVD
, 0, {0,0,0}, "\2\x0F\x08", IF_486
},
1087 static struct itemplate instrux_INVLPG
[] = {
1088 {I_INVLPG
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\207", IF_486
},
1092 static struct itemplate instrux_IRET
[] = {
1093 {I_IRET
, 0, {0,0,0}, "\322\1\xCF", IF_8086
},
1097 static struct itemplate instrux_IRETD
[] = {
1098 {I_IRETD
, 0, {0,0,0}, "\321\1\xCF", IF_386
},
1102 static struct itemplate instrux_IRETW
[] = {
1103 {I_IRETW
, 0, {0,0,0}, "\320\1\xCF", IF_8086
},
1107 static struct itemplate instrux_JCXZ
[] = {
1108 {I_JCXZ
, 1, {IMMEDIATE
,0,0}, "\320\1\xE3\50", IF_8086
},
1112 static struct itemplate instrux_JECXZ
[] = {
1113 {I_JECXZ
, 1, {IMMEDIATE
,0,0}, "\321\1\xE3\50", IF_386
},
1117 static struct itemplate instrux_JMP
[] = {
1118 {I_JMP
, 1, {IMMEDIATE
|SHORT
,0,0}, "\1\xEB\50", IF_8086
},
1119 {I_JMP
, 1, {IMMEDIATE
,0,0}, "\322\1\xE9\64", IF_8086
},
1120 {I_JMP
, 1, {IMMEDIATE
|FAR
,0,0}, "\322\1\xEA\34\37", IF_8086
},
1121 {I_JMP
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
,0}, "\322\1\xEA\35\30", IF_8086
},
1122 {I_JMP
, 2, {IMMEDIATE
|BITS16
|COLON
,IMMEDIATE
,0}, "\320\1\xEA\31\30", IF_8086
},
1123 {I_JMP
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
|BITS16
,0}, "\320\1\xEA\31\30", IF_8086
},
1124 {I_JMP
, 2, {IMMEDIATE
|BITS32
|COLON
,IMMEDIATE
,0}, "\321\1\xEA\41\30", IF_386
},
1125 {I_JMP
, 2, {IMMEDIATE
|COLON
,IMMEDIATE
|BITS32
,0}, "\321\1\xEA\41\30", IF_386
},
1126 {I_JMP
, 1, {MEMORY
|FAR
,0,0}, "\322\300\1\xFF\205", IF_8086
},
1127 {I_JMP
, 1, {MEMORY
|BITS16
|FAR
,0,0}, "\320\300\1\xFF\205", IF_8086
},
1128 {I_JMP
, 1, {MEMORY
|BITS32
|FAR
,0,0}, "\321\300\1\xFF\205", IF_386
},
1129 {I_JMP
, 1, {MEMORY
|NEAR
,0,0}, "\322\300\1\xFF\204", IF_8086
},
1130 {I_JMP
, 1, {MEMORY
|BITS16
|NEAR
,0,0}, "\320\300\1\xFF\204", IF_8086
},
1131 {I_JMP
, 1, {MEMORY
|BITS32
|NEAR
,0,0}, "\321\300\1\xFF\204", IF_386
},
1132 {I_JMP
, 1, {REG16
,0,0}, "\320\300\1\xFF\204", IF_8086
},
1133 {I_JMP
, 1, {REG32
,0,0}, "\321\300\1\xFF\204", IF_386
},
1134 {I_JMP
, 1, {MEMORY
,0,0}, "\322\300\1\xFF\204", IF_8086
},
1135 {I_JMP
, 1, {MEMORY
|BITS16
,0,0}, "\320\300\1\xFF\204", IF_8086
},
1136 {I_JMP
, 1, {MEMORY
|BITS32
,0,0}, "\321\300\1\xFF\204", IF_386
},
1140 static struct itemplate instrux_LAHF
[] = {
1141 {I_LAHF
, 0, {0,0,0}, "\1\x9F", IF_8086
},
1145 static struct itemplate instrux_LAR
[] = {
1146 {I_LAR
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\x02\110", IF_286
|IF_PRIV
|IF_SM
},
1147 {I_LAR
, 2, {REG16
,REG16
,0}, "\320\301\2\x0F\x02\110", IF_286
|IF_PRIV
},
1148 {I_LAR
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\x02\110", IF_286
|IF_PRIV
|IF_SM
},
1149 {I_LAR
, 2, {REG32
,REG32
,0}, "\321\301\2\x0F\x02\110", IF_286
|IF_PRIV
},
1153 static struct itemplate instrux_LDS
[] = {
1154 {I_LDS
, 2, {REG16
,MEMORY
,0}, "\320\301\1\xC5\110", IF_8086
},
1155 {I_LDS
, 2, {REG32
,MEMORY
,0}, "\321\301\1\xC5\110", IF_8086
},
1159 static struct itemplate instrux_LEA
[] = {
1160 {I_LEA
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x8D\110", IF_8086
},
1161 {I_LEA
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x8D\110", IF_8086
},
1165 static struct itemplate instrux_LEAVE
[] = {
1166 {I_LEAVE
, 0, {0,0,0}, "\1\xC9", IF_186
},
1170 static struct itemplate instrux_LES
[] = {
1171 {I_LES
, 2, {REG16
,MEMORY
,0}, "\320\301\1\xC4\110", IF_8086
},
1172 {I_LES
, 2, {REG32
,MEMORY
,0}, "\321\301\1\xC4\110", IF_8086
},
1176 static struct itemplate instrux_LFS
[] = {
1177 {I_LFS
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xB4\110", IF_386
},
1178 {I_LFS
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xB4\110", IF_386
},
1182 static struct itemplate instrux_LGDT
[] = {
1183 {I_LGDT
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\202", IF_286
|IF_PRIV
},
1187 static struct itemplate instrux_LGS
[] = {
1188 {I_LGS
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xB5\110", IF_386
},
1189 {I_LGS
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xB5\110", IF_386
},
1193 static struct itemplate instrux_LIDT
[] = {
1194 {I_LIDT
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\203", IF_286
|IF_PRIV
},
1198 static struct itemplate instrux_LLDT
[] = {
1199 {I_LLDT
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\202", IF_286
|IF_PRIV
},
1200 {I_LLDT
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\202", IF_286
|IF_PRIV
},
1201 {I_LLDT
, 1, {REG16
,0,0}, "\300\1\x0F\17\202", IF_286
|IF_PRIV
},
1205 static struct itemplate instrux_LMSW
[] = {
1206 {I_LMSW
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\206", IF_286
|IF_PRIV
},
1207 {I_LMSW
, 1, {MEMORY
|BITS16
,0,0}, "\300\2\x0F\x01\206", IF_286
|IF_PRIV
},
1208 {I_LMSW
, 1, {REG16
,0,0}, "\300\2\x0F\x01\206", IF_286
|IF_PRIV
},
1212 static struct itemplate instrux_LOADALL
[] = {
1213 {I_LOADALL
, 0, {0,0,0}, "\2\x0F\x07", IF_386
|IF_UNDOC
},
1217 static struct itemplate instrux_LOADALL286
[] = {
1218 {I_LOADALL286
, 0, {0,0,0}, "\2\x0F\x05", IF_286
|IF_UNDOC
},
1222 static struct itemplate instrux_LODSB
[] = {
1223 {I_LODSB
, 0, {0,0,0}, "\1\xAC", IF_8086
},
1227 static struct itemplate instrux_LODSD
[] = {
1228 {I_LODSD
, 0, {0,0,0}, "\321\1\xAD", IF_386
},
1232 static struct itemplate instrux_LODSW
[] = {
1233 {I_LODSW
, 0, {0,0,0}, "\320\1\xAD", IF_8086
},
1237 static struct itemplate instrux_LOOP
[] = {
1238 {I_LOOP
, 1, {IMMEDIATE
,0,0}, "\312\1\xE2\50", IF_8086
},
1239 {I_LOOP
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE2\50", IF_8086
},
1240 {I_LOOP
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE2\50", IF_386
},
1244 static struct itemplate instrux_LOOPE
[] = {
1245 {I_LOOPE
, 1, {IMMEDIATE
,0,0}, "\312\1\xE1\50", IF_8086
},
1246 {I_LOOPE
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE1\50", IF_8086
},
1247 {I_LOOPE
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE1\50", IF_386
},
1251 static struct itemplate instrux_LOOPNE
[] = {
1252 {I_LOOPNE
, 1, {IMMEDIATE
,0,0}, "\312\1\xE0\50", IF_8086
},
1253 {I_LOOPNE
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE0\50", IF_8086
},
1254 {I_LOOPNE
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE0\50", IF_386
},
1258 static struct itemplate instrux_LOOPNZ
[] = {
1259 {I_LOOPNZ
, 1, {IMMEDIATE
,0,0}, "\312\1\xE0\50", IF_8086
},
1260 {I_LOOPNZ
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE0\50", IF_8086
},
1261 {I_LOOPNZ
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE0\50", IF_386
},
1265 static struct itemplate instrux_LOOPZ
[] = {
1266 {I_LOOPZ
, 1, {IMMEDIATE
,0,0}, "\312\1\xE1\50", IF_8086
},
1267 {I_LOOPZ
, 2, {IMMEDIATE
,REG_CX
,0}, "\310\1\xE1\50", IF_8086
},
1268 {I_LOOPZ
, 2, {IMMEDIATE
,REG_ECX
,0}, "\311\1\xE1\50", IF_386
},
1272 static struct itemplate instrux_LSL
[] = {
1273 {I_LSL
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\x03\110", IF_286
|IF_PRIV
|IF_SM
},
1274 {I_LSL
, 2, {REG16
,REG16
,0}, "\320\301\2\x0F\x03\110", IF_286
|IF_PRIV
},
1275 {I_LSL
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\x03\110", IF_286
|IF_PRIV
|IF_SM
},
1276 {I_LSL
, 2, {REG32
,REG32
,0}, "\321\301\2\x0F\x03\110", IF_286
|IF_PRIV
},
1280 static struct itemplate instrux_LSS
[] = {
1281 {I_LSS
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xB2\110", IF_386
},
1282 {I_LSS
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xB2\110", IF_386
},
1286 static struct itemplate instrux_LTR
[] = {
1287 {I_LTR
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\203", IF_286
|IF_PRIV
},
1288 {I_LTR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\203", IF_286
|IF_PRIV
},
1289 {I_LTR
, 1, {REG16
,0,0}, "\300\1\x0F\17\203", IF_286
|IF_PRIV
},
1293 static struct itemplate instrux_MOV
[] = {
1294 {I_MOV
, 2, {MEMORY
,REG_CS
,0}, "\320\300\1\x8C\201", IF_8086
|IF_SM
},
1295 {I_MOV
, 2, {MEMORY
,REG_DESS
,0}, "\320\300\1\x8C\101", IF_8086
|IF_SM
},
1296 {I_MOV
, 2, {MEMORY
,REG_FSGS
,0}, "\320\300\1\x8C\101", IF_386
|IF_SM
},
1297 {I_MOV
, 2, {REG16
,REG_CS
,0}, "\320\300\1\x8C\201", IF_8086
},
1298 {I_MOV
, 2, {REG16
,REG_DESS
,0}, "\320\300\1\x8C\101", IF_8086
},
1299 {I_MOV
, 2, {REG16
,REG_FSGS
,0}, "\320\300\1\x8C\101", IF_386
},
1300 {I_MOV
, 2, {REGMEM
|BITS32
,REG_CS
,0}, "\321\300\1\x8C\201", IF_8086
},
1301 {I_MOV
, 2, {REGMEM
|BITS32
,REG_DESS
,0}, "\321\300\1\x8C\101", IF_8086
},
1302 {I_MOV
, 2, {REGMEM
|BITS32
,REG_FSGS
,0}, "\321\300\1\x8C\101", IF_386
},
1303 {I_MOV
, 2, {REG_DESS
,MEMORY
,0}, "\320\301\1\x8E\110", IF_8086
|IF_SM
},
1304 {I_MOV
, 2, {REG_FSGS
,MEMORY
,0}, "\320\301\1\x8E\110", IF_386
|IF_SM
},
1305 {I_MOV
, 2, {REG_DESS
,REG16
,0}, "\320\301\1\x8E\110", IF_8086
},
1306 {I_MOV
, 2, {REG_FSGS
,REG16
,0}, "\320\301\1\x8E\110", IF_386
},
1307 {I_MOV
, 2, {REG_DESS
,REGMEM
|BITS32
,0}, "\321\301\1\x8E\110", IF_8086
},
1308 {I_MOV
, 2, {REG_FSGS
,REGMEM
|BITS32
,0}, "\321\301\1\x8E\110", IF_386
},
1309 {I_MOV
, 2, {REG_AL
,MEM_OFFS
,0}, "\301\1\xA0\35", IF_8086
|IF_SM
},
1310 {I_MOV
, 2, {REG_AX
,MEM_OFFS
,0}, "\301\320\1\xA1\35", IF_8086
|IF_SM
},
1311 {I_MOV
, 2, {REG_EAX
,MEM_OFFS
,0}, "\301\321\1\xA1\35", IF_386
|IF_SM
},
1312 {I_MOV
, 2, {MEM_OFFS
,REG_AL
,0}, "\300\1\xA2\34", IF_8086
|IF_SM
},
1313 {I_MOV
, 2, {MEM_OFFS
,REG_AX
,0}, "\300\320\1\xA3\34", IF_8086
|IF_SM
},
1314 {I_MOV
, 2, {MEM_OFFS
,REG_EAX
,0}, "\300\321\1\xA3\34", IF_386
|IF_SM
},
1315 {I_MOV
, 2, {REG32
,REG_CR4
,0}, "\2\x0F\x20\204", IF_PENT
},
1316 {I_MOV
, 2, {REG32
,REG_CREG
,0}, "\2\x0F\x20\101", IF_386
},
1317 {I_MOV
, 2, {REG32
,REG_DREG
,0}, "\2\x0F\x21\101", IF_386
},
1318 {I_MOV
, 2, {REG32
,REG_TREG
,0}, "\2\x0F\x24\101", IF_386
},
1319 {I_MOV
, 2, {REG_CR4
,REG32
,0}, "\2\x0F\x22\214", IF_PENT
},
1320 {I_MOV
, 2, {REG_CREG
,REG32
,0}, "\2\x0F\x22\110", IF_386
},
1321 {I_MOV
, 2, {REG_DREG
,REG32
,0}, "\2\x0F\x23\110", IF_386
},
1322 {I_MOV
, 2, {REG_TREG
,REG32
,0}, "\2\x0F\x26\110", IF_386
},
1323 {I_MOV
, 2, {MEMORY
,REG8
,0}, "\300\1\x88\101", IF_8086
|IF_SM
},
1324 {I_MOV
, 2, {REG8
,REG8
,0}, "\300\1\x88\101", IF_8086
},
1325 {I_MOV
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x89\101", IF_8086
|IF_SM
},
1326 {I_MOV
, 2, {REG16
,REG16
,0}, "\320\300\1\x89\101", IF_8086
},
1327 {I_MOV
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x89\101", IF_386
|IF_SM
},
1328 {I_MOV
, 2, {REG32
,REG32
,0}, "\321\300\1\x89\101", IF_386
},
1329 {I_MOV
, 2, {REG8
,MEMORY
,0}, "\301\1\x8A\110", IF_8086
|IF_SM
},
1330 {I_MOV
, 2, {REG8
,REG8
,0}, "\301\1\x8A\110", IF_8086
},
1331 {I_MOV
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x8B\110", IF_8086
|IF_SM
},
1332 {I_MOV
, 2, {REG16
,REG16
,0}, "\320\301\1\x8B\110", IF_8086
},
1333 {I_MOV
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x8B\110", IF_386
|IF_SM
},
1334 {I_MOV
, 2, {REG32
,REG32
,0}, "\321\301\1\x8B\110", IF_386
},
1335 {I_MOV
, 2, {REG8
,IMMEDIATE
,0}, "\10\xB0\21", IF_8086
|IF_SM
},
1336 {I_MOV
, 2, {REG16
,IMMEDIATE
,0}, "\320\10\xB8\31", IF_8086
|IF_SM
},
1337 {I_MOV
, 2, {REG32
,IMMEDIATE
,0}, "\321\10\xB8\41", IF_386
|IF_SM
},
1338 {I_MOV
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC6\200\21", IF_8086
|IF_SM
},
1339 {I_MOV
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC7\200\31", IF_8086
|IF_SM
},
1340 {I_MOV
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC7\200\41", IF_386
|IF_SM
},
1341 {I_MOV
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\xC6\200\21", IF_8086
|IF_SM
},
1342 {I_MOV
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\xC7\200\31", IF_8086
|IF_SM
},
1343 {I_MOV
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\xC7\200\41", IF_386
|IF_SM
},
1347 static struct itemplate instrux_MOVD
[] = {
1348 {I_MOVD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x6E\110", IF_PENT
|IF_MMX
|IF_SD
},
1349 {I_MOVD
, 2, {MMXREG
,REG32
,0}, "\2\x0F\x6E\110", IF_PENT
|IF_MMX
},
1350 {I_MOVD
, 2, {MEMORY
,MMXREG
,0}, "\300\2\x0F\x7E\101", IF_PENT
|IF_MMX
|IF_SD
},
1351 {I_MOVD
, 2, {REG32
,MMXREG
,0}, "\2\x0F\x7E\101", IF_PENT
|IF_MMX
},
1355 static struct itemplate instrux_MOVQ
[] = {
1356 {I_MOVQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x6F\110", IF_PENT
|IF_MMX
|IF_SM
},
1357 {I_MOVQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x6F\110", IF_PENT
|IF_MMX
},
1358 {I_MOVQ
, 2, {MEMORY
,MMXREG
,0}, "\300\2\x0F\x7F\101", IF_PENT
|IF_MMX
|IF_SM
},
1359 {I_MOVQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x7F\101", IF_PENT
|IF_MMX
},
1363 static struct itemplate instrux_MOVSB
[] = {
1364 {I_MOVSB
, 0, {0,0,0}, "\1\xA4", IF_8086
},
1368 static struct itemplate instrux_MOVSD
[] = {
1369 {I_MOVSD
, 0, {0,0,0}, "\321\1\xA5", IF_386
},
1373 static struct itemplate instrux_MOVSW
[] = {
1374 {I_MOVSW
, 0, {0,0,0}, "\320\1\xA5", IF_8086
},
1378 static struct itemplate instrux_MOVSX
[] = {
1379 {I_MOVSX
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xBE\110", IF_386
|IF_SB
},
1380 {I_MOVSX
, 2, {REG16
,REG8
,0}, "\320\301\2\x0F\xBE\110", IF_386
},
1381 {I_MOVSX
, 2, {REG32
,REGMEM
|BITS8
,0}, "\321\301\2\x0F\xBE\110", IF_386
},
1382 {I_MOVSX
, 2, {REG32
,REGMEM
|BITS16
,0}, "\321\301\2\x0F\xBF\110", IF_386
},
1386 static struct itemplate instrux_MOVZX
[] = {
1387 {I_MOVZX
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xB6\110", IF_386
|IF_SB
},
1388 {I_MOVZX
, 2, {REG16
,REG8
,0}, "\320\301\2\x0F\xB6\110", IF_386
},
1389 {I_MOVZX
, 2, {REG32
,REGMEM
|BITS8
,0}, "\321\301\2\x0F\xB6\110", IF_386
},
1390 {I_MOVZX
, 2, {REG32
,REGMEM
|BITS16
,0}, "\321\301\2\x0F\xB7\110", IF_386
},
1394 static struct itemplate instrux_MUL
[] = {
1395 {I_MUL
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\204", IF_8086
},
1396 {I_MUL
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\204", IF_8086
},
1397 {I_MUL
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\204", IF_386
},
1401 static struct itemplate instrux_NEG
[] = {
1402 {I_NEG
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\203", IF_8086
},
1403 {I_NEG
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\203", IF_8086
},
1404 {I_NEG
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\203", IF_386
},
1408 static struct itemplate instrux_NOP
[] = {
1409 {I_NOP
, 0, {0,0,0}, "\1\x90", IF_8086
},
1413 static struct itemplate instrux_NOT
[] = {
1414 {I_NOT
, 1, {REGMEM
|BITS8
,0,0}, "\300\1\xF6\202", IF_8086
},
1415 {I_NOT
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xF7\202", IF_8086
},
1416 {I_NOT
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xF7\202", IF_386
},
1420 static struct itemplate instrux_OR
[] = {
1421 {I_OR
, 2, {MEMORY
,REG8
,0}, "\300\1\x08\101", IF_8086
|IF_SM
},
1422 {I_OR
, 2, {REG8
,REG8
,0}, "\300\1\x08\101", IF_8086
},
1423 {I_OR
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x09\101", IF_8086
|IF_SM
},
1424 {I_OR
, 2, {REG16
,REG16
,0}, "\320\300\1\x09\101", IF_8086
},
1425 {I_OR
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x09\101", IF_386
|IF_SM
},
1426 {I_OR
, 2, {REG32
,REG32
,0}, "\321\300\1\x09\101", IF_386
},
1427 {I_OR
, 2, {REG8
,MEMORY
,0}, "\301\1\x0A\110", IF_8086
|IF_SM
},
1428 {I_OR
, 2, {REG8
,REG8
,0}, "\301\1\x0A\110", IF_8086
},
1429 {I_OR
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x0B\110", IF_8086
|IF_SM
},
1430 {I_OR
, 2, {REG16
,REG16
,0}, "\320\301\1\x0B\110", IF_8086
},
1431 {I_OR
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x0B\110", IF_386
|IF_SM
},
1432 {I_OR
, 2, {REG32
,REG32
,0}, "\321\301\1\x0B\110", IF_386
},
1433 {I_OR
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\201\15", IF_8086
},
1434 {I_OR
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\201\15", IF_386
},
1435 {I_OR
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x0C\21", IF_8086
|IF_SM
},
1436 {I_OR
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x0D\31", IF_8086
|IF_SM
},
1437 {I_OR
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x0D\41", IF_386
|IF_SM
},
1438 {I_OR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\201\21", IF_8086
|IF_SM
},
1439 {I_OR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\x81\201\31", IF_8086
|IF_SM
},
1440 {I_OR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\x81\201\41", IF_386
|IF_SM
},
1441 {I_OR
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\201\21", IF_8086
|IF_SM
},
1442 {I_OR
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\x81\201\31", IF_8086
|IF_SM
},
1443 {I_OR
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\x81\201\41", IF_386
|IF_SM
},
1447 static struct itemplate instrux_OUT
[] = {
1448 {I_OUT
, 2, {IMMEDIATE
,REG_AL
,0}, "\1\xE6\24", IF_8086
},
1449 {I_OUT
, 2, {IMMEDIATE
,REG_AX
,0}, "\320\1\xE7\24", IF_8086
},
1450 {I_OUT
, 2, {IMMEDIATE
,REG_EAX
,0}, "\321\1\xE7\24", IF_386
},
1451 {I_OUT
, 2, {REG_DX
,REG_AL
,0}, "\1\xEE", IF_8086
},
1452 {I_OUT
, 2, {REG_DX
,REG_AX
,0}, "\320\1\xEF", IF_8086
},
1453 {I_OUT
, 2, {REG_DX
,REG_EAX
,0}, "\321\1\xEF", IF_386
},
1457 static struct itemplate instrux_OUTSB
[] = {
1458 {I_OUTSB
, 0, {0,0,0}, "\1\x6E", IF_186
},
1462 static struct itemplate instrux_OUTSD
[] = {
1463 {I_OUTSD
, 0, {0,0,0}, "\321\1\x6F", IF_386
},
1467 static struct itemplate instrux_OUTSW
[] = {
1468 {I_OUTSW
, 0, {0,0,0}, "\320\1\x6F", IF_186
},
1472 static struct itemplate instrux_PACKSSDW
[] = {
1473 {I_PACKSSDW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x6B\110", IF_PENT
|IF_MMX
|IF_SM
},
1474 {I_PACKSSDW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x6B\110", IF_PENT
|IF_MMX
},
1478 static struct itemplate instrux_PACKSSWB
[] = {
1479 {I_PACKSSWB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x63\110", IF_PENT
|IF_MMX
|IF_SM
},
1480 {I_PACKSSWB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x63\110", IF_PENT
|IF_MMX
},
1484 static struct itemplate instrux_PACKUSWB
[] = {
1485 {I_PACKUSWB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x67\110", IF_PENT
|IF_MMX
|IF_SM
},
1486 {I_PACKUSWB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x67\110", IF_PENT
|IF_MMX
},
1490 static struct itemplate instrux_PADDB
[] = {
1491 {I_PADDB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xFC\110", IF_PENT
|IF_MMX
|IF_SM
},
1492 {I_PADDB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xFC\110", IF_PENT
|IF_MMX
},
1496 static struct itemplate instrux_PADDD
[] = {
1497 {I_PADDD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xFE\110", IF_PENT
|IF_MMX
|IF_SM
},
1498 {I_PADDD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xFE\110", IF_PENT
|IF_MMX
},
1502 static struct itemplate instrux_PADDSB
[] = {
1503 {I_PADDSB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xEC\110", IF_PENT
|IF_MMX
|IF_SM
},
1504 {I_PADDSB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xEC\110", IF_PENT
|IF_MMX
},
1508 static struct itemplate instrux_PADDSIW
[] = {
1509 {I_PADDSIW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x51\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1510 {I_PADDSIW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x51\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
1514 static struct itemplate instrux_PADDSW
[] = {
1515 {I_PADDSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xED\110", IF_PENT
|IF_MMX
|IF_SM
},
1516 {I_PADDSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xED\110", IF_PENT
|IF_MMX
},
1520 static struct itemplate instrux_PADDUSB
[] = {
1521 {I_PADDUSB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDC\110", IF_PENT
|IF_MMX
|IF_SM
},
1522 {I_PADDUSB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDC\110", IF_PENT
|IF_MMX
},
1526 static struct itemplate instrux_PADDUSW
[] = {
1527 {I_PADDUSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDD\110", IF_PENT
|IF_MMX
|IF_SM
},
1528 {I_PADDUSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDD\110", IF_PENT
|IF_MMX
},
1532 static struct itemplate instrux_PADDW
[] = {
1533 {I_PADDW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xFD\110", IF_PENT
|IF_MMX
|IF_SM
},
1534 {I_PADDW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xFD\110", IF_PENT
|IF_MMX
},
1538 static struct itemplate instrux_PAND
[] = {
1539 {I_PAND
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDB\110", IF_PENT
|IF_MMX
|IF_SM
},
1540 {I_PAND
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDB\110", IF_PENT
|IF_MMX
},
1544 static struct itemplate instrux_PANDN
[] = {
1545 {I_PANDN
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xDF\110", IF_PENT
|IF_MMX
|IF_SM
},
1546 {I_PANDN
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xDF\110", IF_PENT
|IF_MMX
},
1550 static struct itemplate instrux_PAVEB
[] = {
1551 {I_PAVEB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x50\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1552 {I_PAVEB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x50\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
1556 static struct itemplate instrux_PCMPEQB
[] = {
1557 {I_PCMPEQB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x74\110", IF_PENT
|IF_MMX
|IF_SM
},
1558 {I_PCMPEQB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x74\110", IF_PENT
|IF_MMX
},
1562 static struct itemplate instrux_PCMPEQD
[] = {
1563 {I_PCMPEQD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x76\110", IF_PENT
|IF_MMX
|IF_SM
},
1564 {I_PCMPEQD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x76\110", IF_PENT
|IF_MMX
},
1568 static struct itemplate instrux_PCMPEQW
[] = {
1569 {I_PCMPEQW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x75\110", IF_PENT
|IF_MMX
|IF_SM
},
1570 {I_PCMPEQW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x75\110", IF_PENT
|IF_MMX
},
1574 static struct itemplate instrux_PCMPGTB
[] = {
1575 {I_PCMPGTB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x64\110", IF_PENT
|IF_MMX
|IF_SM
},
1576 {I_PCMPGTB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x64\110", IF_PENT
|IF_MMX
},
1580 static struct itemplate instrux_PCMPGTD
[] = {
1581 {I_PCMPGTD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x66\110", IF_PENT
|IF_MMX
|IF_SM
},
1582 {I_PCMPGTD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x66\110", IF_PENT
|IF_MMX
},
1586 static struct itemplate instrux_PCMPGTW
[] = {
1587 {I_PCMPGTW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x65\110", IF_PENT
|IF_MMX
|IF_SM
},
1588 {I_PCMPGTW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x65\110", IF_PENT
|IF_MMX
},
1592 static struct itemplate instrux_PDISTIB
[] = {
1593 {I_PDISTIB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x54\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1597 static struct itemplate instrux_PMACHRIW
[] = {
1598 {I_PMACHRIW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5E\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1602 static struct itemplate instrux_PMADDWD
[] = {
1603 {I_PMADDWD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF5\110", IF_PENT
|IF_MMX
|IF_SM
},
1604 {I_PMADDWD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF5\110", IF_PENT
|IF_MMX
},
1608 static struct itemplate instrux_PMAGW
[] = {
1609 {I_PMAGW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x52\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1610 {I_PMAGW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x52\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
1614 static struct itemplate instrux_PMULHRW
[] = {
1615 {I_PMULHRW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x59\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1616 {I_PMULHRW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x59\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
1620 static struct itemplate instrux_PMULHRIW
[] = {
1621 {I_PMULHRIW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5D\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1622 {I_PMULHRIW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x5D\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
1626 static struct itemplate instrux_PMULHW
[] = {
1627 {I_PMULHW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE5\110", IF_PENT
|IF_MMX
|IF_SM
},
1628 {I_PMULHW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE5\110", IF_PENT
|IF_MMX
},
1632 static struct itemplate instrux_PMULLW
[] = {
1633 {I_PMULLW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD5\110", IF_PENT
|IF_MMX
|IF_SM
},
1634 {I_PMULLW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD5\110", IF_PENT
|IF_MMX
},
1638 static struct itemplate instrux_PMVGEZB
[] = {
1639 {I_PMVGEZB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5C\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1643 static struct itemplate instrux_PMVLZB
[] = {
1644 {I_PMVLZB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5B\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1648 static struct itemplate instrux_PMVNZB
[] = {
1649 {I_PMVNZB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x5A\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1653 static struct itemplate instrux_PMVZB
[] = {
1654 {I_PMVZB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x58\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1658 static struct itemplate instrux_POP
[] = {
1659 {I_POP
, 1, {REG16
,0,0}, "\320\10\x58", IF_8086
},
1660 {I_POP
, 1, {REG32
,0,0}, "\321\10\x58", IF_386
},
1661 {I_POP
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\x8F\200", IF_8086
},
1662 {I_POP
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\x8F\200", IF_386
},
1663 {I_POP
, 1, {REG_CS
,0,0}, "\1\x0F", IF_8086
|IF_UNDOC
},
1664 {I_POP
, 1, {REG_DESS
,0,0}, "\4", IF_8086
},
1665 {I_POP
, 1, {REG_FSGS
,0,0}, "\1\x0F\5", IF_386
},
1669 static struct itemplate instrux_POPA
[] = {
1670 {I_POPA
, 0, {0,0,0}, "\322\1\x61", IF_186
},
1674 static struct itemplate instrux_POPAD
[] = {
1675 {I_POPAD
, 0, {0,0,0}, "\321\1\x61", IF_386
},
1679 static struct itemplate instrux_POPAW
[] = {
1680 {I_POPAW
, 0, {0,0,0}, "\320\1\x61", IF_186
},
1684 static struct itemplate instrux_POPF
[] = {
1685 {I_POPF
, 0, {0,0,0}, "\322\1\x9D", IF_186
},
1689 static struct itemplate instrux_POPFD
[] = {
1690 {I_POPFD
, 0, {0,0,0}, "\321\1\x9D", IF_386
},
1694 static struct itemplate instrux_POPFW
[] = {
1695 {I_POPFW
, 0, {0,0,0}, "\320\1\x9D", IF_186
},
1699 static struct itemplate instrux_POR
[] = {
1700 {I_POR
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xEB\110", IF_PENT
|IF_MMX
|IF_SM
},
1701 {I_POR
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xEB\110", IF_PENT
|IF_MMX
},
1705 static struct itemplate instrux_PSLLD
[] = {
1706 {I_PSLLD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF2\110", IF_PENT
|IF_MMX
|IF_SM
},
1707 {I_PSLLD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF2\110", IF_PENT
|IF_MMX
},
1708 {I_PSLLD
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x72\206\25", IF_PENT
|IF_MMX
},
1712 static struct itemplate instrux_PSLLQ
[] = {
1713 {I_PSLLQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF3\110", IF_PENT
|IF_MMX
|IF_SM
},
1714 {I_PSLLQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF3\110", IF_PENT
|IF_MMX
},
1715 {I_PSLLQ
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x73\206\25", IF_PENT
|IF_MMX
},
1719 static struct itemplate instrux_PSLLW
[] = {
1720 {I_PSLLW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF1\110", IF_PENT
|IF_MMX
|IF_SM
},
1721 {I_PSLLW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF1\110", IF_PENT
|IF_MMX
},
1722 {I_PSLLW
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x71\206\25", IF_PENT
|IF_MMX
},
1726 static struct itemplate instrux_PSRAD
[] = {
1727 {I_PSRAD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE2\110", IF_PENT
|IF_MMX
|IF_SM
},
1728 {I_PSRAD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE2\110", IF_PENT
|IF_MMX
},
1729 {I_PSRAD
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x72\204\25", IF_PENT
|IF_MMX
},
1733 static struct itemplate instrux_PSRAW
[] = {
1734 {I_PSRAW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE1\110", IF_PENT
|IF_MMX
|IF_SM
},
1735 {I_PSRAW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE1\110", IF_PENT
|IF_MMX
},
1736 {I_PSRAW
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x71\204\25", IF_PENT
|IF_MMX
},
1740 static struct itemplate instrux_PSRLD
[] = {
1741 {I_PSRLD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD2\110", IF_PENT
|IF_MMX
|IF_SM
},
1742 {I_PSRLD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD2\110", IF_PENT
|IF_MMX
},
1743 {I_PSRLD
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x72\202\25", IF_PENT
|IF_MMX
},
1747 static struct itemplate instrux_PSRLQ
[] = {
1748 {I_PSRLQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD3\110", IF_PENT
|IF_MMX
|IF_SM
},
1749 {I_PSRLQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD3\110", IF_PENT
|IF_MMX
},
1750 {I_PSRLQ
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x73\202\25", IF_PENT
|IF_MMX
},
1754 static struct itemplate instrux_PSRLW
[] = {
1755 {I_PSRLW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD1\110", IF_PENT
|IF_MMX
|IF_SM
},
1756 {I_PSRLW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD1\110", IF_PENT
|IF_MMX
},
1757 {I_PSRLW
, 2, {MMXREG
,IMMEDIATE
,0}, "\2\x0F\x71\202\25", IF_PENT
|IF_MMX
},
1761 static struct itemplate instrux_PSUBB
[] = {
1762 {I_PSUBB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF8\110", IF_PENT
|IF_MMX
|IF_SM
},
1763 {I_PSUBB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF8\110", IF_PENT
|IF_MMX
},
1767 static struct itemplate instrux_PSUBD
[] = {
1768 {I_PSUBD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xFA\110", IF_PENT
|IF_MMX
|IF_SM
},
1769 {I_PSUBD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xFA\110", IF_PENT
|IF_MMX
},
1773 static struct itemplate instrux_PSUBSB
[] = {
1774 {I_PSUBSB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE8\110", IF_PENT
|IF_MMX
|IF_SM
},
1775 {I_PSUBSB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE8\110", IF_PENT
|IF_MMX
},
1779 static struct itemplate instrux_PSUBSIW
[] = {
1780 {I_PSUBSIW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x55\110", IF_PENT
|IF_MMX
|IF_SM
|IF_CYRIX
},
1781 {I_PSUBSIW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x55\110", IF_PENT
|IF_MMX
|IF_CYRIX
},
1785 static struct itemplate instrux_PSUBSW
[] = {
1786 {I_PSUBSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xE9\110", IF_PENT
|IF_MMX
|IF_SM
},
1787 {I_PSUBSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xE9\110", IF_PENT
|IF_MMX
},
1791 static struct itemplate instrux_PSUBUSB
[] = {
1792 {I_PSUBUSB
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD8\110", IF_PENT
|IF_MMX
|IF_SM
},
1793 {I_PSUBUSB
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD8\110", IF_PENT
|IF_MMX
},
1797 static struct itemplate instrux_PSUBUSW
[] = {
1798 {I_PSUBUSW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xD9\110", IF_PENT
|IF_MMX
|IF_SM
},
1799 {I_PSUBUSW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xD9\110", IF_PENT
|IF_MMX
},
1803 static struct itemplate instrux_PSUBW
[] = {
1804 {I_PSUBW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xF9\110", IF_PENT
|IF_MMX
|IF_SM
},
1805 {I_PSUBW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xF9\110", IF_PENT
|IF_MMX
},
1809 static struct itemplate instrux_PUNPCKHBW
[] = {
1810 {I_PUNPCKHBW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x68\110", IF_PENT
|IF_MMX
|IF_SM
},
1811 {I_PUNPCKHBW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x68\110", IF_PENT
|IF_MMX
},
1815 static struct itemplate instrux_PUNPCKHDQ
[] = {
1816 {I_PUNPCKHDQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x6A\110", IF_PENT
|IF_MMX
|IF_SM
},
1817 {I_PUNPCKHDQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x6A\110", IF_PENT
|IF_MMX
},
1821 static struct itemplate instrux_PUNPCKHWD
[] = {
1822 {I_PUNPCKHWD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x69\110", IF_PENT
|IF_MMX
|IF_SM
},
1823 {I_PUNPCKHWD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x69\110", IF_PENT
|IF_MMX
},
1827 static struct itemplate instrux_PUNPCKLBW
[] = {
1828 {I_PUNPCKLBW
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x60\110", IF_PENT
|IF_MMX
|IF_SM
},
1829 {I_PUNPCKLBW
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x60\110", IF_PENT
|IF_MMX
},
1833 static struct itemplate instrux_PUNPCKLDQ
[] = {
1834 {I_PUNPCKLDQ
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x62\110", IF_PENT
|IF_MMX
|IF_SM
},
1835 {I_PUNPCKLDQ
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x62\110", IF_PENT
|IF_MMX
},
1839 static struct itemplate instrux_PUNPCKLWD
[] = {
1840 {I_PUNPCKLWD
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\x61\110", IF_PENT
|IF_MMX
|IF_SM
},
1841 {I_PUNPCKLWD
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\x61\110", IF_PENT
|IF_MMX
},
1845 static struct itemplate instrux_PUSH
[] = {
1846 {I_PUSH
, 1, {REG16
,0,0}, "\320\10\x50", IF_8086
},
1847 {I_PUSH
, 1, {REG32
,0,0}, "\321\10\x50", IF_386
},
1848 {I_PUSH
, 1, {REGMEM
|BITS16
,0,0}, "\320\300\1\xFF\206", IF_8086
},
1849 {I_PUSH
, 1, {REGMEM
|BITS32
,0,0}, "\321\300\1\xFF\206", IF_386
},
1850 {I_PUSH
, 1, {REG_FSGS
,0,0}, "\1\x0F\7", IF_386
},
1851 {I_PUSH
, 1, {REG_SREG
,0,0}, "\6", IF_8086
},
1852 {I_PUSH
, 1, {IMMEDIATE
|BITS8
,0,0}, "\1\x6A\14", IF_286
},
1853 {I_PUSH
, 1, {IMMEDIATE
|BITS16
,0,0}, "\320\1\x68\30", IF_286
},
1854 {I_PUSH
, 1, {IMMEDIATE
|BITS32
,0,0}, "\321\1\x68\40", IF_386
},
1858 static struct itemplate instrux_PUSHA
[] = {
1859 {I_PUSHA
, 0, {0,0,0}, "\322\1\x60", IF_186
},
1863 static struct itemplate instrux_PUSHAD
[] = {
1864 {I_PUSHAD
, 0, {0,0,0}, "\321\1\x60", IF_386
},
1868 static struct itemplate instrux_PUSHAW
[] = {
1869 {I_PUSHAW
, 0, {0,0,0}, "\320\1\x60", IF_186
},
1873 static struct itemplate instrux_PUSHF
[] = {
1874 {I_PUSHF
, 0, {0,0,0}, "\322\1\x9C", IF_186
},
1878 static struct itemplate instrux_PUSHFD
[] = {
1879 {I_PUSHFD
, 0, {0,0,0}, "\321\1\x9C", IF_386
},
1883 static struct itemplate instrux_PUSHFW
[] = {
1884 {I_PUSHFW
, 0, {0,0,0}, "\320\1\x9C", IF_186
},
1888 static struct itemplate instrux_PXOR
[] = {
1889 {I_PXOR
, 2, {MMXREG
,MEMORY
,0}, "\301\2\x0F\xEF\110", IF_PENT
|IF_MMX
|IF_SM
},
1890 {I_PXOR
, 2, {MMXREG
,MMXREG
,0}, "\2\x0F\xEF\110", IF_PENT
|IF_MMX
},
1894 static struct itemplate instrux_RCL
[] = {
1895 {I_RCL
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\202", IF_8086
},
1896 {I_RCL
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\202", IF_8086
},
1897 {I_RCL
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\202\25", IF_286
|IF_SB
},
1898 {I_RCL
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\202", IF_8086
},
1899 {I_RCL
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\202", IF_8086
},
1900 {I_RCL
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\202\25", IF_286
|IF_SB
},
1901 {I_RCL
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\202", IF_386
},
1902 {I_RCL
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\202", IF_386
},
1903 {I_RCL
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\202\25", IF_386
|IF_SB
},
1907 static struct itemplate instrux_RCR
[] = {
1908 {I_RCR
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\203", IF_8086
},
1909 {I_RCR
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\203", IF_8086
},
1910 {I_RCR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\203\25", IF_286
|IF_SB
},
1911 {I_RCR
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\203", IF_8086
},
1912 {I_RCR
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\203", IF_8086
},
1913 {I_RCR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\203\25", IF_286
|IF_SB
},
1914 {I_RCR
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\203", IF_386
},
1915 {I_RCR
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\203", IF_386
},
1916 {I_RCR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\203\25", IF_386
|IF_SB
},
1920 static struct itemplate instrux_RDMSR
[] = {
1921 {I_RDMSR
, 0, {0,0,0}, "\2\x0F\x32", IF_PENT
},
1925 static struct itemplate instrux_RDPMC
[] = {
1926 {I_RDPMC
, 0, {0,0,0}, "\2\x0F\x33", IF_P6
},
1930 static struct itemplate instrux_RDTSC
[] = {
1931 {I_RDTSC
, 0, {0,0,0}, "\2\x0F\x31", IF_PENT
},
1935 static struct itemplate instrux_RESB
[] = {
1936 {I_RESB
, 1, {IMMEDIATE
,0,0}, "\340", IF_8086
},
1940 static struct itemplate instrux_RESD
[] = {
1944 static struct itemplate instrux_RESQ
[] = {
1948 static struct itemplate instrux_REST
[] = {
1952 static struct itemplate instrux_RESW
[] = {
1956 static struct itemplate instrux_RET
[] = {
1957 {I_RET
, 0, {0,0,0}, "\1\xC3", IF_8086
},
1958 {I_RET
, 1, {IMMEDIATE
,0,0}, "\1\xC2\30", IF_8086
},
1962 static struct itemplate instrux_RETF
[] = {
1963 {I_RETF
, 0, {0,0,0}, "\1\xCB", IF_8086
},
1964 {I_RETF
, 1, {IMMEDIATE
,0,0}, "\1\xCA\30", IF_8086
},
1968 static struct itemplate instrux_RETN
[] = {
1969 {I_RETN
, 0, {0,0,0}, "\1\xC3", IF_8086
},
1970 {I_RETN
, 1, {IMMEDIATE
,0,0}, "\1\xC2\30", IF_8086
},
1974 static struct itemplate instrux_ROL
[] = {
1975 {I_ROL
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\200", IF_8086
},
1976 {I_ROL
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\200", IF_8086
},
1977 {I_ROL
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\200\25", IF_286
|IF_SB
},
1978 {I_ROL
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\200", IF_8086
},
1979 {I_ROL
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\200", IF_8086
},
1980 {I_ROL
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\200\25", IF_286
|IF_SB
},
1981 {I_ROL
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\200", IF_386
},
1982 {I_ROL
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\200", IF_386
},
1983 {I_ROL
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\200\25", IF_386
|IF_SB
},
1987 static struct itemplate instrux_ROR
[] = {
1988 {I_ROR
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\201", IF_8086
},
1989 {I_ROR
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\201", IF_8086
},
1990 {I_ROR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\201\25", IF_286
|IF_SB
},
1991 {I_ROR
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\201", IF_8086
},
1992 {I_ROR
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\201", IF_8086
},
1993 {I_ROR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\201\25", IF_286
|IF_SB
},
1994 {I_ROR
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\201", IF_386
},
1995 {I_ROR
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\201", IF_386
},
1996 {I_ROR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\201\25", IF_386
|IF_SB
},
2000 static struct itemplate instrux_RSM
[] = {
2001 {I_RSM
, 0, {0,0,0}, "\2\x0F\xAA", IF_PENT
},
2005 static struct itemplate instrux_SAHF
[] = {
2006 {I_SAHF
, 0, {0,0,0}, "\1\x9E", IF_8086
},
2010 static struct itemplate instrux_SAL
[] = {
2011 {I_SAL
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\204", IF_8086
},
2012 {I_SAL
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\204", IF_8086
},
2013 {I_SAL
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\204\25", IF_286
|IF_SB
},
2014 {I_SAL
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\204", IF_8086
},
2015 {I_SAL
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\204", IF_8086
},
2016 {I_SAL
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\204\25", IF_286
|IF_SB
},
2017 {I_SAL
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\204", IF_386
},
2018 {I_SAL
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\204", IF_386
},
2019 {I_SAL
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\204\25", IF_386
|IF_SB
},
2023 static struct itemplate instrux_SALC
[] = {
2024 {I_SALC
, 0, {0,0,0}, "\1\xD6", IF_8086
|IF_UNDOC
},
2028 static struct itemplate instrux_SAR
[] = {
2029 {I_SAR
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\207", IF_8086
},
2030 {I_SAR
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\207", IF_8086
},
2031 {I_SAR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\207\25", IF_286
|IF_SB
},
2032 {I_SAR
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\207", IF_8086
},
2033 {I_SAR
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\207", IF_8086
},
2034 {I_SAR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\207\25", IF_286
|IF_SB
},
2035 {I_SAR
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\207", IF_386
},
2036 {I_SAR
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\207", IF_386
},
2037 {I_SAR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\207\25", IF_386
|IF_SB
},
2041 static struct itemplate instrux_SBB
[] = {
2042 {I_SBB
, 2, {MEMORY
,REG8
,0}, "\300\1\x18\101", IF_8086
|IF_SM
},
2043 {I_SBB
, 2, {REG8
,REG8
,0}, "\300\1\x18\101", IF_8086
},
2044 {I_SBB
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x19\101", IF_8086
|IF_SM
},
2045 {I_SBB
, 2, {REG16
,REG16
,0}, "\320\300\1\x19\101", IF_8086
},
2046 {I_SBB
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x19\101", IF_386
|IF_SM
},
2047 {I_SBB
, 2, {REG32
,REG32
,0}, "\321\300\1\x19\101", IF_386
},
2048 {I_SBB
, 2, {REG8
,MEMORY
,0}, "\301\1\x1A\110", IF_8086
|IF_SM
},
2049 {I_SBB
, 2, {REG8
,REG8
,0}, "\301\1\x1A\110", IF_8086
},
2050 {I_SBB
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x1B\110", IF_8086
|IF_SM
},
2051 {I_SBB
, 2, {REG16
,REG16
,0}, "\320\301\1\x1B\110", IF_8086
},
2052 {I_SBB
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x1B\110", IF_386
|IF_SM
},
2053 {I_SBB
, 2, {REG32
,REG32
,0}, "\321\301\1\x1B\110", IF_386
},
2054 {I_SBB
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\203\15", IF_8086
},
2055 {I_SBB
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\203\15", IF_8086
},
2056 {I_SBB
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x1C\21", IF_8086
|IF_SM
},
2057 {I_SBB
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x1D\31", IF_8086
|IF_SM
},
2058 {I_SBB
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x1D\41", IF_386
|IF_SM
},
2059 {I_SBB
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\203\21", IF_8086
|IF_SM
},
2060 {I_SBB
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\x81\203\31", IF_8086
|IF_SM
},
2061 {I_SBB
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\x81\203\41", IF_386
|IF_SM
},
2062 {I_SBB
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\203\21", IF_8086
|IF_SM
},
2063 {I_SBB
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\x81\203\31", IF_8086
|IF_SM
},
2064 {I_SBB
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\x81\203\41", IF_386
|IF_SM
},
2068 static struct itemplate instrux_SCASB
[] = {
2069 {I_SCASB
, 0, {0,0,0}, "\1\xAE", IF_8086
},
2073 static struct itemplate instrux_SCASD
[] = {
2074 {I_SCASD
, 0, {0,0,0}, "\321\1\xAF", IF_386
},
2078 static struct itemplate instrux_SCASW
[] = {
2079 {I_SCASW
, 0, {0,0,0}, "\320\1\xAF", IF_8086
},
2083 static struct itemplate instrux_SGDT
[] = {
2084 {I_SGDT
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\200", IF_286
|IF_PRIV
},
2088 static struct itemplate instrux_SHL
[] = {
2089 {I_SHL
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\204", IF_8086
},
2090 {I_SHL
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\204", IF_8086
},
2091 {I_SHL
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\204\25", IF_286
|IF_SB
},
2092 {I_SHL
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\204", IF_8086
},
2093 {I_SHL
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\204", IF_8086
},
2094 {I_SHL
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\204\25", IF_286
|IF_SB
},
2095 {I_SHL
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\204", IF_386
},
2096 {I_SHL
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\204", IF_386
},
2097 {I_SHL
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\204\25", IF_386
|IF_SB
},
2101 static struct itemplate instrux_SHLD
[] = {
2102 {I_SHLD
, 3, {MEMORY
,REG16
,IMMEDIATE
}, "\300\320\2\x0F\xA4\101\26", IF_386
|IF_SM2
},
2103 {I_SHLD
, 3, {REG16
,REG16
,IMMEDIATE
}, "\300\320\2\x0F\xA4\101\26", IF_386
|IF_SM2
},
2104 {I_SHLD
, 3, {MEMORY
,REG32
,IMMEDIATE
}, "\300\321\2\x0F\xA4\101\26", IF_386
|IF_SM2
},
2105 {I_SHLD
, 3, {REG32
,REG32
,IMMEDIATE
}, "\300\321\2\x0F\xA4\101\26", IF_386
|IF_SM2
},
2106 {I_SHLD
, 3, {MEMORY
,REG16
,REG_CL
}, "\300\320\2\x0F\xA5\101", IF_386
|IF_SM
},
2107 {I_SHLD
, 3, {REG16
,REG16
,REG_CL
}, "\300\320\2\x0F\xA5\101", IF_386
},
2108 {I_SHLD
, 3, {MEMORY
,REG32
,REG_CL
}, "\300\321\2\x0F\xA5\101", IF_386
|IF_SM
},
2109 {I_SHLD
, 3, {REG32
,REG32
,REG_CL
}, "\300\321\2\x0F\xA5\101", IF_386
},
2113 static struct itemplate instrux_SHR
[] = {
2114 {I_SHR
, 2, {REGMEM
|BITS8
,UNITY
,0}, "\300\1\xD0\205", IF_8086
},
2115 {I_SHR
, 2, {REGMEM
|BITS8
,REG_CL
,0}, "\300\1\xD2\205", IF_8086
},
2116 {I_SHR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xC0\205\25", IF_286
|IF_SB
},
2117 {I_SHR
, 2, {REGMEM
|BITS16
,UNITY
,0}, "\320\300\1\xD1\205", IF_8086
},
2118 {I_SHR
, 2, {REGMEM
|BITS16
,REG_CL
,0}, "\320\300\1\xD3\205", IF_8086
},
2119 {I_SHR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xC1\205\25", IF_286
|IF_SB
},
2120 {I_SHR
, 2, {REGMEM
|BITS32
,UNITY
,0}, "\321\300\1\xD1\205", IF_386
},
2121 {I_SHR
, 2, {REGMEM
|BITS32
,REG_CL
,0}, "\321\300\1\xD3\205", IF_386
},
2122 {I_SHR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xC1\205\25", IF_386
|IF_SB
},
2126 static struct itemplate instrux_SHRD
[] = {
2127 {I_SHRD
, 3, {MEMORY
,REG16
,IMMEDIATE
}, "\300\320\2\x0F\xAC\101\26", IF_386
|IF_SM2
},
2128 {I_SHRD
, 3, {REG16
,REG16
,IMMEDIATE
}, "\300\320\2\x0F\xAC\101\26", IF_386
|IF_SM2
},
2129 {I_SHRD
, 3, {MEMORY
,REG32
,IMMEDIATE
}, "\300\321\2\x0F\xAC\101\26", IF_386
|IF_SM2
},
2130 {I_SHRD
, 3, {REG32
,REG32
,IMMEDIATE
}, "\300\321\2\x0F\xAC\101\26", IF_386
|IF_SM2
},
2131 {I_SHRD
, 3, {MEMORY
,REG16
,REG_CL
}, "\300\320\2\x0F\xAD\101", IF_386
|IF_SM
},
2132 {I_SHRD
, 3, {REG16
,REG16
,REG_CL
}, "\300\320\2\x0F\xAD\101", IF_386
},
2133 {I_SHRD
, 3, {MEMORY
,REG32
,REG_CL
}, "\300\321\2\x0F\xAD\101", IF_386
|IF_SM
},
2134 {I_SHRD
, 3, {REG32
,REG32
,REG_CL
}, "\300\321\2\x0F\xAD\101", IF_386
},
2138 static struct itemplate instrux_SIDT
[] = {
2139 {I_SIDT
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\201", IF_286
|IF_PRIV
},
2143 static struct itemplate instrux_SLDT
[] = {
2144 {I_SLDT
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\200", IF_286
|IF_PRIV
},
2145 {I_SLDT
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\200", IF_286
|IF_PRIV
},
2146 {I_SLDT
, 1, {REG16
,0,0}, "\300\1\x0F\17\200", IF_286
|IF_PRIV
},
2150 static struct itemplate instrux_SMI
[] = {
2151 {I_SMI
, 0, {0,0,0}, "\1\xF1", IF_386
|IF_UNDOC
},
2155 static struct itemplate instrux_SMSW
[] = {
2156 {I_SMSW
, 1, {MEMORY
,0,0}, "\300\2\x0F\x01\204", IF_286
|IF_PRIV
},
2157 {I_SMSW
, 1, {MEMORY
|BITS16
,0,0}, "\300\2\x0F\x01\204", IF_286
|IF_PRIV
},
2158 {I_SMSW
, 1, {REG16
,0,0}, "\300\2\x0F\x01\204", IF_286
|IF_PRIV
},
2162 static struct itemplate instrux_STC
[] = {
2163 {I_STC
, 0, {0,0,0}, "\1\xF9", IF_8086
},
2167 static struct itemplate instrux_STD
[] = {
2168 {I_STD
, 0, {0,0,0}, "\1\xFD", IF_8086
},
2172 static struct itemplate instrux_STI
[] = {
2173 {I_STI
, 0, {0,0,0}, "\1\xFB", IF_8086
},
2177 static struct itemplate instrux_STOSB
[] = {
2178 {I_STOSB
, 0, {0,0,0}, "\1\xAA", IF_8086
},
2182 static struct itemplate instrux_STOSD
[] = {
2183 {I_STOSD
, 0, {0,0,0}, "\321\1\xAB", IF_386
},
2187 static struct itemplate instrux_STOSW
[] = {
2188 {I_STOSW
, 0, {0,0,0}, "\320\1\xAB", IF_8086
},
2192 static struct itemplate instrux_STR
[] = {
2193 {I_STR
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\201", IF_286
|IF_PRIV
},
2194 {I_STR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\201", IF_286
|IF_PRIV
},
2195 {I_STR
, 1, {REG16
,0,0}, "\300\1\x0F\17\201", IF_286
|IF_PRIV
},
2199 static struct itemplate instrux_SUB
[] = {
2200 {I_SUB
, 2, {MEMORY
,REG8
,0}, "\300\1\x28\101", IF_8086
|IF_SM
},
2201 {I_SUB
, 2, {REG8
,REG8
,0}, "\300\1\x28\101", IF_8086
},
2202 {I_SUB
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x29\101", IF_8086
|IF_SM
},
2203 {I_SUB
, 2, {REG16
,REG16
,0}, "\320\300\1\x29\101", IF_8086
},
2204 {I_SUB
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x29\101", IF_386
|IF_SM
},
2205 {I_SUB
, 2, {REG32
,REG32
,0}, "\321\300\1\x29\101", IF_386
},
2206 {I_SUB
, 2, {REG8
,MEMORY
,0}, "\301\1\x2A\110", IF_8086
|IF_SM
},
2207 {I_SUB
, 2, {REG8
,REG8
,0}, "\301\1\x2A\110", IF_8086
},
2208 {I_SUB
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x2B\110", IF_8086
|IF_SM
},
2209 {I_SUB
, 2, {REG16
,REG16
,0}, "\320\301\1\x2B\110", IF_8086
},
2210 {I_SUB
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x2B\110", IF_386
|IF_SM
},
2211 {I_SUB
, 2, {REG32
,REG32
,0}, "\321\301\1\x2B\110", IF_386
},
2212 {I_SUB
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\205\15", IF_8086
},
2213 {I_SUB
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\205\15", IF_386
},
2214 {I_SUB
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x2C\21", IF_8086
|IF_SM
},
2215 {I_SUB
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x2D\31", IF_8086
|IF_SM
},
2216 {I_SUB
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x2D\41", IF_386
|IF_SM
},
2217 {I_SUB
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\205\21", IF_8086
|IF_SM
},
2218 {I_SUB
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\x81\205\31", IF_8086
|IF_SM
},
2219 {I_SUB
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\x81\205\41", IF_386
|IF_SM
},
2220 {I_SUB
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\205\21", IF_8086
|IF_SM
},
2221 {I_SUB
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\x81\205\31", IF_8086
|IF_SM
},
2222 {I_SUB
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\x81\205\41", IF_386
|IF_SM
},
2226 static struct itemplate instrux_TEST
[] = {
2227 {I_TEST
, 2, {MEMORY
,REG8
,0}, "\300\1\x84\101", IF_8086
|IF_SM
},
2228 {I_TEST
, 2, {REG8
,REG8
,0}, "\300\1\x84\101", IF_8086
},
2229 {I_TEST
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x85\101", IF_8086
|IF_SM
},
2230 {I_TEST
, 2, {REG16
,REG16
,0}, "\320\300\1\x85\101", IF_8086
},
2231 {I_TEST
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x85\101", IF_386
|IF_SM
},
2232 {I_TEST
, 2, {REG32
,REG32
,0}, "\321\300\1\x85\101", IF_386
},
2233 {I_TEST
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\xA8\21", IF_8086
|IF_SM
},
2234 {I_TEST
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\xA9\31", IF_8086
|IF_SM
},
2235 {I_TEST
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\xA9\41", IF_386
|IF_SM
},
2236 {I_TEST
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\xF6\200\21", IF_8086
|IF_SM
},
2237 {I_TEST
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\xF7\200\31", IF_8086
|IF_SM
},
2238 {I_TEST
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\xF7\200\41", IF_386
|IF_SM
},
2239 {I_TEST
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\xF6\200\21", IF_8086
|IF_SM
},
2240 {I_TEST
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\xF7\200\31", IF_8086
|IF_SM
},
2241 {I_TEST
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\xF7\200\41", IF_386
|IF_SM
},
2245 static struct itemplate instrux_UMOV
[] = {
2246 {I_UMOV
, 2, {MEMORY
,REG8
,0}, "\300\2\x0F\x10\101", IF_386
|IF_UNDOC
|IF_SM
},
2247 {I_UMOV
, 2, {REG8
,REG8
,0}, "\300\2\x0F\x10\101", IF_386
|IF_UNDOC
},
2248 {I_UMOV
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\x11\101", IF_386
|IF_UNDOC
|IF_SM
},
2249 {I_UMOV
, 2, {REG16
,REG16
,0}, "\320\300\2\x0F\x11\101", IF_386
|IF_UNDOC
},
2250 {I_UMOV
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\x11\101", IF_386
|IF_UNDOC
|IF_SM
},
2251 {I_UMOV
, 2, {REG32
,REG32
,0}, "\321\300\2\x0F\x11\101", IF_386
|IF_UNDOC
},
2252 {I_UMOV
, 2, {REG8
,MEMORY
,0}, "\301\2\x0F\x12\110", IF_386
|IF_UNDOC
|IF_SM
},
2253 {I_UMOV
, 2, {REG8
,REG8
,0}, "\301\2\x0F\x12\110", IF_386
|IF_UNDOC
},
2254 {I_UMOV
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\x13\110", IF_386
|IF_UNDOC
|IF_SM
},
2255 {I_UMOV
, 2, {REG16
,REG16
,0}, "\320\301\2\x0F\x13\110", IF_386
|IF_UNDOC
},
2256 {I_UMOV
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\x13\110", IF_386
|IF_UNDOC
|IF_SM
},
2257 {I_UMOV
, 2, {REG32
,REG32
,0}, "\321\301\2\x0F\x13\110", IF_386
|IF_UNDOC
},
2261 static struct itemplate instrux_VERR
[] = {
2262 {I_VERR
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\204", IF_286
|IF_PRIV
},
2263 {I_VERR
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\204", IF_286
|IF_PRIV
},
2264 {I_VERR
, 1, {REG16
,0,0}, "\300\1\x0F\17\204", IF_286
|IF_PRIV
},
2268 static struct itemplate instrux_VERW
[] = {
2269 {I_VERW
, 1, {MEMORY
,0,0}, "\300\1\x0F\17\205", IF_286
|IF_PRIV
},
2270 {I_VERW
, 1, {MEMORY
|BITS16
,0,0}, "\300\1\x0F\17\205", IF_286
|IF_PRIV
},
2271 {I_VERW
, 1, {REG16
,0,0}, "\300\1\x0F\17\205", IF_286
|IF_PRIV
},
2275 static struct itemplate instrux_WAIT
[] = {
2276 {I_WAIT
, 0, {0,0,0}, "\1\x9B", IF_8086
},
2280 static struct itemplate instrux_WBINVD
[] = {
2281 {I_WBINVD
, 0, {0,0,0}, "\2\x0F\x09", IF_486
},
2285 static struct itemplate instrux_WRMSR
[] = {
2286 {I_WRMSR
, 0, {0,0,0}, "\2\x0F\x30", IF_PENT
},
2290 static struct itemplate instrux_XADD
[] = {
2291 {I_XADD
, 2, {MEMORY
,REG8
,0}, "\300\2\x0F\xC0\101", IF_486
|IF_SM
},
2292 {I_XADD
, 2, {REG8
,REG8
,0}, "\300\2\x0F\xC0\101", IF_486
},
2293 {I_XADD
, 2, {MEMORY
,REG16
,0}, "\320\300\2\x0F\xC1\101", IF_486
|IF_SM
},
2294 {I_XADD
, 2, {REG16
,REG16
,0}, "\320\300\2\x0F\xC1\101", IF_486
},
2295 {I_XADD
, 2, {MEMORY
,REG32
,0}, "\321\300\2\x0F\xC1\101", IF_486
|IF_SM
},
2296 {I_XADD
, 2, {REG32
,REG32
,0}, "\321\300\2\x0F\xC1\101", IF_486
},
2300 static struct itemplate instrux_XBTS
[] = {
2301 {I_XBTS
, 2, {REG16
,MEMORY
,0}, "\320\301\2\x0F\xA6\110", IF_386
|IF_SW
|IF_UNDOC
},
2302 {I_XBTS
, 2, {REG16
,REG16
,0}, "\320\301\2\x0F\xA6\110", IF_386
|IF_UNDOC
},
2303 {I_XBTS
, 2, {REG32
,MEMORY
,0}, "\321\301\2\x0F\xA6\110", IF_386
|IF_SD
|IF_UNDOC
},
2304 {I_XBTS
, 2, {REG32
,REG32
,0}, "\321\301\2\x0F\xA6\110", IF_386
|IF_UNDOC
},
2308 static struct itemplate instrux_XCHG
[] = {
2309 {I_XCHG
, 2, {REG_AX
,REG16
,0}, "\320\11\x90", IF_8086
},
2310 {I_XCHG
, 2, {REG_EAX
,REG32
,0}, "\321\11\x90", IF_386
},
2311 {I_XCHG
, 2, {REG16
,REG_AX
,0}, "\320\10\x90", IF_8086
},
2312 {I_XCHG
, 2, {REG32
,REG_EAX
,0}, "\321\10\x90", IF_386
},
2313 {I_XCHG
, 2, {REG8
,MEMORY
,0}, "\301\1\x86\110", IF_8086
|IF_SM
},
2314 {I_XCHG
, 2, {REG8
,REG8
,0}, "\301\1\x86\110", IF_8086
},
2315 {I_XCHG
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x87\110", IF_8086
|IF_SM
},
2316 {I_XCHG
, 2, {REG16
,REG16
,0}, "\320\301\1\x87\110", IF_8086
},
2317 {I_XCHG
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x87\110", IF_386
|IF_SM
},
2318 {I_XCHG
, 2, {REG32
,REG32
,0}, "\321\301\1\x87\110", IF_386
},
2319 {I_XCHG
, 2, {MEMORY
,REG8
,0}, "\300\1\x86\101", IF_8086
|IF_SM
},
2320 {I_XCHG
, 2, {REG8
,REG8
,0}, "\300\1\x86\101", IF_8086
},
2321 {I_XCHG
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x87\101", IF_8086
|IF_SM
},
2322 {I_XCHG
, 2, {REG16
,REG16
,0}, "\320\300\1\x87\101", IF_8086
},
2323 {I_XCHG
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x87\101", IF_386
|IF_SM
},
2324 {I_XCHG
, 2, {REG32
,REG32
,0}, "\321\300\1\x87\101", IF_386
},
2328 static struct itemplate instrux_XLATB
[] = {
2329 {I_XLATB
, 0, {0,0,0}, "\1\xD7", IF_8086
},
2333 static struct itemplate instrux_XOR
[] = {
2334 {I_XOR
, 2, {MEMORY
,REG8
,0}, "\300\1\x30\101", IF_8086
|IF_SM
},
2335 {I_XOR
, 2, {REG8
,REG8
,0}, "\300\1\x30\101", IF_8086
},
2336 {I_XOR
, 2, {MEMORY
,REG16
,0}, "\320\300\1\x31\101", IF_8086
|IF_SM
},
2337 {I_XOR
, 2, {REG16
,REG16
,0}, "\320\300\1\x31\101", IF_8086
},
2338 {I_XOR
, 2, {MEMORY
,REG32
,0}, "\321\300\1\x31\101", IF_386
|IF_SM
},
2339 {I_XOR
, 2, {REG32
,REG32
,0}, "\321\300\1\x31\101", IF_386
},
2340 {I_XOR
, 2, {REG8
,MEMORY
,0}, "\301\1\x32\110", IF_8086
|IF_SM
},
2341 {I_XOR
, 2, {REG8
,REG8
,0}, "\301\1\x32\110", IF_8086
},
2342 {I_XOR
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x33\110", IF_8086
|IF_SM
},
2343 {I_XOR
, 2, {REG16
,REG16
,0}, "\320\301\1\x33\110", IF_8086
},
2344 {I_XOR
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x33\110", IF_386
|IF_SM
},
2345 {I_XOR
, 2, {REG32
,REG32
,0}, "\321\301\1\x33\110", IF_386
},
2346 {I_XOR
, 2, {REGMEM
|BITS16
,IMMEDIATE
|BITS8
,0}, "\320\300\1\x83\206\15", IF_8086
},
2347 {I_XOR
, 2, {REGMEM
|BITS32
,IMMEDIATE
|BITS8
,0}, "\321\300\1\x83\206\15", IF_386
},
2348 {I_XOR
, 2, {REG_AL
,IMMEDIATE
,0}, "\1\x34\21", IF_8086
|IF_SM
},
2349 {I_XOR
, 2, {REG_AX
,IMMEDIATE
,0}, "\320\1\x35\31", IF_8086
|IF_SM
},
2350 {I_XOR
, 2, {REG_EAX
,IMMEDIATE
,0}, "\321\1\x35\41", IF_386
|IF_SM
},
2351 {I_XOR
, 2, {REGMEM
|BITS8
,IMMEDIATE
,0}, "\300\1\x80\206\21", IF_8086
|IF_SM
},
2352 {I_XOR
, 2, {REGMEM
|BITS16
,IMMEDIATE
,0}, "\320\300\1\x81\206\31", IF_8086
|IF_SM
},
2353 {I_XOR
, 2, {REGMEM
|BITS32
,IMMEDIATE
,0}, "\321\300\1\x81\206\41", IF_386
|IF_SM
},
2354 {I_XOR
, 2, {MEMORY
,IMMEDIATE
|BITS8
,0}, "\300\1\x80\206\21", IF_8086
|IF_SM
},
2355 {I_XOR
, 2, {MEMORY
,IMMEDIATE
|BITS16
,0}, "\320\300\1\x81\206\31", IF_8086
|IF_SM
},
2356 {I_XOR
, 2, {MEMORY
,IMMEDIATE
|BITS32
,0}, "\321\300\1\x81\206\41", IF_386
|IF_SM
},
2360 static struct itemplate instrux_CMOVcc
[] = {
2361 {I_CMOVcc
, 2, {REG16
,MEMORY
,0}, "\320\301\1\x0F\330\x40\110", IF_P6
|IF_SM
},
2362 {I_CMOVcc
, 2, {REG16
,REG16
,0}, "\320\301\1\x0F\330\x40\110", IF_P6
},
2363 {I_CMOVcc
, 2, {REG32
,MEMORY
,0}, "\321\301\1\x0F\330\x40\110", IF_P6
|IF_SM
},
2364 {I_CMOVcc
, 2, {REG32
,REG32
,0}, "\321\301\1\x0F\330\x40\110", IF_P6
},
2368 static struct itemplate instrux_Jcc
[] = {
2369 {I_Jcc
, 1, {IMMEDIATE
|NEAR
,0,0}, "\322\1\x0F\330\x80\64", IF_386
},
2370 {I_Jcc
, 1, {IMMEDIATE
,0,0}, "\330\x70\50", IF_8086
},
2371 {I_Jcc
, 1, {IMMEDIATE
|SHORT
,0,0}, "\330\x70\50", IF_8086
},
2375 static struct itemplate instrux_SETcc
[] = {
2376 {I_SETcc
, 1, {MEMORY
,0,0}, "\300\1\x0F\330\x90\200", IF_386
|IF_SB
},
2377 {I_SETcc
, 1, {REG8
,0,0}, "\300\1\x0F\330\x90\200", IF_386
},
2381 struct itemplate
*nasm_instructions
[] = {