# define call_push(x) move $4,x; jal GCROOTS_push_one .text # Mark from machine registers that are saved by C compiler .globl GCROOTS_push_regs .ent GCROOTS_push_regs GCROOTS_push_regs: subu $sp,8 ## Need to save only return address sw $31,4($sp) .mask 0x80000000,-4 .frame $sp,8,$31 call_push($2) call_push($3) call_push($16) call_push($17) call_push($18) call_push($19) call_push($20) call_push($21) call_push($22) call_push($23) call_push($30) lw $31,4($sp) addu $sp,8 j $31 .end GCROOTS_push_regs