Annotation of OpenXM_contrib2/asir2000/gc/mips_sgi_mach_dep.S, Revision 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: .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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>