]> matita.cs.unibo.it Git - pkg-cerco/acc.git/blob - tests/clight/testTB_Array_LE.ASM.expected
Imported Upstream version 0.2
[pkg-cerco/acc.git] / tests / clight / testTB_Array_LE.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 0           
138 nl:                    
139 .asciiz "\n"      
140 .align 2             
141 .text                 
142 main:                 
143 la    $gp, globals    
144 j     main189              
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 array_LE
315 array_LE38:
316 c1:
317 li      $t0, 2
318 li      $v0, 4
319 mulo    $v0, $a2, $v0
320 add     $v0, $a0, $v0
321 sw      $t0, 0($v0)
322 c0:
323 li      $a0, 78
324 li      $v0, 1
325 add     $a2, $a3, $v0
326 li      $v0, 4
327 mulo    $v0, $a2, $v0
328 add     $v0, $a1, $v0
329 sw      $a0, 0($v0)
330 jr      $ra
331 # end array_LE
332
333
334 # begin _main
335 main189:
336 addi    $sp, $sp, -44
337 sw      $ra, 40($sp)
338 c13:
339 li      $a1, 0
340 move    $a0, $sp
341 li      $v0, 4
342 mulo    $v0, $zero, $v0
343 add     $v0, $a0, $v0
344 sw      $a1, 0($v0)
345 c12:
346 move    $a1, $sp
347 li      $a0, 1
348 li      $v0, 4
349 mulo    $v0, $a0, $v0
350 add     $v0, $a1, $v0
351 sw      $zero, 0($v0)
352 c11:
353 move    $a1, $sp
354 li      $a0, 2
355 li      $v0, 4
356 mulo    $v0, $a0, $v0
357 add     $v0, $a1, $v0
358 sw      $zero, 0($v0)
359 c10:
360 move    $a1, $sp
361 li      $a0, 3
362 li      $v0, 4
363 mulo    $v0, $a0, $v0
364 add     $v0, $a1, $v0
365 sw      $zero, 0($v0)
366 c9:
367 move    $a1, $sp
368 li      $a0, 4
369 li      $v0, 4
370 mulo    $v0, $a0, $v0
371 add     $v0, $a1, $v0
372 sw      $zero, 0($v0)
373 c8:
374 li      $a1, 0
375 move    $a0, $sp
376 addi    $a0, $a0, 20
377 li      $v0, 4
378 mulo    $v0, $zero, $v0
379 add     $v0, $a0, $v0
380 sw      $a1, 0($v0)
381 c7:
382 move    $a1, $sp
383 addi    $a1, $a1, 20
384 li      $a0, 1
385 li      $v0, 4
386 mulo    $v0, $a0, $v0
387 add     $v0, $a1, $v0
388 sw      $zero, 0($v0)
389 c6:
390 move    $a1, $sp
391 addi    $a1, $a1, 20
392 li      $a0, 2
393 li      $v0, 4
394 mulo    $v0, $a0, $v0
395 add     $v0, $a1, $v0
396 sw      $zero, 0($v0)
397 c5:
398 move    $a1, $sp
399 addi    $a1, $a1, 20
400 li      $a0, 3
401 li      $v0, 4
402 mulo    $v0, $a0, $v0
403 add     $v0, $a1, $v0
404 sw      $zero, 0($v0)
405 c4:
406 move    $a1, $sp
407 addi    $a1, $a1, 20
408 li      $a0, 4
409 li      $v0, 4
410 mulo    $v0, $a0, $v0
411 add     $v0, $a1, $v0
412 sw      $zero, 0($v0)
413 c3:
414 move    $a0, $sp
415 move    $a1, $sp
416 addi    $a1, $a1, 20
417 li      $a2, 0
418 li      $a3, 0
419 la      $v0, array_LE38
420 jalr    $v0
421 c2:
422 move    $a0, $sp
423 li      $v0, 4
424 mulo    $v0, $zero, $v0
425 add     $v0, $a0, $v0
426 lw      $v0, 0($v0)
427 addi    $sp, $sp, 20
428 li      $a1, 1
429 li      $a0, 4
430 mulo    $a0, $a1, $a0
431 add     $a0, $sp, $a0
432 lw      $a0, 0($a0)
433 add     $v0, $v0, $a0
434 lw      $ra, 40($sp)
435 addi    $sp, $sp, 44
436 jr      $ra
437 # end _main