Annotation of OpenXM_contrib/gc/mips_sgi_mach_dep.s, Revision 1.1
1.1 ! maekawa 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>