.text 0x00400000 .globl main la $28, _heap_ la $4, _aaMSSPa_194_ # was: la _aaMSSPa_194__addr, _aaMSSPa_194_ ori $3, $0, 18 # was: ori _aaMSSPa_194__init, $0, 18 sw $3, 0($4) # was: sw _aaMSSPa_194__init, 0(_aaMSSPa_194__addr) la $4, _a__str__34_ # was: la _a__str__34__addr, _a__str__34_ ori $3, $0, 1 # was: ori _a__str__34__init, $0, 1 sw $3, 0($4) # was: sw _a__str__34__init, 0(_a__str__34__addr) la $4, _aa__str_30_ # was: la _aa__str_30__addr, _aa__str_30_ ori $3, $0, 2 # was: ori _aa__str_30__init, $0, 2 sw $3, 0($4) # was: sw _aa__str_30__init, 0(_aa__str_30__addr) la $4, _Introdu_25_ # was: la _Introdu_25__addr, _Introdu_25_ ori $3, $0, 17 # was: ori _Introdu_25__init, $0, 17 sw $3, 0($4) # was: sw _Introdu_25__init, 0(_Introdu_25__addr) la $4, _true # was: la _true_addr, _true ori $3, $0, 4 # was: ori _true_init, $0, 4 sw $3, 0($4) # was: sw _true_init, 0(_true_addr) la $3, _false # was: la _false_addr, _false ori $4, $0, 5 # was: ori _false_init, $0, 5 sw $4, 0($3) # was: sw _false_init, 0(_false_addr) jal main _stop_: ori $2, $0, 10 syscall # Function main main: sw $31, -4($29) sw $21, -28($29) sw $20, -24($29) sw $19, -20($29) sw $18, -16($29) sw $17, -12($29) sw $16, -8($29) addi $29, $29, -32 ori $3, $0, 8 # was: ori _size_reg_5_, $0, 8 bgez $3, _safe_lab_6_ # was: bgez _size_reg_5_, _safe_lab_6_ ori $5, $0, 10 # was: ori $5, $0, 10 la $6, _Msg_IllegalArraySize_ # was: la $6, _Msg_IllegalArraySize_ j _RuntimeError_ _safe_lab_6_: # dynalloc ori $2, $28, 0 # was: ori _letBind_4_, $28, 0 sll $4, $3, 2 # was: sll _tmp_12_, _size_reg_5_, 2 addi $4, $4, 4 # was: addi _tmp_12_, _tmp_12_, 4 add $28, $28, $4 # was: add $28, $28, _tmp_12_ sw $3, 0($2) # was: sw _size_reg_5_, 0(_letBind_4_) addi $5, $2, 4 # was: addi _addr_reg_7_, _letBind_4_, 4 ori $6, $0, 0 # was: ori _i_reg_8_, $0, 0 _loop_beg_9_: sub $4, $6, $3 # was: sub _tmp_reg_11_, _i_reg_8_, _size_reg_5_ bgez $4, _loop_end_10_ # was: bgez _tmp_reg_11_, _loop_end_10_ sw $6, 0($5) # was: sw _i_reg_8_, 0(_addr_reg_7_) addi $5, $5, 4 # was: addi _addr_reg_7_, _addr_reg_7_, 4 addi $6, $6, 1 # was: addi _i_reg_8_, _i_reg_8_, 1 j _loop_beg_9_ _loop_end_10_: # map # ori _arr_reg_14_,_letBind_4_,0 lw $17, 0($2) # was: lw _size_reg_13_, 0(_arr_reg_14_) # dynalloc ori $16, $28, 0 # was: ori _letBind_3_, $28, 0 sll $3, $17, 2 # was: sll _tmp_35_, _size_reg_13_, 2 addi $3, $3, 4 # was: addi _tmp_35_, _tmp_35_, 4 add $28, $28, $3 # was: add $28, $28, _tmp_35_ sw $17, 0($16) # was: sw _size_reg_13_, 0(_letBind_3_) addi $18, $16, 4 # was: addi _addr_reg_17_, _letBind_3_, 4 ori $19, $0, 0 # was: ori _i_reg_18_, $0, 0 addi $20, $2, 4 # was: addi _elem_reg_15_, _arr_reg_14_, 4 _loop_beg_19_: sub $2, $19, $17 # was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_13_ bgez $2, _loop_end_20_ # was: bgez _tmp_reg_21_, _loop_end_20_ lw $21, 0($20) # was: lw _res_reg_16_, 0(_elem_reg_15_) addi $20, $20, 4 # was: addi _elem_reg_15_, _elem_reg_15_, 4 la $2, _Introdu_25_ # was: la _tmp_24_, _Introdu_25_ # _Introdu_25_: string "Introduce number " # ori _letBind_23_,_tmp_24_,0 # ori $2,_tmp_24_,0 jal putstring # was: jal putstring, $2 # ori _tmp_27_,_res_reg_16_,0 ori $2, $21, 0 # was: ori _letBind_26_, _tmp_27_, 0 # ori $2,_letBind_26_,0 jal putint # was: jal putint, $2 la $2, _aa__str_30_ # was: la _tmp_29_, _aa__str_30_ # _aa__str_30_: string ": " # ori _letBind_28_,_tmp_29_,0 # ori $2,_tmp_29_,0 jal putstring # was: jal putstring, $2 jal getint # was: jal getint, $2 ori $21, $2, 0 # was: ori _letBind_31_, $2, 0 la $2, _a__str__34_ # was: la _tmp_33_, _a__str__34_ # _a__str__34_: string "\n" # ori _letBind_32_,_tmp_33_,0 # ori $2,_tmp_33_,0 jal putstring # was: jal putstring, $2 # ori _fun_arg_res_22_,_letBind_31_,0 # ori _res_reg_16_,_fun_arg_res_22_,0 sw $21, 0($18) # was: sw _res_reg_16_, 0(_addr_reg_17_) addi $18, $18, 4 # was: addi _addr_reg_17_, _addr_reg_17_, 4 addi $19, $19, 1 # was: addi _i_reg_18_, _i_reg_18_, 1 j _loop_beg_19_ _loop_end_20_: # map # ori _arr_reg_38_,_letBind_3_,0 lw $5, 0($16) # was: lw _size_reg_37_, 0(_arr_reg_38_) # dynalloc ori $4, $28, 0 # was: ori _letBind_36_, $28, 0 sll $2, $5, 2 # was: sll _tmp_59_, _size_reg_37_, 2 addi $2, $2, 4 # was: addi _tmp_59_, _tmp_59_, 4 add $28, $28, $2 # was: add $28, $28, _tmp_59_ sw $5, 0($4) # was: sw _size_reg_37_, 0(_letBind_36_) addi $7, $4, 4 # was: addi _addr_reg_41_, _letBind_36_, 4 ori $6, $0, 0 # was: ori _i_reg_42_, $0, 0 addi $8, $16, 4 # was: addi _elem_reg_39_, _arr_reg_38_, 4 _loop_beg_43_: sub $2, $6, $5 # was: sub _tmp_reg_45_, _i_reg_42_, _size_reg_37_ bgez $2, _loop_end_44_ # was: bgez _tmp_reg_45_, _loop_end_44_ lw $9, 0($8) # was: lw _res_reg_40_, 0(_elem_reg_39_) addi $8, $8, 4 # was: addi _elem_reg_39_, _elem_reg_39_, 4 ori $3, $9, 0 # was: ori _letBind_48_, _res_reg_40_, 0 # ori _lt_L_53_,_letBind_48_,0 ori $2, $0, 0 # was: ori _lt_R_54_, $0, 0 slt $2, $3, $2 # was: slt _cond_52_, _lt_L_53_, _lt_R_54_ bne $2, $0, _then_49_ # was: bne _cond_52_, $0, _then_49_ j _else_50_ _then_49_: ori $3, $0, 0 # was: ori _letBind_47_, $0, 0 j _endif_51_ _else_50_: # ori _letBind_47_,_letBind_48_,0 _endif_51_: ori $2, $0, 4 # was: ori _size_reg_55_, $0, 4 # dynalloc ori $10, $28, 0 # was: ori _fun_arg_res_46_, $28, 0 sll $11, $2, 2 # was: sll _tmp_58_, _size_reg_55_, 2 addi $11, $11, 4 # was: addi _tmp_58_, _tmp_58_, 4 add $28, $28, $11 # was: add $28, $28, _tmp_58_ sw $2, 0($10) # was: sw _size_reg_55_, 0(_fun_arg_res_46_) addi $2, $10, 4 # was: addi _addr_reg_56_, _fun_arg_res_46_, 4 # ori _tmp_reg_57_,_letBind_47_,0 sw $3, 0($2) # was: sw _tmp_reg_57_, 0(_addr_reg_56_) addi $2, $2, 4 # was: addi _addr_reg_56_, _addr_reg_56_, 4 # ori _tmp_reg_57_,_letBind_47_,0 sw $3, 0($2) # was: sw _tmp_reg_57_, 0(_addr_reg_56_) addi $2, $2, 4 # was: addi _addr_reg_56_, _addr_reg_56_, 4 # ori _tmp_reg_57_,_letBind_47_,0 sw $3, 0($2) # was: sw _tmp_reg_57_, 0(_addr_reg_56_) addi $2, $2, 4 # was: addi _addr_reg_56_, _addr_reg_56_, 4 ori $3, $9, 0 # was: ori _tmp_reg_57_, _res_reg_40_, 0 sw $3, 0($2) # was: sw _tmp_reg_57_, 0(_addr_reg_56_) addi $2, $2, 4 # was: addi _addr_reg_56_, _addr_reg_56_, 4 ori $9, $10, 0 # was: ori _res_reg_40_, _fun_arg_res_46_, 0 sw $9, 0($7) # was: sw _res_reg_40_, 0(_addr_reg_41_) addi $7, $7, 4 # was: addi _addr_reg_41_, _addr_reg_41_, 4 addi $6, $6, 1 # was: addi _i_reg_42_, _i_reg_42_, 1 j _loop_beg_43_ _loop_end_44_: ori $2, $0, 4 # was: ori _size_reg_61_, $0, 4 # dynalloc ori $16, $28, 0 # was: ori _letBind_60_, $28, 0 sll $3, $2, 2 # was: sll _tmp_64_, _size_reg_61_, 2 addi $3, $3, 4 # was: addi _tmp_64_, _tmp_64_, 4 add $28, $28, $3 # was: add $28, $28, _tmp_64_ sw $2, 0($16) # was: sw _size_reg_61_, 0(_letBind_60_) addi $2, $16, 4 # was: addi _addr_reg_62_, _letBind_60_, 4 ori $3, $0, 0 # was: ori _tmp_reg_63_, $0, 0 sw $3, 0($2) # was: sw _tmp_reg_63_, 0(_addr_reg_62_) addi $2, $2, 4 # was: addi _addr_reg_62_, _addr_reg_62_, 4 ori $3, $0, 0 # was: ori _tmp_reg_63_, $0, 0 sw $3, 0($2) # was: sw _tmp_reg_63_, 0(_addr_reg_62_) addi $2, $2, 4 # was: addi _addr_reg_62_, _addr_reg_62_, 4 ori $3, $0, 0 # was: ori _tmp_reg_63_, $0, 0 sw $3, 0($2) # was: sw _tmp_reg_63_, 0(_addr_reg_62_) addi $2, $2, 4 # was: addi _addr_reg_62_, _addr_reg_62_, 4 ori $3, $0, 0 # was: ori _tmp_reg_63_, $0, 0 sw $3, 0($2) # was: sw _tmp_reg_63_, 0(_addr_reg_62_) addi $2, $2, 4 # was: addi _addr_reg_62_, _addr_reg_62_, 4 ori $2, $4, 0 # was: ori _arr_reg_65_, _letBind_36_, 0 lw $3, 0($2) # was: lw _size_reg_66_, 0(_arr_reg_65_) # ori _letBind_2_,_letBind_60_,0 addi $2, $2, 4 # was: addi _arr_reg_65_, _arr_reg_65_, 4 ori $4, $0, 0 # was: ori _ind_var_67_, $0, 0 _loop_beg_69_: sub $5, $4, $3 # was: sub _tmp_reg_68_, _ind_var_67_, _size_reg_66_ bgez $5, _loop_end_70_ # was: bgez _tmp_reg_68_, _loop_end_70_ lw $5, 0($2) # was: lw _tmp_reg_68_, 0(_arr_reg_65_) addi $2, $2, 4 # was: addi _arr_reg_65_, _arr_reg_65_, 4 ori $7, $0, 0 # was: ori _arr_ind_75_, $0, 0 addi $6, $16, 4 # was: addi _arr_reg_76_, _letBind_2_, 4 lw $8, 0($16) # was: lw _size_reg_77_, 0(_letBind_2_) bgez $7, _safe_lab_80_ # was: bgez _arr_ind_75_, _safe_lab_80_ _error_lab_79_: ori $5, $0, 28 # was: ori $5, $0, 28 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_80_: sub $8, $7, $8 # was: sub _tmp_reg_78_, _arr_ind_75_, _size_reg_77_ bgez $8, _error_lab_79_ # was: bgez _tmp_reg_78_, _error_lab_79_ sll $7, $7, 2 # was: sll _arr_ind_75_, _arr_ind_75_, 2 add $6, $6, $7 # was: add _arr_reg_76_, _arr_reg_76_, _arr_ind_75_ lw $8, 0($6) # was: lw _letBind_74_, 0(_arr_reg_76_) ori $6, $0, 0 # was: ori _arr_ind_82_, $0, 0 addi $7, $5, 4 # was: addi _arr_reg_83_, _tmp_reg_68_, 4 lw $9, 0($5) # was: lw _size_reg_84_, 0(_tmp_reg_68_) bgez $6, _safe_lab_87_ # was: bgez _arr_ind_82_, _safe_lab_87_ _error_lab_86_: ori $5, $0, 28 # was: ori $5, $0, 28 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_87_: sub $9, $6, $9 # was: sub _tmp_reg_85_, _arr_ind_82_, _size_reg_84_ bgez $9, _error_lab_86_ # was: bgez _tmp_reg_85_, _error_lab_86_ sll $6, $6, 2 # was: sll _arr_ind_82_, _arr_ind_82_, 2 add $7, $7, $6 # was: add _arr_reg_83_, _arr_reg_83_, _arr_ind_82_ lw $7, 0($7) # was: lw _letBind_81_, 0(_arr_reg_83_) # ori _lt_L_92_,_letBind_74_,0 # ori _lt_R_93_,_letBind_81_,0 slt $6, $8, $7 # was: slt _cond_91_, _lt_L_92_, _lt_R_93_ bne $6, $0, _then_88_ # was: bne _cond_91_, $0, _then_88_ j _else_89_ _then_88_: # ori _letBind_73_,_letBind_81_,0 j _endif_90_ _else_89_: ori $7, $8, 0 # was: ori _letBind_73_, _letBind_74_, 0 _endif_90_: ori $8, $0, 2 # was: ori _arr_ind_97_, $0, 2 addi $6, $16, 4 # was: addi _arr_reg_98_, _letBind_2_, 4 lw $9, 0($16) # was: lw _size_reg_99_, 0(_letBind_2_) bgez $8, _safe_lab_102_ # was: bgez _arr_ind_97_, _safe_lab_102_ _error_lab_101_: ori $5, $0, 28 # was: ori $5, $0, 28 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_102_: sub $9, $8, $9 # was: sub _tmp_reg_100_, _arr_ind_97_, _size_reg_99_ bgez $9, _error_lab_101_ # was: bgez _tmp_reg_100_, _error_lab_101_ sll $8, $8, 2 # was: sll _arr_ind_97_, _arr_ind_97_, 2 add $6, $6, $8 # was: add _arr_reg_98_, _arr_reg_98_, _arr_ind_97_ lw $9, 0($6) # was: lw _plus_L_95_, 0(_arr_reg_98_) ori $6, $0, 1 # was: ori _arr_ind_103_, $0, 1 addi $8, $5, 4 # was: addi _arr_reg_104_, _tmp_reg_68_, 4 lw $10, 0($5) # was: lw _size_reg_105_, 0(_tmp_reg_68_) bgez $6, _safe_lab_108_ # was: bgez _arr_ind_103_, _safe_lab_108_ _error_lab_107_: ori $5, $0, 28 # was: ori $5, $0, 28 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_108_: sub $10, $6, $10 # was: sub _tmp_reg_106_, _arr_ind_103_, _size_reg_105_ bgez $10, _error_lab_107_ # was: bgez _tmp_reg_106_, _error_lab_107_ sll $6, $6, 2 # was: sll _arr_ind_103_, _arr_ind_103_, 2 add $8, $8, $6 # was: add _arr_reg_104_, _arr_reg_104_, _arr_ind_103_ lw $6, 0($8) # was: lw _plus_R_96_, 0(_arr_reg_104_) add $6, $9, $6 # was: add _letBind_94_, _plus_L_95_, _plus_R_96_ # ori _lt_L_113_,_letBind_73_,0 # ori _lt_R_114_,_letBind_94_,0 slt $8, $7, $6 # was: slt _cond_112_, _lt_L_113_, _lt_R_114_ bne $8, $0, _then_109_ # was: bne _cond_112_, $0, _then_109_ j _else_110_ _then_109_: # ori _letBind_72_,_letBind_94_,0 j _endif_111_ _else_110_: ori $6, $7, 0 # was: ori _letBind_72_, _letBind_73_, 0 _endif_111_: ori $8, $0, 1 # was: ori _arr_ind_117_, $0, 1 addi $7, $16, 4 # was: addi _arr_reg_118_, _letBind_2_, 4 lw $9, 0($16) # was: lw _size_reg_119_, 0(_letBind_2_) bgez $8, _safe_lab_122_ # was: bgez _arr_ind_117_, _safe_lab_122_ _error_lab_121_: ori $5, $0, 29 # was: ori $5, $0, 29 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_122_: sub $9, $8, $9 # was: sub _tmp_reg_120_, _arr_ind_117_, _size_reg_119_ bgez $9, _error_lab_121_ # was: bgez _tmp_reg_120_, _error_lab_121_ sll $8, $8, 2 # was: sll _arr_ind_117_, _arr_ind_117_, 2 add $7, $7, $8 # was: add _arr_reg_118_, _arr_reg_118_, _arr_ind_117_ lw $7, 0($7) # was: lw _letBind_116_, 0(_arr_reg_118_) ori $9, $0, 3 # was: ori _arr_ind_126_, $0, 3 addi $8, $16, 4 # was: addi _arr_reg_127_, _letBind_2_, 4 lw $10, 0($16) # was: lw _size_reg_128_, 0(_letBind_2_) bgez $9, _safe_lab_131_ # was: bgez _arr_ind_126_, _safe_lab_131_ _error_lab_130_: ori $5, $0, 29 # was: ori $5, $0, 29 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_131_: sub $10, $9, $10 # was: sub _tmp_reg_129_, _arr_ind_126_, _size_reg_128_ bgez $10, _error_lab_130_ # was: bgez _tmp_reg_129_, _error_lab_130_ sll $9, $9, 2 # was: sll _arr_ind_126_, _arr_ind_126_, 2 add $8, $8, $9 # was: add _arr_reg_127_, _arr_reg_127_, _arr_ind_126_ lw $8, 0($8) # was: lw _plus_L_124_, 0(_arr_reg_127_) ori $10, $0, 1 # was: ori _arr_ind_132_, $0, 1 addi $9, $5, 4 # was: addi _arr_reg_133_, _tmp_reg_68_, 4 lw $11, 0($5) # was: lw _size_reg_134_, 0(_tmp_reg_68_) bgez $10, _safe_lab_137_ # was: bgez _arr_ind_132_, _safe_lab_137_ _error_lab_136_: ori $5, $0, 29 # was: ori $5, $0, 29 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_137_: sub $11, $10, $11 # was: sub _tmp_reg_135_, _arr_ind_132_, _size_reg_134_ bgez $11, _error_lab_136_ # was: bgez _tmp_reg_135_, _error_lab_136_ sll $10, $10, 2 # was: sll _arr_ind_132_, _arr_ind_132_, 2 add $9, $9, $10 # was: add _arr_reg_133_, _arr_reg_133_, _arr_ind_132_ lw $9, 0($9) # was: lw _plus_R_125_, 0(_arr_reg_133_) add $8, $8, $9 # was: add _letBind_123_, _plus_L_124_, _plus_R_125_ # ori _lt_L_142_,_letBind_116_,0 # ori _lt_R_143_,_letBind_123_,0 slt $9, $7, $8 # was: slt _cond_141_, _lt_L_142_, _lt_R_143_ bne $9, $0, _then_138_ # was: bne _cond_141_, $0, _then_138_ j _else_139_ _then_138_: ori $7, $8, 0 # was: ori _letBind_115_, _letBind_123_, 0 j _endif_140_ _else_139_: # ori _letBind_115_,_letBind_116_,0 _endif_140_: ori $8, $0, 2 # was: ori _arr_ind_148_, $0, 2 addi $9, $16, 4 # was: addi _arr_reg_149_, _letBind_2_, 4 lw $10, 0($16) # was: lw _size_reg_150_, 0(_letBind_2_) bgez $8, _safe_lab_153_ # was: bgez _arr_ind_148_, _safe_lab_153_ _error_lab_152_: ori $5, $0, 30 # was: ori $5, $0, 30 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_153_: sub $10, $8, $10 # was: sub _tmp_reg_151_, _arr_ind_148_, _size_reg_150_ bgez $10, _error_lab_152_ # was: bgez _tmp_reg_151_, _error_lab_152_ sll $8, $8, 2 # was: sll _arr_ind_148_, _arr_ind_148_, 2 add $9, $9, $8 # was: add _arr_reg_149_, _arr_reg_149_, _arr_ind_148_ lw $10, 0($9) # was: lw _plus_L_146_, 0(_arr_reg_149_) ori $8, $0, 3 # was: ori _arr_ind_154_, $0, 3 addi $9, $5, 4 # was: addi _arr_reg_155_, _tmp_reg_68_, 4 lw $11, 0($5) # was: lw _size_reg_156_, 0(_tmp_reg_68_) bgez $8, _safe_lab_159_ # was: bgez _arr_ind_154_, _safe_lab_159_ _error_lab_158_: ori $5, $0, 30 # was: ori $5, $0, 30 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_159_: sub $11, $8, $11 # was: sub _tmp_reg_157_, _arr_ind_154_, _size_reg_156_ bgez $11, _error_lab_158_ # was: bgez _tmp_reg_157_, _error_lab_158_ sll $8, $8, 2 # was: sll _arr_ind_154_, _arr_ind_154_, 2 add $9, $9, $8 # was: add _arr_reg_155_, _arr_reg_155_, _arr_ind_154_ lw $8, 0($9) # was: lw _plus_R_147_, 0(_arr_reg_155_) add $8, $10, $8 # was: add _letBind_145_, _plus_L_146_, _plus_R_147_ ori $9, $0, 2 # was: ori _arr_ind_161_, $0, 2 addi $10, $5, 4 # was: addi _arr_reg_162_, _tmp_reg_68_, 4 lw $11, 0($5) # was: lw _size_reg_163_, 0(_tmp_reg_68_) bgez $9, _safe_lab_166_ # was: bgez _arr_ind_161_, _safe_lab_166_ _error_lab_165_: ori $5, $0, 30 # was: ori $5, $0, 30 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_166_: sub $11, $9, $11 # was: sub _tmp_reg_164_, _arr_ind_161_, _size_reg_163_ bgez $11, _error_lab_165_ # was: bgez _tmp_reg_164_, _error_lab_165_ sll $9, $9, 2 # was: sll _arr_ind_161_, _arr_ind_161_, 2 add $10, $10, $9 # was: add _arr_reg_162_, _arr_reg_162_, _arr_ind_161_ lw $9, 0($10) # was: lw _letBind_160_, 0(_arr_reg_162_) # ori _lt_L_171_,_letBind_145_,0 # ori _lt_R_172_,_letBind_160_,0 slt $10, $8, $9 # was: slt _cond_170_, _lt_L_171_, _lt_R_172_ bne $10, $0, _then_167_ # was: bne _cond_170_, $0, _then_167_ j _else_168_ _then_167_: ori $8, $9, 0 # was: ori _letBind_144_, _letBind_160_, 0 j _endif_169_ _else_168_: # ori _letBind_144_,_letBind_145_,0 _endif_169_: ori $10, $0, 3 # was: ori _arr_ind_176_, $0, 3 addi $9, $16, 4 # was: addi _arr_reg_177_, _letBind_2_, 4 lw $11, 0($16) # was: lw _size_reg_178_, 0(_letBind_2_) bgez $10, _safe_lab_181_ # was: bgez _arr_ind_176_, _safe_lab_181_ _error_lab_180_: ori $5, $0, 31 # was: ori $5, $0, 31 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_181_: sub $11, $10, $11 # was: sub _tmp_reg_179_, _arr_ind_176_, _size_reg_178_ bgez $11, _error_lab_180_ # was: bgez _tmp_reg_179_, _error_lab_180_ sll $10, $10, 2 # was: sll _arr_ind_176_, _arr_ind_176_, 2 add $9, $9, $10 # was: add _arr_reg_177_, _arr_reg_177_, _arr_ind_176_ lw $10, 0($9) # was: lw _plus_L_174_, 0(_arr_reg_177_) ori $11, $0, 3 # was: ori _arr_ind_182_, $0, 3 addi $9, $5, 4 # was: addi _arr_reg_183_, _tmp_reg_68_, 4 lw $5, 0($5) # was: lw _size_reg_184_, 0(_tmp_reg_68_) bgez $11, _safe_lab_187_ # was: bgez _arr_ind_182_, _safe_lab_187_ _error_lab_186_: ori $5, $0, 31 # was: ori $5, $0, 31 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_187_: sub $5, $11, $5 # was: sub _tmp_reg_185_, _arr_ind_182_, _size_reg_184_ bgez $5, _error_lab_186_ # was: bgez _tmp_reg_185_, _error_lab_186_ sll $11, $11, 2 # was: sll _arr_ind_182_, _arr_ind_182_, 2 add $9, $9, $11 # was: add _arr_reg_183_, _arr_reg_183_, _arr_ind_182_ lw $5, 0($9) # was: lw _plus_R_175_, 0(_arr_reg_183_) add $9, $10, $5 # was: add _letBind_173_, _plus_L_174_, _plus_R_175_ ori $5, $0, 4 # was: ori _size_reg_188_, $0, 4 # dynalloc ori $16, $28, 0 # was: ori _fun_arg_res_71_, $28, 0 sll $10, $5, 2 # was: sll _tmp_191_, _size_reg_188_, 2 addi $10, $10, 4 # was: addi _tmp_191_, _tmp_191_, 4 add $28, $28, $10 # was: add $28, $28, _tmp_191_ sw $5, 0($16) # was: sw _size_reg_188_, 0(_fun_arg_res_71_) addi $5, $16, 4 # was: addi _addr_reg_189_, _fun_arg_res_71_, 4 # ori _tmp_reg_190_,_letBind_72_,0 sw $6, 0($5) # was: sw _tmp_reg_190_, 0(_addr_reg_189_) addi $5, $5, 4 # was: addi _addr_reg_189_, _addr_reg_189_, 4 ori $6, $7, 0 # was: ori _tmp_reg_190_, _letBind_115_, 0 sw $6, 0($5) # was: sw _tmp_reg_190_, 0(_addr_reg_189_) addi $5, $5, 4 # was: addi _addr_reg_189_, _addr_reg_189_, 4 ori $6, $8, 0 # was: ori _tmp_reg_190_, _letBind_144_, 0 sw $6, 0($5) # was: sw _tmp_reg_190_, 0(_addr_reg_189_) addi $5, $5, 4 # was: addi _addr_reg_189_, _addr_reg_189_, 4 ori $6, $9, 0 # was: ori _tmp_reg_190_, _letBind_173_, 0 sw $6, 0($5) # was: sw _tmp_reg_190_, 0(_addr_reg_189_) addi $5, $5, 4 # was: addi _addr_reg_189_, _addr_reg_189_, 4 # ori _letBind_2_,_fun_arg_res_71_,0 addi $4, $4, 1 # was: addi _ind_var_67_, _ind_var_67_, 1 j _loop_beg_69_ _loop_end_70_: la $2, _aaMSSPa_194_ # was: la _tmp_193_, _aaMSSPa_194_ # _aaMSSPa_194_: string "\n\nMSSP result is: " # ori _letBind_192_,_tmp_193_,0 # ori $2,_tmp_193_,0 jal putstring # was: jal putstring, $2 ori $3, $0, 0 # was: ori _arr_ind_196_, $0, 0 addi $2, $16, 4 # was: addi _arr_reg_197_, _letBind_2_, 4 lw $4, 0($16) # was: lw _size_reg_198_, 0(_letBind_2_) bgez $3, _safe_lab_201_ # was: bgez _arr_ind_196_, _safe_lab_201_ _error_lab_200_: ori $5, $0, 44 # was: ori $5, $0, 44 la $6, _Msg_IllegalIndex_ # was: la $6, _Msg_IllegalIndex_ j _RuntimeError_ _safe_lab_201_: sub $4, $3, $4 # was: sub _tmp_reg_199_, _arr_ind_196_, _size_reg_198_ bgez $4, _error_lab_200_ # was: bgez _tmp_reg_199_, _error_lab_200_ sll $3, $3, 2 # was: sll _arr_ind_196_, _arr_ind_196_, 2 add $2, $2, $3 # was: add _arr_reg_197_, _arr_reg_197_, _arr_ind_196_ lw $16, 0($2) # was: lw _tmp_195_, 0(_arr_reg_197_) # ori _mainres_1_,_tmp_195_,0 ori $2, $16, 0 # was: ori $2, _mainres_1_, 0 jal putint # was: jal putint, $2 ori $2, $16, 0 # was: ori $2, _mainres_1_, 0 addi $29, $29, 32 lw $21, -28($29) lw $20, -24($29) lw $19, -20($29) lw $18, -16($29) lw $17, -12($29) lw $16, -8($29) lw $31, -4($29) jr $31 ord: jr $31 chr: andi $2, $2, 255 jr $31 putint: addi $29, $29, -8 sw $2, 0($29) sw $4, 4($29) ori $4, $2, 0 ori $2, $0, 1 syscall ori $2, $0, 4 la $4, _space_ syscall lw $2, 0($29) lw $4, 4($29) addi $29, $29, 8 jr $31 getint: ori $2, $0, 5 syscall jr $31 putchar: addi $29, $29, -8 sw $2, 0($29) sw $4, 4($29) ori $4, $2, 0 ori $2, $0, 11 syscall ori $2, $0, 4 la $4, _space_ syscall lw $2, 0($29) lw $4, 4($29) addi $29, $29, 8 jr $31 getchar: addi $29, $29, -8 sw $4, 0($29) sw $5, 4($29) ori $2, $0, 12 syscall ori $5, $2, 0 ori $2, $0, 4 la $4, _cr_ syscall ori $2, $5, 0 lw $4, 0($29) lw $5, 4($29) addi $29, $29, 8 jr $31 putstring: addi $29, $29, -16 sw $2, 0($29) sw $4, 4($29) sw $5, 8($29) sw $6, 12($29) lw $4, 0($2) addi $5, $2, 4 add $6, $5, $4 ori $2, $0, 11 putstring_begin: sub $4, $5, $6 bgez $4, putstring_done lb $4, 0($5) syscall addi $5, $5, 1 j putstring_begin putstring_done: lw $2, 0($29) lw $4, 4($29) lw $5, 8($29) lw $6, 12($29) addi $29, $29, 16 jr $31 _RuntimeError_: la $4, _ErrMsg_ ori $2, $0, 4 syscall ori $4, $5, 0 ori $2, $0, 1 syscall la $4, _colon_space_ ori $2, $0, 4 syscall ori $4, $6, 0 ori $2, $0, 4 syscall la $4, _cr_ ori $2, $0, 4 syscall j _stop_ .data # Fixed strings for I/O _ErrMsg_: .asciiz "Runtime error at line " _colon_space_: .asciiz ": " _cr_: .asciiz "\n" _space_: .asciiz " " # Message strings for specific errors _Msg_IllegalArraySize_: .asciiz "negative array size" _Msg_IllegalIndex_: .asciiz "array index out of bounds" _Msg_DivZero_: .asciiz "division by zero" # String Literals .align 2 _aaMSSPa_194_: .space 4 .asciiz "\n\nMSSP result is: " .align 2 _a__str__34_: .space 4 .asciiz "\n" .align 2 _aa__str_30_: .space 4 .asciiz ": " .align 2 _Introdu_25_: .space 4 .asciiz "Introduce number " .align 2 _true: .space 4 .asciiz "true" .align 2 _false: .space 4 .asciiz "false" .align 2 _heap_: .space 100000