Annotation of OpenXM_contrib2/asir2000/gc/mips_sgi_mach_dep.s, Revision 1.1.1.1
1.1 noro 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: .text
7: /* Mark from machine registers that are saved by C compiler */
8: # define FRAMESZ 32
9: # define RAOFF FRAMESZ-SZREG
10: # define GPOFF FRAMESZ-(2*SZREG)
11: NESTED(GC_push_regs, FRAMESZ, ra)
12: .mask 0x80000000,-SZREG # inform debugger of saved ra loc
13: move t0,gp
14: SETUP_GPX(t8)
15: PTR_SUBU sp,FRAMESZ
16: # ifdef SETUP_GP64
17: SETUP_GP64(GPOFF, GC_push_regs)
18: # endif
19: SAVE_GP(GPOFF)
20: REG_S ra,RAOFF(sp)
21: # if (_MIPS_SIM == _MIPS_SIM_ABI32)
22: call_push($2)
23: call_push($3)
24: # endif
25: call_push($16)
26: call_push($17)
27: call_push($18)
28: call_push($19)
29: call_push($20)
30: call_push($21)
31: call_push($22)
32: call_push($23)
33: call_push($30)
34: REG_L ra,RAOFF(sp)
35: # ifdef RESTORE_GP64
36: RESTORE_GP64
37: # endif
38: PTR_ADDU sp,FRAMESZ
39: j ra
40: .end GC_push_regs
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>