The following code is an incomplete recursive function, gen, written in MIPS assembly language. Assume that the parameter n is in register $a0, and that the return value is stored in $v0. The function should use the minimum number of stack operations. Here is the function:
F(n) = 5 if n < 10
F(n) = F(n / 2) + n if n > 10
Complete this function by filling in the blanks.
gen:
li $t1, 10
slt $t0, $a0, $t1
beq $t0, $zero, recurse
li $v0, 5
jr $ra
recurse:
addiu $sp, $sp, -4
sw $ra, 0($sp)
addiu $a0, $a0, -2
jal gen
lw $ra, 0($sp)
addiu $sp, $sp, 4
addu $v0, $v0, $a0
jr $ra