]>
Commit | Line | Data |
---|---|---|
ca77b9e1 BM |
1 | #include <sys/regdef.h> |
2 | #include <sys/asm.h> | |
3 | ||
4 | # define call_push(x) move $4,x; jal GC_push_one | |
5 | ||
6 | .option pic2 | |
7 | .text | |
8 | /* Mark from machine registers that are saved by C compiler */ | |
9 | # define FRAMESZ 32 | |
10 | # define RAOFF FRAMESZ-SZREG | |
11 | # define GPOFF FRAMESZ-(2*SZREG) | |
12 | NESTED(GC_push_regs, FRAMESZ, ra) | |
13 | .mask 0x80000000,-SZREG # inform debugger of saved ra loc | |
14 | move t0,gp | |
15 | SETUP_GPX(t8) | |
16 | PTR_SUBU sp,FRAMESZ | |
17 | # ifdef SETUP_GP64 | |
18 | SETUP_GP64(GPOFF, GC_push_regs) | |
19 | # endif | |
20 | SAVE_GP(GPOFF) | |
21 | REG_S ra,RAOFF(sp) | |
22 | # if (_MIPS_SIM == _MIPS_SIM_ABI32) | |
23 | call_push($2) | |
24 | call_push($3) | |
25 | # endif | |
26 | call_push($16) | |
27 | call_push($17) | |
28 | call_push($18) | |
29 | call_push($19) | |
30 | call_push($20) | |
31 | call_push($21) | |
32 | call_push($22) | |
33 | call_push($23) | |
34 | call_push($30) | |
35 | REG_L ra,RAOFF(sp) | |
36 | # ifdef RESTORE_GP64 | |
37 | RESTORE_GP64 | |
38 | # endif | |
39 | PTR_ADDU sp,FRAMESZ | |
40 | j ra | |
41 | .end GC_push_regs |