]> matita.cs.unibo.it Git - pkg-cerco/acc.git/blob - tests/clight/fir_complexe.ASM.expected
Imported Upstream version 0.2
[pkg-cerco/acc.git] / tests / clight / fir_complexe.ASM.expected
1 # extern __builtin_varargs_start: int -> void
2 # extern __builtin_va_start: int -> int -> void
3 # extern __builtin_va_end: int -> void
4 # extern __builtin_va_copy: int -> int -> void
5 # extern __builtin_va_arg: int -> int -> void
6 # extern __builtin_types_compatible_p: int -> int -> int
7 # extern __builtin_tanl: float -> float
8 # extern __builtin_tanhl: float -> float
9 # extern __builtin_tanhf: float -> float
10 # extern __builtin_tanh: float -> float
11 # extern __builtin_tanf: float -> float
12 # extern __builtin_tan: float -> float
13 # extern __builtin_strspn: int -> int -> int
14 # extern __builtin_strpbrk: int -> int -> int
15 # extern __builtin_strncpy: int -> int -> int -> int
16 # extern __builtin_strncmp: int -> int -> int -> int
17 # extern __builtin_strncat: int -> int -> int -> int
18 # extern __builtin_strcspn: int -> int -> int
19 # extern __builtin_strcpy: int -> int -> int
20 # extern __builtin_strcmp: int -> int -> int
21 # extern __builtin_strchr: int -> int -> int
22 # extern __builtin_stpcpy: int -> int -> int
23 # extern __builtin_stdarg_start: int -> void
24 # extern __builtin_sqrtl: float -> float
25 # extern __builtin_sqrtf: float -> float
26 # extern __builtin_sqrt: float -> float
27 # extern __builtin_sinl: float -> float
28 # extern __builtin_sinhl: float -> float
29 # extern __builtin_sinhf: float -> float
30 # extern __builtin_sinh: float -> float
31 # extern __builtin_sinf: float -> float
32 # extern __builtin_sin: float -> float
33 # extern __builtin_return_address: int -> int
34 # extern __builtin_return: int -> void
35 # extern __builtin_powil: float -> int -> float
36 # extern __builtin_powif: float -> int -> float
37 # extern __builtin_powi: float -> int -> float
38 # extern __builtin_popcountll: int -> int
39 # extern __builtin_popcountl: int -> int
40 # extern __builtin_popcount: int -> int
41 # extern __builtin_parityll: int -> int
42 # extern __builtin_parityl: int -> int
43 # extern __builtin_parity: int -> int
44 # extern __builtin_object_size: int -> int -> int
45 # extern __builtin_next_arg: int
46 # extern __builtin_nansl: int -> float
47 # extern __builtin_nansf: int -> float
48 # extern __builtin_nans: int -> float
49 # extern __builtin_nanl: int -> float
50 # extern __builtin_nanf: int -> float
51 # extern __builtin_nan: int -> float
52 # extern __builtin_modfl: float -> int -> float
53 # extern __builtin_modff: float -> int -> float
54 # extern __builtin_mempcpy: int -> int -> int -> int
55 # extern __builtin_memcpy: int -> int -> int -> int
56 # extern __builtin_logl: float -> float
57 # extern __builtin_logf: float -> float
58 # extern __builtin_log10l: float -> float
59 # extern __builtin_log10f: float -> float
60 # extern __builtin_log10: float -> float
61 # extern __builtin_log: float -> float
62 # extern __builtin_ldexpl: float -> int -> float
63 # extern __builtin_ldexpf: float -> int -> float
64 # extern __builtin_ldexp: float -> int -> float
65 # extern __builtin_infl: float
66 # extern __builtin_inff: float
67 # extern __builtin_inf: float
68 # extern __builtin_huge_vall: float
69 # extern __builtin_huge_valf: float
70 # extern __builtin_huge_val: float
71 # extern __builtin_frexpl: float -> int -> float
72 # extern __builtin_frexpf: float -> int -> float
73 # extern __builtin_frexp: float -> int -> float
74 # extern __builtin_frame_address: int -> int
75 # extern __builtin_fmodl: float -> float
76 # extern __builtin_fmodf: float -> float
77 # extern __builtin_fmod: float -> float
78 # extern __builtin_floorl: float -> float
79 # extern __builtin_floorf: float -> float
80 # extern __builtin_floor: float -> float
81 # extern __builtin_ffsll: int -> int
82 # extern __builtin_ffsl: int -> int
83 # extern __builtin_ffs: int -> int
84 # extern __builtin_fabsl: float -> float
85 # extern __builtin_fabsf: float -> float
86 # extern __builtin_fabs: float -> float
87 # extern __builtin_expl: float -> float
88 # extern __builtin_expf: float -> float
89 # extern __builtin_expect: int -> int -> int
90 # extern __builtin_exp: float -> float
91 # extern __builtin_ctzll: int -> int
92 # extern __builtin_ctzl: int -> int
93 # extern __builtin_ctz: int -> int
94 # extern __builtin_cosl: float -> float
95 # extern __builtin_coshl: float -> float
96 # extern __builtin_coshf: float -> float
97 # extern __builtin_cosh: float -> float
98 # extern __builtin_cosf: float -> float
99 # extern __builtin_cos: float -> float
100 # extern __builtin_constant_p: int -> int
101 # extern __builtin_clzll: int -> int
102 # extern __builtin_clzl: int -> int
103 # extern __builtin_clz: int -> int
104 # extern __builtin_ceill: float -> float
105 # extern __builtin_ceilf: float -> float
106 # extern __builtin_ceil: float -> float
107 # extern __builtin_atanl: float -> float
108 # extern __builtin_atanf: float -> float
109 # extern __builtin_atan2l: float -> float -> float
110 # extern __builtin_atan2f: float -> float -> float
111 # extern __builtin_atan2: float -> float -> float
112 # extern __builtin_atan: float -> float
113 # extern __builtin_asinl: float -> float
114 # extern __builtin_asinf: float -> float
115 # extern __builtin_asin: float -> float
116 # extern __builtin_alloca: int -> int
117 # extern __builtin_acosl: float -> float
118 # extern __builtin_acosf: float -> float
119 # extern __builtin_acos: float -> float
120 # extern __builtin___vsprintf_chk: int -> int -> int -> int -> int -> int
121 # extern __builtin___vsnprintf_chk: int -> int -> int -> int -> int -> int -> int
122 # extern __builtin___vprintf_chk: int -> int -> int -> int
123 # extern __builtin___vfprintf_chk: int -> int -> int -> int -> int
124 # extern __builtin___strncpy_chk: int -> int -> int -> int -> int
125 # extern __builtin___strncat_chk: int -> int -> int -> int -> int
126 # extern __builtin___strcpy_chk: int -> int -> int -> int
127 # extern __builtin___strcat_chk: int -> int -> int -> int
128 # extern __builtin___stpcpy_chk: int -> int -> int -> int
129 # extern __builtin___memset_chk: int -> int -> int -> int -> int
130 # extern __builtin___mempcpy_chk: int -> int -> int -> int -> int
131 # extern __builtin___memmove_chk: int -> int -> int -> int -> int
132 # extern __builtin___memcpy_chk: int -> int -> int -> int -> int
133
134 # begin preamble       
135 .data                  
136 globals:               
137 .space 384           
138 nl:                    
139 .asciiz "\n"      
140 .align 2             
141 .text                 
142 main:                 
143 la    $gp, globals    
144 j     main36              
145 print_int:            
146 li    $v0, 1          
147 syscall               
148 jr     $ra            
149 print_intln:          
150 li    $v0, 1          
151 syscall               
152 la    $a0, nl         
153 li    $v0, 4          
154 syscall               
155 jr     $ra            
156 scan_int:             
157 li    $v0, 5          
158 syscall               
159 jr     $ra            
160 alloc:                
161 li    $v0, 9          
162 syscall               
163 jr     $ra            
164
165 pow2:                 
166 li    $v0, 1          
167 sllv  $v0, $v0, $a0   
168 jr    $ra             
169
170 mod:                  
171 beqz  $a0, mod0       
172 beqz  $a1, mod0       
173 li    $t2, 0          
174 mod_t0:               
175 bgtz  $a0, mod_a0_pos 
176 neg   $t0, $a0        
177 addi  $t2, $t2, 1     
178 j     mod_t1          
179 mod_a0_pos:           
180 move  $t0, $a0        
181 mod_t1:               
182 bgtz  $a1, mod_a1_pos 
183 neg   $t1, $a1        
184 addi  $t2, $t2, 2     
185 j     mod_main        
186 mod_a1_pos:           
187 move  $t1, $a1        
188 mod_main:             
189 rem   $v0, $t0, $t1   
190 beqz  $t2, mod_exit   
191 addi  $t2, -1         
192 beqz  $t2, mod_case1  
193 addi  $t2, -1         
194 beqz  $t2, mod_case2  
195 neg   $v0, $v0        
196 j mod_exit            
197 mod_case1:            
198 sub   $v0, $a1, $v0   
199 j mod_exit            
200 mod_case2:            
201 add   $v0, $a1, $v0   
202 j mod_exit            
203 mod0:                 
204 li    $v0, 0          
205 mod_exit:             
206 jr    $ra             
207
208 toint:                
209 # $a0: size           
210 # $a1: int to convert 
211 addi  $sp, $sp, -4    
212 sw    $ra, 0($sp)     
213 jal   pow2            
214 move  $a0, $a1        
215 move  $a1, $v0        
216 jal   mod             
217 lw    $ra, 0($sp)     
218 addi  $sp, $sp, 4     
219 jr    $ra             
220
221 toint8:               
222 addi  $sp, $sp, -4    
223 sw    $ra, 0($sp)     
224 move  $a1, $a0        
225 li    $a0, 8          
226 jal   toint           
227 lw    $ra, 0($sp)     
228 addi  $sp, $sp, 4     
229 jr    $ra             
230
231 toint16:              
232 addi  $sp, $sp, -4    
233 sw    $ra, 0($sp)     
234 move  $a1, $a0        
235 li    $a0, 16         
236 jal   toint           
237 lw    $ra, 0($sp)     
238 addi  $sp, $sp, 4     
239 jr    $ra             
240
241 sign_ext:             
242 # $a0: size           
243 # $a1: int to extend  
244 li    $v0, 32         
245 sub   $a0, $v0, $a0   
246 sllv  $v0, $a1, $a0   
247 srav  $v0, $v0, $a0   
248 jr    $ra             
249
250 ofint:                
251 # $a0: signedness     
252 # $a1: size           
253 # $a2: int to convert 
254 addi  $sp, $sp, -4    
255 sw    $ra, 0($sp)     
256 beqz  $a0, ofint_unsigned 
257 move  $a0, $a1        
258 move  $a1, $a2        
259 jal   sign_ext        
260 j     ofint_exit      
261 ofint_unsigned:       
262 move  $v0, $a2        
263 ofint_exit:           
264 lw    $ra, 0($sp)     
265 addi  $sp, $sp, 4     
266 jr    $ra             
267
268 ofint8:               
269 addi  $sp, $sp, -4    
270 sw    $ra, 0($sp)     
271 move  $a2, $a0        
272 li    $a1, 8          
273 li    $a0, 1          
274 jal   ofint           
275 lw    $ra, 0($sp)     
276 addi  $sp, $sp, 4     
277 jr    $ra             
278
279 ofuint8:              
280 addi  $sp, $sp, -4    
281 sw    $ra, 0($sp)     
282 move  $a2, $a0        
283 li    $a1, 8          
284 li    $a0, 0          
285 jal   ofint           
286 lw    $ra, 0($sp)     
287 addi  $sp, $sp, 4     
288 jr    $ra             
289
290 ofint16:              
291 addi  $sp, $sp, -4    
292 sw    $ra, 0($sp)     
293 move  $a2, $a0        
294 li    $a1, 16         
295 li    $a0, 1          
296 jal   ofint           
297 lw    $ra, 0($sp)     
298 addi  $sp, $sp, 4     
299 jr    $ra             
300
301 ofuint16:             
302 addi  $sp, $sp, -4    
303 sw    $ra, 0($sp)     
304 move  $a2, $a0        
305 li    $a1, 16         
306 li    $a0, 0          
307 jal   ofint           
308 lw    $ra, 0($sp)     
309 addi  $sp, $sp, 4     
310 jr    $ra             
311 # end preamble        
312
313
314 # begin init
315 init97:
316 c9:
317 c8:
318 li      $a2, 0
319 init40:
320 li      $a0, 0
321 c7:
322 li      $v0, 16
323 slt     $v0, $a2, $v0
324 seq     $v0, $v0, $zero
325 beq     $v0, $a0, init34
326 jr      $ra
327 init34:
328 c5:
329 li      $a1, 2
330 li      $v0, 4
331 mulo    $a0, $a2, $v0
332 move    $v0, $gp
333 add     $v0, $v0, $a0
334 sw      $a1, 0($v0)
335 c4:
336 li      $a1, 2
337 li      $v0, 4
338 mulo    $a0, $a2, $v0
339 move    $v0, $gp
340 add     $v0, $v0, $a0
341 sw      $a1, 64($v0)
342 c3:
343 li      $a1, 2
344 li      $v0, 4
345 mulo    $a0, $a2, $v0
346 move    $v0, $gp
347 add     $v0, $v0, $a0
348 sw      $a1, 128($v0)
349 c2:
350 li      $a1, 2
351 li      $v0, 4
352 mulo    $a0, $a2, $v0
353 move    $v0, $gp
354 add     $v0, $v0, $a0
355 sw      $a1, 192($v0)
356 c1:
357 li      $a1, 2
358 li      $v0, 4
359 mulo    $a0, $a2, $v0
360 move    $v0, $gp
361 add     $v0, $v0, $a0
362 sw      $a1, 256($v0)
363 c0:
364 li      $a1, 2
365 li      $v0, 4
366 mulo    $a0, $a2, $v0
367 move    $v0, $gp
368 add     $v0, $v0, $a0
369 sw      $a1, 320($v0)
370 c6:
371 li      $v0, 1
372 add     $a2, $a2, $v0
373 j       init40
374 # end init
375
376
377 # begin comp_fir_complexe
378 comp_fir_complexe265:
379 addi    $sp, $sp, -188
380 sw      $ra, 172($sp)
381 sw      $s7, 168($sp)
382 sw      $s6, 164($sp)
383 sw      $s5, 160($sp)
384 sw      $s4, 156($sp)
385 sw      $s3, 152($sp)
386 sw      $s2, 148($sp)
387 sw      $s1, 144($sp)
388 sw      $s0, 140($sp)
389 sw      $a0, 128($sp)
390 sw      $a1, 132($sp)
391 move    $s6, $a2
392 move    $s5, $a3
393 lw      $v1, 176($sp)
394 sw      $v1, 136($sp)
395 lw      $s7, 180($sp)
396 lw      $s4, 184($sp)
397 c39:
398 c38:
399 li      $a1, 0
400 comp_fir_complexe127:
401 li      $a0, 0
402 c37:
403 li      $v0, 16
404 slt     $v0, $a1, $v0
405 seq     $v0, $v0, $zero
406 beq     $v0, $a0, comp_fir_complexe121
407 c33:
408 li      $v0, 0
409 c32:
410 li      $s0, 0
411 c31:
412 li      $s3, 0
413 c30:
414 c29:
415 li      $s2, 0
416 comp_fir_complexe96:
417 li      $a1, 0
418 c28:
419 slt     $a0, $s2, $s4
420 seq     $a0, $a0, $zero
421 beq     $a0, $a1, comp_fir_complexe91
422 c10:
423 li      $v0, 0
424 lw      $ra, 172($sp)
425 lw      $s7, 168($sp)
426 lw      $s6, 164($sp)
427 lw      $s5, 160($sp)
428 lw      $s4, 156($sp)
429 lw      $s3, 152($sp)
430 lw      $s2, 148($sp)
431 lw      $s1, 144($sp)
432 lw      $s0, 140($sp)
433 addi    $sp, $sp, 188
434 jr      $ra
435 comp_fir_complexe91:
436 c26:
437 li      $a0, 4
438 mulo    $a0, $s2, $a0
439 lw      $v1, 128($sp)
440 add     $a0, $v1, $a0
441 lw      $a2, 0($a0)
442 move    $a1, $sp
443 li      $a0, 4
444 mulo    $a0, $v0, $a0
445 add     $a0, $a1, $a0
446 sw      $a2, 0($a0)
447 c25:
448 li      $a0, 4
449 mulo    $a0, $s2, $a0
450 lw      $v1, 132($sp)
451 add     $a0, $v1, $a0
452 lw      $a2, 0($a0)
453 move    $a1, $sp
454 addi    $a1, $a1, 64
455 li      $a0, 4
456 mulo    $a0, $v0, $a0
457 add     $a0, $a1, $a0
458 sw      $a2, 0($a0)
459 c24:
460 c23:
461 li      $s1, 0
462 comp_fir_complexe72:
463 li      $a1, 0
464 c22:
465 li      $a0, 16
466 slt     $a0, $s1, $a0
467 seq     $a0, $a0, $zero
468 beq     $a0, $a1, comp_fir_complexe66
469 c13:
470 li      $a0, 1
471 add     $a0, $v0, $a0
472 li      $a1, 16
473 la      $v0, mod
474 jalr    $v0
475 c12:
476 li      $a0, 4
477 mulo    $a0, $s2, $a0
478 lw      $v1, 136($sp)
479 add     $a0, $v1, $a0
480 sw      $s0, 0($a0)
481 c11:
482 li      $a0, 4
483 mulo    $a0, $s2, $a0
484 add     $a0, $s7, $a0
485 sw      $s3, 0($a0)
486 c27:
487 li      $a0, 1
488 add     $s2, $s2, $a0
489 j       comp_fir_complexe96
490 comp_fir_complexe66:
491 c20:
492 move    $a1, $sp
493 li      $a0, 4
494 mulo    $a0, $v0, $a0
495 add     $a0, $a1, $a0
496 lw      $a2, 0($a0)
497 c19:
498 move    $a1, $sp
499 addi    $a1, $a1, 64
500 li      $a0, 4
501 mulo    $a0, $v0, $a0
502 add     $a0, $a1, $a0
503 lw      $a3, 0($a0)
504 c18:
505 li      $a0, 4
506 mulo    $a0, $s1, $a0
507 add     $a0, $s6, $a0
508 lw      $a0, 0($a0)
509 mulo    $a1, $a2, $a0
510 li      $a0, 4
511 mulo    $a0, $s1, $a0
512 add     $a0, $s5, $a0
513 lw      $a0, 0($a0)
514 mulo    $a0, $a3, $a0
515 sub     $a1, $a1, $a0
516 li      $a0, 4
517 srav    $a1, $a1, $a0
518 c17:
519 li      $a0, 4
520 mulo    $a0, $s1, $a0
521 add     $a0, $s5, $a0
522 lw      $a0, 0($a0)
523 mulo    $a2, $a2, $a0
524 li      $a0, 4
525 mulo    $a0, $s1, $a0
526 add     $a0, $s6, $a0
527 lw      $a0, 0($a0)
528 mulo    $a0, $a3, $a0
529 add     $a2, $a2, $a0
530 li      $a0, 4
531 srav    $a0, $a2, $a0
532 c16:
533 add     $s0, $s0, $a1
534 c15:
535 add     $s3, $s3, $a0
536 c14:
537 li      $a0, 1
538 add     $a0, $v0, $a0
539 li      $a1, 16
540 la      $v0, mod
541 jalr    $v0
542 c21:
543 li      $a0, 1
544 add     $s1, $s1, $a0
545 j       comp_fir_complexe72
546 comp_fir_complexe121:
547 c35:
548 move    $a0, $sp
549 li      $v0, 4
550 mulo    $v0, $a1, $v0
551 add     $v0, $a0, $v0
552 sw      $zero, 0($v0)
553 c34:
554 move    $a0, $sp
555 addi    $a0, $a0, 64
556 li      $v0, 4
557 mulo    $v0, $a1, $v0
558 add     $v0, $a0, $v0
559 sw      $zero, 0($v0)
560 c36:
561 li      $v0, 1
562 add     $a1, $a1, $v0
563 j       comp_fir_complexe127
564 # end comp_fir_complexe
565
566
567 # begin _main
568 main36:
569 addi    $sp, $sp, -4
570 sw      $ra, 0($sp)
571 c42:
572 la      $v0, init97
573 jalr    $v0
574 c41:
575 move    $a0, $gp
576 move    $a1, $gp
577 addi    $a1, $a1, 64
578 move    $a2, $gp
579 addi    $a2, $a2, 128
580 move    $a3, $gp
581 addi    $a3, $a3, 192
582 move    $v0, $gp
583 addi    $v0, $v0, 256
584 addi    $gp, $gp, 320
585 li      $t1, 16
586 la      $t0, comp_fir_complexe265
587 sw      $v0, -12($sp)
588 sw      $gp, -8($sp)
589 sw      $t1, -4($sp)
590 jalr    $t0
591 c40:
592 lw      $ra, 0($sp)
593 addi    $sp, $sp, 4
594 jr      $ra
595 # end _main