Implement precise scanning of param area slots. Fix lots of bugs.
[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:a len:24
293 atomic_cas_i8: src1:b src2:i src3:a dest:a 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 card_table_wbarrier: src1:a src2:i clob:d len:42
373
374 relaxed_nop: len:2
375 hard_nop: len:1
376
377 # Linear IR opcodes
378 nop: len:0
379 dummy_use: src1:i len:0
380 dummy_store: len:0
381 not_reached: len:0
382 not_null: src1:i len:0
383
384 long_ceq: dest:c len:64
385 long_cgt: dest:c len:64
386 long_cgt_un: dest:c len:64
387 long_clt: dest:c len:64
388 long_clt_un: dest:c len:64
389
390 int_conv_to_i1: dest:i src1:i len:4
391 int_conv_to_i2: dest:i src1:i len:4
392 int_conv_to_i4: dest:i src1:i len:3
393 int_conv_to_i8: dest:i src1:i len:3
394 int_conv_to_u4: dest:i src1:i len:3
395 int_conv_to_u8: dest:i src1:i len:3
396
397 int_conv_to_u: dest:i src1:i len:4
398 int_conv_to_u2: dest:i src1:i len:4
399 int_conv_to_u1: dest:i src1:i len:4
400 int_conv_to_i: dest:i src1:i len:4
401
402 cond_exc_ieq: len:8
403 cond_exc_ine_un: len:8
404 cond_exc_ilt: len:8
405 cond_exc_ilt_un: len:8
406 cond_exc_igt: len:8
407 cond_exc_igt_un: len:8
408 cond_exc_ige: len:8
409 cond_exc_ige_un: len:8
410 cond_exc_ile: len:8
411 cond_exc_ile_un: len:8
412 cond_exc_ino: len:8
413 cond_exc_inc: len:8
414
415 x86_compare_membase8_imm: src1:b len:9
416
417 jump_table: dest:i len:18
418
419 cmov_ieq: dest:i src1:i src2:i len:16 clob:1
420 cmov_ige: dest:i src1:i src2:i len:16 clob:1
421 cmov_igt: dest:i src1:i src2:i len:16 clob:1
422 cmov_ile: dest:i src1:i src2:i len:16 clob:1
423 cmov_ilt: dest:i src1:i src2:i len:16 clob:1
424 cmov_ine_un: dest:i src1:i src2:i len:16 clob:1
425 cmov_ige_un: dest:i src1:i src2:i len:16 clob:1
426 cmov_igt_un: dest:i src1:i src2:i len:16 clob:1
427 cmov_ile_un: dest:i src1:i src2:i len:16 clob:1
428 cmov_ilt_un: dest:i src1:i src2:i len:16 clob:1
429
430 cmov_leq: dest:i src1:i src2:i len:16 clob:1
431 cmov_lge: dest:i src1:i src2:i len:16 clob:1
432 cmov_lgt: dest:i src1:i src2:i len:16 clob:1
433 cmov_lle: dest:i src1:i src2:i len:16 clob:1
434 cmov_llt: dest:i src1:i src2:i len:16 clob:1
435 cmov_lne_un: dest:i src1:i src2:i len:16 clob:1
436 cmov_lge_un: dest:i src1:i src2:i len:16 clob:1
437 cmov_lgt_un: dest:i src1:i src2:i len:16 clob:1
438 cmov_lle_un: dest:i src1:i src2:i len:16 clob:1
439 cmov_llt_un: dest:i src1:i src2:i len:16 clob:1
440
441 long_add_imm: dest:i src1:i clob:1 len:12
442 long_sub_imm: dest:i src1:i clob:1 len:12
443 long_and_imm: dest:i src1:i clob:1 len:12
444 long_or_imm: dest:i src1:i clob:1 len:12
445 long_xor_imm: dest:i src1:i clob:1 len:12
446
447 lcompare_imm: src1:i len:13
448
449 amd64_compare_membase_reg: src1:b src2:i len:9
450 amd64_compare_membase_imm: src1:b len:14
451 amd64_compare_reg_membase: src1:i src2:b len:9
452
453 amd64_add_reg_membase: dest:i src1:i src2:b clob:1 len:14
454 amd64_sub_reg_membase: dest:i src1:i src2:b clob:1 len:14
455 amd64_and_reg_membase: dest:i src1:i src2:b clob:1 len:14
456 amd64_or_reg_membase: dest:i src1:i src2:b clob:1 len:14
457 amd64_xor_reg_membase: dest:i src1:i src2:b clob:1 len:14
458
459 amd64_add_membase_imm: src1:b len:16
460 amd64_sub_membase_imm: src1:b len:16
461 amd64_and_membase_imm: src1:b len:13
462 amd64_or_membase_imm: src1:b len:13
463 amd64_xor_membase_imm: src1:b len:13
464
465 x86_and_membase_imm: src1:b len:12
466 x86_or_membase_imm: src1:b len:12
467 x86_xor_membase_imm: src1:b len:12
468
469 x86_add_membase_reg: src1:b src2:i len:12
470 x86_sub_membase_reg: src1:b src2:i len:12
471 x86_and_membase_reg: src1:b src2:i len:12
472 x86_or_membase_reg: src1:b src2:i len:12
473 x86_xor_membase_reg: src1:b src2:i len:12
474 x86_mul_membase_reg: src1:b src2:i len:14
475
476 amd64_add_membase_reg: src1:b src2:i len:13
477 amd64_sub_membase_reg: src1:b src2:i len:13
478 amd64_and_membase_reg: src1:b src2:i len:13
479 amd64_or_membase_reg: src1:b src2:i len:13
480 amd64_xor_membase_reg: src1:b src2:i len:13
481 amd64_mul_membase_reg: src1:b src2:i len:15
482
483 float_conv_to_r4: dest:f src1:f
484
485 vcall2: len:64 clob:c
486 vcall2_reg: src1:i len:64 clob:c
487 vcall2_membase: src1:b len:64 clob:c
488
489 dyn_call: src1:i src2:i len:64 clob:c
490
491 localloc_imm: dest:i len:84
492
493 load_mem: dest:i len:16
494 loadi8_mem: dest:i len:16
495 loadi4_mem: dest:i len:16
496 loadu1_mem: dest:i len:16
497 loadu2_mem: dest:i len:16
498
499
500 #SIMD
501
502 addps: dest:x src1:x src2:x len:4 clob:1
503 divps: dest:x src1:x src2:x len:4 clob:1
504 mulps: dest:x src1:x src2:x len:4 clob:1
505 subps: dest:x src1:x src2:x len:4 clob:1
506 maxps: dest:x src1:x src2:x len:4 clob:1
507 minps: dest:x src1:x src2:x len:4 clob:1
508 compps: dest:x src1:x src2:x len:5 clob:1
509 andps: dest:x src1:x src2:x len:4 clob:1
510 andnps: dest:x src1:x src2:x len:4 clob:1
511 orps: dest:x src1:x src2:x len:4 clob:1
512 xorps: dest:x src1:x src2:x len:4 clob:1
513
514 haddps: dest:x src1:x src2:x len:5 clob:1
515 hsubps: dest:x src1:x src2:x len:5 clob:1
516 addsubps: dest:x src1:x src2:x len:5 clob:1
517 dupps_low: dest:x src1:x len:5
518 dupps_high: dest:x src1:x len:5
519
520 addpd: dest:x src1:x src2:x len:5 clob:1
521 divpd: dest:x src1:x src2:x len:5 clob:1
522 mulpd: dest:x src1:x src2:x len:5 clob:1
523 subpd: dest:x src1:x src2:x len:5 clob:1
524 maxpd: dest:x src1:x src2:x len:5 clob:1
525 minpd: dest:x src1:x src2:x len:5 clob:1
526 comppd: dest:x src1:x src2:x len:6 clob:1
527 andpd: dest:x src1:x src2:x len:5 clob:1
528 andnpd: dest:x src1:x src2:x len:5 clob:1
529 orpd: dest:x src1:x src2:x len:5 clob:1
530 xorpd: dest:x src1:x src2:x len:5 clob:1
531 sqrtpd: dest:x src1:x len:5 clob:1
532
533 haddpd: dest:x src1:x src2:x len:6 clob:1
534 hsubpd: dest:x src1:x src2:x len:6 clob:1
535 addsubpd: dest:x src1:x src2:x len:6 clob:1
536 duppd: dest:x src1:x len:6
537
538 pand: dest:x src1:x src2:x len:5 clob:1
539 por: dest:x src1:x src2:x len:5 clob:1
540 pxor: dest:x src1:x src2:x len:5 clob:1
541
542 sqrtps: dest:x src1:x len:5
543 rsqrtps: dest:x src1:x len:5
544 rcpps: dest:x src1:x len:5
545
546 pshufflew_high: dest:x src1:x len:6
547 pshufflew_low: dest:x src1:x len:6
548 pshuffled: dest:x src1:x len:6
549
550 extract_mask: dest:i src1:x len:6
551
552 paddb: dest:x src1:x src2:x len:5 clob:1
553 paddw: dest:x src1:x src2:x len:5 clob:1
554 paddd: dest:x src1:x src2:x len:5 clob:1
555 paddq: dest:x src1:x src2:x len:5 clob:1
556
557 psubb: dest:x src1:x src2:x len:5 clob:1
558 psubw: dest:x src1:x src2:x len:5 clob:1
559 psubd: dest:x src1:x src2:x len:5 clob:1
560 psubq: dest:x src1:x src2:x len:5 clob:1
561
562 pmaxb_un: dest:x src1:x src2:x len:5 clob:1
563 pmaxw_un: dest:x src1:x src2:x len:6 clob:1
564 pmaxd_un: dest:x src1:x src2:x len:6 clob:1
565
566 pmaxb: dest:x src1:x src2:x len:6 clob:1
567 pmaxw: dest:x src1:x src2:x len:5 clob:1
568 pmaxd: dest:x src1:x src2:x len:6 clob:1
569
570 pavgb_un: dest:x src1:x src2:x len:5 clob:1
571 pavgw_un: dest:x src1:x src2:x len:5 clob:1
572
573 pminb_un: dest:x src1:x src2:x len:5 clob:1
574 pminw_un: dest:x src1:x src2:x len:6 clob:1
575 pmind_un: dest:x src1:x src2:x len:6 clob:1
576
577 pminb: dest:x src1:x src2:x len:6 clob:1
578 pminw: dest:x src1:x src2:x len:5 clob:1
579 pmind: dest:x src1:x src2:x len:6 clob:1
580
581 pcmpeqb: dest:x src1:x src2:x len:5 clob:1
582 pcmpeqw: dest:x src1:x src2:x len:5 clob:1
583 pcmpeqd: dest:x src1:x src2:x len:5 clob:1
584 pcmpeqq: dest:x src1:x src2:x len:6 clob:1
585
586 pcmpgtb: dest:x src1:x src2:x len:5 clob:1
587 pcmpgtw: dest:x src1:x src2:x len:5 clob:1
588 pcmpgtd: dest:x src1:x src2:x len:5 clob:1
589 pcmpgtq: dest:x src1:x src2:x len:6 clob:1
590
591 psumabsdiff: dest:x src1:x src2:x len:5 clob:1
592
593 unpack_lowb: dest:x src1:x src2:x len:5 clob:1
594 unpack_loww: dest:x src1:x src2:x len:5 clob:1
595 unpack_lowd: dest:x src1:x src2:x len:5 clob:1
596 unpack_lowq: dest:x src1:x src2:x len:5 clob:1
597 unpack_lowps: dest:x src1:x src2:x len:5 clob:1
598 unpack_lowpd: dest:x src1:x src2:x len:5 clob:1
599
600 unpack_highb: dest:x src1:x src2:x len:5 clob:1
601 unpack_highw: dest:x src1:x src2:x len:5 clob:1
602 unpack_highd: dest:x src1:x src2:x len:5 clob:1
603 unpack_highq: dest:x src1:x src2:x len:5 clob:1
604 unpack_highps: dest:x src1:x src2:x len:5 clob:1
605 unpack_highpd: dest:x src1:x src2:x len:5 clob:1
606
607 packw: dest:x src1:x src2:x len:5 clob:1 
608 packd: dest:x src1:x src2:x len:5 clob:1 
609
610 packw_un: dest:x src1:x src2:x len:5 clob:1 
611 packd_un: dest:x src1:x src2:x len:6 clob:1 
612
613 paddb_sat: dest:x src1:x src2:x len:5 clob:1
614 paddb_sat_un: dest:x src1:x src2:x len:5 clob:1
615
616 paddw_sat: dest:x src1:x src2:x len:5 clob:1
617 paddw_sat_un: dest:x src1:x src2:x len:5 clob:1
618
619 psubb_sat: dest:x src1:x src2:x len:5 clob:1
620 psubb_sat_un: dest:x src1:x src2:x len:5 clob:1
621
622 psubw_sat: dest:x src1:x src2:x len:5 clob:1
623 psubw_sat_un: dest:x src1:x src2:x len:5 clob:1
624
625 pmulw: dest:x src1:x src2:x len:5 clob:1
626 pmuld: dest:x src1:x src2:x len:6 clob:1
627 pmulq: dest:x src1:x src2:x len:5 clob:1
628
629 pmul_high_un: dest:x src1:x src2:x len:5 clob:1
630 pmul_high: dest:x src1:x src2:x len:5 clob:1
631
632 pshrw: dest:x src1:x len:6 clob:1
633 pshrw_reg: dest:x src1:x src2:x len:5 clob:1
634
635 psarw: dest:x src1:x len:6 clob:1
636 psarw_reg: dest:x src1:x src2:x len:5 clob:1
637
638 pshlw: dest:x src1:x len:6 clob:1
639 pshlw_reg: dest:x src1:x src2:x len:5 clob:1
640
641 pshrd: dest:x src1:x len:6 clob:1
642 pshrd_reg: dest:x src1:x src2:x len:5 clob:1
643
644 psard: dest:x src1:x len:6 clob:1
645 psard_reg: dest:x src1:x src2:x len:5 clob:1
646
647 pshld: dest:x src1:x len:6 clob:1
648 pshld_reg: dest:x src1:x src2:x len:5 clob:1
649
650 pshrq: dest:x src1:x len:6 clob:1
651 pshrq_reg: dest:x src1:x src2:x len:5 clob:1
652
653 pshlq: dest:x src1:x len:6 clob:1
654 pshlq_reg: dest:x src1:x src2:x len:5 clob:1
655
656 xmove: dest:x src1:x len:5
657 xzero: dest:x len:5
658
659 iconv_to_x: dest:x src1:i len:5
660 extract_i4: dest:i src1:x len:5
661
662 extract_i8: dest:i src1:x len:9
663
664 extract_i2: dest:i src1:x len:13
665 extract_u2: dest:i src1:x len:13
666 extract_i1: dest:i src1:x len:13
667 extract_u1: dest:i src1:x len:13
668 extract_r8: dest:f src1:x len:5 
669
670 iconv_to_r8_raw: dest:f src1:i len:10
671
672 insert_i2: dest:x src1:x src2:i len:6 clob:1
673
674 extractx_u2: dest:i src1:x len:6
675 insertx_u1_slow: dest:x src1:i src2:i len:18 clob:x
676
677 insertx_i4_slow: dest:x src1:x src2:i len:16 clob:x
678 insertx_i8_slow: dest:x src1:x src2:i len:13
679 insertx_r4_slow: dest:x src1:x src2:f len:24
680 insertx_r8_slow: dest:x src1:x src2:f len:24
681
682 loadx_membase: dest:x src1:b len:9
683 storex_membase: dest:b src1:x len:9
684 storex_membase_reg: dest:b src1:x len:9
685
686 loadx_aligned_membase: dest:x src1:b len:7
687 storex_aligned_membase_reg: dest:b src1:x len:7
688 storex_nta_membase_reg: dest:b src1:x len:7
689
690 fconv_to_r8_x: dest:x src1:f len:4 
691 xconv_r8_to_i4: dest:y src1:x len:7
692
693 prefetch_membase: src1:b len:4
694
695 expand_i2: dest:x src1:i len:18
696 expand_i4: dest:x src1:i len:11
697 expand_i8: dest:x src1:i len:11
698 expand_r4: dest:x src1:f len:16
699 expand_r8: dest:x src1:f len:13
700
701 liverange_start: len:0
702 liverange_end: len:0
703 gc_liveness_def: len:0
704 gc_liveness_use: len:0
705 gc_spill_slot_liveness_def: len:0
706 gc_param_slot_liveness_def: len:0
707