Answer:
int f(int a, int b, int c) {
return func(func(a, b), c);
}
f: addiu $sp, $sp, -8 # allocate frame = 8 bytes
sw $ra, 0($sp) # save return address
sw $a2, 4($sp) # save c
jal func # call func(a,b)
move $a0, $v0 # $a0 = result of func(a,b)
lw $a1, 4($sp) # $a1 = c
jal func # call func(func(a,b),c)
lw $ra, 0($sp) # restore return address
addiu $sp, $sp, 8 # free stack frame
jr $ra # return to caller