[BACK]Return to mips_sgi_mach_dep.S CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / gc

File: [local] / OpenXM_contrib2 / asir2000 / gc / mips_sgi_mach_dep.S (download)

Revision 1.1, Wed Jul 24 08:00:10 2002 UTC (21 years, 9 months ago) by noro
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9

Added gc6.1alpha5.

#include <sys/regdef.h>
#include <sys/asm.h>

# define call_push(x)     move    $4,x;    jal     GC_push_one

    .option pic2
    .text
/* Mark from machine registers that are saved by C compiler */
#   define FRAMESZ 32
#   define RAOFF FRAMESZ-SZREG
#   define GPOFF FRAMESZ-(2*SZREG)
    NESTED(GC_push_regs, FRAMESZ, ra)
    .mask 0x80000000,-SZREG	# inform debugger of saved ra loc
    move 	t0,gp
    SETUP_GPX(t8)
    PTR_SUBU	sp,FRAMESZ
#   ifdef SETUP_GP64
      SETUP_GP64(GPOFF, GC_push_regs)
#   endif
    SAVE_GP(GPOFF)
    REG_S 	ra,RAOFF(sp)
#   if (_MIPS_SIM == _MIPS_SIM_ABI32)
    	call_push($2)
    	call_push($3)
#   endif
    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)
    REG_L	ra,RAOFF(sp)
#   ifdef RESTORE_GP64
      RESTORE_GP64
#   endif
    PTR_ADDU	sp,FRAMESZ
    j		ra
    .end    GC_push_regs