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

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

Import of the Paris's sources.

File size: 15.3 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     main181             
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 array_param
315array_param79:
316c37:
317li      $a3, 1
318li      $v0, 4
319mulo    $v0, $zero, $v0
320add     $v0, $a0, $v0
321sw      $a3, 0($v0)
322c36:
323li      $a3, 1
324li      $v0, 4
325mulo    $v0, $a3, $v0
326add     $v0, $a0, $v0
327sw      $a1, 0($v0)
328c35:
329c34:
330li      $a1, 7
331li      $v0, 4
332mulo    $v0, $a2, $v0
333add     $v0, $a0, $v0
334sw      $a1, 0($v0)
335c33:
336li      $v0, 4
337mulo    $v0, $a2, $v0
338add     $v0, $a0, $v0
339lw      $v0, 0($v0)
340c32:
341c31:
342jr      $ra
343# end array_param
344
345
346# begin array_mixte
347array_mixte223:
348addi    $sp, $sp, -40
349c30:
350li      $t0, 0
351move    $a3, $sp
352li      $v0, 4
353mulo    $v0, $zero, $v0
354add     $v0, $a3, $v0
355sw      $t0, 0($v0)
356c29:
357move    $t0, $sp
358li      $a3, 1
359li      $v0, 4
360mulo    $v0, $a3, $v0
361add     $v0, $t0, $v0
362sw      $zero, 0($v0)
363c28:
364move    $t0, $sp
365li      $a3, 2
366li      $v0, 4
367mulo    $v0, $a3, $v0
368add     $v0, $t0, $v0
369sw      $zero, 0($v0)
370c27:
371move    $t0, $sp
372li      $a3, 3
373li      $v0, 4
374mulo    $v0, $a3, $v0
375add     $v0, $t0, $v0
376sw      $zero, 0($v0)
377c26:
378move    $t0, $sp
379li      $a3, 4
380li      $v0, 4
381mulo    $v0, $a3, $v0
382add     $v0, $t0, $v0
383sw      $zero, 0($v0)
384c25:
385move    $t0, $sp
386li      $a3, 5
387li      $v0, 4
388mulo    $v0, $a3, $v0
389add     $v0, $t0, $v0
390sw      $zero, 0($v0)
391c24:
392move    $t0, $sp
393li      $a3, 6
394li      $v0, 4
395mulo    $v0, $a3, $v0
396add     $v0, $t0, $v0
397sw      $zero, 0($v0)
398c23:
399move    $t0, $sp
400li      $a3, 7
401li      $v0, 4
402mulo    $v0, $a3, $v0
403add     $v0, $t0, $v0
404sw      $zero, 0($v0)
405c22:
406move    $t0, $sp
407li      $a3, 8
408li      $v0, 4
409mulo    $v0, $a3, $v0
410add     $v0, $t0, $v0
411sw      $zero, 0($v0)
412c21:
413move    $t0, $sp
414li      $a3, 9
415li      $v0, 4
416mulo    $v0, $a3, $v0
417add     $v0, $t0, $v0
418sw      $zero, 0($v0)
419c20:
420li      $v0, 4
421mulo    $v0, $a2, $v0
422add     $v0, $a0, $v0
423lw      $a3, 0($v0)
424li      $v0, 1
425add     $t0, $a3, $v0
426move    $a3, $sp
427li      $v0, 4
428mulo    $v0, $a1, $v0
429add     $v0, $a3, $v0
430sw      $t0, 0($v0)
431c19:
432move    $a3, $sp
433li      $v0, 4
434mulo    $v0, $zero, $v0
435add     $v0, $a3, $v0
436lw      $a3, 0($v0)
437li      $v0, 4
438mulo    $v0, $a2, $v0
439add     $v0, $a0, $v0
440sw      $a3, 0($v0)
441c18:
442li      $a2, 1
443li      $v0, 4
444mulo    $v0, $a2, $v0
445add     $v0, $a0, $v0
446lw      $a2, 0($v0)
447li      $v0, 4
448mulo    $v0, $a1, $v0
449add     $v0, $a0, $v0
450sw      $a2, 0($v0)
451c17:
452li      $v0, 4
453mulo    $v0, $a1, $v0
454add     $v0, $sp, $v0
455lw      $v0, 0($v0)
456addi    $sp, $sp, 40
457jr      $ra
458# end array_mixte
459
460
461# begin array_local
462array_local234:
463addi    $sp, $sp, -40
464c16:
465li      $a1, 0
466move    $a0, $sp
467li      $v0, 4
468mulo    $v0, $zero, $v0
469add     $v0, $a0, $v0
470sw      $a1, 0($v0)
471c15:
472move    $a1, $sp
473li      $a0, 1
474li      $v0, 4
475mulo    $v0, $a0, $v0
476add     $v0, $a1, $v0
477sw      $zero, 0($v0)
478c14:
479move    $a1, $sp
480li      $a0, 2
481li      $v0, 4
482mulo    $v0, $a0, $v0
483add     $v0, $a1, $v0
484sw      $zero, 0($v0)
485c13:
486move    $a1, $sp
487li      $a0, 3
488li      $v0, 4
489mulo    $v0, $a0, $v0
490add     $v0, $a1, $v0
491sw      $zero, 0($v0)
492c12:
493move    $a1, $sp
494li      $a0, 4
495li      $v0, 4
496mulo    $v0, $a0, $v0
497add     $v0, $a1, $v0
498sw      $zero, 0($v0)
499c11:
500move    $a1, $sp
501li      $a0, 5
502li      $v0, 4
503mulo    $v0, $a0, $v0
504add     $v0, $a1, $v0
505sw      $zero, 0($v0)
506c10:
507move    $a1, $sp
508li      $a0, 6
509li      $v0, 4
510mulo    $v0, $a0, $v0
511add     $v0, $a1, $v0
512sw      $zero, 0($v0)
513c9:
514move    $a1, $sp
515li      $a0, 7
516li      $v0, 4
517mulo    $v0, $a0, $v0
518add     $v0, $a1, $v0
519sw      $zero, 0($v0)
520c8:
521move    $a1, $sp
522li      $a0, 8
523li      $v0, 4
524mulo    $v0, $a0, $v0
525add     $v0, $a1, $v0
526sw      $zero, 0($v0)
527c7:
528move    $a1, $sp
529li      $a0, 9
530li      $v0, 4
531mulo    $v0, $a0, $v0
532add     $v0, $a1, $v0
533sw      $zero, 0($v0)
534c6:
535li      $a1, 1
536move    $a0, $sp
537li      $v0, 4
538mulo    $v0, $zero, $v0
539add     $v0, $a0, $v0
540sw      $a1, 0($v0)
541c5:
542li      $a2, 5
543move    $a1, $sp
544li      $a0, 1
545li      $v0, 4
546mulo    $v0, $a0, $v0
547add     $v0, $a1, $v0
548sw      $a2, 0($v0)
549c4:
550c3:
551li      $a2, 7
552move    $a1, $sp
553li      $a0, 1
554li      $v0, 4
555mulo    $v0, $a0, $v0
556add     $v0, $a1, $v0
557sw      $a2, 0($v0)
558c2:
559li      $a0, 1
560li      $v0, 4
561mulo    $v0, $a0, $v0
562add     $v0, $sp, $v0
563lw      $v0, 0($v0)
564c1:
565c0:
566addi    $sp, $sp, 40
567jr      $ra
568# end array_local
569
570
571# begin _main
572main181:
573addi    $sp, $sp, -52
574sw      $ra, 48($sp)
575sw      $s1, 44($sp)
576sw      $s0, 40($sp)
577c51:
578li      $a1, 1
579move    $a0, $sp
580li      $v0, 4
581mulo    $v0, $zero, $v0
582add     $v0, $a0, $v0
583sw      $a1, 0($v0)
584c50:
585li      $a2, 2
586move    $a1, $sp
587li      $a0, 1
588li      $v0, 4
589mulo    $v0, $a0, $v0
590add     $v0, $a1, $v0
591sw      $a2, 0($v0)
592c49:
593li      $a2, 3
594move    $a1, $sp
595li      $a0, 2
596li      $v0, 4
597mulo    $v0, $a0, $v0
598add     $v0, $a1, $v0
599sw      $a2, 0($v0)
600c48:
601li      $a2, 4
602move    $a1, $sp
603li      $a0, 3
604li      $v0, 4
605mulo    $v0, $a0, $v0
606add     $v0, $a1, $v0
607sw      $a2, 0($v0)
608c47:
609li      $a2, 5
610move    $a1, $sp
611li      $a0, 4
612li      $v0, 4
613mulo    $v0, $a0, $v0
614add     $v0, $a1, $v0
615sw      $a2, 0($v0)
616c46:
617li      $a2, 6
618move    $a1, $sp
619li      $a0, 5
620li      $v0, 4
621mulo    $v0, $a0, $v0
622add     $v0, $a1, $v0
623sw      $a2, 0($v0)
624c45:
625li      $a2, 7
626move    $a1, $sp
627li      $a0, 6
628li      $v0, 4
629mulo    $v0, $a0, $v0
630add     $v0, $a1, $v0
631sw      $a2, 0($v0)
632c44:
633li      $a2, 8
634move    $a1, $sp
635li      $a0, 7
636li      $v0, 4
637mulo    $v0, $a0, $v0
638add     $v0, $a1, $v0
639sw      $a2, 0($v0)
640c43:
641li      $a2, 9
642move    $a1, $sp
643li      $a0, 8
644li      $v0, 4
645mulo    $v0, $a0, $v0
646add     $v0, $a1, $v0
647sw      $a2, 0($v0)
648c42:
649move    $a1, $sp
650li      $a0, 9
651li      $v0, 4
652mulo    $v0, $a0, $v0
653add     $v0, $a1, $v0
654sw      $zero, 0($v0)
655c41:
656la      $v0, array_local234
657jalr    $v0
658move    $s0, $v0
659c40:
660move    $a0, $sp
661li      $a1, 2
662li      $a2, 3
663la      $v0, array_mixte223
664jalr    $v0
665move    $s1, $v0
666c39:
667move    $a0, $sp
668li      $a1, 2
669li      $a2, 3
670la      $v0, array_param79
671jalr    $v0
672c38:
673add     $a0, $s0, $s1
674add     $v0, $a0, $v0
675lw      $ra, 48($sp)
676lw      $s1, 44($sp)
677lw      $s0, 40($sp)
678addi    $sp, $sp, 52
679jr      $ra
680# end _main
Note: See TracBrowser for help on using the repository browser.