infix sw -4(r14), r30 ; save old fp
add r30, r14, r0 ; fp = sp
subi r14, r14, 20 ; frame size
sw 0(r14), r31 ; saving registers
sw 4(r14), r3
sw 8(r14), r4
sw 12(r14), r5
infixLoop lw r3, (r30) ; load curr node
seq r5, r4, r0 ; curr node null?
bt r5, infixReturn ; returns to previous node
lw r1, 4(r3) ; r1 -> left
sw -4(r14), r1 ; ->left = '-24(r14)'
subui r14, r14, 4 ; create space for it
jal infix ; save r31 and go to next node
; from return (last line)
addui r14, r14, 4
jal strPut ; print node
addui r1, r0, "\r"
jal strPut
addui r1, r0, "\n"
jal strPut
addi r30, r30, 4 ; next node
infixReturn lw r31, 0(r14) ; restoring registers
lw r3, 4(r14)
lw r4, 8(r14)
lw r5, 12(r14)
addu r14, r30, r0 ; release stack space
lw r30, -4(r14)
jr r31 ; return