1# define call_push(x) move $4,x; jal GC_push_one 2 3 .text 4 # Mark from machine registers that are saved by C compiler 5 .globl GC_push_regs 6 .ent GC_push_regs 7GC_push_regs: 8 subu $sp,8 ## Need to save only return address 9 sw $31,4($sp) 10 .mask 0x80000000,-4 11 .frame $sp,8,$31 12 call_push($2) 13 call_push($3) 14 call_push($16) 15 call_push($17) 16 call_push($18) 17 call_push($19) 18 call_push($20) 19 call_push($21) 20 call_push($22) 21 call_push($23) 22 call_push($30) 23 lw $31,4($sp) 24 addu $sp,8 25 j $31 26 .end GC_push_regs 27