Initial revision
This commit is contained in:
40
gc/mips_sgi_mach_dep.s
Normal file
40
gc/mips_sgi_mach_dep.s
Normal file
@@ -0,0 +1,40 @@
|
||||
#include <sys/regdef.h>
|
||||
#include <sys/asm.h>
|
||||
|
||||
# define call_push(x) move $4,x; jal GC_push_one
|
||||
|
||||
.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
|
Reference in New Issue
Block a user