Вот вывод GodBolt (с флагами -O3)
f:
blez $4,.L7
move $2,$5
.L3:
addu $2,$2,$4
addiu $4,$4,-1
bne $4,$0,.L3
nop
.L7:
j $31
nop
Конечно, если вы превратите это в «как есть», не понимая этого, вы ошибаетесь сами и вполне можете столкнуться с проблемамитвой класс.Также обратите внимание, что компилятор поменял вашу рекурсивную функцию на итеративную :) Не стесняйтесь компилировать с различными уровнями оптимизации, чтобы увидеть, насколько грязным может быть компилятор.
Или ... спросите TA, учителя илисокурсники вашего класса за помощь.