51488
|
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
|
|
7 GC_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
|