# extern __builtin_varargs_start: int -> void # extern __builtin_va_start: int -> int -> void # extern __builtin_va_end: int -> void # extern __builtin_va_copy: int -> int -> void # extern __builtin_va_arg: int -> int -> void # extern __builtin_types_compatible_p: int -> int -> int # extern __builtin_tanl: float -> float # extern __builtin_tanhl: float -> float # extern __builtin_tanhf: float -> float # extern __builtin_tanh: float -> float # extern __builtin_tanf: float -> float # extern __builtin_tan: float -> float # extern __builtin_strspn: int -> int -> int # extern __builtin_strpbrk: int -> int -> int # extern __builtin_strncpy: int -> int -> int -> int # extern __builtin_strncmp: int -> int -> int -> int # extern __builtin_strncat: int -> int -> int -> int # extern __builtin_strcspn: int -> int -> int # extern __builtin_strcpy: int -> int -> int # extern __builtin_strcmp: int -> int -> int # extern __builtin_strchr: int -> int -> int # extern __builtin_stpcpy: int -> int -> int # extern __builtin_stdarg_start: int -> void # extern __builtin_sqrtl: float -> float # extern __builtin_sqrtf: float -> float # extern __builtin_sqrt: float -> float # extern __builtin_sinl: float -> float # extern __builtin_sinhl: float -> float # extern __builtin_sinhf: float -> float # extern __builtin_sinh: float -> float # extern __builtin_sinf: float -> float # extern __builtin_sin: float -> float # extern __builtin_return_address: int -> int # extern __builtin_return: int -> void # extern __builtin_powil: float -> int -> float # extern __builtin_powif: float -> int -> float # extern __builtin_powi: float -> int -> float # extern __builtin_popcountll: int -> int # extern __builtin_popcountl: int -> int # extern __builtin_popcount: int -> int # extern __builtin_parityll: int -> int # extern __builtin_parityl: int -> int # extern __builtin_parity: int -> int # extern __builtin_object_size: int -> int -> int # extern __builtin_next_arg: int # extern __builtin_nansl: int -> float # extern __builtin_nansf: int -> float # extern __builtin_nans: int -> float # extern __builtin_nanl: int -> float # extern __builtin_nanf: int -> float # extern __builtin_nan: int -> float # extern __builtin_modfl: float -> int -> float # extern __builtin_modff: float -> int -> float # extern __builtin_mempcpy: int -> int -> int -> int # extern __builtin_memcpy: int -> int -> int -> int # extern __builtin_logl: float -> float # extern __builtin_logf: float -> float # extern __builtin_log10l: float -> float # extern __builtin_log10f: float -> float # extern __builtin_log10: float -> float # extern __builtin_log: float -> float # extern __builtin_ldexpl: float -> int -> float # extern __builtin_ldexpf: float -> int -> float # extern __builtin_ldexp: float -> int -> float # extern __builtin_infl: float # extern __builtin_inff: float # extern __builtin_inf: float # extern __builtin_huge_vall: float # extern __builtin_huge_valf: float # extern __builtin_huge_val: float # extern __builtin_frexpl: float -> int -> float # extern __builtin_frexpf: float -> int -> float # extern __builtin_frexp: float -> int -> float # extern __builtin_frame_address: int -> int # extern __builtin_fmodl: float -> float # extern __builtin_fmodf: float -> float # extern __builtin_fmod: float -> float # extern __builtin_floorl: float -> float # extern __builtin_floorf: float -> float # extern __builtin_floor: float -> float # extern __builtin_ffsll: int -> int # extern __builtin_ffsl: int -> int # extern __builtin_ffs: int -> int # extern __builtin_fabsl: float -> float # extern __builtin_fabsf: float -> float # extern __builtin_fabs: float -> float # extern __builtin_expl: float -> float # extern __builtin_expf: float -> float # extern __builtin_expect: int -> int -> int # extern __builtin_exp: float -> float # extern __builtin_ctzll: int -> int # extern __builtin_ctzl: int -> int # extern __builtin_ctz: int -> int # extern __builtin_cosl: float -> float # extern __builtin_coshl: float -> float # extern __builtin_coshf: float -> float # extern __builtin_cosh: float -> float # extern __builtin_cosf: float -> float # extern __builtin_cos: float -> float # extern __builtin_constant_p: int -> int # extern __builtin_clzll: int -> int # extern __builtin_clzl: int -> int # extern __builtin_clz: int -> int # extern __builtin_ceill: float -> float # extern __builtin_ceilf: float -> float # extern __builtin_ceil: float -> float # extern __builtin_atanl: float -> float # extern __builtin_atanf: float -> float # extern __builtin_atan2l: float -> float -> float # extern __builtin_atan2f: float -> float -> float # extern __builtin_atan2: float -> float -> float # extern __builtin_atan: float -> float # extern __builtin_asinl: float -> float # extern __builtin_asinf: float -> float # extern __builtin_asin: float -> float # extern __builtin_alloca: int -> int # extern __builtin_acosl: float -> float # extern __builtin_acosf: float -> float # extern __builtin_acos: float -> float # extern __builtin___vsprintf_chk: int -> int -> int -> int -> int -> int # extern __builtin___vsnprintf_chk: int -> int -> int -> int -> int -> int -> int # extern __builtin___vprintf_chk: int -> int -> int -> int # extern __builtin___vfprintf_chk: int -> int -> int -> int -> int # extern __builtin___strncpy_chk: int -> int -> int -> int -> int # extern __builtin___strncat_chk: int -> int -> int -> int -> int # extern __builtin___strcpy_chk: int -> int -> int -> int # extern __builtin___strcat_chk: int -> int -> int -> int # extern __builtin___stpcpy_chk: int -> int -> int -> int # extern __builtin___memset_chk: int -> int -> int -> int -> int # extern __builtin___mempcpy_chk: int -> int -> int -> int -> int # extern __builtin___memmove_chk: int -> int -> int -> int -> int # extern __builtin___memcpy_chk: int -> int -> int -> int -> int # begin preamble .data globals: .space 0 nl: .asciiz "\n" .align 2 .text main: la $gp, globals j main181 print_int: li $v0, 1 syscall jr $ra print_intln: li $v0, 1 syscall la $a0, nl li $v0, 4 syscall jr $ra scan_int: li $v0, 5 syscall jr $ra alloc: li $v0, 9 syscall jr $ra pow2: li $v0, 1 sllv $v0, $v0, $a0 jr $ra mod: beqz $a0, mod0 beqz $a1, mod0 li $t2, 0 mod_t0: bgtz $a0, mod_a0_pos neg $t0, $a0 addi $t2, $t2, 1 j mod_t1 mod_a0_pos: move $t0, $a0 mod_t1: bgtz $a1, mod_a1_pos neg $t1, $a1 addi $t2, $t2, 2 j mod_main mod_a1_pos: move $t1, $a1 mod_main: rem $v0, $t0, $t1 beqz $t2, mod_exit addi $t2, -1 beqz $t2, mod_case1 addi $t2, -1 beqz $t2, mod_case2 neg $v0, $v0 j mod_exit mod_case1: sub $v0, $a1, $v0 j mod_exit mod_case2: add $v0, $a1, $v0 j mod_exit mod0: li $v0, 0 mod_exit: jr $ra toint: # $a0: size # $a1: int to convert addi $sp, $sp, -4 sw $ra, 0($sp) jal pow2 move $a0, $a1 move $a1, $v0 jal mod lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra toint8: addi $sp, $sp, -4 sw $ra, 0($sp) move $a1, $a0 li $a0, 8 jal toint lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra toint16: addi $sp, $sp, -4 sw $ra, 0($sp) move $a1, $a0 li $a0, 16 jal toint lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra sign_ext: # $a0: size # $a1: int to extend li $v0, 32 sub $a0, $v0, $a0 sllv $v0, $a1, $a0 srav $v0, $v0, $a0 jr $ra ofint: # $a0: signedness # $a1: size # $a2: int to convert addi $sp, $sp, -4 sw $ra, 0($sp) beqz $a0, ofint_unsigned move $a0, $a1 move $a1, $a2 jal sign_ext j ofint_exit ofint_unsigned: move $v0, $a2 ofint_exit: lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra ofint8: addi $sp, $sp, -4 sw $ra, 0($sp) move $a2, $a0 li $a1, 8 li $a0, 1 jal ofint lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra ofuint8: addi $sp, $sp, -4 sw $ra, 0($sp) move $a2, $a0 li $a1, 8 li $a0, 0 jal ofint lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra ofint16: addi $sp, $sp, -4 sw $ra, 0($sp) move $a2, $a0 li $a1, 16 li $a0, 1 jal ofint lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra ofuint16: addi $sp, $sp, -4 sw $ra, 0($sp) move $a2, $a0 li $a1, 16 li $a0, 0 jal ofint lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra # end preamble # begin array_param array_param79: c37: li $a3, 1 li $v0, 4 mulo $v0, $zero, $v0 add $v0, $a0, $v0 sw $a3, 0($v0) c36: li $a3, 1 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $a0, $v0 sw $a1, 0($v0) c35: c34: li $a1, 7 li $v0, 4 mulo $v0, $a2, $v0 add $v0, $a0, $v0 sw $a1, 0($v0) c33: li $v0, 4 mulo $v0, $a2, $v0 add $v0, $a0, $v0 lw $v0, 0($v0) c32: c31: jr $ra # end array_param # begin array_mixte array_mixte223: addi $sp, $sp, -40 c30: li $t0, 0 move $a3, $sp li $v0, 4 mulo $v0, $zero, $v0 add $v0, $a3, $v0 sw $t0, 0($v0) c29: move $t0, $sp li $a3, 1 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $t0, $v0 sw $zero, 0($v0) c28: move $t0, $sp li $a3, 2 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $t0, $v0 sw $zero, 0($v0) c27: move $t0, $sp li $a3, 3 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $t0, $v0 sw $zero, 0($v0) c26: move $t0, $sp li $a3, 4 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $t0, $v0 sw $zero, 0($v0) c25: move $t0, $sp li $a3, 5 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $t0, $v0 sw $zero, 0($v0) c24: move $t0, $sp li $a3, 6 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $t0, $v0 sw $zero, 0($v0) c23: move $t0, $sp li $a3, 7 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $t0, $v0 sw $zero, 0($v0) c22: move $t0, $sp li $a3, 8 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $t0, $v0 sw $zero, 0($v0) c21: move $t0, $sp li $a3, 9 li $v0, 4 mulo $v0, $a3, $v0 add $v0, $t0, $v0 sw $zero, 0($v0) c20: li $v0, 4 mulo $v0, $a2, $v0 add $v0, $a0, $v0 lw $a3, 0($v0) li $v0, 1 add $t0, $a3, $v0 move $a3, $sp li $v0, 4 mulo $v0, $a1, $v0 add $v0, $a3, $v0 sw $t0, 0($v0) c19: move $a3, $sp li $v0, 4 mulo $v0, $zero, $v0 add $v0, $a3, $v0 lw $a3, 0($v0) li $v0, 4 mulo $v0, $a2, $v0 add $v0, $a0, $v0 sw $a3, 0($v0) c18: li $a2, 1 li $v0, 4 mulo $v0, $a2, $v0 add $v0, $a0, $v0 lw $a2, 0($v0) li $v0, 4 mulo $v0, $a1, $v0 add $v0, $a0, $v0 sw $a2, 0($v0) c17: li $v0, 4 mulo $v0, $a1, $v0 add $v0, $sp, $v0 lw $v0, 0($v0) addi $sp, $sp, 40 jr $ra # end array_mixte # begin array_local array_local234: addi $sp, $sp, -40 c16: li $a1, 0 move $a0, $sp li $v0, 4 mulo $v0, $zero, $v0 add $v0, $a0, $v0 sw $a1, 0($v0) c15: move $a1, $sp li $a0, 1 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c14: move $a1, $sp li $a0, 2 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c13: move $a1, $sp li $a0, 3 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c12: move $a1, $sp li $a0, 4 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c11: move $a1, $sp li $a0, 5 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c10: move $a1, $sp li $a0, 6 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c9: move $a1, $sp li $a0, 7 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c8: move $a1, $sp li $a0, 8 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c7: move $a1, $sp li $a0, 9 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c6: li $a1, 1 move $a0, $sp li $v0, 4 mulo $v0, $zero, $v0 add $v0, $a0, $v0 sw $a1, 0($v0) c5: li $a2, 5 move $a1, $sp li $a0, 1 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c4: c3: li $a2, 7 move $a1, $sp li $a0, 1 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c2: li $a0, 1 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $sp, $v0 lw $v0, 0($v0) c1: c0: addi $sp, $sp, 40 jr $ra # end array_local # begin _main main181: addi $sp, $sp, -52 sw $ra, 48($sp) sw $s1, 44($sp) sw $s0, 40($sp) c51: li $a1, 1 move $a0, $sp li $v0, 4 mulo $v0, $zero, $v0 add $v0, $a0, $v0 sw $a1, 0($v0) c50: li $a2, 2 move $a1, $sp li $a0, 1 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c49: li $a2, 3 move $a1, $sp li $a0, 2 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c48: li $a2, 4 move $a1, $sp li $a0, 3 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c47: li $a2, 5 move $a1, $sp li $a0, 4 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c46: li $a2, 6 move $a1, $sp li $a0, 5 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c45: li $a2, 7 move $a1, $sp li $a0, 6 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c44: li $a2, 8 move $a1, $sp li $a0, 7 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c43: li $a2, 9 move $a1, $sp li $a0, 8 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $a2, 0($v0) c42: move $a1, $sp li $a0, 9 li $v0, 4 mulo $v0, $a0, $v0 add $v0, $a1, $v0 sw $zero, 0($v0) c41: la $v0, array_local234 jalr $v0 move $s0, $v0 c40: move $a0, $sp li $a1, 2 li $a2, 3 la $v0, array_mixte223 jalr $v0 move $s1, $v0 c39: move $a0, $sp li $a1, 2 li $a2, 3 la $v0, array_param79 jalr $v0 c38: add $a0, $s0, $s1 add $v0, $a0, $v0 lw $ra, 48($sp) lw $s1, 44($sp) lw $s0, 40($sp) addi $sp, $sp, 52 jr $ra # end _main