copied mono-api-diff.cs from mono-2-2 branch so new patch can be applied and history...
[mono.git] / mono / mini / cpu-amd64.md
1 # x86-class cpu description file
2 # this file is read by genmdesc to pruduce a table with all the relevant information
3 # about the cpu instructions that may be used by the regsiter allocator, the scheduler
4 # and other parts of the arch-dependent part of mini.
5 #
6 # An opcode name is followed by a colon and optional specifiers.
7 # A specifier has a name, a colon and a value. Specifiers are separated by white space.
8 # Here is a description of the specifiers valid for this file and their possible values.
9 #
10 # dest:register       describes the destination register of an instruction
11 # src1:register       describes the first source register of an instruction
12 # src2:register       describes the second source register of an instruction
13 #
14 #       i  integer register
15 #       b  base register (used in address references)
16 #       f  floating point register
17 #       a  EAX register
18 #   d  EDX register
19 #       l  long reg (forced eax:edx)
20 #   s  ECX register
21 #   c  register which can be used as a byte register (RAX..RDX)
22 #
23 # len:number         describe the maximun length in bytes of the instruction
24 #                    number is a positive integer.  If the length is not specified
25 #                    it defaults to zero.   But lengths are only checked if the given opcode 
26 #                    is encountered during compilation. Some opcodes, like CONV_U4 are 
27 #                    transformed into other opcodes in the brg files, so they do not show up 
28 #                    during code generation.
29 #
30 # cost:number        describe how many cycles are needed to complete the instruction (unused)
31 #
32 # clob:spec          describe if the instruction clobbers registers or has special needs
33 #
34 #       c  clobbers caller-save registers
35 #       1  clobbers the first source register
36 #       a  EAX is clobbered
37 #   d  EDX is clobbered
38 #       x  both the source operands are clobbered (xchg)
39 #   m  sets an XMM reg
40 #
41 # flags:spec        describe if the instruction uses or sets the flags (unused)
42 #
43 #       s  sets the flags
44 #       u  uses the flags
45 #       m  uses and modifies the flags
46 #
47 # res:spec          describe what units are used in the processor (unused)
48 #
49 # delay:            describe delay slots (unused)
50 #
51 # the required specifiers are: len, clob (if registers are clobbered), the registers
52 # specifiers if the registers are actually used, flags (when scheduling is implemented).
53 #
54 # See the code in mini-x86.c for more details on how the specifiers are used.
55 #
56 break: len:2
57 jmp: len:120
58 tailcall: len:120 clob:c
59 br: len:6
60 label: len:0
61 seq_point: len:25
62
63 long_add: dest:i src1:i src2:i len:3 clob:1
64 long_sub: dest:i src1:i src2:i len:3 clob:1
65 long_mul: dest:i src1:i src2:i len:4 clob:1
66 long_div: dest:a src1:a src2:i len:16 clob:d
67 long_div_un: dest:a src1:a src2:i len:16 clob:d
68 long_rem: dest:d src1:a src2:i len:16 clob:a
69 long_rem_un: dest:d src1:a src2:i len:16 clob:a
70 long_and: dest:i src1:i src2:i len:3 clob:1
71 long_or: dest:i src1:i src2:i len:3 clob:1
72 long_xor: dest:i src1:i src2:i len:3 clob:1
73 long_shl: dest:i src1:i src2:s clob:1 len:3
74 long_shr: dest:i src1:i src2:s clob:1 len:3
75 long_shr_un: dest:i src1:i src2:s clob:1 len:3
76 long_neg: dest:i src1:i len:3 clob:1
77 long_not: dest:i src1:i len:3 clob:1
78 long_conv_to_i1: dest:i src1:i len:4
79 long_conv_to_i2: dest:i src1:i len:4
80 long_conv_to_i4: dest:i src1:i len:3
81 long_conv_to_i8: dest:i src1:i len:3
82 long_conv_to_r4: dest:f src1:i len:9
83 long_conv_to_r8: dest:f src1:i len:9
84 long_conv_to_u4: dest:i src1:i len:3
85 long_conv_to_u8: dest:i src1:i len:3
86 long_conv_to_r_un: dest:f src1:i len:64
87 long_conv_to_ovf_i4_un: dest:i src1:i len:16
88 long_conv_to_ovf_u4: dest:i src1:i len:15
89 long_conv_to_u2: dest:i src1:i len:4
90 long_conv_to_u1: dest:i src1:i len:4
91 zext_i4: dest:i src1:i len:4
92
93 long_mul_imm: dest:i src1:i clob:1 len:12
94 long_min: dest:i src1:i src2:i len:16 clob:1
95 long_min_un: dest:i src1:i src2:i len:16 clob:1
96 long_max: dest:i src1:i src2:i len:16 clob:1
97 long_max_un: dest:i src1:i src2:i len:16 clob:1
98
99 throw: src1:i len:18
100 rethrow: src1:i len:18
101 start_handler: len:16
102 endfinally: len:9
103 endfilter: src1:a len:9
104 ckfinite: dest:f src1:f len:43
105 ceq: dest:c len:8
106 cgt: dest:c len:8
107 cgt.un: dest:c len:8
108 clt: dest:c len:8
109 clt.un: dest:c len:8
110 localloc: dest:i src1:i len:84
111 compare: src1:i src2:i len:3
112 lcompare: src1:i src2:i len:3
113 icompare: src1:i src2:i len:3
114 compare_imm: src1:i len:13
115 icompare_imm: src1:i len:8
116 fcompare: src1:f src2:f clob:a len:13
117 oparglist: src1:b len:11
118 checkthis: src1:b len:5
119 call: dest:a clob:c len:32
120 voidcall: clob:c len:32
121 voidcall_reg: src1:i clob:c len:32
122 voidcall_membase: src1:b clob:c len:32
123 fcall: dest:f len:64 clob:c
124 fcall_reg: dest:f src1:i len:64 clob:c
125 fcall_membase: dest:f src1:b len:64 clob:c
126 lcall: dest:a len:64 clob:c
127 lcall_reg: dest:a src1:i len:64 clob:c
128 lcall_membase: dest:a src1:b len:64 clob:c
129 vcall: len:64 clob:c
130 vcall_reg: src1:i len:64 clob:c
131 vcall_membase: src1:b len:64 clob:c
132 call_reg: dest:a src1:i len:32 clob:c
133 call_membase: dest:a src1:b len:32 clob:c
134 iconst: dest:i len:10
135 i8const: dest:i len:10
136 r4const: dest:f len:14
137 r8const: dest:f len:9
138 store_membase_imm: dest:b len:15
139 store_membase_reg: dest:b src1:i len:9
140 storei8_membase_reg: dest:b src1:i len:9
141 storei1_membase_imm: dest:b len:11
142 storei1_membase_reg: dest:b src1:c len:9
143 storei2_membase_imm: dest:b len:13
144 storei2_membase_reg: dest:b src1:i len:9
145 storei4_membase_imm: dest:b len:13
146 storei4_membase_reg: dest:b src1:i len:9
147 storei8_membase_imm: dest:b len:18
148 storer4_membase_reg: dest:b src1:f len:15
149 storer8_membase_reg: dest:b src1:f len:10
150 load_membase: dest:i src1:b len:8
151 loadi1_membase: dest:c src1:b len:9
152 loadu1_membase: dest:c src1:b len:9
153 loadi2_membase: dest:i src1:b len:9
154 loadu2_membase: dest:i src1:b len:9
155 loadi4_membase: dest:i src1:b len:9
156 loadu4_membase: dest:i src1:b len:9
157 loadi8_membase: dest:i src1:b len:18
158 loadr4_membase: dest:f src1:b len:16
159 loadr8_membase: dest:f src1:b len:16
160 loadu4_mem: dest:i len:10
161 amd64_loadi8_memindex: dest:i src1:i src2:i len:10
162 move: dest:i src1:i len:3
163 add_imm: dest:i src1:i len:8 clob:1
164 sub_imm: dest:i src1:i len:8 clob:1
165 mul_imm: dest:i src1:i len:11
166 and_imm: dest:i src1:i len:8 clob:1
167 or_imm: dest:i src1:i len:8 clob:1
168 xor_imm: dest:i src1:i len:8 clob:1
169 shl_imm: dest:i src1:i len:8 clob:1
170 shr_imm: dest:i src1:i len:8 clob:1
171 shr_un_imm: dest:i src1:i len:8 clob:1
172 cond_exc_eq: len:8
173 cond_exc_ne_un: len:8
174 cond_exc_lt: len:8
175 cond_exc_lt_un: len:8
176 cond_exc_gt: len:8
177 cond_exc_gt_un: len:8
178 cond_exc_ge: len:8
179 cond_exc_ge_un: len:8
180 cond_exc_le: len:8
181 cond_exc_le_un: len:8
182 cond_exc_ov: len:8
183 cond_exc_no: len:8
184 cond_exc_c: len:8
185 cond_exc_nc: len:8
186 cond_exc_iov: len:8
187 cond_exc_ic: len:8
188
189 long_mul_ovf: dest:i src1:i src2:i clob:1 len:16
190 long_mul_ovf_un: dest:i src1:i src2:i len:22
191 long_shr_imm: dest:i src1:i clob:1 len:11
192 long_shr_un_imm: dest:i src1:i clob:1 len:11
193 long_shl_imm: dest:i src1:i clob:1 len:11
194
195 long_beq: len:8
196 long_bge: len:8
197 long_bgt: len:8
198 long_ble: len:8
199 long_blt: len:8
200 long_bne_un: len:8
201 long_bge_un: len:8
202 long_bgt_un: len:8
203 long_ble_un: len:8
204 long_blt_un: len:8
205
206 float_beq: len:13
207 float_bne_un: len:18
208 float_blt: len:13
209 float_blt_un: len:30
210 float_bgt: len:13
211 float_bgt_un: len:30
212 float_bge: len:32
213 float_bge_un: len:13
214 float_ble: len:32
215 float_ble_un: len:13
216 float_add: dest:f src1:f src2:f clob:1 len:5
217 float_sub: dest:f src1:f src2:f clob:1 len:5
218 float_mul: dest:f src1:f src2:f clob:1 len:5
219 float_div: dest:f src1:f src2:f clob:1 len:5
220 float_div_un: dest:f src1:f src2:f clob:1 len:5
221 float_rem: dest:f src1:f src2:f clob:1 len:19
222 float_rem_un: dest:f src1:f src2:f clob:1 len:19
223 float_neg: dest:f src1:f clob:1 len:23
224 float_not: dest:f src1:f clob:1 len:3
225 float_conv_to_i1: dest:i src1:f len:49
226 float_conv_to_i2: dest:i src1:f len:49
227 float_conv_to_i4: dest:i src1:f len:49
228 float_conv_to_i8: dest:i src1:f len:49
229 float_conv_to_u4: dest:i src1:f len:49
230 float_conv_to_u8: dest:i src1:f len:49
231 float_conv_to_u2: dest:i src1:f len:49
232 float_conv_to_u1: dest:i src1:f len:49
233 float_conv_to_i: dest:i src1:f len:49
234 float_conv_to_ovf_i: dest:a src1:f len:40
235 float_conv_to_ovd_u: dest:a src1:f len:40
236 float_mul_ovf: 
237 float_ceq: dest:i src1:f src2:f len:35
238 float_cgt: dest:i src1:f src2:f len:35
239 float_cgt_un: dest:i src1:f src2:f len:48
240 float_clt: dest:i src1:f src2:f len:35
241 float_clt_un: dest:i src1:f src2:f len:42
242 float_ceq_membase: dest:i src1:f src2:b len:35
243 float_cgt_membase: dest:i src1:f src2:b len:35
244 float_cgt_un_membase: dest:i src1:f src2:b len:48
245 float_clt_membase: dest:i src1:f src2:b len:35
246 float_clt_un_membase: dest:i src1:f src2:b len:42
247 float_conv_to_u: dest:i src1:f len:46
248 fmove: dest:f src1:f len:8
249 call_handler: len:14 clob:c
250 aot_const: dest:i len:10
251 x86_test_null: src1:i len:5
252 x86_compare_membase_reg: src1:b src2:i len:9
253 x86_compare_membase_imm: src1:b len:13
254 x86_compare_reg_membase: src1:i src2:b len:8
255 x86_inc_reg: dest:i src1:i clob:1 len:3
256 x86_inc_membase: src1:b len:8
257 x86_dec_reg: dest:i src1:i clob:1 len:3
258 x86_dec_membase: src1:b len:8
259 x86_add_membase_imm: src1:b len:13
260 x86_sub_membase_imm: src1:b len:13
261 x86_push: src1:i len:3
262 x86_push_imm: len:6
263 x86_push_membase: src1:b len:8
264 x86_push_obj: src1:b len:40
265 x86_lea: dest:i src1:i src2:i len:8
266 x86_lea_membase: dest:i src1:i len:11
267 x86_xchg: src1:i src2:i clob:x len:2
268 x86_fpop: src1:f len:3
269 x86_seteq_membase: src1:b len:9
270
271 x86_add_reg_membase: dest:i src1:i src2:b clob:1 len:13
272 x86_sub_reg_membase: dest:i src1:i src2:b clob:1 len:13
273 x86_mul_reg_membase: dest:i src1:i src2:b clob:1 len:13
274 x86_and_reg_membase: dest:i src1:i src2:b clob:1 len:13
275 x86_or_reg_membase: dest:i src1:i src2:b clob:1 len:13
276 x86_xor_reg_membase: dest:i src1:i src2:b clob:1 len:13
277
278 amd64_test_null: src1:i len:5
279 amd64_icompare_membase_reg: src1:b src2:i len:8
280 amd64_icompare_membase_imm: src1:b len:13
281 amd64_icompare_reg_membase: src1:i src2:b len:8
282 amd64_set_xmmreg_r4: dest:f src1:f len:14 clob:m
283 amd64_set_xmmreg_r8: dest:f src1:f len:14 clob:m
284 amd64_save_sp_to_lmf: len:16
285 tls_get: dest:i len:16
286 atomic_add_i4: src1:b src2:i dest:i len:32
287 atomic_add_new_i4: src1:b src2:i dest:i len:32
288 atomic_exchange_i4: src1:b src2:i dest:a len:32
289 atomic_add_i8: src1:b src2:i dest:i len:32
290 atomic_add_new_i8: src1:b src2:i dest:i len:32
291 atomic_exchange_i8: src1:b src2:i dest:a len:32
292 atomic_cas_i4: src1:b src2:i src3:a dest:i len:24
293 atomic_cas_i8: src1:b src2:i src3:a dest:i len:24
294 memory_barrier: len:16
295 adc: dest:i src1:i src2:i len:3 clob:1
296 addcc: dest:i src1:i src2:i len:3 clob:1
297 subcc: dest:i src1:i src2:i len:3 clob:1
298 adc_imm: dest:i src1:i len:8 clob:1
299 sbb: dest:i src1:i src2:i len:3 clob:1
300 sbb_imm: dest:i src1:i len:8 clob:1
301 br_reg: src1:i len:3
302 sin: dest:f src1:f len:32
303 cos: dest:f src1:f len:32
304 abs: dest:f src1:f clob:1 len:32
305 tan: dest:f src1:f len:59
306 atan: dest:f src1:f len:9
307 sqrt: dest:f src1:f len:32
308 sext_i1: dest:i src1:i len:4
309 sext_i2: dest:i src1:i len:4
310 sext_i4: dest:i src1:i len:8
311
312 # 32 bit opcodes
313 int_add: dest:i src1:i src2:i clob:1 len:4
314 int_sub: dest:i src1:i src2:i clob:1 len:4
315 int_mul: dest:i src1:i src2:i clob:1 len:4
316 int_mul_ovf: dest:i src1:i src2:i clob:1 len:32
317 int_mul_ovf_un: dest:i src1:i src2:i clob:1 len:32
318 int_div: dest:a src1:a src2:i clob:d len:32
319 int_div_un: dest:a src1:a src2:i clob:d len:32
320 int_rem: dest:d src1:a src2:i clob:a len:32
321 int_rem_un: dest:d src1:a src2:i clob:a len:32
322 int_and: dest:i src1:i src2:i clob:1 len:4
323 int_or: dest:i src1:i src2:i clob:1 len:4
324 int_xor: dest:i src1:i src2:i clob:1 len:4
325 int_shl: dest:i src1:i src2:s clob:1 len:4
326 int_shr: dest:i src1:i src2:s clob:1 len:4
327 int_shr_un: dest:i src1:i src2:s clob:1 len:4
328 int_adc: dest:i src1:i src2:i clob:1 len:4
329 int_adc_imm: dest:i src1:i clob:1 len:8
330 int_sbb: dest:i src1:i src2:i clob:1 len:4
331 int_sbb_imm: dest:i src1:i clob:1 len:8
332 int_addcc: dest:i src1:i src2:i clob:1 len:16
333 int_subcc: dest:i src1:i src2:i clob:1 len:16
334 int_add_imm: dest:i src1:i clob:1 len:8
335 int_sub_imm: dest:i src1:i clob:1 len:8
336 int_mul_imm: dest:i src1:i clob:1 len:32
337 int_div_imm: dest:a src1:i clob:d len:32
338 int_div_un_imm: dest:a src1:i clob:d len:32
339 int_rem_imm: dest:a src1:a len:32 clob:d
340 int_rem_un_imm: dest:d src1:i clob:a len:32
341 int_and_imm: dest:i src1:i clob:1 len:8
342 int_or_imm: dest:i src1:i clob:1 len:8
343 int_xor_imm: dest:i src1:i clob:1 len:8
344 int_shl_imm: dest:i src1:i clob:1 len:8
345 int_shr_imm: dest:i src1:i clob:1 len:8
346 int_shr_un_imm: dest:i src1:i clob:1 len:8
347 int_min: dest:i src1:i src2:i len:16 clob:1
348 int_max: dest:i src1:i src2:i len:16 clob:1
349 int_min_un: dest:i src1:i src2:i len:16 clob:1
350 int_max_un: dest:i src1:i src2:i len:16 clob:1
351
352 int_neg: dest:i src1:i clob:1 len:4
353 int_not: dest:i src1:i clob:1 len:4
354 int_conv_to_r4: dest:f src1:i len:9
355 int_conv_to_r8: dest:f src1:i len:9
356 int_ceq: dest:c len:8
357 int_cgt: dest:c len:8
358 int_cgt_un: dest:c len:8
359 int_clt: dest:c len:8
360 int_clt_un: dest:c len:8
361 int_beq: len:8
362 int_bne_un: len:8
363 int_blt: len:8
364 int_blt_un: len:8
365 int_bgt: len:8
366 int_bgt_un: len:8
367 int_bge: len:8
368 int_bge_un: len:8
369 int_ble: len:8
370 int_ble_un: len:8
371
372 relaxed_nop: len:2
373 hard_nop: len:1
374
375 # Linear IR opcodes
376 nop: len:0
377 dummy_use: src1:i len:0
378 dummy_store: len:0
379 not_reached: len:0
380 not_null: src1:i len:0
381
382 long_ceq: dest:c len:64
383 long_cgt: dest:c len:64
384 long_cgt_un: dest:c len:64
385 long_clt: dest:c len:64
386 long_clt_un: dest:c len:64
387
388 int_conv_to_i1: dest:i src1:i len:4
389 int_conv_to_i2: dest:i src1:i len:4
390 int_conv_to_i4: dest:i src1:i len:3
391 int_conv_to_i8: dest:i src1:i len:3
392 int_conv_to_u4: dest:i src1:i len:3
393 int_conv_to_u8: dest:i src1:i len:3
394
395 int_conv_to_u: dest:i src1:i len:4
396 int_conv_to_u2: dest:i src1:i len:4
397 int_conv_to_u1: dest:i src1:i len:4
398 int_conv_to_i: dest:i src1:i len:4
399
400 cond_exc_ieq: len:8
401 cond_exc_ine_un: len:8
402 cond_exc_ilt: len:8
403 cond_exc_ilt_un: len:8
404 cond_exc_igt: len:8
405 cond_exc_igt_un: len:8
406 cond_exc_ige: len:8
407 cond_exc_ige_un: len:8
408 cond_exc_ile: len:8
409 cond_exc_ile_un: len:8
410 cond_exc_ino: len:8
411 cond_exc_inc: len:8
412
413 x86_compare_membase8_imm: src1:b len:9
414
415 jump_table: dest:i len:18
416
417 cmov_ieq: dest:i src1:i src2:i len:16 clob:1
418 cmov_ige: dest:i src1:i src2:i len:16 clob:1
419 cmov_igt: dest:i src1:i src2:i len:16 clob:1
420 cmov_ile: dest:i src1:i src2:i len:16 clob:1
421 cmov_ilt: dest:i src1:i src2:i len:16 clob:1
422 cmov_ine_un: dest:i src1:i src2:i len:16 clob:1
423 cmov_ige_un: dest:i src1:i src2:i len:16 clob:1
424 cmov_igt_un: dest:i src1:i src2:i len:16 clob:1
425 cmov_ile_un: dest:i src1:i src2:i len:16 clob:1
426 cmov_ilt_un: dest:i src1:i src2:i len:16 clob:1
427
428 cmov_leq: dest:i src1:i src2:i len:16 clob:1
429 cmov_lge: dest:i src1:i src2:i len:16 clob:1
430 cmov_lgt: dest:i src1:i src2:i len:16 clob:1
431 cmov_lle: dest:i src1:i src2:i len:16 clob:1
432 cmov_llt: dest:i src1:i src2:i len:16 clob:1
433 cmov_lne_un: dest:i src1:i src2:i len:16 clob:1
434 cmov_lge_un: dest:i src1:i src2:i len:16 clob:1
435 cmov_lgt_un: dest:i src1:i src2:i len:16 clob:1
436 cmov_lle_un: dest:i src1:i src2:i len:16 clob:1
437 cmov_llt_un: dest:i src1:i src2:i len:16 clob:1
438
439 long_add_imm: dest:i src1:i clob:1 len:12
440 long_sub_imm: dest:i src1:i clob:1 len:12
441 long_and_imm: dest:i src1:i clob:1 len:12
442 long_or_imm: dest:i src1:i clob:1 len:12
443 long_xor_imm: dest:i src1:i clob:1 len:12
444
445 lcompare_imm: src1:i len:13
446
447 amd64_compare_membase_reg: src1:b src2:i len:9
448 amd64_compare_membase_imm: src1:b len:14
449 amd64_compare_reg_membase: src1:i src2:b len:9
450
451 amd64_add_reg_membase: dest:i src1:i src2:b clob:1 len:14
452 amd64_sub_reg_membase: dest:i src1:i src2:b clob:1 len:14
453 amd64_and_reg_membase: dest:i src1:i src2:b clob:1 len:14
454 amd64_or_reg_membase: dest:i src1:i src2:b clob:1 len:14
455 amd64_xor_reg_membase: dest:i src1:i src2:b clob:1 len:14
456
457 amd64_add_membase_imm: src1:b len:16
458 amd64_sub_membase_imm: src1:b len:16
459 amd64_and_membase_imm: src1:b len:13
460 amd64_or_membase_imm: src1:b len:13
461 amd64_xor_membase_imm: src1:b len:13
462
463 x86_and_membase_imm: src1:b len:12
464 x86_or_membase_imm: src1:b len:12
465 x86_xor_membase_imm: src1:b len:12
466
467 x86_add_membase_reg: src1:b src2:i len:12
468 x86_sub_membase_reg: src1:b src2:i len:12
469 x86_and_membase_reg: src1:b src2:i len:12
470 x86_or_membase_reg: src1:b src2:i len:12
471 x86_xor_membase_reg: src1:b src2:i len:12
472 x86_mul_membase_reg: src1:b src2:i len:14
473
474 amd64_add_membase_reg: src1:b src2:i len:13
475 amd64_sub_membase_reg: src1:b src2:i len:13
476 amd64_and_membase_reg: src1:b src2:i len:13
477 amd64_or_membase_reg: src1:b src2:i len:13
478 amd64_xor_membase_reg: src1:b src2:i len:13
479 amd64_mul_membase_reg: src1:b src2:i len:15
480
481 float_conv_to_r4: dest:f src1:f
482
483 vcall2: len:64 clob:c
484 vcall2_reg: src1:i len:64 clob:c
485 vcall2_membase: src1:b len:64 clob:c
486
487 dyn_call: src1:i src2:i len:64 clob:c
488
489 localloc_imm: dest:i len:84
490
491 load_mem: dest:i len:16
492 loadi8_mem: dest:i len:16
493 loadi4_mem: dest:i len:16
494 loadu1_mem: dest:i len:16
495 loadu2_mem: dest:i len:16
496
497
498 #SIMD
499
500 addps: dest:x src1:x src2:x len:4 clob:1
501 divps: dest:x src1:x src2:x len:4 clob:1
502 mulps: dest:x src1:x src2:x len:4 clob:1
503 subps: dest:x src1:x src2:x len:4 clob:1
504 maxps: dest:x src1:x src2:x len:4 clob:1
505 minps: dest:x src1:x src2:x len:4 clob:1
506 compps: dest:x src1:x src2:x len:5 clob:1
507 andps: dest:x src1:x src2:x len:4 clob:1
508 andnps: dest:x src1:x src2:x len:4 clob:1
509 orps: dest:x src1:x src2:x len:4 clob:1
510 xorps: dest:x src1:x src2:x len:4 clob:1
511
512 haddps: dest:x src1:x src2:x len:5 clob:1
513 hsubps: dest:x src1:x src2:x len:5 clob:1
514 addsubps: dest:x src1:x src2:x len:5 clob:1
515 dupps_low: dest:x src1:x len:5
516 dupps_high: dest:x src1:x len:5
517
518 addpd: dest:x src1:x src2:x len:5 clob:1
519 divpd: dest:x src1:x src2:x len:5 clob:1
520 mulpd: dest:x src1:x src2:x len:5 clob:1
521 subpd: dest:x src1:x src2:x len:5 clob:1
522 maxpd: dest:x src1:x src2:x len:5 clob:1
523 minpd: dest:x src1:x src2:x len:5 clob:1
524 comppd: dest:x src1:x src2:x len:6 clob:1
525 andpd: dest:x src1:x src2:x len:5 clob:1
526 andnpd: dest:x src1:x src2:x len:5 clob:1
527 orpd: dest:x src1:x src2:x len:5 clob:1
528 xorpd: dest:x src1:x src2:x len:5 clob:1
529 sqrtpd: dest:x src1:x len:5 clob:1
530
531 haddpd: dest:x src1:x src2:x len:6 clob:1
532 hsubpd: dest:x src1:x src2:x len:6 clob:1
533 addsubpd: dest:x src1:x src2:x len:6 clob:1
534 duppd: dest:x src1:x len:6
535
536 pand: dest:x src1:x src2:x len:5 clob:1
537 por: dest:x src1:x src2:x len:5 clob:1
538 pxor: dest:x src1:x src2:x len:5 clob:1
539
540 sqrtps: dest:x src1:x len:5
541 rsqrtps: dest:x src1:x len:5
542 rcpps: dest:x src1:x len:5
543
544 pshufflew_high: dest:x src1:x len:6
545 pshufflew_low: dest:x src1:x len:6
546 pshuffled: dest:x src1:x len:6
547
548 extract_mask: dest:i src1:x len:6
549
550 paddb: dest:x src1:x src2:x len:5 clob:1
551 paddw: dest:x src1:x src2:x len:5 clob:1
552 paddd: dest:x src1:x src2:x len:5 clob:1
553 paddq: dest:x src1:x src2:x len:5 clob:1
554
555 psubb: dest:x src1:x src2:x len:5 clob:1
556 psubw: dest:x src1:x src2:x len:5 clob:1
557 psubd: dest:x src1:x src2:x len:5 clob:1
558 psubq: dest:x src1:x src2:x len:5 clob:1
559
560 pmaxb_un: dest:x src1:x src2:x len:5 clob:1
561 pmaxw_un: dest:x src1:x src2:x len:6 clob:1
562 pmaxd_un: dest:x src1:x src2:x len:6 clob:1
563
564 pmaxb: dest:x src1:x src2:x len:6 clob:1
565 pmaxw: dest:x src1:x src2:x len:5 clob:1
566 pmaxd: dest:x src1:x src2:x len:6 clob:1
567
568 pavgb_un: dest:x src1:x src2:x len:5 clob:1
569 pavgw_un: dest:x src1:x src2:x len:5 clob:1
570
571 pminb_un: dest:x src1:x src2:x len:5 clob:1
572 pminw_un: dest:x src1:x src2:x len:6 clob:1
573 pmind_un: dest:x src1:x src2:x len:6 clob:1
574
575 pminb: dest:x src1:x src2:x len:6 clob:1
576 pminw: dest:x src1:x src2:x len:5 clob:1
577 pmind: dest:x src1:x src2:x len:6 clob:1
578
579 pcmpeqb: dest:x src1:x src2:x len:5 clob:1
580 pcmpeqw: dest:x src1:x src2:x len:5 clob:1
581 pcmpeqd: dest:x src1:x src2:x len:5 clob:1
582 pcmpeqq: dest:x src1:x src2:x len:6 clob:1
583
584 pcmpgtb: dest:x src1:x src2:x len:5 clob:1
585 pcmpgtw: dest:x src1:x src2:x len:5 clob:1
586 pcmpgtd: dest:x src1:x src2:x len:5 clob:1
587 pcmpgtq: dest:x src1:x src2:x len:6 clob:1
588
589 psumabsdiff: dest:x src1:x src2:x len:5 clob:1
590
591 unpack_lowb: dest:x src1:x src2:x len:5 clob:1
592 unpack_loww: dest:x src1:x src2:x len:5 clob:1
593 unpack_lowd: dest:x src1:x src2:x len:5 clob:1
594 unpack_lowq: dest:x src1:x src2:x len:5 clob:1
595 unpack_lowps: dest:x src1:x src2:x len:5 clob:1
596 unpack_lowpd: dest:x src1:x src2:x len:5 clob:1
597
598 unpack_highb: dest:x src1:x src2:x len:5 clob:1
599 unpack_highw: dest:x src1:x src2:x len:5 clob:1
600 unpack_highd: dest:x src1:x src2:x len:5 clob:1
601 unpack_highq: dest:x src1:x src2:x len:5 clob:1
602 unpack_highps: dest:x src1:x src2:x len:5 clob:1
603 unpack_highpd: dest:x src1:x src2:x len:5 clob:1
604
605 packw: dest:x src1:x src2:x len:5 clob:1 
606 packd: dest:x src1:x src2:x len:5 clob:1 
607
608 packw_un: dest:x src1:x src2:x len:5 clob:1 
609 packd_un: dest:x src1:x src2:x len:6 clob:1 
610
611 paddb_sat: dest:x src1:x src2:x len:5 clob:1
612 paddb_sat_un: dest:x src1:x src2:x len:5 clob:1
613
614 paddw_sat: dest:x src1:x src2:x len:5 clob:1
615 paddw_sat_un: dest:x src1:x src2:x len:5 clob:1
616
617 psubb_sat: dest:x src1:x src2:x len:5 clob:1
618 psubb_sat_un: dest:x src1:x src2:x len:5 clob:1
619
620 psubw_sat: dest:x src1:x src2:x len:5 clob:1
621 psubw_sat_un: dest:x src1:x src2:x len:5 clob:1
622
623 pmulw: dest:x src1:x src2:x len:5 clob:1
624 pmuld: dest:x src1:x src2:x len:6 clob:1
625 pmulq: dest:x src1:x src2:x len:5 clob:1
626
627 pmul_high_un: dest:x src1:x src2:x len:5 clob:1
628 pmul_high: dest:x src1:x src2:x len:5 clob:1
629
630 pshrw: dest:x src1:x len:6 clob:1
631 pshrw_reg: dest:x src1:x src2:x len:5 clob:1
632
633 psarw: dest:x src1:x len:6 clob:1
634 psarw_reg: dest:x src1:x src2:x len:5 clob:1
635
636 pshlw: dest:x src1:x len:6 clob:1
637 pshlw_reg: dest:x src1:x src2:x len:5 clob:1
638
639 pshrd: dest:x src1:x len:6 clob:1
640 pshrd_reg: dest:x src1:x src2:x len:5 clob:1
641
642 psard: dest:x src1:x len:6 clob:1
643 psard_reg: dest:x src1:x src2:x len:5 clob:1
644
645 pshld: dest:x src1:x len:6 clob:1
646 pshld_reg: dest:x src1:x src2:x len:5 clob:1
647
648 pshrq: dest:x src1:x len:6 clob:1
649 pshrq_reg: dest:x src1:x src2:x len:5 clob:1
650
651 pshlq: dest:x src1:x len:6 clob:1
652 pshlq_reg: dest:x src1:x src2:x len:5 clob:1
653
654 xmove: dest:x src1:x len:5
655 xzero: dest:x len:5
656
657 iconv_to_x: dest:x src1:i len:5
658 extract_i4: dest:i src1:x len:5
659
660 extract_i8: dest:i src1:x len:9
661
662 extract_i2: dest:i src1:x len:13
663 extract_u2: dest:i src1:x len:13
664 extract_i1: dest:i src1:x len:13
665 extract_u1: dest:i src1:x len:13
666 extract_r8: dest:f src1:x len:5 
667
668 iconv_to_r8_raw: dest:f src1:i len:10
669
670 insert_i2: dest:x src1:x src2:i len:6 clob:1
671
672 extractx_u2: dest:i src1:x len:6
673 insertx_u1_slow: dest:x src1:i src2:i len:18 clob:x
674
675 insertx_i4_slow: dest:x src1:x src2:i len:16 clob:x
676 insertx_i8_slow: dest:x src1:x src2:i len:13
677 insertx_r4_slow: dest:x src1:x src2:f len:24
678 insertx_r8_slow: dest:x src1:x src2:f len:24
679
680 loadx_membase: dest:x src1:b len:9
681 storex_membase: dest:b src1:x len:9
682 storex_membase_reg: dest:b src1:x len:9
683
684 loadx_aligned_membase: dest:x src1:b len:7
685 storex_aligned_membase_reg: dest:b src1:x len:7
686 storex_nta_membase_reg: dest:b src1:x len:7
687
688 fconv_to_r8_x: dest:x src1:f len:4 
689 xconv_r8_to_i4: dest:y src1:x len:7
690
691 prefetch_membase: src1:b len:4
692
693 expand_i2: dest:x src1:i len:18
694 expand_i4: dest:x src1:i len:11
695 expand_i8: dest:x src1:i len:11
696 expand_r4: dest:x src1:f len:16
697 expand_r8: dest:x src1:f len:13
698
699 liverange_start: len:0
700 liverange_end: len:0