Initial commit
[cl-x86-asm.git] / x86instructions.lisp
blob2ff59b262a33b1b69fb260be8bf63e64b99a39de
3 (in-package :cl-x86-asm)
5 (declaim (optimize (debug 3) (speed 0) (safety 3) (compilation-speed 0)))
7 (defparameter *instruction-table*
8 '((("XORPS") (:|xmm1| :|xmm2/m128|) (#xF #x57 :|/r|))
9 (("XORPD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x57 :|/r|))
10 (("XOR") (:|EAX| :|imm32|) (:|o32| #x35 :|id|))
11 (("XOR") (:AX :|imm16|) (:|o16| #x35 :|iw|))
12 (("XOR") (:AL :|imm8|) (#x34 :|ib|))
13 (("XOR") (:|r/m32| :|imm8|) (:|o32| #x83 :/6 :|ib|))
14 (("XOR") (:|r/m16| :|imm8|) (:|o16| #x83 :/6 :|ib|))
15 (("XOR") (:|r/m32| :|imm32|) (:|o32| #x81 :/6 :|id|))
16 (("XOR") (:|r/m16| :|imm16|) (:|o16| #x81 :/6 :|iw|))
17 (("XOR") (:|r/m8| :|imm8|) (#x80 :/6 :|ib|))
18 (("XOR") (:|reg32| :|r/m32|) (:|o32| #x33 :|/r|))
19 (("XOR") (:|reg16| :|r/m16|) (:|o16| #x33 :|/r|))
20 (("XOR") (:|reg8| :|r/m8|) (#x32 :|/r|))
21 (("XOR") (:|r/m32| :|reg32|) (:|o32| #x31 :|/r|))
22 (("XOR") (:|r/m16| :|reg16|) (:|o16| #x31 :|/r|))
23 (("XOR") (:|r/m8| :|reg8|) (#x30 :|/r|))
24 (("XLATB") (:|none|) (#xD7))
25 (("XLAT") (:|none|) (#xD7))
26 (("XCHG") (:|reg32| :|EAX|) (:|o32| #x90 :|+r|))
27 (("XCHG") (:|reg16| :AX) (:|o16| #x90 :|+r|))
28 (("XCHG") (:|EAX| :|reg32|) (:|o32| #x90 :|+r|))
29 (("XCHG") (:AX :|reg16|) (:|o16| #x90 :|+r|))
30 (("XCHG") (:|r/m32| :|reg32|) (:|o32| #x87 :|/r|))
31 (("XCHG") (:|r/m16| :|reg16|) (:|o16| #x87 :|/r|))
32 (("XCHG") (:|r/m8| :|reg8|) (#x86 :|/r|))
33 (("XCHG") (:|reg32| :|r/m32|) (:|o32| #x87 :|/r|))
34 (("XCHG") (:|reg16| :|r/m8|) (:|o16| #x87 :|/r|))
35 (("XCHG") (:|reg8| :|r/m8|) (#x86 :|/r|))
36 (("XBTS") (:|reg32| :|r/m32|) (:|o32| #xF #xA6 :|/r|))
37 (("XBTS") (:|reg16| :|r/m16|) (:|o16| #xF #xA6 :|/r|))
38 (("XADD") (:|r/m32| :|reg32|) (:|o32| #xF #xC1 :|/r|))
39 (("XADD") (:|r/m16| :|reg16|) (:|o16| #xF #xC1 :|/r|))
40 (("XADD") (:|r/m8| :|reg8|) (#xF #xC0 :|/r|))
41 (("WRSHR") (:|r/m32|) (#xF #x37 :/0))
42 (("WRMSR") (:|none|) (#xF #x30))
43 (("WBINVD") (:|none|) (#xF #x9))
44 (("FWAIT") (:|none|) (#x9B))
45 (("WAIT") (:|none|) (#x9B))
46 (("VERW") (:|r/m16|) (#xF #x0 :/5))
47 (("VERR") (:|r/m16|) (#xF #x0 :/4))
48 (("UNPCKLPS") (:|xmm1| :|xmm2/m128|) (#xF #x14 :|/r|))
49 (("UNPCKLPD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x14 :|/r|))
50 (("UNPCKHPS") (:|xmm1| :|xmm2/m128|) (#xF #x15 :|/r|))
51 (("UNPCKHPD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x15 :|/r|))
52 (("UMOV") (:|reg32| :|r/m32|) (:|o32| #xF #x13 :|/r|))
53 (("UMOV") (:|reg16| :|r/m16|) (:|o16| #xF #x13 :|/r|))
54 (("UMOV") (:|reg8| :|r/m8|) (#xF #x12 :|/r|))
55 (("UMOV") (:|r/m32| :|reg32|) (:|o32| #xF #x11 :|/r|))
56 (("UMOV") (:|r/m16| :|reg16|) (:|o16| #xF #x11 :|/r|))
57 (("UMOV") (:|r/m8| :|reg8|) (#xF #x10 :|/r|))
58 (("UD2") (:|none|) (#xF #xB))
59 (("UD1") (:|none|) (#xF #xB9))
60 (("UD0") (:|none|) (#xF #xFF))
61 (("UCOMISS") (:|xmm1| :|xmm2/m128|) (#xF #x2E :|/r|))
62 (("UCOMISD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x2E :|/r|))
63 (("TEST") (:|EAX| :|imm32|) (:|o32| #xA9 :|id|))
64 (("TEST") (:AX :|imm16|) (:|o16| #xA9 :|iw|))
65 (("TEST") (:AL :|imm8|) (#xA8 :|ib|))
66 (("TEST") (:|r/m32| :|imm32|) (:|o32| #xF7 :/0 :|id|))
67 (("TEST") (:|r/m16| :|imm16|) (:|o16| #xF7 :/0 :|iw|))
68 (("TEST") (:|r/m8| :|imm8|) (#xF6 :/0 :|ib|))
69 (("TEST") (:|r/m32| :|reg32|) (:|o32| #x85 :|/r|))
70 (("TEST") (:|r/m16| :|reg16|) (:|o16| #x85 :|/r|))
71 (("TEST") (:|r/m8| :|reg8|) (#x84 :|/r|))
72 (("SYSRET") (:|none|) (#xF #x7))
73 (("SYSEXIT") (:|none|) (#xF #x35))
74 (("SYSENTER") (:|none|) (#xF #x34))
75 (("SYSCALL") (:|none|) (#xF #x5))
76 (("SVTS") (:|m80|) (#xF #x7C :/0))
77 (("SVLDT") (:|m80|) (#xF #x7A :/0))
78 (("SVDC") (:|m80| :|segreg|) (#xF #x78 :|/r|))
79 (("SUBSS") (:|xmm1| :|xmm2/m128|) (#xF3 #xF #x5C :|/r|))
80 (("SUBSD") (:|xmm1| :|xmm2/m128|) (#xF2 #xF #x5C :|/r|))
81 (("SUBPS") (:|xmm1| :|xmm2/m128|) (#xF #x5C :|/r|))
82 (("SUBPD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x5C :|/r|))
83 (("SUB") (:|EAX| :|imm32|) (:|o32| #x2D :|id|))
84 (("SUB") (:AX :|imm16|) (:|o16| #x2D :|iw|))
85 (("SUB") (:AL :|imm8|) (#x2C :|ib|))
86 (("SUB") (:|r/m32| :|imm8|) (:|o32| #x83 :/5 :|ib|))
87 (("SUB") (:|r/m16| :|imm8|) (:|o16| #x83 :/5 :|ib|))
88 (("SUB") (:|r/m32| :|imm32|) (:|o32| #x81 :/5 :|id|))
89 (("SUB") (:|r/m16| :|imm16|) (:|o16| #x81 :/5 :|iw|))
90 (("SUB") (:|r/m8| :|imm8|) (#x80 :/5 :|ib|))
91 (("SUB") (:|reg32| :|r/m32|) (:|o32| #x2B :|/r|))
92 (("SUB") (:|reg16| :|r/m16|) (:|o16| #x2B :|/r|))
93 (("SUB") (:|reg8| :|r/m8|) (#x2A :|/r|))
94 (("SUB") (:|r/m32| :|reg32|) (:|o32| #x29 :|/r|))
95 (("SUB") (:|r/m16| :|reg16|) (:|o16| #x29 :|/r|))
96 (("SUB") (:|r/m8| :|reg8|) (#x28 :|/r|))
97 (("STR") (:|r/m16|) (#xF #x0 :/1))
98 (("STOSD") (:|none|) (:|o32| #xAB))
99 (("STOSW") (:|none|) (:|o16| #xAB))
100 (("STOSB") (:|none|) (#xAA))
101 (("STMXCSR") (:|m32|) (#xF #xAE :/3))
102 (("STI") (:|none|) (#xFB))
103 (("STD") (:|none|) (#xFD))
104 (("STC") (:|none|) (#xF9))
105 (("SQRTSS") (:|xmm1| :|xmm2/m128|) (#xF3 #xF #x51 :|/r|))
106 (("SQRTSD") (:|xmm1| :|xmm2/m128|) (#xF2 #xF #x51 :|/r|))
107 (("SQRTPS") (:|xmm1| :|xmm2/m128|) (#xF #x51 :|/r|))
108 (("SQRTPD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x51 :|/r|))
109 (("SMSW") (:|r/m16|) (#xF #x1 :/4))
110 (("SMINTOLD") (:|none|) (#xF #x7E))
111 (("SMINT") (:|none|) (#xF #x38))
112 (("SMI") (:|none|) (#xF1))
113 (("SHUFPS") (:|xmm1| :|xmm2/m128| :|imm8|) (#xF #xC6 :|/r| :|ib|))
114 (("SHUFPD") (:|xmm1| :|xmm2/m128| :|imm8|) (#x66 #xF #xC6 :|/r| :|ib|))
115 (("SHRD") (:|r/m32| :|reg32| :CL) (:|o32| #xF #xAD :|/r|))
116 (("SHRD") (:|r/m16| :|reg16| :CL) (:|o16| #xF #xAD :|/r|))
117 (("SHRD") (:|r/m32| :|reg32| :|imm8|) (:|o32| #xF #xAC :|/r| :|ib|))
118 (("SHRD") (:|r/m16| :|reg16| :|imm8|) (:|o16| #xF #xAC :|/r| :|ib|))
119 (("SHLD") (:|r/m16| :|reg32| :CL) (:|o32| #xF #xA5 :|/r|))
120 (("SHLD") (:|r/m16| :|reg16| :CL) (:|o16| #xF #xA5 :|/r|))
121 (("SHLD") (:|r/m16| :|reg32| :|imm8|) (:|o32| #xF #xA4 :|/r| :|ib|))
122 (("SHLD") (:|r/m16| :|reg16| :|imm8|) (:|o16| #xF #xA4 :|/r| :|ib|))
123 (("SHR") (:|r/m32| :|imm8|) (:|o32| #xC1 :/5 :|ib|))
124 (("SHR") (:|r/m32| :CL) (:|o32| #xD3 :/5))
125 (("SHR") (:|r/m32| :|1|) (:|o32| #xD1 :/5))
126 (("SHR") (:|r/m16| :|imm8|) (:|o16| #xC1 :/5 :|ib|))
127 (("SHR") (:|r/m16| :CL) (:|o16| #xD3 :/5))
128 (("SHR") (:|r/m16| :|1|) (:|o16| #xD1 :/5))
129 (("SHR") (:|r/m8| :|imm8|) (#xC0 :/5 :|ib|))
130 (("SHR") (:|r/m8| :CL) (#xD2 :/5))
131 (("SHR") (:|r/m8| :|1|) (#xD0 :/5))
132 (("SHL") (:|r/m32| :|imm8|) (:|o32| #xC1 :/4 :|ib|))
133 (("SHL") (:|r/m32| :CL) (:|o32| #xD3 :/4))
134 (("SHL") (:|r/m32| :|1|) (:|o32| #xD1 :/4))
135 (("SHL") (:|r/m16| :|imm8|) (:|o16| #xC1 :/4 :|ib|))
136 (("SHL") (:|r/m16| :CL) (:|o16| #xD3 :/4))
137 (("SHL") (:|r/m16| :|1|) (:|o16| #xD1 :/4))
138 (("SHL") (:|r/m8| :|imm8|) (#xC0 :/4 :|ib|))
139 (("SHL") (:|r/m8| :CL) (#xD2 :/4))
140 (("SHL") (:|r/m8| :|1|) (#xD0 :/4))
141 (("SLDT") (:|r/m16|) (#xF #x0 :/0))
142 (("SIDT") (:|mem|) (#xF #x1 :/1))
143 (("SGDT") (:|mem|) (#xF #x1 :/0))
144 (("SFENCE") (:|none|) (#xF #xAE :/7))
145 ;; (("SETcc") (:|r/m8|) (#xF #x90 :|+cc| :/2))
146 (("SCASD") (:|none|) (:|o32| #xAF))
147 (("SCASW") (:|none|) (:|o16| #xAF))
148 (("SCASB") (:|none|) (#xAE))
149 (("SBB") (:|EAX| :|imm32|) (:|o32| #x1D :|id|))
150 (("SBB") (:AX :|imm16|) (:|o16| #x1D :|iw|))
151 (("SBB") (:AL :|imm8|) (#x1C :|ib|))
152 (("SBB") (:|r/m32| :|imm8|) (:|o32| #x83 :/3 :|ib|))
153 (("SBB") (:|r/m16| :|imm8|) (:|o16| #x83 :/3 :|ib|))
154 (("SBB") (:|r/m32| :|imm32|) (:|o32| #x81 :/3 :|id|))
155 (("SBB") (:|r/m16| :|imm16|) (:|o16| #x81 :/3 :|iw|))
156 (("SBB") (:|r/m8| :|imm8|) (#x80 :/3 :|ib|))
157 (("SBB") (:|reg32| :|r/m32|) (:|o32| #x1B :|/r|))
158 (("SBB") (:|reg16| :|r/m16|) (:|o16| #x1B :|/r|))
159 (("SBB") (:|reg8| :|r/m8|) (#x1A :|/r|))
160 (("SBB") (:|r/m32| :|reg32|) (:|o32| #x19 :|/r|))
161 (("SBB") (:|r/m16| :|reg16|) (:|o16| #x19 :|/r|))
162 (("SBB") (:|r/m8| :|reg8|) (#x18 :|/r|))
163 (("SALC") (:|none|) (#xD6))
164 (("SAR") (:|r/m32| :|imm8|) (:|o32| #xC1 :/7 :|ib|))
165 (("SAR") (:|r/m32| :CL) (:|o32| #xD3 :/7))
166 (("SAR") (:|r/m32| :|1|) (:|o32| #xD1 :/7))
167 (("SAR") (:|r/m16| :|imm8|) (:|o16| #xC1 :/7 :|ib|))
168 (("SAR") (:|r/m16| :CL) (:|o16| #xD3 :/7))
169 (("SAR") (:|r/m16| :|1|) (:|o16| #xD1 :/7))
170 (("SAR") (:|r/m8| :|imm8|) (#xC0 :/7 :|ib|))
171 (("SAR") (:|r/m8| :CL) (#xD2 :/7))
172 (("SAR") (:|r/m8| :|1|) (#xD0 :/7))
173 (("SAL") (:|r/m32| :|imm8|) (:|o32| #xC1 :/4 :|ib|))
174 (("SAL") (:|r/m32| :CL) (:|o32| #xD3 :/4))
175 (("SAL") (:|r/m32| :|1|) (:|o32| #xD1 :/4))
176 (("SAL") (:|r/m16| :|imm8|) (:|o16| #xC1 :/4 :|ib|))
177 (("SAL") (:|r/m16| :CL) (:|o16| #xD3 :/4))
178 (("SAL") (:|r/m16| :|1|) (:|o16| #xD1 :/4))
179 (("SAL") (:|r/m8| :|imm8|) (#xC0 :/4 :|ib|))
180 (("SAL") (:|r/m8| :CL) (#xD2 :/4))
181 (("SAL") (:|r/m8| :|1|) (#xD0 :/4))
182 (("SAHF") (:|none|) (#x9E))
183 (("RSTS") (:|m80|) (#xF #x7D :/0))
184 (("RSQRTSS") (:|xmm1| :|xmm2/m128|) (#xF3 #xF #x52 :|/r|))
185 (("RSQRTPS") (:|xmm1| :|xmm2/m128|) (#xF #x52 :|/r|))
186 (("RSM") (:|none|) (#xF #xAA))
187 (("RSLDT") (:|m80|) (#xF #x7B :/0))
188 (("RSDC") (:|segreg| :|m80|) (#xF #x79 :|/r|))
189 (("ROR") (:|r/m32| :|imm8|) (:|o32| #xC1 :/1 :|ib|))
190 (("ROR") (:|r/m32| :CL) (:|o32| #xD3 :/1))
191 (("ROR") (:|r/m32| :|1|) (:|o32| #xD1 :/1))
192 (("ROR") (:|r/m16| :|imm8|) (:|o16| #xC1 :/1 :|ib|))
193 (("ROR") (:|r/m16| :CL) (:|o16| #xD3 :/1))
194 (("ROR") (:|r/m16| :|1|) (:|o16| #xD1 :/1))
195 (("ROR") (:|r/m8| :|imm8|) (#xC0 :/1 :|ib|))
196 (("ROR") (:|r/m8| :CL) (#xD2 :/1))
197 (("ROR") (:|r/m8| :|1|) (#xD0 :/1))
198 (("ROL") (:|r/m32| :|imm8|) (:|o32| #xC1 :/0 :|ib|))
199 (("ROL") (:|r/m32| :CL) (:|o32| #xD3 :/0))
200 (("ROL") (:|r/m32| :|1|) (:|o32| #xD1 :/0))
201 (("ROL") (:|r/m16| :|imm8|) (:|o16| #xC1 :/0 :|ib|))
202 (("ROL") (:|r/m16| :CL) (:|o16| #xD3 :/0))
203 (("ROL") (:|r/m16| :|1|) (:|o16| #xD1 :/0))
204 (("ROL") (:|r/m8| :|imm8|) (#xC0 :/0 :|ib|))
205 (("ROL") (:|r/m8| :CL) (#xD2 :/0))
206 (("ROL") (:|r/m8| :|1|) (#xD0 :/0))
207 (("RETN") (:|imm16|) (#xC2 :|iw|))
208 (("RETN") (:|none|) (#xC3))
209 (("RETF") (:|imm16|) (#xCA :|iw|))
210 (("RETF") (:|none|) (#xCB))
211 (("RET") (:|imm16|) (#xC2 :|iw|))
212 (("RET") (:|none|) (#xC3))
213 (("RDTSC") (:|none|) (#xF #x31))
214 (("RDSHR") (:|r/m32|) (#xF #x36 :/0))
215 (("RDPMC") (:|none|) (#xF #x33))
216 (("RDMSR") (:|none|) (#xF #x32))
217 (("RCPSS") (:|xmm1| :|xmm2/m128|) (#xF3 #xF #x53 :|/r|))
218 (("RCPPS") (:|xmm1| :|xmm2/m128|) (#xF #x53 :|/r|))
219 (("RCR") (:|r/m32| :|imm8|) (:|o32| #xC1 :/3 :|ib|))
220 (("RCR") (:|r/m32| :CL) (:|o32| #xD3 :/3))
221 (("RCR") (:|r/m32| :|1|) (:|o32| #xD1 :/3))
222 (("RCR") (:|r/m16| :|imm8|) (:|o16| #xC1 :/3 :|ib|))
223 (("RCR") (:|r/m16| :CL) (:|o16| #xD3 :/3))
224 (("RCR") (:|r/m16| :|1|) (:|o16| #xD1 :/3))
225 (("RCR") (:|r/m8| :|imm8|) (#xC0 :/3 :|ib|))
226 (("RCR") (:|r/m8| :CL) (#xD2 :/3))
227 (("RCR") (:|r/m8| :|1|) (#xD0 :/3))
228 (("RCL") (:|r/m32| :|imm8|) (:|o32| #xC1 :/2 :|ib|))
229 (("RCL") (:|r/m32| :CL) (:|o32| #xD3 :/2))
230 (("RCL") (:|r/m32| :|1|) (:|o32| #xD1 :/2))
231 (("RCL") (:|r/m16| :|imm8|) (:|o16| #xC1 :/2 :|ib|))
232 (("RCL") (:|r/m16| :CL) (:|o16| #xD3 :/2))
233 (("RCL") (:|r/m16| :|1|) (:|o16| #xD1 :/2))
234 (("RCL") (:|r/m8| :|imm8|) (#xC0 :/2 :|ib|))
235 (("RCL") (:|r/m8| :CL) (#xD2 :/2))
236 (("RCL") (:|r/m8| :|1|) (#xD0 :/2))
237 (("PXOR") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xEF :|/r|))
238 (("PXOR") (:|mm1| :|mm2/m64|) (#xF #xEF :|/r|))
239 (("PUSHFW") (:|none|) (:|o16| #x9C))
240 (("PUSHFD") (:|none|) (:|o32| #x9C))
241 (("PUSHF") (:|none|) (#x9C))
242 (("PUSHAW") (:|none|) (:|o16| #x60))
243 (("PUSHAD") (:|none|) (:|o32| #x60))
244 (("PUSHA") (:|none|) (#x60))
245 (("PUSH") (:|imm32|) (:|o32| #x68 :|id|))
246 (("PUSH") (:|imm16|) (:|o16| #x68 :|iw|))
247 (("PUSH") (:|imm8|) (#x6A :|ib|))
248 (("PUSH") (:GS) (#xF #xA8))
249 (("PUSH") (:FS) (#xF #xA0))
250 (("PUSH") (:SS) (#x16))
251 (("PUSH") (:ES) (#x6))
252 (("PUSH") (:DS) (#x1E))
253 (("PUSH") (:CS) (#xE))
254 (("PUSH") (:|r/m32|) (:|o32| #xFF :/6))
255 (("PUSH") (:|r/m16|) (:|o16| #xFF :/6))
256 (("PUSH") (:|reg32|) (:|o32| #x50 :|+r|))
257 (("PUSH") (:|reg16|) (:|o16| #x50 :|+r|))
258 (("PUNPCKLQDQ") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x6C :|/r|))
259 (("PUNPCKLDQ") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x62 :|/r|))
260 (("PUNPCKLWD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x61 :|/r|))
261 (("PUNPCKLBW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x60 :|/r|))
262 (("PUNPCKLDQ") (:|mm1| :|mm2/m32|) (#xF #x62 :|/r|))
263 (("PUNPCKLWD") (:|mm1| :|mm2/m32|) (#xF #x61 :|/r|))
264 (("PUNPCKLBW") (:|mm1| :|mm2/m32|) (#xF #x60 :|/r|))
265 (("PUNPCKHQDQ") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x6D :|/r|))
266 (("PUNPCKHDQ") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x6A :|/r|))
267 (("PUNPCKHWD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x69 :|/r|))
268 (("PUNPCKHBW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x68 :|/r|))
269 (("PUNPCKHDQ") (:|mm1| :|mm2/m64|) (#xF #x6A :|/r|))
270 (("PUNPCKHWD") (:|mm1| :|mm2/m64|) (#xF #x69 :|/r|))
271 (("PUNPCKHBW") (:|mm1| :|mm2/m64|) (#xF #x68 :|/r|))
272 (("PSWAPD") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xBB))
273 (("PSUBSIW") (:|mm1| :|mm2/m64|) (#xF #x55 :|/r|))
274 (("PSUBUSW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xD9 :|/r|))
275 (("PSUBUSB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xD8 :|/r|))
276 (("PSUBUSW") (:|mm1| :|mm2/m64|) (#xF #xD9 :|/r|))
277 (("PSUBUSB") (:|mm1| :|mm2/m64|) (#xF #xD8 :|/r|))
278 (("PSUBSW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xE9 :|/r|))
279 (("PSUBSB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xE8 :|/r|))
280 (("PSUBSW") (:|mm1| :|mm2/m64|) (#xF #xE9 :|/r|))
281 (("PSUBSB") (:|mm1| :|mm2/m64|) (#xF #xE8 :|/r|))
282 (("PSUBQ") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xFB :|/r|))
283 (("PSUBD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xFA :|/r|))
284 (("PSUBW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xF9 :|/r|))
285 (("PSUBB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xF8 :|/r|))
286 (("PSUBQ") (:|mm1| :|mm2/m64|) (#xF #xFB :|/r|))
287 (("PSUBD") (:|mm1| :|mm2/m64|) (#xF #xFA :|/r|))
288 (("PSUBW") (:|mm1| :|mm2/m64|) (#xF #xF9 :|/r|))
289 (("PSUBB") (:|mm1| :|mm2/m64|) (#xF #xF8 :|/r|))
290 (("PSRLDQ") (:|xmm1| :|imm8|) (#x66 #xF #x73 :/3 :|ib|))
291 (("PSRLQ") (:|xmm| :|imm8|) (#x66 #xF #x73 :/2 :|ib|))
292 (("PSRLQ") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xD3 :|/r|))
293 (("PSRLQ") (:|mm| :|imm8|) (#xF #x73 :/2 :|ib|))
294 (("PSRLQ") (:|mm1| :|mm2/m64|) (#xF #xD3 :|/r|))
295 (("PSRLD") (:|xmm| :|imm8|) (#x66 #xF #x72 :/2 :|ib|))
296 (("PSRLD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xD2 :|/r|))
297 (("PSRLD") (:|mm| :|imm8|) (#xF #x72 :/2 :|ib|))
298 (("PSRLD") (:|mm1| :|mm2/m64|) (#xF #xD2 :|/r|))
299 (("PSRLW") (:|xmm| :|imm8|) (#x66 #xF #x71 :/2 :|ib|))
300 (("PSRLW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xD1 :|/r|))
301 (("PSRLW") (:|mm| :|imm8|) (#xF #x71 :/2 :|ib|))
302 (("PSRLW") (:|mm1| :|mm2/m64|) (#xF #xD1 :|/r|))
303 (("PSRAD") (:|xmm| :|imm8|) (#x66 #xF #x72 :/4 :|ib|))
304 (("PSRAD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xE2 :|/r|))
305 (("PSRAD") (:|mm| :|imm8|) (#xF #x72 :/4 :|ib|))
306 (("PSRAD") (:|mm1| :|mm2/m64|) (#xF #xE2 :|/r|))
307 (("PSRAW") (:|xmm| :|imm8|) (#x66 #xF #x71 :/4 :|ib|))
308 (("PSRAW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xE1 :|/r|))
309 (("PSRAW") (:|mm| :|imm8|) (#xF #x71 :/4 :|ib|))
310 (("PSRAW") (:|mm1| :|mm2/m64|) (#xF #xE1 :|/r|))
311 (("PSLLDQ") (:|xmm1| :|imm8|) (#x66 #xF #x73 :/7 :|ib|))
312 (("PSLLQ") (:|xmm| :|imm8|) (#x66 #xF #x73 :/6 :|ib|))
313 (("PSLLQ") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xF3 :|/r|))
314 (("PSLLQ") (:|mm| :|imm8|) (#xF #x73 :/6 :|ib|))
315 (("PSLLQ") (:|mm1| :|mm2/m64|) (#xF #xF3 :|/r|))
316 (("PSLLD") (:|xmm| :|imm8|) (#x66 #xF #x72 :/6 :|ib|))
317 (("PSLLD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xF2 :|/r|))
318 (("PSLLD") (:|mm| :|imm8|) (#xF #x72 :/6 :|ib|))
319 (("PSLLD") (:|mm1| :|mm2/m64|) (#xF #xF2 :|/r|))
320 (("PSLLW") (:|xmm| :|imm8|) (#x66 #xF #x71 :/6 :|ib|))
321 (("PSLLW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xF1 :|/r|))
322 (("PSLLW") (:|mm| :|imm8|) (#xF #x71 :/6 :|ib|))
323 (("PSLLW") (:|mm1| :|mm2/m64|) (#xF #xF1 :|/r|))
324 (("PSHUFW") (:|mm1| :|mm2/m64| :|imm8|) (#xF #x70 :|/r| :|ib|))
325 (("PSHUFLW") (:|xmm1| :|xmm2/m128| :|imm8|) (#xF2 #xF #x70 :|/r| :|ib|))
326 (("PSHUFHW") (:|xmm1| :|xmm2/m128| :|imm8|) (#xF3 #xF #x70 :|/r| :|ib|))
327 (("PSHUFD") (:|xmm1| :|xmm2/m128| :|imm8|) (#x66 #xF #x70 :|/r| :|ib|))
328 (("PSADBW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xF6 :|/r|))
329 (("PSADBW") (:|mm1| :|mm2/m64|) (#xF #xF6 :|/r|))
330 (("PREFETCHT2") (:|m8|) (#xF #x18 :/3))
331 (("PREFETCHT1") (:|m8|) (#xF #x18 :/2))
332 (("PREFETCHT0") (:|m8|) (#xF #x18 :/1))
333 (("PREFETCHNTA") (:|m8|) (#xF #x18 :/0))
334 (("PREFETCHW") (:|mem8|) (#xF #xD :/1))
335 (("PREFETCH") (:|mem8|) (#xF #xD :/0))
336 (("POR") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xEB :|/r|))
337 (("POR") (:|mm1| :|mm2/m64|) (#xF #xEB :|/r|))
338 (("POPFD") (:|none|) (:|o32| #x9D))
339 (("POPFW") (:|none|) (:|o16| #x9D))
340 (("POPF") (:|none|) (#x9D))
341 (("POPAD") (:|none|) (:|o32| #x61))
342 (("POPAW") (:|none|) (:|o16| #x61))
343 (("POPA") (:|none|) (#x61))
344 (("POP") (:GS) (#xF #xA9))
345 (("POP") (:FS) (#xF #xA1))
346 (("POP") (:SS) (#x17))
347 (("POP") (:ES) (#x7))
348 (("POP") (:DS) (#x1F))
349 (("POP") (:CS) (#xF))
350 (("POP") (:|r/m32|) (:|o32| #x8F :/0))
351 (("POP") (:|r/m16|) (:|o16| #x8F :/0))
352 (("POP") (:|reg32|) (:|o32| #x58 :|+r|))
353 (("POP") (:|reg16|) (:|o16| #x58 :|+r|))
354 (("PMVGEZB") (:|mmxreg| :|mem64|) (#xF #x5C :|/r|))
355 (("PMVLZB") (:|mmxreg| :|mem64|) (#xF #x5B :|/r|))
356 (("PMVNZB") (:|mmxreg| :|mem64|) (#xF #x5A :|/r|))
357 (("PMVZB") (:|mmxreg| :|mem64|) (#xF #x58 :|/r|))
358 (("PMULUDQ") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xF4 :|/r|))
359 (("PMULUDQ") (:|mm1| :|mm2/m64|) (#xF #xF4 :|/r|))
360 (("PMULLW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xD5 :|/r|))
361 (("PMULHW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xE5 :|/r|))
362 (("PMULLW") (:|mm1| :|mm2/m64|) (#xF #xD5 :|/r|))
363 (("PMULHW") (:|mm1| :|mm2/m64|) (#xF #xE5 :|/r|))
364 (("PMULHUW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xE4 :|/r|))
365 (("PMULHUW") (:|mm1| :|mm2/m64|) (#xF #xE4 :|/r|))
366 (("PMULHRWA") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xB7))
367 (("PMULHRIW") (:|mm1| :|mm2/m64|) (#xF #x5D :|/r|))
368 (("PMULHRWC") (:|mm1| :|mm2/m64|) (#xF #x59 :|/r|))
369 (("PMOVMSKB") (:|reg32| :|xmm|) (#x66 #xF #xD7 :|/r|))
370 (("PMOVMSKB") (:|reg32| :|mm|) (#xF #xD7 :|/r|))
371 (("PMINUB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xDA :|/r|))
372 (("PMINUB") (:|mm1| :|mm2/m64|) (#xF #xDA :|/r|))
373 (("PMINSW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xEA :|/r|))
374 (("PMINSW") (:|mm1| :|mm2/m64|) (#xF #xEA :|/r|))
375 (("PMAXUB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xDE :|/r|))
376 (("PMAXUB") (:|mm1| :|mm2/m64|) (#xF #xDE :|/r|))
377 (("PMAXSW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xEE :|/r|))
378 (("PMAXSW") (:|mm1| :|mm2/m64|) (#xF #xEE :|/r|))
379 (("PMAGW") (:|mm1| :|mm2/m64|) (#xF #x52 :|/r|))
380 (("PMADDWD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xF5 :|/r|))
381 (("PMADDWD") (:|mm1| :|mm2/m64|) (#xF #xF5 :|/r|))
382 (("PMACHRIW") (:|mm| :|m64|) (#xF #x5E :|/r|))
383 (("PINSRW") (:|xmm| :|r16/r32/m16| :|imm8|) (#x66 #xF #xC4 :|/r| :|ib|))
384 (("PINSRW") (:|mm| :|r16/r32/m16| :|imm8|) (#xF #xC4 :|/r| :|ib|))
385 (("PI2FW") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xC))
386 (("PI2FD") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xD))
387 (("PFSUBR") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xAA))
388 (("PFSUB") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x9A))
389 (("PFRSQRT") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x97))
390 (("PFRSQIT1") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xA7))
391 (("PFRCPIT2") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xB6))
392 (("PFRCPIT1") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xA6))
393 (("PFRCP") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x96))
394 (("PFPNACC") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x8E))
395 (("PFNACC") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x8A))
396 (("PFMUL") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xB4))
397 (("PFMIN") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x94))
398 (("PFMAX") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xA4))
399 (("PFCMPGT") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xA0))
400 (("PFCMPGE") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x90))
401 (("PFCMPEQ") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xB0))
402 (("PFADD") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x9E))
403 (("PFACC") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xAE))
404 (("PF2IW") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x1C))
405 (("PF2ID") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #x1D))
406 (("PEXTRW") (:|reg32| :|xmm| :|imm8|) (#x66 #xF #xC5 :|/r| :|ib|))
407 (("PEXTRW") (:|reg32| :|mm| :|imm8|) (#xF #xC5 :|/r| :|ib|))
408 (("PDISTIB") (:|mm| :|m64|) (#xF #x54 :|/r|))
409 (("PCMPGTD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x66 :|/r|))
410 (("PCMPGTW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x65 :|/r|))
411 (("PCMPGTB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x64 :|/r|))
412 (("PCMPEQD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x76 :|/r|))
413 (("PCMPEQW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x75 :|/r|))
414 (("PCMPEQB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x74 :|/r|))
415 (("PCMPGTD") (:|mm1| :|mm2/m64|) (#xF #x66 :|/r|))
416 (("PCMPGTW") (:|mm1| :|mm2/m64|) (#xF #x65 :|/r|))
417 (("PCMPGTB") (:|mm1| :|mm2/m64|) (#xF #x64 :|/r|))
418 (("PCMPEQD") (:|mm1| :|mm2/m64|) (#xF #x76 :|/r|))
419 (("PCMPEQW") (:|mm1| :|mm2/m64|) (#xF #x75 :|/r|))
420 (("PCMPEQB") (:|mm1| :|mm2/m64|) (#xF #x74 :|/r|))
421 (("PAVGUSB") (:|mm1| :|mm2/m64|) (#xF #xF :|/r| #xBF))
422 (("PAVGW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xE3 :|/r|))
423 (("PAVGB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xE0 :|/r|))
424 (("PAVGW") (:|mm1| :|mm2/m64|) (#xF #xE3 :|/r|))
425 (("PAVGB") (:|mm1| :|mm2/m64|) (#xF #xE0 :|/r|))
426 (("PAVEB") (:|mmxreg| :|r/m64|) (#xF #x50 :|/r|))
427 (("PAUSE") (:|none|) (#xF3 #x90))
428 (("PANDN") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xDF :|/r|))
429 (("PAND") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xDB :|/r|))
430 (("PANDN") (:|mm1| :|mm2/m64|) (#xF #xDF :|/r|))
431 (("PAND") (:|mm1| :|mm2/m64|) (#xF #xDB :|/r|))
432 (("PADDUSW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xDD :|/r|))
433 (("PADDUSB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xDC :|/r|))
434 (("PADDUSW") (:|mm1| :|mm2/m64|) (#xF #xDD :|/r|))
435 (("PADDUSB") (:|mm1| :|mm2/m64|) (#xF #xDC :|/r|))
436 (("PADDSIW") (:|mmxreg| :|r/m64|) (#xF #x51 :|/r|))
437 (("PADDSW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xED :|/r|))
438 (("PADDSB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xEC :|/r|))
439 (("PADDSW") (:|mm1| :|mm2/m64|) (#xF #xED :|/r|))
440 (("PADDSB") (:|mm1| :|mm2/m64|) (#xF #xEC :|/r|))
441 (("PADDQ") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xD4 :|/r|))
442 (("PADDQ") (:|mm1| :|mm2/m64|) (#xF #xD4 :|/r|))
443 (("PADDD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xFE :|/r|))
444 (("PADDW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xFD :|/r|))
445 (("PADDB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #xFC :|/r|))
446 (("PADDD") (:|mm1| :|mm2/m64|) (#xF #xFE :|/r|))
447 (("PADDW") (:|mm1| :|mm2/m64|) (#xF #xFD :|/r|))
448 (("PADDB") (:|mm1| :|mm2/m64|) (#xF #xFC :|/r|))
449 (("PACKUSWB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x67 :|/r|))
450 (("PACKSSWB") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x63 :|/r|))
451 (("PACKSSDW") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x6B :|/r|))
452 (("PACKUSWB") (:|mm1| :|mm2/m64|) (#xF #x67 :|/r|))
453 (("PACKSSWB") (:|mm1| :|mm2/m64|) (#xF #x63 :|/r|))
454 (("PACKSSDW") (:|mm1| :|mm2/m64|) (#xF #x6B :|/r|))
455 (("OUTSD") (:|none|) (:|o32| #x6F))
456 (("OUTSW") (:|none|) (:|o16| #x6F))
457 (("OUTSB") (:|none|) (#x6E))
458 (("OUT") (:DX :|EAX|) (:|o32| #xEF))
459 (("OUT") (:DX :AX) (:|o16| #xEF))
460 (("OUT") (:DX :AL) (#xEE))
461 (("OUT") (:|imm8| :|EAX|) (:|o32| #xE7 :|ib|))
462 (("OUT") (:|imm8| :AX) (:|o16| #xE7 :|ib|))
463 (("OUT") (:|imm8| :AL) (#xE6 :|ib|))
464 (("ORPS") (:|xmm1| :|xmm2/m128|) (#xF #x56 :|/r|))
465 (("ORPD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x56 :|/r|))
466 (("OR") (:|EAX| :|imm32|) (:|o32| #xD :|id|))
467 (("OR") (:AX :|imm16|) (:|o16| #xD :|iw|))
468 (("OR") (:AL :|imm8|) (#xC :|ib|))
469 (("OR") (:|r/m32| :|imm8|) (:|o32| #x83 :/1 :|ib|))
470 (("OR") (:|r/m16| :|imm8|) (:|o16| #x83 :/1 :|ib|))
471 (("OR") (:|r/m32| :|imm32|) (:|o32| #x81 :/1 :|id|))
472 (("OR") (:|r/m16| :|imm16|) (:|o16| #x81 :/1 :|iw|))
473 (("OR") (:|r/m8| :|imm8|) (#x80 :/1 :|ib|))
474 (("OR") (:|reg32| :|r/m32|) (:|o32| #xB :|/r|))
475 (("OR") (:|reg16| :|r/m16|) (:|o16| #xB :|/r|))
476 (("OR") (:|reg8| :|r/m8|) (#xA :|/r|))
477 (("OR") (:|r/m32| :|reg32|) (:|o32| #x9 :|/r|))
478 (("OR") (:|r/m16| :|reg16|) (:|o16| #x9 :|/r|))
479 (("OR") (:|r/m8| :|reg8|) (#x8 :|/r|))
480 (("NOP") (:|none|) (#x90))
481 (("NOT") (:|r/m32|) (:|o32| #xF7 :/2))
482 (("NOT") (:|r/m16|) (:|o16| #xF7 :/2))
483 (("NOT") (:|r/m8|) (#xF6 :/2))
484 (("NEG") (:|r/m32|) (:|o32| #xF7 :/3))
485 (("NEG") (:|r/m16|) (:|o16| #xF7 :/3))
486 (("NEG") (:|r/m8|) (#xF6 :/3))
487 (("MULSS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #x59 :|/r|))
488 (("MULSD") (:|xmm1| :|xmm2/mem32|) (#xF2 #xF #x59 :|/r|))
489 (("MULPS") (:|xmm1| :|xmm2/mem128|) (#xF #x59 :|/r|))
490 (("MULPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #x59 :|/r|))
491 (("MUL") (:|r/m32|) (:|o32| #xF7 :/4))
492 (("MUL") (:|r/m16|) (:|o16| #xF7 :/4))
493 (("MUL") (:|r/m8|) (#xF6 :/4))
494 (("MOVUPS") (:|xmm1/mem128| :|xmm2|) (#xF #x11 :|/r|))
495 (("MOVUPS") (:|xmm1| :|xmm2/mem128|) (#xF #x10 :|/r|))
496 (("MOVUPD") (:|xmm1/mem128| :|xmm2|) (#x66 #xF #x11 :|/r|))
497 (("MOVUPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #x10 :|/r|))
498 (("MOVZX") (:|reg32| :|r/m16|) (:|o32| #xF #xB7 :|/r|))
499 (("MOVZX") (:|reg32| :|r/m8|) (:|o32| #xF #xB6 :|/r|))
500 (("MOVZX") (:|reg16| :|r/m8|) (:|o16| #xF #xB6 :|/r|))
501 (("MOVSX") (:|reg32| :|r/m16|) (:|o32| #xF #xBF :|/r|))
502 (("MOVSX") (:|reg32| :|r/m8|) (:|o32| #xF #xBE :|/r|))
503 (("MOVSX") (:|reg16| :|r/m8|) (:|o16| #xF #xBE :|/r|))
504 (("MOVSS") (:|xmm1/m32| :|xmm2|) (#xF3 #xF #x11 :|/r|))
505 (("MOVSS") (:|xmm1| :|xmm2/m32|) (#xF3 #xF #x10 :|/r|))
506 (("MOVSD") (:|xmm1/m64| :|xmm2|) (#xF2 #xF #x11 :|/r|))
507 (("MOVSD") (:|xmm1| :|xmm2/m64|) (#xF2 #xF #x10 :|/r|))
508 (("MOVSD") (:|none|) (:|o32| #xA5))
509 (("MOVSW") (:|none|) (:|o16| #xA5))
510 (("MOVSB") (:|none|) (#xA4))
511 (("MOVQ2DQ") (:|xmm| :|mm|) (#xF3 :OF #xD6 :|/r|))
512 (("MOVQ") (:|xmm1/m64| :|xmm2|) (#x66 #xF #xD6 :|/r|))
513 (("MOVQ") (:|xmm1| :|xmm2/m64|) (#xF3 #xF #x7E :|/r|))
514 (("MOVQ") (:|mm1/m64| :|mm2|) (#xF #x7F :|/r|))
515 (("MOVQ") (:|mm1| :|mm2/m64|) (#xF #x6F :|/r|))
516 (("MOVNTQ") (:|m64| :|mm|) (#xF #xE7 :|/r|))
517 (("MOVNTPS") (:|m128| :|xmm|) (#xF #x2B :|/r|))
518 (("MOVNTPD") (:|m128| :|xmm|) (#x66 #xF #x2B :|/r|))
519 (("MOVNTI") (:|m32| :|reg32|) (#xF #xC3 :|/r|))
520 (("MOVNTDQ") (:|m128| :|xmm|) (#x66 #xF #xE7 :|/r|))
521 (("MOVMSKPS") (:|reg32| :|xmm|) (#xF #x50 :|/r|))
522 (("MOVMSKPD") (:|reg32| :|xmm|) (#x66 #xF #x50 :|/r|))
523 (("MOVLPS") (:|m64| :|xmm|) (:OF #x13 :|/r|))
524 (("MOVLPS") (:|xmm| :|m64|) (:OF #x12 :|/r|))
525 (("MOVLPD") (:|m64| :|xmm|) (#x66 :OF #x13 :|/r|))
526 (("MOVLPD") (:|xmm| :|m64|) (#x66 :OF #x12 :|/r|))
527 (("MOVLHPS") (:|xmm1| :|xmm2|) (:OF #x16 :|/r|))
528 (("MOVHPS") (:|m64| :|xmm|) (#xF #x17 :|/r|))
529 (("MOVHPS") (:|xmm| :|m64|) (#xF #x16 :|/r|))
530 (("MOVHPD") (:|m64| :|xmm|) (#x66 :OF #x17 :|/r|))
531 (("MOVHPD") (:|xmm| :|m64|) (#x66 :OF #x16 :|/r|))
532 (("MOVHLPS") (:|xmm1| :|xmm2|) (:OF #x12 :|/r|))
533 (("MOVDQU") (:|xmm1/m128| :|xmm2|) (#xF3 :OF #x7F :|/r|))
534 (("MOVDQU") (:|xmm1| :|xmm2/m128|) (#xF3 :OF #x6F :|/r|))
535 (("MOVDQA") (:|xmm1/m128| :|xmm2|) (#x66 :OF #x7F :|/r|))
536 (("MOVDQA") (:|xmm1| :|xmm2/m128|) (#x66 :OF #x6F :|/r|))
537 (("MOVDQ2Q") (:|mm| :|xmm|) (#xF2 :OF #xD6 :|/r|))
538 (("MOVD") (:|r/m32| :|xmm|) (#x66 #xF #x7E :|/r|))
539 (("MOVD") (:|xmm| :|r/m32|) (#x66 #xF #x6E :|/r|))
540 (("MOVD") (:|r/m32| :|mm|) (#xF #x7E :|/r|))
541 (("MOVD") (:|mm| :|r/m32|) (#xF #x6E :|/r|))
542 (("MOVAPS") (:|xmm1/mem128| :|xmm2|) (#xF #x29 :|/r|))
543 (("MOVAPS") (:|xmm1| :|xmm2/mem128|) (#xF #x28 :|/r|))
544 (("MOVAPD") (:|xmm1/mem128| :|xmm2|) (#x66 #xF #x29 :|/r|))
545 (("MOVAPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #x28 :|/r|))
546 (("MOV") (:TR3/4/5/6/7 :|reg32|) (#xF #x26 :|/r|))
547 (("MOV") (:DR0/1/2/3/6/7 :|reg32|) (#xF #x23 :|/r|))
548 (("MOV") (:CR0/2/3/4 :|reg32|) (#xF #x22 :|/r|))
549 (("MOV") (:|reg32| :TR3/4/5/6/7) (#xF #x24 :|/r|))
550 (("MOV") (:|reg32| :DR0/1/2/3/6/7) (#xF #x21 :|/r|))
551 (("MOV") (:|reg32| :CR0/2/3/4) (#xF #x20 :|/r|))
552 (("MOV") (:|segreg| :|r/m32|) (:|o32| #x8E :|/r|))
553 (("MOV") (:|segreg| :|r/m16|) (:|o16| #x8E :|/r|))
554 (("MOV") (:|r/m32| :|segreg|) (:|o32| #x8C :|/r|))
555 (("MOV") (:|r/m16| :|segreg|) (:|o16| #x8C :|/r|))
556 (("MOV") (:|memoffs32| :|EAX|) (:|o32| #xA3 :|ow/od|))
557 (("MOV") (:|memoffs16| :AX) (:|o16| #xA3 :|ow/od|))
558 (("MOV") (:|memoffs8| :AL) (#xA2 :|ow/od|))
559 (("MOV") (:|EAX| :|memoffs32|) (:|o32| #xA1 :|ow/od|))
560 (("MOV") (:AX :|memoffs16|) (:|o16| #xA1 :|ow/od|))
561 (("MOV") (:AL :|memoffs8|) (#xA0 :|ow/od|))
562 (("MOV") (:|r/m32| :|imm32|) (:|o32| #xC7 :/0 :|id|))
563 (("MOV") (:|r/m16| :|imm16|) (:|o16| #xC7 :/0 :|iw|))
564 (("MOV") (:|r/m8| :|imm8|) (#xC6 :/0 :|ib|))
565 (("MOV") (:|reg32| :|imm32|) (:|o32| #xB8 :|+r| :|id|))
566 (("MOV") (:|reg16| :|imm16|) (:|o16| #xB8 :|+r| :|iw|))
567 (("MOV") (:|reg8| :|imm8|) (#xB0 :|+r| :|ib|))
568 (("MOV") (:|reg32| :|r/m32|) (:|o32| #x8B :|/r|))
569 (("MOV") (:|reg16| :|r/m16|) (:|o16| #x8B :|/r|))
570 (("MOV") (:|reg8| :|r/m8|) (#x8A :|/r|))
571 (("MOV") (:|r/m32| :|reg32|) (:|o32| #x89 :|/r|))
572 (("MOV") (:|r/m16| :|reg16|) (:|o16| #x89 :|/r|))
573 (("MOV") (:|r/m8| :|reg8|) (#x88 :|/r|))
574 (("MINSS") (:|xmm1| :|xmm2/m32|) (#xF3 #xF #x5D :|/r|))
575 (("MINSD") (:|xmm1| :|xmm2/m64|) (#xF2 #xF #x5D :|/r|))
576 (("MINPS") (:|xmm1| :|xmm2/m128|) (#xF #x5D :|/r|))
577 (("MINPD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x5D :|/r|))
578 (("MFENCE") (:|none|) (#xF #xAE :/6))
579 (("MAXSS") (:|xmm1| :|xmm2/m32|) (#xF3 #xF #x5F :|/r|))
580 (("MAXSD") (:|xmm1| :|xmm2/m64|) (#xF2 #xF #x5F :|/r|))
581 (("MAXPS") (:|xmm1| :|xmm2/m128|) (#xF #x5F :|/r|))
582 (("MAXPD") (:|xmm1| :|xmm2/m128|) (#x66 #xF #x5F :|/r|))
583 (("MASKMOVQ") (:|mm1| :|mm2|) (#xF #xF7 :|/r|))
584 (("MASKMOVDQU") (:|xmm1| :|xmm2|) (#x66 #xF #xF7 :|/r|))
585 (("LTR") (:|r/m16|) (#xF #x0 :/3))
586 (("LSL") (:|reg32| :|r/m32|) (:|o32| #xF #x3 :|/r|))
587 (("LSL") (:|reg16| :|r/m16|) (:|o16| #xF #x3 :|/r|))
588 (("LOOPNZ") (:|imm| :|ECX|) (#xA32 #xE0 :|rb|))
589 (("LOOPNZ") (:|imm| :CX) (#xA16 #xE0 :|rb|))
590 (("LOOPNZ") (:|imm|) (#xE0 :|rb|))
591 (("LOOPNE") (:|imm| :|ECX|) (#xA32 #xE0 :|rb|))
592 (("LOOPNE") (:|imm| :CX) (#xA16 #xE0 :|rb|))
593 (("LOOPNE") (:|imm|) (#xE0 :|rb|))
594 (("LOOPZ") (:|imm| :|ECX|) (#xA32 #xE1 :|rb|))
595 (("LOOPZ") (:|imm| :CX) (#xA16 #xE1 :|rb|))
596 (("LOOPZ") (:|imm|) (#xE1 :|rb|))
597 (("LOOPE") (:|imm| :|ECX|) (#xA32 #xE1 :|rb|))
598 (("LOOPE") (:|imm| :CX) (#xA16 #xE1 :|rb|))
599 (("LOOPE") (:|imm|) (#xE1 :|rb|))
600 (("LOOP") (:|imm| :|ECX|) (#xA32 #xE2 :|rb|))
601 (("LOOP") (:|imm| :CX) (#xA16 #xE2 :|rb|))
602 (("LOOP") (:|imm|) (#xE2 :|rb|))
603 (("LODSD") (:|none|) (:|o32| #xAD))
604 (("LODSW") (:|none|) (:|o16| #xAD))
605 (("LODSB") (:|none|) (#xAC))
606 (("LOADALL286") (:|none|) (#xF #x5))
607 (("LOADALL") (:|none|) (#xF #x7))
608 (("LMSW") (:|r/m16|) (#xF #x1 :/6))
609 (("LLDT") (:|r/m16|) (#xF #x0 :/2))
610 (("LIDT") (:|mem|) (#xF #x1 :/3))
611 (("LGDT") (:|mem|) (#xF #x1 :/2))
612 (("LFENCE") (:|none|) (#xF #xAE :/5))
613 (("LEAVE") (:|none|) (#xC9))
614 (("LEA") (:|reg32| :|mem|) (:|o32| #x8D :|/r|))
615 (("LEA") (:|reg16| :|mem|) (:|o16| #x8D :|/r|))
616 (("LSS") (:|reg32| :|mem|) (:|o32| #xF #xB2 :|/r|))
617 (("LSS") (:|reg16| :|mem|) (:|o16| #xF #xB2 :|/r|))
618 (("LGS") (:|reg32| :|mem|) (:|o32| #xF #xB5 :|/r|))
619 (("LGS") (:|reg16| :|mem|) (:|o16| #xF #xB5 :|/r|))
620 (("LFS") (:|reg32| :|mem|) (:|o32| #xF #xB4 :|/r|))
621 (("LFS") (:|reg16| :|mem|) (:|o16| #xF #xB4 :|/r|))
622 (("LES") (:|reg32| :|mem|) (:|o32| #xC4 :|/r|))
623 (("LES") (:|reg16| :|mem|) (:|o16| #xC4 :|/r|))
624 (("LDS") (:|reg32| :|mem|) (:|o32| #xC5 :|/r|))
625 (("LDS") (:|reg16| :|mem|) (:|o16| #xC5 :|/r|))
626 (("LDMXCSR") (:|mem32|) (#xF #xAE :/2))
627 (("LAR") (:|reg32| :|r/m32|) (:|o32| #xF #x2 :|/r|))
628 (("LAR") (:|reg16| :|r/m16|) (:|o16| #xF #x2 :|/r|))
629 (("LAHF") (:|none|) (#x9F))
630 (("JMP") (:|r/m32|) (:|o32| #xFF :/4))
631 (("JMP") (:|r/m16|) (:|o16| #xFF :/4))
632 (("JMP" "FAR") (:|mem32|) (:|o32| #xFF :/5))
633 (("JMP" "FAR") (:|mem|) (:|o16| #xFF :/5))
634 (("JMP") (:|imm:imm32|) (:|o32| #xEA :|id| :|iw|))
635 (("JMP") (:|imm:imm16|) (:|o16| #xEA :|iw| :|iw|))
636 (("JMP" "SHORT") (:|imm|) (#xEB :|rb|))
637 (("JMP") (:|imm|) (#xE9 :|rw/rd|))
638 (("JECXZ") (:|imm|) (#xA32 #xE3 :|rb|))
639 (("JCXZ") (:|imm|) (#xA16 #xE3 :|rb|))
640 ;; (("Jcc" "NEAR") (:|imm|) (#xF #x80 :|+cc| :|rw/rd|))
641 ;; (("Jcc") (:|imm|) (#x70 :|+cc| :|rb|))
642 (("IRETD") (:|none|) (:|o32| #xCF))
643 (("IRETW") (:|none|) (:|o16| #xCF))
644 (("IRET") (:|none|) (#xCF))
645 (("INVLPG") (:|mem|) (#xF #x1 :/7))
646 (("INVD") (:|none|) (#xF #x8))
647 (("INTO") (:|none|) (#xCE))
648 (("INT03") (:|none|) (#xCC))
649 (("INT3") (:|none|) (#xCC))
650 (("INT01") (:|none|) (#xF1))
651 (("ICEBP") (:|none|) (#xF1))
652 (("INT1") (:|none|) (#xF1))
653 (("INT") (:|imm8|) (#xCD :|ib|))
654 (("INSD") (:|none|) (:|o32| #x6D))
655 (("INSW") (:|none|) (:|o16| #x6D))
656 (("INSB") (:|none|) (#x6C))
657 (("INC") (:|r/m32|) (:|o32| #xFF :/0))
658 (("INC") (:|r/m16|) (:|o16| #xFF :/0))
659 (("INC") (:|r/m8|) (#xFE :/0))
660 (("INC") (:|reg32|) (:|o32| #x40 :|+r|))
661 (("INC") (:|reg16|) (:|o16| #x40 :|+r|))
662 (("IN") (:|EAX| :DX) (:|o32| #xED))
663 (("IN") (:AX :DX) (:|o16| #xED))
664 (("IN") (:AL :DX) (#xEC))
665 (("IN") (:|EAX| :|imm8|) (:|o32| #xE5 :|ib|))
666 (("IN") (:AX :|imm8|) (:|o16| #xE5 :|ib|))
667 (("IN") (:AL :|imm8|) (#xE4 :|ib|))
668 (("IMUL") (:|reg32| :|r/m32| :|imm32|) (:|o32| #x69 :|/r| :|id|))
669 (("IMUL") (:|reg32| :|r/m32| :|imm8|) (:|o32| #x6B :|/r| :|ib|))
670 (("IMUL") (:|reg16| :|r/m16| :|imm16|) (:|o16| #x69 :|/r| :|iw|))
671 (("IMUL") (:|reg16| :|r/m16| :|imm8|) (:|o16| #x6B :|/r| :|ib|))
672 (("IMUL") (:|reg32| :|imm32|) (:|o32| #x69 :|/r| :|id|))
673 (("IMUL") (:|reg32| :|imm8|) (:|o32| #x6B :|/r| :|ib|))
674 (("IMUL") (:|reg16| :|imm16|) (:|o16| #x69 :|/r| :|iw|))
675 (("IMUL") (:|reg16| :|imm8|) (:|o16| #x6B :|/r| :|ib|))
676 (("IMUL") (:|reg32| :|r/m32|) (:|o32| #xF #xAF :|/r|))
677 (("IMUL") (:|reg16| :|r/m16|) (:|o16| #xF #xAF :|/r|))
678 (("IMUL") (:|r/m32|) (:|o32| #xF7 :/5))
679 (("IMUL") (:|r/m16|) (:|o16| #xF7 :/5))
680 (("IMUL") (:|r/m8|) (#xF6 :/5))
681 (("IDIV") (:|r/m32|) (:|o32| #xF7 :/7))
682 (("IDIV") (:|r/m16|) (:|o16| #xF7 :/7))
683 (("IDIV") (:|r/m8|) (#xF6 :/7))
684 (("IBTS") (:|r/m32| :|reg32|) (:|o32| #xF #xA7 :|/r|))
685 (("IBTS") (:|r/m16| :|reg16|) (:|o16| #xF #xA7 :|/r|))
686 (("HLT") (:|none|) (#xF4))
687 (("FYL2XP1") (:|none|) (#xD9 #xF9))
688 (("FYL2X") (:|none|) (#xD9 #xF1))
689 (("FXTRACT") (:|none|) (#xD9 #xF4))
690 (("FXSAVE") (:|memory|) (#xF #xAE :/0))
691 (("FXRSTOR") (:|memory|) (#xF #xAE :/1))
692 (("FXCH") (:ST0 :|fpureg|) (#xD9 #xC8 :|+r|))
693 (("FXCH") (:|fpureg| :ST0) (#xD9 #xC8 :|+r|))
694 (("FXCH") (:|fpureg|) (#xD9 #xC8 :|+r|))
695 (("FXCH") (:|none|) (#xD9 #xC9))
696 (("FXAM") (:|none|) (#xD9 #xE5))
697 (("FUCOMIP") (:ST0 :|fpureg|) (#xDF #xE8 :|+r|))
698 (("FUCOMIP") (:|fpureg|) (#xDF #xE8 :|+r|))
699 (("FUCOMI") (:ST0 :|fpureg|) (#xDB #xE8 :|+r|))
700 (("FUCOMI") (:|fpureg|) (#xDB #xE8 :|+r|))
701 (("FUCOMPP") (:|none|) (#xDA #xE9))
702 (("FUCOMP") (:ST0 :|fpureg|) (#xDD #xE8 :|+r|))
703 (("FUCOMP") (:|fpureg|) (#xDD #xE8 :|+r|))
704 (("FUCOM") (:ST0 :|fpureg|) (#xDD #xE0 :|+r|))
705 (("FUCOM") (:|fpureg|) (#xDD #xE0 :|+r|))
706 (("FTST") (:|none|) (#xD9 #xE4))
707 (("FSUBRP") (:|fpureg| :ST0) (#xDE #xE0 :|+r|))
708 (("FSUBRP") (:|fpureg|) (#xDE #xE0 :|+r|))
709 (("FSUBP") (:|fpureg| :ST0) (#xDE #xE8 :|+r|))
710 (("FSUBP") (:|fpureg|) (#xDE #xE8 :|+r|))
711 (("FSUBR") (:|fpureg| :ST0) (#xDC #xE0 :|+r|))
712 (("FSUBR" "TO") (:|fpureg|) (#xDC #xE0 :|+r|))
713 (("FSUBR") (:ST0 :|fpureg|) (#xD8 #xE8 :|+r|))
714 (("FSUBR") (:|fpureg|) (#xD8 #xE8 :|+r|))
715 (("FSUBR") (:|mem64|) (#xDC :/5))
716 (("FSUBR") (:|mem32|) (#xD8 :/5))
717 (("FSUB") (:|fpureg| :ST0) (#xDC #xE8 :|+r|))
718 (("FSUB" "TO") (:|fpureg|) (#xDC #xE8 :|+r|))
719 (("FSUB") (:ST0 :|fpureg|) (#xD8 #xE0 :|+r|))
720 (("FSUB") (:|fpureg|) (#xD8 #xE0 :|+r|))
721 (("FSUB") (:|mem64|) (#xDC :/4))
722 (("FSUB") (:|mem32|) (#xD8 :/4))
723 (("FNSTSW") (:AX) (#xDF #xE0))
724 (("FNSTSW") (:|mem16|) (#xDD :/7))
725 (("FSTSW") (:AX) (#x9B #xDF #xE0))
726 (("FSTSW") (:|mem16|) (#x9B #xDD :/7))
727 (("FNSTENV") (:|mem|) (#xD9 :/6))
728 (("FSTENV") (:|mem|) (#x9B #xD9 :/6))
729 (("FNSTCW") (:|mem16|) (#xD9 :/7))
730 (("FSTCW") (:|mem16|) (#x9B #xD9 :/7))
731 (("FSTP") (:|fpureg|) (#xDD #xD8 :|+r|))
732 (("FSTP") (:|mem80|) (#xDB :/7))
733 (("FSTP") (:|mem64|) (#xDD :/3))
734 (("FSTP") (:|mem32|) (#xD9 :/3))
735 (("FST") (:|fpureg|) (#xDD #xD0 :|+r|))
736 (("FST") (:|mem64|) (#xDD :/2))
737 (("FST") (:|mem32|) (#xD9 :/2))
738 (("FSQRT") (:|none|) (#xD9 #xFA))
739 (("FSINCOS") (:|none|) (#xD9 #xFB))
740 (("FSIN") (:|none|) (#xD9 #xFE))
741 (("FSETPM") (:|none|) (#xDB #xE4))
742 (("FSCALE") (:|none|) (#xD9 #xFD))
743 (("FRSTOR") (:|mem|) (#xDD :/4))
744 (("FNSAVE") (:|mem|) (#xDD :/6))
745 (("FSAVE") (:|mem|) (#x9B #xDD :/6))
746 (("FRNDINT") (:|none|) (#xD9 #xFC))
747 (("FPREM1") (:|none|) (#xD9 #xF5))
748 (("FPREM") (:|none|) (#xD9 #xF8))
749 (("FPTAN") (:|none|) (#xD9 #xF2))
750 (("FPATAN") (:|none|) (#xD9 #xF3))
751 (("FNOP") (:|none|) (#xD9 #xD0))
752 (("FMULP") (:|fpureg| :ST0) (#xDE #xC8 :|+r|))
753 (("FMULP") (:|fpureg|) (#xDE #xC8 :|+r|))
754 (("FMUL") (:|fpureg| :ST0) (#xDC #xC8 :|+r|))
755 (("FMUL" "TO") (:|fpureg|) (#xDC #xC8 :|+r|))
756 (("FMUL") (:ST0 :|fpureg|) (#xD8 #xC8 :|+r|))
757 (("FMUL") (:|fpureg|) (#xD8 #xC8 :|+r|))
758 (("FMUL") (:|mem64|) (#xDC :/1))
759 (("FMUL") (:|mem32|) (#xD8 :/1))
760 (("FLDENV") (:|mem|) (#xD9 :/4))
761 (("FLDCW") (:|mem16|) (#xD9 :/5))
762 (("FLDZ") (:|none|) (#xD9 #xEE))
763 (("FLDPI") (:|none|) (#xD9 #xEB))
764 (("FLDLN2") (:|none|) (#xD9 #xED))
765 (("FLDLG2") (:|none|) (#xD9 #xEC))
766 (("FLDL2T") (:|none|) (#xD9 #xE9))
767 (("FLDL2E") (:|none|) (#xD9 #xEA))
768 (("FLD1") (:|none|) (#xD9 #xE8))
769 (("FLD") (:|fpureg|) (#xD9 #xC0 :|+r|))
770 (("FLD") (:|mem80|) (#xDB :/5))
771 (("FLD") (:|mem64|) (#xDD :/0))
772 (("FLD") (:|mem32|) (#xD9 :/0))
773 (("FISUBR") (:|mem32|) (#xDA :/5))
774 (("FISUBR") (:|mem16|) (#xDE :/5))
775 (("FISUB") (:|mem32|) (#xDA :/4))
776 (("FISUB") (:|mem16|) (#xDE :/4))
777 (("FNINIT") (:|none|) (#xDB #xE3))
778 (("FINIT") (:|none|) (#x9B #xDB #xE3))
779 (("FINCSTP") (:|none|) (#xD9 #xF7))
780 (("FIMUL") (:|mem32|) (#xDA :/1))
781 (("FIMUL") (:|mem16|) (#xDE :/1))
782 (("FISTP") (:|mem64|) (#xDF :/7))
783 (("FISTP") (:|mem32|) (#xDB :/3))
784 (("FISTP") (:|mem16|) (#xDF :/3))
785 (("FIST") (:|mem32|) (#xDB :/2))
786 (("FIST") (:|mem16|) (#xDF :/2))
787 (("FILD") (:|mem64|) (#xDF :/5))
788 (("FILD") (:|mem32|) (#xDB :/0))
789 (("FILD") (:|mem16|) (#xDF :/0))
790 (("FIDIVR") (:|mem32|) (#xDA :/7))
791 (("FIDIVR") (:|mem16|) (#xDE :/7))
792 (("FIDIV") (:|mem32|) (#xDA :/6))
793 (("FIDIV") (:|mem16|) (#xDE :/6))
794 (("FICOMP") (:|mem32|) (#xDA :/3))
795 (("FICOMP") (:|mem16|) (#xDE :/3))
796 (("FICOM") (:|mem32|) (#xDA :/2))
797 (("FICOM") (:|mem16|) (#xDE :/2))
798 (("FIADD") (:|mem32|) (#xDA :/0))
799 (("FIADD") (:|mem16|) (#xDE :/0))
800 (("FFREEP") (:|fpureg|) (#xDF #xC0 :|+r|))
801 (("FFREE") (:|fpureg|) (#xDD #xC0 :|+r|))
802 (("FEMMS") (:|none|) (#xF #xE))
803 (("FDIVRP") (:|fpureg| :ST0) (#xDE #xF0 :|+r|))
804 (("FDIVRP") (:|fpureg|) (#xDE #xF0 :|+r|))
805 (("FDIVP") (:|fpureg| :ST0) (#xDE #xF8 :|+r|))
806 (("FDIVP") (:|fpureg|) (#xDE #xF8 :|+r|))
807 (("FDIVR") (:|fpureg| :ST0) (#xDC #xF0 :|+r|))
808 (("FDIVR" "TO") (:|fpureg|) (#xDC #xF0 :|+r|))
809 (("FDIVR") (:ST0 :|fpureg|) (#xD8 #xF8 :|+r|))
810 (("FDIVR") (:|fpureg|) (#xD8 #xF8 :|+r|))
811 (("FDIVR") (:|mem64|) (#xDC :/0))
812 (("FDIVR") (:|mem32|) (#xD8 :/0))
813 (("FDIV") (:|fpureg| :ST0) (#xDC #xF8 :|+r|))
814 (("FDIV" "TO") (:|fpureg|) (#xDC #xF8 :|+r|))
815 (("FDIV") (:ST0 :|fpureg|) (#xD8 #xF0 :|+r|))
816 (("FDIV") (:|fpureg|) (#xD8 #xF0 :|+r|))
817 (("FDIV") (:|mem64|) (#xDC :/6))
818 (("FDIV") (:|mem32|) (#xD8 :/6))
819 (("FNENI") (:|none|) (#xDB #xE0))
820 (("FENI") (:|none|) (#x9B #xDB #xE0))
821 (("FNDISI") (:|none|) (#xDB #xE1))
822 (("FDISI") (:|none|) (#x9B #xDB #xE1))
823 (("FDECSTP") (:|none|) (#xD9 #xF6))
824 (("FCOS") (:|none|) (#xD9 #xFF))
825 (("FCOMIP") (:ST0 :|fpureg|) (#xDF #xF0 :|+r|))
826 (("FCOMIP") (:|fpureg|) (#xDF #xF0 :|+r|))
827 (("FCOMI") (:ST0 :|fpureg|) (#xDB #xF0 :|+r|))
828 (("FCOMI") (:|fpureg|) (#xDB #xF0 :|+r|))
829 (("FCOMPP") (:|none|) (#xDE #xD9))
830 (("FCOMP") (:ST0 :|fpureg|) (#xD8 #xD8 :|+r|))
831 (("FCOMP") (:|fpureg|) (#xD8 #xD8 :|+r|))
832 (("FCOMP") (:|mem64|) (#xDC :/3))
833 (("FCOMP") (:|mem32|) (#xD8 :/3))
834 (("FCOM") (:ST0 :|fpureg|) (#xD8 #xD0 :|+r|))
835 (("FCOM") (:|fpureg|) (#xD8 #xD0 :|+r|))
836 (("FCOM") (:|mem64|) (#xDC :/2))
837 (("FCOM") (:|mem32|) (#xD8 :/2))
838 (("FCMOVNU") (:ST0 :|fpureg|) (#xDB #xD8 :|+r|))
839 (("FCMOVNU") (:|fpureg|) (#xDB #xD8 :|+r|))
840 (("FCMOVNBE") (:ST0 :|fpureg|) (#xDB #xD0 :|+r|))
841 (("FCMOVNBE") (:|fpureg|) (#xDB #xD0 :|+r|))
842 (("FCMOVNE") (:ST0 :|fpureg|) (#xDB #xC8 :|+r|))
843 (("FCMOVNE") (:|fpureg|) (#xDB #xC8 :|+r|))
844 (("FCMOVNB") (:ST0 :|fpureg|) (#xDB #xC0 :|+r|))
845 (("FCMOVNB") (:|fpureg|) (#xDB #xC0 :|+r|))
846 (("FCMOVU") (:ST0 :|fpureg|) (#xDA #xD8 :|+r|))
847 (("FCMOVU") (:|fpureg|) (#xDA #xD8 :|+r|))
848 (("FCMOVBE") (:ST0 :|fpureg|) (#xDA #xD0 :|+r|))
849 (("FCMOVBE") (:|fpureg|) (#xDA #xD0 :|+r|))
850 (("FCMOVE") (:ST0 :|fpureg|) (#xDA #xC8 :|+r|))
851 (("FCMOVE") (:|fpureg|) (#xDA #xC8 :|+r|))
852 (("FCMOVB") (:ST0 :|fpureg|) (#xDA #xC0 :|+r|))
853 (("FCMOVB") (:|fpureg|) (#xDA #xC0 :|+r|))
854 (("FNCLEX") (:|none|) (#xDB #xE2))
855 (("FCLEX") (:|none|) (#x9B #xDB #xE2))
856 (("FCHS") (:|none|) (#xD9 #xE0))
857 (("FBSTP") (:|mem80|) (#xDF :/6))
858 (("FBLD") (:|mem80|) (#xDF :/4))
859 (("FADDP") (:|fpureg| :ST0) (#xDE #xC0 :|+r|))
860 (("FADDP") (:|fpureg|) (#xDE #xC0 :|+r|))
861 (("FADD") (:|fpureg| :ST0) (#xDC #xC0 :|+r|))
862 (("FADD" "TO") (:|fpureg|) (#xDC #xC0 :|+r|))
863 (("FADD") (:ST0 :|fpureg|) (#xD8 #xC0 :|+r|))
864 (("FADD") (:|fpureg|) (#xD8 #xC0 :|+r|))
865 (("FADD") (:|mem64|) (#xDC :/0))
866 (("FADD") (:|mem32|) (#xD8 :/0))
867 (("FABS") (:|none|) (#xD9 #xE1))
868 (("F2XM1") (:|none|) (#xD9 #xF0))
869 (("ENTER") (:|imm| :|imm|) (#xC8 :|iw| :|ib|))
870 (("EMMS") (:|none|) (#xF #x77))
871 (("DIVSS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #x5E :|/r|))
872 (("DIVSD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #x5E :|/r|))
873 (("DIVPS") (:|xmm1| :|xmm2/mem128|) (#xF #x5E :|/r|))
874 (("DIVPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #x5E :|/r|))
875 (("DIV") (:|r/m32|) (:|o32| #xF7 :/6))
876 (("DIV") (:|r/m16|) (:|o16| #xF7 :/6))
877 (("DIV") (:|r/m8|) (#xF6 :/6))
878 (("DEC") (:|r/m32|) (:|o32| #xFF :/1))
879 (("DEC") (:|r/m16|) (:|o16| #xFF :/1))
880 (("DEC") (:|r/m8|) (#xFE :/1))
881 (("DEC") (:|reg32|) (:|o32| #x48 :|+r|))
882 (("DEC") (:|reg16|) (:|o16| #x48 :|+r|))
883 (("DAS") (:|none|) (#x2F))
884 (("DAA") (:|none|) (#x27))
885 (("CVTTSD2SI") (:|reg32| :|xmm/mem32|) (#xF3 #xF #x2C :|/r|))
886 (("CVTTSD2SI") (:|reg32| :|xmm/mem64|) (#xF2 #xF #x2C :|/r|))
887 (("CVTTPS2PI") (:|mm| :|xmm/mem64|) (#xF #x2C :|/r|))
888 (("CVTTPS2DQ") (:|xmm1| :|xmm2/mem128|) (#xF3 #xF #x5B :|/r|))
889 (("CVTTPD2PI") (:|mm| :|xmm/mem128|) (#x66 #xF #x2C :|/r|))
890 (("CVTTPD2DQ") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #xE6 :|/r|))
891 (("CVTSS2SI") (:|reg32| :|xmm/mem32|) (#xF3 #xF #x2D :|/r|))
892 (("CVTSS2SD") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #x5A :|/r|))
893 (("CVTSI2SS") (:|xmm| :|r/m32|) (#xF3 #xF #x2A :|/r|))
894 (("CVTSI2SD") (:|xmm| :|r/m32|) (#xF2 #xF #x2A :|/r|))
895 (("CVTSD2SS") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #x5A :|/r|))
896 (("CVTSD2SI") (:|reg32| :|xmm/mem64|) (#xF2 #xF #x2D :|/r|))
897 (("CVTPS2PI") (:|mm| :|xmm/mem64|) (#xF #x2D :|/r|))
898 (("CVTPS2PD") (:|xmm1| :|xmm2/mem64|) (#xF #x5A :|/r|))
899 (("CVTPS2DQ") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #x5B :|/r|))
900 (("CVTPI2PS") (:|xmm| :|mm/mem64|) (#xF #x2A :|/r|))
901 (("CVTPI2PD") (:|xmm| :|mm/mem64|) (#x66 #xF #x2A :|/r|))
902 (("CVTPD2PS") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #x5A :|/r|))
903 (("CVTPD2PI") (:|mm| :|xmm/mem128|) (#x66 #xF #x2D :|/r|))
904 (("CVTPD2DQ") (:|xmm1| :|xmm2/mem128|) (#xF2 #xF #xE6 :|/r|))
905 (("CVTDQ2PS") (:|xmm1| :|xmm2/mem128|) (#xF #x5B :|/r|))
906 (("CVTDQ2PD") (:|xmm1| :|xmm2/mem64|) (#xF3 #xF #xE6 :|/r|))
907 (("CPUID") (:|none|) (#xF #xA2))
908 (("COMISS") (:|xmm1| :|xmm2/mem32|) (#x66 #xF #x2F :|/r|))
909 (("COMISD") (:|xmm1| :|xmm2/mem64|) (#x66 #xF #x2F :|/r|))
910 (("CMPXCHG8B") (:|mem|) (#xF #xC7 :/1))
911 (("CMPXCHG486") (:|r/m32| :|reg32|) (:|o32| #xF #xA7 :|/r|))
912 (("CMPXCHG486") (:|r/m16| :|reg16|) (:|o16| #xF #xA7 :|/r|))
913 (("CMPXCHG486") (:|r/m8| :|reg8|) (#xF #xA6 :|/r|))
914 (("CMPXCHG") (:|r/m32| :|reg32|) (:|o32| #xF #xB1 :|/r|))
915 (("CMPXCHG") (:|r/m16| :|reg16|) (:|o16| #xF #xB1 :|/r|))
916 (("CMPXCHG") (:|r/m8| :|reg8|) (#xF #xB0 :|/r|))
917 (("CMPORDSS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #xC2 :|/r| #x7))
918 (("CMPNLESS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #xC2 :|/r| #x6))
919 (("CMPNLTSS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #xC2 :|/r| #x5))
920 (("CMPNEQSS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #xC2 :|/r| #x4))
921 (("CMPUNORDSS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #xC2 :|/r| #x3))
922 (("CMPLESS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #xC2 :|/r| #x2))
923 (("CMPLTSS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #xC2 :|/r| #x1))
924 (("CMPEQSS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #xC2 :|/r| #x0))
925 (("CMPSS") (:|xmm1| :|xmm2/mem32| :|imm8|) (#xF3 #xF #xC2 :|/r| :|ib|))
926 (("CMPORDSD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #xC2 :|/r| #x7))
927 (("CMPNLESD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #xC2 :|/r| #x6))
928 (("CMPNLTSD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #xC2 :|/r| #x5))
929 (("CMPNEQSD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #xC2 :|/r| #x4))
930 (("CMPUNORDSD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #xC2 :|/r| #x3))
931 (("CMPLESD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #xC2 :|/r| #x2))
932 (("CMPLTSD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #xC2 :|/r| #x1))
933 (("CMPEQSD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #xC2 :|/r| #x0))
934 (("CMPSD") (:|xmm1| :|xmm2/mem64| :|imm8|) (#xF2 #xF #xC2 :|/r| :|ib|))
935 (("CMPSD") (:|none|) (:|o32| #xA7))
936 (("CMPSW") (:|none|) (:|o16| #xA7))
937 (("CMPSB") (:|none|) (#xA6))
938 (("CMPORDPS") (:|xmm1| :|xmm2/mem128|) (#xF #xC2 :|/r| #x7))
939 (("CMPNLEPS") (:|xmm1| :|xmm2/mem128|) (#xF #xC2 :|/r| #x6))
940 (("CMPNLTPS") (:|xmm1| :|xmm2/mem128|) (#xF #xC2 :|/r| #x5))
941 (("CMPNEQPS") (:|xmm1| :|xmm2/mem128|) (#xF #xC2 :|/r| #x4))
942 (("CMPUNORDPS") (:|xmm1| :|xmm2/mem128|) (#xF #xC2 :|/r| #x3))
943 (("CMPLEPS") (:|xmm1| :|xmm2/mem128|) (#xF #xC2 :|/r| #x2))
944 (("CMPLTPS") (:|xmm1| :|xmm2/mem128|) (#xF #xC2 :|/r| #x1))
945 (("CMPEQPS") (:|xmm1| :|xmm2/mem128|) (#xF #xC2 :|/r| #x0))
946 (("CMPPS") (:|xmm1| :|xmm2/mem128| :|imm8|) (#xF #xC2 :|/r| :|ib|))
947 (("CMPORDPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #xC2 :|/r| #x7))
948 (("CMPNLEPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #xC2 :|/r| #x6))
949 (("CMPNLTPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #xC2 :|/r| #x5))
950 (("CMPNEQPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #xC2 :|/r| #x4))
951 (("CMPUNORDPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #xC2 :|/r| #x3))
952 (("CMPLEPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #xC2 :|/r| #x2))
953 (("CMPLTPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #xC2 :|/r| #x1))
954 (("CMPEQPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #xC2 :|/r| #x0))
955 (("CMPPD") (:|xmm1| :|xmm2/mem128| :|imm8|) (#x66 #xF #xC2 :|/r| :|ib|))
956 (("CMP") (:|EAX| :|imm32|) (:|o32| #x3D :|id|))
957 (("CMP") (:AX :|imm16|) (:|o16| #x3D :|iw|))
958 (("CMP") (:AL :|imm8|) (#x3C :|ib|))
959 (("CMP") (:|r/m32| :|imm8|) (:|o32| #x83 :/0 :|ib|))
960 (("CMP") (:|r/m16| :|imm8|) (:|o16| #x83 :/0 :|ib|))
961 (("CMP") (:|r/m32| :|imm32|) (:|o32| #x81 :/0 :|id|))
962 (("CMP") (:|r/m16| :|imm16|) (:|o16| #x81 :/0 :|iw|))
963 (("CMP") (:|r/m8| :|imm8|) (#x80 :/0 :|ib|))
964 (("CMP") (:|reg32| :|r/m32|) (:|o32| #x3B :|/r|))
965 (("CMP") (:|reg16| :|r/m16|) (:|o16| #x3B :|/r|))
966 (("CMP") (:|reg8| :|r/m8|) (#x3A :|/r|))
967 (("CMP") (:|r/m32| :|reg32|) (:|o32| #x39 :|/r|))
968 (("CMP") (:|r/m16| :|reg16|) (:|o16| #x39 :|/r|))
969 (("CMP") (:|r/m8| :|reg8|) (#x38 :|/r|))
970 ;; (("CMOVcc") (:|reg32| :|r/m32|) (:|o32| #xF #x40 :|+cc| :|/r|))
971 ;; (("CMOVcc") (:|reg16| :|r/m16|) (:|o16| #xF #x40 :|+cc| :|/r|))
972 (("CMC") (:|none|) (#xF5))
973 (("CLFLUSH") (:|mem|) (#xF #xAE :/7))
974 (("CLTS") (:|none|) (#xF #x6))
975 (("CLI") (:|none|) (#xFA))
976 (("CLD") (:|none|) (#xFC))
977 (("CLC") (:|none|) (#xF8))
978 (("CDQ") (:|none|) (:|o32| #x99))
979 (("CWD") (:|none|) (:|o16| #x99))
980 (("CWDE") (:|none|) (:|o32| #x98))
981 (("CBW") (:|none|) (:|o16| #x98))
982 (("CALL") (:|r/m32|) (:|o32| #xFF :/2))
983 (("CALL") (:|r/m16|) (:|o16| #xFF :/2))
984 (("CALL" "FAR") (:|mem32|) (:|o32| #xFF :/3))
985 (("CALL" "FAR") (:|mem16|) (:|o16| #xFF :/3))
986 (("CALL") (:|imm:imm32|) (:|o32| #x9A :|id| :|iw|))
987 (("CALL") (:|imm:imm16|) (:|o16| #x9A :|iw| :|iw|))
988 (("CALL") (:|imm|) (#xE8 :|rw/rd|))
989 (("BTS") (:|r/m32| :|imm|) (:|o32| #xF #xBA :/5 :|ib|))
990 (("BTS") (:|r/m16| :|imm|) (:|o16| #xF #xBA :/5 :|ib|))
991 (("BTS") (:|r/m32| :|reg32|) (:|o32| #xF #xAB :|/r|))
992 (("BTS") (:|r/m16| :|reg16|) (:|o16| #xF #xAB :|/r|))
993 (("BTR") (:|r/m32| :|imm8|) (:|o32| #xF #xBA :/6 :|ib|))
994 (("BTR") (:|r/m16| :|imm8|) (:|o16| #xF #xBA :/6 :|ib|))
995 (("BTR") (:|r/m32| :|reg32|) (:|o32| #xF #xB3 :|/r|))
996 (("BTR") (:|r/m16| :|reg16|) (:|o16| #xF #xB3 :|/r|))
997 (("BTC") (:|r/m32| :|imm8|) (:|o32| #xF #xBA :/7 :|ib|))
998 (("BTC") (:|r/m16| :|imm8|) (:|o16| #xF #xBA :/7 :|ib|))
999 (("BTC") (:|r/m32| :|reg32|) (:|o32| #xF #xBB :|/r|))
1000 (("BTC") (:|r/m16| :|reg16|) (:|o16| #xF #xBB :|/r|))
1001 (("BT") (:|r/m32| :|imm8|) (:|o32| #xF #xBA :/4 :|ib|))
1002 (("BT") (:|r/m16| :|imm8|) (:|o16| #xF #xBA :/4 :|ib|))
1003 (("BT") (:|r/m32| :|reg32|) (:|o32| #xF #xA3 :|/r|))
1004 (("BT") (:|r/m16| :|reg16|) (:|o16| #xF #xA3 :|/r|))
1005 (("BSWAP") (:|reg32|) (:|o32| #xF #xC8 :|+r|))
1006 (("BSR") (:|reg32| :|r/m32|) (:|o32| #xF #xBD :|/r|))
1007 (("BSR") (:|reg16| :|r/m16|) (:|o16| #xF #xBD :|/r|))
1008 (("BSF") (:|reg32| :|r/m32|) (:|o32| #xF #xBC :|/r|))
1009 (("BSF") (:|reg16| :|r/m16|) (:|o16| #xF #xBC :|/r|))
1010 (("BOUND") (:|reg32| :|mem|) (:|o32| #x62 :|/r|))
1011 (("BOUND") (:|reg16| :|mem|) (:|o16| #x62 :|/r|))
1012 (("ARPL") (:|r/m16| :|reg16|) (#x63 :|/r|))
1013 (("ANDPS") (:|xmm1| :|xmm2/mem128|) (#xF #x54 :|/r|))
1014 (("ANDPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #x54 :|/r|))
1015 (("ANDNPS") (:|xmm1| :|xmm2/mem128|) (#xF #x55 :|/r|))
1016 (("ANDNPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #x55 :|/r|))
1017 (("AND") (:|EAX| :|imm32|) (:|o32| #x25 :|id|))
1018 (("AND") (:AX :|imm16|) (:|o16| #x25 :|iw|))
1019 (("AND") (:AL :|imm8|) (#x24 :|ib|))
1020 (("AND") (:|r/m32| :|imm8|) (:|o32| #x83 :/4 :|ib|))
1021 (("AND") (:|r/m16| :|imm8|) (:|o16| #x83 :/4 :|ib|))
1022 (("AND") (:|r/m32| :|imm32|) (:|o32| #x81 :/4 :|id|))
1023 (("AND") (:|r/m16| :|imm16|) (:|o16| #x81 :/4 :|iw|))
1024 (("AND") (:|r/m8| :|imm8|) (#x80 :/4 :|ib|))
1025 (("AND") (:|reg32| :|r/m32|) (:|o32| #x23 :|/r|))
1026 (("AND") (:|reg16| :|r/m16|) (:|o16| #x23 :|/r|))
1027 (("AND") (:|reg8| :|r/m8|) (#x22 :|/r|))
1028 (("AND") (:|r/m32| :|reg32|) (:|o32| #x21 :|/r|))
1029 (("AND") (:|r/m16| :|reg16|) (:|o16| #x21 :|/r|))
1030 (("AND") (:|r/m8| :|reg8|) (#x20 :|/r|))
1031 (("ADDSS") (:|xmm1| :|xmm2/mem32|) (#xF3 #xF #x58 :|/r|))
1032 (("ADDSD") (:|xmm1| :|xmm2/mem64|) (#xF2 #xF #x58 :|/r|))
1033 (("ADDPS") (:|xmm1| :|xmm2/mem128|) (#xF #x58 :|/r|))
1034 (("ADDPD") (:|xmm1| :|xmm2/mem128|) (#x66 #xF #x58 :|/r|))
1035 (("ADD") (:|EAX| :|imm32|) (:|o32| #x5 :|id|))
1036 (("ADD") (:AX :|imm16|) (:|o16| #x5 :|iw|))
1037 (("ADD") (:AL :|imm8|) (#x4 :|ib|))
1038 (("ADD") (:|r/m32| :|imm8|) (:|o32| #x83 :/0 :|ib|))
1039 (("ADD") (:|r/m16| :|imm8|) (:|o16| #x83 :/0 :|ib|))
1040 (("ADD") (:|r/m32| :|imm32|) (:|o32| #x81 :/0 :|id|))
1041 (("ADD") (:|r/m16| :|imm16|) (:|o16| #x81 :/0 :|iw|))
1042 (("ADD") (:|r/m8| :|imm8|) (#x80 :/0 :|ib|))
1043 (("ADD") (:|reg32| :|r/m32|) (:|o32| #x3 :|/r|))
1044 (("ADD") (:|reg16| :|r/m16|) (:|o16| #x3 :|/r|))
1045 (("ADD") (:|reg8| :|r/m8|) (#x2 :|/r|))
1046 (("ADD") (:|r/m32| :|reg32|) (:|o32| #x1 :|/r|))
1047 (("ADD") (:|r/m16| :|reg16|) (:|o16| #x1 :|/r|))
1048 (("ADD") (:|r/m8| :|reg8|) (#x0 :|/r|))
1049 (("ADC") (:|EAX| :|imm32|) (:|o32| #x15 :|id|))
1050 (("ADC") (:AX :|imm16|) (:|o16| #x15 :|iw|))
1051 (("ADC") (:AL :|imm8|) (#x14 :|ib|))
1052 (("ADC") (:|r/m32| :|imm8|) (:|o32| #x83 :/2 :|ib|))
1053 (("ADC") (:|r/m16| :|imm8|) (:|o16| #x83 :/2 :|ib|))
1054 (("ADC") (:|r/m32| :|imm32|) (:|o32| #x81 :/2 :|id|))
1055 (("ADC") (:|r/m16| :|imm16|) (:|o16| #x81 :/2 :|iw|))
1056 (("ADC") (:|r/m8| :|imm8|) (#x80 :/2 :|ib|))
1057 (("ADC") (:|reg32| :|r/m32|) (:|o32| #x13 :|/r|))
1058 (("ADC") (:|reg16| :|r/m16|) (:|o16| #x13 :|/r|))
1059 (("ADC") (:|reg8| :|r/m8|) (#x12 :|/r|))
1060 (("ADC") (:|r/m32| :|reg32|) (:|o32| #x11 :|/r|))
1061 (("ADC") (:|r/m16| :|reg16|) (:|o16| #x11 :|/r|))
1062 (("ADC") (:|r/m8| :|reg8|) (#x10 :|/r|))
1063 (("AAM") (:|imm|) (#xD4 :|ib|))
1064 (("AAM") (:|none|) (#xD4 #xA))
1065 (("AAD") (:|imm|) (#xD5 :|ib|))
1066 (("AAD") (:|none|) (#xD5 #xA))
1067 (("AAS") (:|none|) (#x3F))
1068 (("AAA") (:|none|) (#x37))
1069 (("J0 NEAR") (:|imm|) (#xF #x80 :|rw/rd|))
1070 (("JNO NEAR") (:|imm|) (#xF #x81 :|rw/rd|))
1071 (("JB NEAR") (:|imm|) (#xF #x82 :|rw/rd|))
1072 (("JC NEAR") (:|imm|) (#xF #x82 :|rw/rd|))
1073 (("JNAE NEAR") (:|imm|) (#xF #x82 :|rw/rd|))
1074 (("JAE NEAR") (:|imm|) (#xF #x83 :|rw/rd|))
1075 (("JNB NEAR") (:|imm|) (#xF #x83 :|rw/rd|))
1076 (("JNC NEAR") (:|imm|) (#xF #x83 :|rw/rd|))
1077 (("JE NEAR") (:|imm|) (#xF #x84 :|rw/rd|))
1078 (("JZ NEAR") (:|imm|) (#xF #x84 :|rw/rd|))
1079 (("JNE NEAR") (:|imm|) (#xF #x85 :|rw/rd|))
1080 (("JNZ NEAR") (:|imm|) (#xF #x85 :|rw/rd|))
1081 (("JBE NEAR") (:|imm|) (#xF #x86 :|rw/rd|))
1082 (("JNA NEAR") (:|imm|) (#xF #x86 :|rw/rd|))
1083 (("JA NEAR") (:|imm|) (#xF #x87 :|rw/rd|))
1084 (("JNBE NEAR") (:|imm|) (#xF #x87 :|rw/rd|))
1085 (("JS NEAR") (:|imm|) (#xF #x88 :|rw/rd|))
1086 (("JNS NEAR") (:|imm|) (#xF #x89 :|rw/rd|))
1087 (("JP NEAR") (:|imm|) (#xF #x8A :|rw/rd|))
1088 (("JPE NEAR") (:|imm|) (#xF #x8A :|rw/rd|))
1089 (("JNP NEAR") (:|imm|) (#xF #x8B :|rw/rd|))
1090 (("JPO NEAR") (:|imm|) (#xF #x8B :|rw/rd|))
1091 (("JL NEAR") (:|imm|) (#xF #x8C :|rw/rd|))
1092 (("JNGE NEAR") (:|imm|) (#xF #x8C :|rw/rd|))
1093 (("JGE NEAR") (:|imm|) (#xF #x8D :|rw/rd|))
1094 (("JNL NEAR") (:|imm|) (#xF #x8D :|rw/rd|))
1095 (("JLE NEAR") (:|imm|) (#xF #x8E :|rw/rd|))
1096 (("JNG NEAR") (:|imm|) (#xF #x8E :|rw/rd|))
1097 (("JG NEAR") (:|imm|) (#xF #x8F :|rw/rd|))
1098 (("JNLE NEAR") (:|imm|) (#xF #x8F :|rw/rd|))
1099 (("J0") (:|imm|) (#x70 :|rb|))
1100 (("JNO") (:|imm|) (#x71 :|rb|))
1101 (("JB") (:|imm|) (#x72 :|rb|))
1102 (("JC") (:|imm|) (#x72 :|rb|))
1103 (("JNAE") (:|imm|) (#x72 :|rb|))
1104 (("JAE") (:|imm|) (#x73 :|rb|))
1105 (("JNB") (:|imm|) (#x73 :|rb|))
1106 (("JNC") (:|imm|) (#x73 :|rb|))
1107 (("JE") (:|imm|) (#x74 :|rb|))
1108 (("JZ") (:|imm|) (#x74 :|rb|))
1109 (("JNE") (:|imm|) (#x75 :|rb|))
1110 (("JNZ") (:|imm|) (#x75 :|rb|))
1111 (("JBE") (:|imm|) (#x76 :|rb|))
1112 (("JNA") (:|imm|) (#x76 :|rb|))
1113 (("JA") (:|imm|) (#x77 :|rb|))
1114 (("JNBE") (:|imm|) (#x77 :|rb|))
1115 (("JS") (:|imm|) (#x78 :|rb|))
1116 (("JNS") (:|imm|) (#x79 :|rb|))
1117 (("JP") (:|imm|) (#x7A :|rb|))
1118 (("JPE") (:|imm|) (#x7A :|rb|))
1119 (("JNP") (:|imm|) (#x7B :|rb|))
1120 (("JPO") (:|imm|) (#x7B :|rb|))
1121 (("JL") (:|imm|) (#x7C :|rb|))
1122 (("JNGE") (:|imm|) (#x7C :|rb|))
1123 (("JGE") (:|imm|) (#x7D :|rb|))
1124 (("JNL") (:|imm|) (#x7D :|rb|))
1125 (("JLE") (:|imm|) (#x7E :|rb|))
1126 (("JNG") (:|imm|) (#x7E :|rb|))
1127 (("JG") (:|imm|) (#x7F :|rb|))
1128 (("JNLE") (:|imm|) (#x7F :|rb|))
1129 (("SET0") (:|r/m8|) (#xF #x90 :/2))
1130 (("SETNO") (:|r/m8|) (#xF #x91 :/2))
1131 (("SETB") (:|r/m8|) (#xF #x92 :/2))
1132 (("SETC") (:|r/m8|) (#xF #x92 :/2))
1133 (("SETNAE") (:|r/m8|) (#xF #x92 :/2))
1134 (("SETAE") (:|r/m8|) (#xF #x93 :/2))
1135 (("SETNB") (:|r/m8|) (#xF #x93 :/2))
1136 (("SETNC") (:|r/m8|) (#xF #x93 :/2))
1137 (("SETE") (:|r/m8|) (#xF #x94 :/2))
1138 (("SETZ") (:|r/m8|) (#xF #x94 :/2))
1139 (("SETNE") (:|r/m8|) (#xF #x95 :/2))
1140 (("SETNZ") (:|r/m8|) (#xF #x95 :/2))
1141 (("SETBE") (:|r/m8|) (#xF #x96 :/2))
1142 (("SETNA") (:|r/m8|) (#xF #x96 :/2))
1143 (("SETA") (:|r/m8|) (#xF #x97 :/2))
1144 (("SETNBE") (:|r/m8|) (#xF #x97 :/2))
1145 (("SETS") (:|r/m8|) (#xF #x98 :/2))
1146 (("SETNS") (:|r/m8|) (#xF #x99 :/2))
1147 (("SETP") (:|r/m8|) (#xF #x9A :/2))
1148 (("SETPE") (:|r/m8|) (#xF #x9A :/2))
1149 (("SETNP") (:|r/m8|) (#xF #x9B :/2))
1150 (("SETPO") (:|r/m8|) (#xF #x9B :/2))
1151 (("SETL") (:|r/m8|) (#xF #x9C :/2))
1152 (("SETNGE") (:|r/m8|) (#xF #x9C :/2))
1153 (("SETGE") (:|r/m8|) (#xF #x9D :/2))
1154 (("SETNL") (:|r/m8|) (#xF #x9D :/2))
1155 (("SETLE") (:|r/m8|) (#xF #x9E :/2))
1156 (("SETNG") (:|r/m8|) (#xF #x9E :/2))
1157 (("SETG") (:|r/m8|) (#xF #x9F :/2))
1158 (("SETNLE") (:|r/m8|) (#xF #x9F :/2))
1159 (("CMOV0") (:|reg32| :|r/m32|) (:|o32| #xF #x40 :|/r|))
1160 (("CMOVNO") (:|reg32| :|r/m32|) (:|o32| #xF #x41 :|/r|))
1161 (("CMOVB") (:|reg32| :|r/m32|) (:|o32| #xF #x42 :|/r|))
1162 (("CMOVC") (:|reg32| :|r/m32|) (:|o32| #xF #x42 :|/r|))
1163 (("CMOVNAE") (:|reg32| :|r/m32|) (:|o32| #xF #x42 :|/r|))
1164 (("CMOVAE") (:|reg32| :|r/m32|) (:|o32| #xF #x43 :|/r|))
1165 (("CMOVNB") (:|reg32| :|r/m32|) (:|o32| #xF #x43 :|/r|))
1166 (("CMOVNC") (:|reg32| :|r/m32|) (:|o32| #xF #x43 :|/r|))
1167 (("CMOVE") (:|reg32| :|r/m32|) (:|o32| #xF #x44 :|/r|))
1168 (("CMOVZ") (:|reg32| :|r/m32|) (:|o32| #xF #x44 :|/r|))
1169 (("CMOVNE") (:|reg32| :|r/m32|) (:|o32| #xF #x45 :|/r|))
1170 (("CMOVNZ") (:|reg32| :|r/m32|) (:|o32| #xF #x45 :|/r|))
1171 (("CMOVBE") (:|reg32| :|r/m32|) (:|o32| #xF #x46 :|/r|))
1172 (("CMOVNA") (:|reg32| :|r/m32|) (:|o32| #xF #x46 :|/r|))
1173 (("CMOVA") (:|reg32| :|r/m32|) (:|o32| #xF #x47 :|/r|))
1174 (("CMOVNBE") (:|reg32| :|r/m32|) (:|o32| #xF #x47 :|/r|))
1175 (("CMOVS") (:|reg32| :|r/m32|) (:|o32| #xF #x48 :|/r|))
1176 (("CMOVNS") (:|reg32| :|r/m32|) (:|o32| #xF #x49 :|/r|))
1177 (("CMOVP") (:|reg32| :|r/m32|) (:|o32| #xF #x4A :|/r|))
1178 (("CMOVPE") (:|reg32| :|r/m32|) (:|o32| #xF #x4A :|/r|))
1179 (("CMOVNP") (:|reg32| :|r/m32|) (:|o32| #xF #x4B :|/r|))
1180 (("CMOVPO") (:|reg32| :|r/m32|) (:|o32| #xF #x4B :|/r|))
1181 (("CMOVL") (:|reg32| :|r/m32|) (:|o32| #xF #x4C :|/r|))
1182 (("CMOVNGE") (:|reg32| :|r/m32|) (:|o32| #xF #x4C :|/r|))
1183 (("CMOVGE") (:|reg32| :|r/m32|) (:|o32| #xF #x4D :|/r|))
1184 (("CMOVNL") (:|reg32| :|r/m32|) (:|o32| #xF #x4D :|/r|))
1185 (("CMOVLE") (:|reg32| :|r/m32|) (:|o32| #xF #x4E :|/r|))
1186 (("CMOVNG") (:|reg32| :|r/m32|) (:|o32| #xF #x4E :|/r|))
1187 (("CMOVG") (:|reg32| :|r/m32|) (:|o32| #xF #x4F :|/r|))
1188 (("CMOVNLE") (:|reg32| :|r/m32|) (:|o32| #xF #x4F :|/r|))
1189 (("CMOV0") (:|reg16| :|r/m16|) (:|o16| #xF #x40 :|/r|))
1190 (("CMOVNO") (:|reg16| :|r/m16|) (:|o16| #xF #x41 :|/r|))
1191 (("CMOVB") (:|reg16| :|r/m16|) (:|o16| #xF #x42 :|/r|))
1192 (("CMOVC") (:|reg16| :|r/m16|) (:|o16| #xF #x42 :|/r|))
1193 (("CMOVNAE") (:|reg16| :|r/m16|) (:|o16| #xF #x42 :|/r|))
1194 (("CMOVAE") (:|reg16| :|r/m16|) (:|o16| #xF #x43 :|/r|))
1195 (("CMOVNB") (:|reg16| :|r/m16|) (:|o16| #xF #x43 :|/r|))
1196 (("CMOVNC") (:|reg16| :|r/m16|) (:|o16| #xF #x43 :|/r|))
1197 (("CMOVE") (:|reg16| :|r/m16|) (:|o16| #xF #x44 :|/r|))
1198 (("CMOVZ") (:|reg16| :|r/m16|) (:|o16| #xF #x44 :|/r|))
1199 (("CMOVNE") (:|reg16| :|r/m16|) (:|o16| #xF #x45 :|/r|))
1200 (("CMOVNZ") (:|reg16| :|r/m16|) (:|o16| #xF #x45 :|/r|))
1201 (("CMOVBE") (:|reg16| :|r/m16|) (:|o16| #xF #x46 :|/r|))
1202 (("CMOVNA") (:|reg16| :|r/m16|) (:|o16| #xF #x46 :|/r|))
1203 (("CMOVA") (:|reg16| :|r/m16|) (:|o16| #xF #x47 :|/r|))
1204 (("CMOVNBE") (:|reg16| :|r/m16|) (:|o16| #xF #x47 :|/r|))
1205 (("CMOVS") (:|reg16| :|r/m16|) (:|o16| #xF #x48 :|/r|))
1206 (("CMOVNS") (:|reg16| :|r/m16|) (:|o16| #xF #x49 :|/r|))
1207 (("CMOVP") (:|reg16| :|r/m16|) (:|o16| #xF #x4A :|/r|))
1208 (("CMOVPE") (:|reg16| :|r/m16|) (:|o16| #xF #x4A :|/r|))
1209 (("CMOVNP") (:|reg16| :|r/m16|) (:|o16| #xF #x4B :|/r|))
1210 (("CMOVPO") (:|reg16| :|r/m16|) (:|o16| #xF #x4B :|/r|))
1211 (("CMOVL") (:|reg16| :|r/m16|) (:|o16| #xF #x4C :|/r|))
1212 (("CMOVNGE") (:|reg16| :|r/m16|) (:|o16| #xF #x4C :|/r|))
1213 (("CMOVGE") (:|reg16| :|r/m16|) (:|o16| #xF #x4D :|/r|))
1214 (("CMOVNL") (:|reg16| :|r/m16|) (:|o16| #xF #x4D :|/r|))
1215 (("CMOVLE") (:|reg16| :|r/m16|) (:|o16| #xF #x4E :|/r|))
1216 (("CMOVNG") (:|reg16| :|r/m16|) (:|o16| #xF #x4E :|/r|))
1217 (("CMOVG") (:|reg16| :|r/m16|) (:|o16| #xF #x4F :|/r|))
1218 (("CMOVNLE") (:|reg16| :|r/m16|) (:|o16| #xF #x4F :|/r|))))
1220 (defparameter *instruction-lookup-table*
1221 (make-hash-table :test 'eq))
1223 ;; transform the above into a more useful hashtable
1224 (defun make-instruction-hash-table ()
1225 "(make-instruction-hash-table) Transform our list of
1226 instructions extracted from the NASM docs to a useful
1227 hashtable"
1228 (flet ((get-instruction-names ()
1229 (mapcar #'(lambda (i)
1230 (intern (first (first i)) :KEYWORD))
1231 *instruction-table*))
1232 (get-instruction-descriptions ()
1233 (mapcar #'(lambda (i)
1234 (rest i)) *instruction-table*)))
1235 (loop
1236 for name in (get-instruction-names)
1237 for description in (get-instruction-descriptions)
1239 (progn
1240 (format *debug-io* "Adding ~W to table - ~A ~%"
1241 name description)
1242 (setf (gethash name *instruction-lookup-table*)
1243 (cons description
1244 (gethash name
1245 *instruction-lookup-table*)))))))
1247 (defun lookup-instruction (instruction-designator)
1248 "(lookup-instruction instruction-designator) if
1249 instruction is a recognised instruction, return it
1250 and it's description as a pair of values"
1251 (ctypecase instruction-designator
1252 (string (let
1253 ((instruction-symbol
1254 (find-symbol
1255 instruction-designator :KEYWORD)))
1256 (if instruction-symbol
1257 (values
1258 instruction-symbol
1259 (gethash instruction-symbol
1260 *instruction-lookup-table*))
1261 (error "Unknown instruction ~A "
1262 instruction-designator))))
1263 (symbol (if (eq (symbol-package instruction-designator)
1264 (find-package 'keyword))
1265 (values
1266 instruction-designator
1267 (gethash instruction-designator
1268 *instruction-lookup-table*))
1269 (error "Unknown instruction ~A "
1270 instruction-designator)))))
1273 ;; constructors accessors for instuction encoding -------------------------
1275 (defun make-mod-rm-byte (mod r/m spare)
1276 (logior
1277 (ash mod 6)
1278 (ash spare 3)
1279 r/m))
1281 (defun get-mod-rm-field (field modrm)
1282 (ccase field
1283 (:mod (ash modrm -6))
1284 (:spare (logand (ash modrm -3) #X7))
1285 (:|r/m| (logand modrm #X7))))
1288 (defun make-sib-byte (scale index base)
1289 (logior
1290 (ash scale 6)
1291 (ash index 3)
1292 base))
1294 (defun get-sib-field (field sib)
1295 (ccase field
1296 (:scale (ash sib -6))
1297 (:index (logand (ash sib -3) #X7))
1298 (:base (logand sib #X7))))
1302 (defun make-instruction ()
1303 "(make-instruction - create a new assoc list to
1304 represent an empty instruction."
1305 (let ((instruction (gensym "INSTRUCTION")))
1306 (setf (get instruction :prefix) NIL)
1307 (setf (get instruction :opcodes) NIL)
1308 (setf (get instruction :|mod-r/m|) NIL)
1309 (setf (get instruction :|sib|) NIL)
1310 (setf (get instruction :displacement) NIL)
1311 (setf (get instruction :immediate-data) NIL)
1312 (setf (get instruction :immediate-symbol) NIL)
1313 (setf (get instruction :displacement-symbol) NIL)
1314 instruction))
1316 (defun flatten-instruction (instruction)
1317 (append
1318 (get instruction :prefix)
1319 (get instruction :opcodes)
1320 (if (not (null (get instruction :|mod-r/m|)))
1321 (list (get instruction :|mod-r/m|)))
1322 (if (not (null (get instruction :|sib|)))
1323 (list (get instruction :|sib|)))
1324 (get instruction :displacement)
1325 (get instruction :immediate-data)))
1327 (defun print-instruction (prefix instruction)
1328 (format *debug-io* "Instruction ~A ~A ~&"
1329 prefix
1330 (list (get instruction :prefix)
1331 (get instruction :opcodes)
1332 (get instruction :|mod-r/m|)
1333 (get instruction :|sib|)
1334 (get instruction :displacement)
1335 (get instruction :immediate-data)
1336 (get instruction :immediate-symbol)
1337 (get instruction :displacement-symbol))))