# 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 384 nl: .asciiz "\n" .align 2 .text main: la $gp, globals j main36 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 init init97: c9: c8: li $a2, 0 init40: li $a0, 0 c7: li $v0, 16 slt $v0, $a2, $v0 seq $v0, $v0, $zero beq $v0, $a0, init34 jr $ra init34: c5: li $a1, 2 li $v0, 4 mulo $a0, $a2, $v0 move $v0, $gp add $v0, $v0, $a0 sw $a1, 0($v0) c4: li $a1, 2 li $v0, 4 mulo $a0, $a2, $v0 move $v0, $gp add $v0, $v0, $a0 sw $a1, 64($v0) c3: li $a1, 2 li $v0, 4 mulo $a0, $a2, $v0 move $v0, $gp add $v0, $v0, $a0 sw $a1, 128($v0) c2: li $a1, 2 li $v0, 4 mulo $a0, $a2, $v0 move $v0, $gp add $v0, $v0, $a0 sw $a1, 192($v0) c1: li $a1, 2 li $v0, 4 mulo $a0, $a2, $v0 move $v0, $gp add $v0, $v0, $a0 sw $a1, 256($v0) c0: li $a1, 2 li $v0, 4 mulo $a0, $a2, $v0 move $v0, $gp add $v0, $v0, $a0 sw $a1, 320($v0) c6: li $v0, 1 add $a2, $a2, $v0 j init40 # end init # begin comp_fir_complexe comp_fir_complexe265: addi $sp, $sp, -188 sw $ra, 172($sp) sw $s7, 168($sp) sw $s6, 164($sp) sw $s5, 160($sp) sw $s4, 156($sp) sw $s3, 152($sp) sw $s2, 148($sp) sw $s1, 144($sp) sw $s0, 140($sp) sw $a0, 128($sp) sw $a1, 132($sp) move $s6, $a2 move $s5, $a3 lw $v1, 176($sp) sw $v1, 136($sp) lw $s7, 180($sp) lw $s4, 184($sp) c39: c38: li $a1, 0 comp_fir_complexe127: li $a0, 0 c37: li $v0, 16 slt $v0, $a1, $v0 seq $v0, $v0, $zero beq $v0, $a0, comp_fir_complexe121 c33: li $v0, 0 c32: li $s0, 0 c31: li $s3, 0 c30: c29: li $s2, 0 comp_fir_complexe96: li $a1, 0 c28: slt $a0, $s2, $s4 seq $a0, $a0, $zero beq $a0, $a1, comp_fir_complexe91 c10: li $v0, 0 lw $ra, 172($sp) lw $s7, 168($sp) lw $s6, 164($sp) lw $s5, 160($sp) lw $s4, 156($sp) lw $s3, 152($sp) lw $s2, 148($sp) lw $s1, 144($sp) lw $s0, 140($sp) addi $sp, $sp, 188 jr $ra comp_fir_complexe91: c26: li $a0, 4 mulo $a0, $s2, $a0 lw $v1, 128($sp) add $a0, $v1, $a0 lw $a2, 0($a0) move $a1, $sp li $a0, 4 mulo $a0, $v0, $a0 add $a0, $a1, $a0 sw $a2, 0($a0) c25: li $a0, 4 mulo $a0, $s2, $a0 lw $v1, 132($sp) add $a0, $v1, $a0 lw $a2, 0($a0) move $a1, $sp addi $a1, $a1, 64 li $a0, 4 mulo $a0, $v0, $a0 add $a0, $a1, $a0 sw $a2, 0($a0) c24: c23: li $s1, 0 comp_fir_complexe72: li $a1, 0 c22: li $a0, 16 slt $a0, $s1, $a0 seq $a0, $a0, $zero beq $a0, $a1, comp_fir_complexe66 c13: li $a0, 1 add $a0, $v0, $a0 li $a1, 16 la $v0, mod jalr $v0 c12: li $a0, 4 mulo $a0, $s2, $a0 lw $v1, 136($sp) add $a0, $v1, $a0 sw $s0, 0($a0) c11: li $a0, 4 mulo $a0, $s2, $a0 add $a0, $s7, $a0 sw $s3, 0($a0) c27: li $a0, 1 add $s2, $s2, $a0 j comp_fir_complexe96 comp_fir_complexe66: c20: move $a1, $sp li $a0, 4 mulo $a0, $v0, $a0 add $a0, $a1, $a0 lw $a2, 0($a0) c19: move $a1, $sp addi $a1, $a1, 64 li $a0, 4 mulo $a0, $v0, $a0 add $a0, $a1, $a0 lw $a3, 0($a0) c18: li $a0, 4 mulo $a0, $s1, $a0 add $a0, $s6, $a0 lw $a0, 0($a0) mulo $a1, $a2, $a0 li $a0, 4 mulo $a0, $s1, $a0 add $a0, $s5, $a0 lw $a0, 0($a0) mulo $a0, $a3, $a0 sub $a1, $a1, $a0 li $a0, 4 srav $a1, $a1, $a0 c17: li $a0, 4 mulo $a0, $s1, $a0 add $a0, $s5, $a0 lw $a0, 0($a0) mulo $a2, $a2, $a0 li $a0, 4 mulo $a0, $s1, $a0 add $a0, $s6, $a0 lw $a0, 0($a0) mulo $a0, $a3, $a0 add $a2, $a2, $a0 li $a0, 4 srav $a0, $a2, $a0 c16: add $s0, $s0, $a1 c15: add $s3, $s3, $a0 c14: li $a0, 1 add $a0, $v0, $a0 li $a1, 16 la $v0, mod jalr $v0 c21: li $a0, 1 add $s1, $s1, $a0 j comp_fir_complexe72 comp_fir_complexe121: c35: move $a0, $sp li $v0, 4 mulo $v0, $a1, $v0 add $v0, $a0, $v0 sw $zero, 0($v0) c34: move $a0, $sp addi $a0, $a0, 64 li $v0, 4 mulo $v0, $a1, $v0 add $v0, $a0, $v0 sw $zero, 0($v0) c36: li $v0, 1 add $a1, $a1, $v0 j comp_fir_complexe127 # end comp_fir_complexe # begin _main main36: addi $sp, $sp, -4 sw $ra, 0($sp) c42: la $v0, init97 jalr $v0 c41: move $a0, $gp move $a1, $gp addi $a1, $a1, 64 move $a2, $gp addi $a2, $a2, 128 move $a3, $gp addi $a3, $a3, 192 move $v0, $gp addi $v0, $v0, 256 addi $gp, $gp, 320 li $t1, 16 la $t0, comp_fir_complexe265 sw $v0, -12($sp) sw $gp, -8($sp) sw $t1, -4($sp) jalr $t0 c40: lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra # end _main