source: Deliverables/D2.3/8051/tests/clight/for.ASM.expected @ 453

Last change on this file since 453 was 453, checked in by ayache, 10 years ago

Import of the Paris's sources.

File size: 14.9 KB
Line 
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                 
136globals:               
137.space 0           
138nl:                   
139.asciiz "\n"     
140.align 2             
141.text                 
142main:                 
143la    $gp, globals   
144j     main85             
145print_int:           
146li    $v0, 1         
147syscall               
148jr     $ra           
149print_intln:         
150li    $v0, 1         
151syscall               
152la    $a0, nl         
153li    $v0, 4         
154syscall               
155jr     $ra           
156scan_int:             
157li    $v0, 5         
158syscall               
159jr     $ra           
160alloc:               
161li    $v0, 9         
162syscall               
163jr     $ra           
164
165pow2:                 
166li    $v0, 1         
167sllv  $v0, $v0, $a0   
168jr    $ra             
169
170mod:                 
171beqz  $a0, mod0       
172beqz  $a1, mod0       
173li    $t2, 0         
174mod_t0:               
175bgtz  $a0, mod_a0_pos
176neg   $t0, $a0       
177addi  $t2, $t2, 1     
178j     mod_t1         
179mod_a0_pos:           
180move  $t0, $a0       
181mod_t1:               
182bgtz  $a1, mod_a1_pos
183neg   $t1, $a1       
184addi  $t2, $t2, 2     
185j     mod_main       
186mod_a1_pos:           
187move  $t1, $a1       
188mod_main:             
189rem   $v0, $t0, $t1   
190beqz  $t2, mod_exit   
191addi  $t2, -1         
192beqz  $t2, mod_case1 
193addi  $t2, -1         
194beqz  $t2, mod_case2 
195neg   $v0, $v0       
196j mod_exit           
197mod_case1:           
198sub   $v0, $a1, $v0   
199j mod_exit           
200mod_case2:           
201add   $v0, $a1, $v0   
202j mod_exit           
203mod0:                 
204li    $v0, 0         
205mod_exit:             
206jr    $ra             
207
208toint:               
209# $a0: size           
210# $a1: int to convert
211addi  $sp, $sp, -4   
212sw    $ra, 0($sp)     
213jal   pow2           
214move  $a0, $a1       
215move  $a1, $v0       
216jal   mod             
217lw    $ra, 0($sp)     
218addi  $sp, $sp, 4     
219jr    $ra             
220
221toint8:               
222addi  $sp, $sp, -4   
223sw    $ra, 0($sp)     
224move  $a1, $a0       
225li    $a0, 8         
226jal   toint           
227lw    $ra, 0($sp)     
228addi  $sp, $sp, 4     
229jr    $ra             
230
231toint16:             
232addi  $sp, $sp, -4   
233sw    $ra, 0($sp)     
234move  $a1, $a0       
235li    $a0, 16         
236jal   toint           
237lw    $ra, 0($sp)     
238addi  $sp, $sp, 4     
239jr    $ra             
240
241sign_ext:             
242# $a0: size           
243# $a1: int to extend 
244li    $v0, 32         
245sub   $a0, $v0, $a0   
246sllv  $v0, $a1, $a0   
247srav  $v0, $v0, $a0   
248jr    $ra             
249
250ofint:               
251# $a0: signedness     
252# $a1: size           
253# $a2: int to convert
254addi  $sp, $sp, -4   
255sw    $ra, 0($sp)     
256beqz  $a0, ofint_unsigned
257move  $a0, $a1       
258move  $a1, $a2       
259jal   sign_ext       
260j     ofint_exit     
261ofint_unsigned:       
262move  $v0, $a2       
263ofint_exit:           
264lw    $ra, 0($sp)     
265addi  $sp, $sp, 4     
266jr    $ra             
267
268ofint8:               
269addi  $sp, $sp, -4   
270sw    $ra, 0($sp)     
271move  $a2, $a0       
272li    $a1, 8         
273li    $a0, 1         
274jal   ofint           
275lw    $ra, 0($sp)     
276addi  $sp, $sp, 4     
277jr    $ra             
278
279ofuint8:             
280addi  $sp, $sp, -4   
281sw    $ra, 0($sp)     
282move  $a2, $a0       
283li    $a1, 8         
284li    $a0, 0         
285jal   ofint           
286lw    $ra, 0($sp)     
287addi  $sp, $sp, 4     
288jr    $ra             
289
290ofint16:             
291addi  $sp, $sp, -4   
292sw    $ra, 0($sp)     
293move  $a2, $a0       
294li    $a1, 16         
295li    $a0, 1         
296jal   ofint           
297lw    $ra, 0($sp)     
298addi  $sp, $sp, 4     
299jr    $ra             
300
301ofuint16:             
302addi  $sp, $sp, -4   
303sw    $ra, 0($sp)     
304move  $a2, $a0       
305li    $a1, 16         
306li    $a0, 0         
307jal   ofint           
308lw    $ra, 0($sp)     
309addi  $sp, $sp, 4     
310jr    $ra             
311# end preamble       
312
313
314# begin for_loopParalAsync
315for_loopParalAsync94:
316c29:
317li      $v0, 0
318c28:
319li      $a2, 0
320c27:
321li      $a0, 3
322add     $a2, $a2, $a0
323c26:
324li      $a0, 2
325mulo    $a2, $a2, $a0
326c25:
327li      $a0, 3
328div     $a2, $a2, $a0
329c24:
330li      $a0, 8
331add     $a2, $a2, $a0
332c23:
333c22:
334li      $a1, 0
335for_loopParalAsync37:
336li      $a3, 0
337c21:
338li      $a0, 20
339slt     $a0, $a1, $a0
340seq     $a0, $a0, $zero
341beq     $a0, $a3, for_loopParalAsync31
342c16:
343c15:
344li      $a1, 1
345for_loopParalAsync16:
346li      $a3, 0
347c14:
348slt     $a0, $a1, $a2
349seq     $a0, $a0, $zero
350beq     $a0, $a3, for_loopParalAsync11
351c10:
352jr      $ra
353for_loopParalAsync11:
354c12:
355c11:
356c13:
357li      $a0, 1
358add     $a1, $a1, $a0
359j       for_loopParalAsync16
360for_loopParalAsync31:
361c19:
362li      $a0, 1
363add     $v0, $v0, $a0
364c18:
365c17:
366c20:
367li      $a0, 1
368add     $a1, $a1, $a0
369j       for_loopParalAsync37
370# end for_loopParalAsync
371
372
373# begin for_incrParam
374for_incrParam49:
375c86:
376add     $a3, $a0, $a1
377c85:
378c84:
379c83:
380li      $v0, 4
381sub     $v0, $a3, $v0
382for_incrParam15:
383li      $t0, 0
384c82:
385li      $a2, 6
386add     $a2, $a1, $a2
387slt     $a2, $v0, $a2
388seq     $a2, $a2, $zero
389beq     $a2, $t0, for_incrParam8
390c79:
391jr      $ra
392for_incrParam8:
393c80:
394add     $v0, $v0, $a3
395add     $v0, $v0, $a0
396c81:
397add     $v0, $v0, $a0
398j       for_incrParam15
399# end for_incrParam
400
401
402# begin for_incr
403for_incr44:
404c78:
405li      $v0, 0
406c77:
407c76:
408li      $a2, 3
409add     $a2, $a0, $a2
410for_incr15:
411li      $a3, 0
412c75:
413li      $a0, 2
414mulo    $a0, $a1, $a0
415sle     $a0, $a2, $a0
416seq     $a0, $a0, $zero
417beq     $a0, $a3, for_incr8
418c72:
419jr      $ra
420for_incr8:
421c73:
422sub     $v0, $v0, $a2
423c74:
424li      $a0, 1
425add     $a2, $a2, $a0
426j       for_incr15
427# end for_incr
428
429
430# begin for_imbriq
431for_imbriq64:
432addi    $sp, $sp, -24
433sw      $ra, 20($sp)
434sw      $s4, 16($sp)
435sw      $s3, 12($sp)
436sw      $s2, 8($sp)
437sw      $s1, 4($sp)
438sw      $s0, 0($sp)
439move    $s4, $a0
440move    $s3, $a1
441c71:
442li      $s0, 0
443c70:
444c69:
445li      $s1, 0
446for_imbriq29:
447li      $a0, 0
448c68:
449li      $v0, 23
450slt     $v0, $s1, $v0
451seq     $v0, $v0, $zero
452beq     $v0, $a0, for_imbriq23
453c59:
454move    $v0, $s0
455lw      $ra, 20($sp)
456lw      $s4, 16($sp)
457lw      $s3, 12($sp)
458lw      $s2, 8($sp)
459lw      $s1, 4($sp)
460lw      $s0, 0($sp)
461addi    $sp, $sp, 24
462jr      $ra
463for_imbriq23:
464c66:
465li      $v0, 0
466c65:
467c64:
468li      $s2, 1
469for_imbriq18:
470li      $a1, 0
471c63:
472li      $a0, 12
473slt     $a0, $s2, $a0
474seq     $a0, $a0, $zero
475beq     $a0, $a1, for_imbriq12
476c67:
477add     $s1, $s1, $s4
478j       for_imbriq29
479for_imbriq12:
480c61:
481add     $s0, $s0, $v0
482c60:
483la      $a2, mod
484move    $a0, $v0
485move    $a1, $s2
486jalr    $a2
487c62:
488add     $s2, $s2, $s3
489j       for_imbriq18
490# end for_imbriq
491
492
493# begin for_fortSimple
494for_fortSimple41:
495c58:
496li      $t0, 0
497c57:
498c56:
499move    $a3, $a0
500for_fortSimple14:
501li      $t1, 0
502c55:
503slt     $v0, $a3, $a1
504seq     $v0, $v0, $zero
505beq     $v0, $t1, for_fortSimple9
506c52:
507add     $v0, $t0, $a0
508c51:
509jr      $ra
510for_fortSimple9:
511c53:
512add     $t0, $t0, $a3
513c54:
514add     $a3, $a3, $a2
515j       for_fortSimple14
516# end for_fortSimple
517
518
519# begin for_forfor
520for_forfor44:
521c94:
522c93:
523li      $a1, 0
524c92:
525li      $v0, 0
526for_forfor18:
527li      $a2, 0
528c91:
529li      $a0, 10
530slt     $a0, $a1, $a0
531seq     $a0, $a0, $zero
532beq     $a0, $a2, for_forfor12
533c87:
534jr      $ra
535for_forfor12:
536c89:
537li      $a0, 1
538add     $v0, $v0, $a0
539c88:
540li      $a0, 1
541add     $v0, $v0, $a0
542c90:
543li      $a0, 1
544add     $a1, $a1, $a0
545j       for_forfor18
546# end for_forfor
547
548
549# begin for_ex
550for_ex43:
551c50:
552li      $v0, 0
553c49:
554c48:
555li      $a3, 3
556add     $a3, $a0, $a3
557for_ex14:
558li      $t0, 0
559c47:
560li      $a0, 2
561mulo    $a0, $a1, $a0
562sle     $a0, $a3, $a0
563seq     $a0, $a0, $zero
564beq     $a0, $t0, for_ex7
565c44:
566jr      $ra
567for_ex7:
568c45:
569sub     $v0, $v0, $a3
570c46:
571add     $a3, $a3, $a2
572j       for_ex14
573# end for_ex
574
575
576# begin for_double
577for_double64:
578c43:
579li      $a1, 0
580c42:
581li      $a2, 0
582c41:
583c40:
584li      $a3, 0
585for_double29:
586li      $t0, 0
587c39:
588li      $v0, 12
589slt     $v0, $a3, $v0
590seq     $v0, $v0, $zero
591beq     $v0, $t0, for_double23
592c36:
593c35:
594li      $a3, 0
595for_double15:
596li      $t0, 0
597c34:
598li      $v0, 5
599slt     $v0, $a3, $v0
600seq     $v0, $v0, $zero
601beq     $v0, $t0, for_double9
602c31:
603mulo    $v0, $a1, $a2
604c30:
605jr      $ra
606for_double9:
607c32:
608add     $a2, $a2, $a3
609c33:
610add     $a3, $a3, $a0
611j       for_double15
612for_double23:
613c37:
614add     $a1, $a1, $a3
615c38:
616add     $a3, $a3, $a0
617j       for_double29
618# end for_double
619
620
621# begin for_2
622for_253:
623c9:
624li      $a2, 0
625c8:
626li      $v0, 2
627mulo    $v0, $a0, $v0
628c7:
629li      $a3, 4
630mulo    $a0, $a0, $a3
631c6:
632li      $a3, 1
633add     $a1, $a1, $a3
634c5:
635c4:
636for_213:
637li      $t0, 0
638c3:
639slt     $a3, $v0, $a0
640seq     $a3, $a3, $zero
641beq     $a3, $t0, for_28
642c0:
643li      $v0, 1
644add     $v0, $a2, $v0
645jr      $ra
646for_28:
647c1:
648add     $a2, $a2, $v0
649c2:
650add     $v0, $v0, $a1
651j       for_213
652# end for_2
653
654
655# begin _main
656main85:
657addi    $sp, $sp, -4
658sw      $ra, 0($sp)
659c104:
660li      $a0, 3
661li      $a1, 1
662la      $v0, for_253
663jalr    $v0
664c103:
665li      $a0, 1
666li      $a1, 2
667li      $a2, 3
668la      $v0, for_loopParalAsync94
669jalr    $v0
670c102:
671li      $a0, 1
672la      $v0, for_double64
673jalr    $v0
674c101:
675li      $a0, 2
676li      $a1, 10
677li      $a2, 1
678la      $v0, for_ex43
679jalr    $v0
680c100:
681li      $a0, 2
682li      $a1, 10
683li      $a2, 1
684la      $v0, for_fortSimple41
685jalr    $v0
686c99:
687li      $a0, 2
688li      $a1, 3
689la      $v0, for_imbriq64
690jalr    $v0
691c98:
692li      $a0, 2
693li      $a1, 3
694la      $v0, for_incr44
695jalr    $v0
696c97:
697li      $a0, 2
698li      $a1, 3
699la      $v0, for_incrParam49
700jalr    $v0
701c96:
702la      $v0, for_forfor44
703jalr    $v0
704c95:
705lw      $ra, 0($sp)
706addi    $sp, $sp, 4
707jr      $ra
708# end _main
Note: See TracBrowser for help on using the repository browser.