blob: 178224e31c8d6b6ad96d42a01e5373380222c5ec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# define call_push(x) move $4,x; jal GC_push_one
.text
# Mark from machine registers that are saved by C compiler
.globl GC_push_regs
.ent GC_push_regs
GC_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 GC_push_regs
|