
240 An Introduction to Compiler Construction in a Java World
sw $t6 ,0( $sp) # Save r e g i s t er $t6
addiu $fp , $sp ,32 # Save frame pointer
Factorial . co m p u teIter .0:
Factorial . co m p u teIter .1:
li $t0 ,1
move $t1 , $a0
move $t2 , $t0
Factorial . co m p u teIter .2:
li $t3 ,0
ble $t1 , $t3 , F a c torial . comp u t eIter .4
j F a c torial . comp u t e Iter .3
Factorial . co m p u teIter .3:
li $t4 , -1
add $t5 , $t1 , $t4
mul $t6 , $t2 , $t1
move $t2 , $t6
move $t1 , $t5
j F a c torial . comp u t e Iter .2
Factorial . co m p u teIter .4:
move $v0 , $t2
j F a c torial . comp u t e Iter . restore
Factorial . co m p u teIter . restore :
lw $ra ,32( $sp