Synopsis - Cross-Reference
File: /src/Synopsis/gc/mips_sgi_mach_dep.s1#include <sys/regdef.h> 2#include <sys/asm.h> 3/* This file must be preprocessed. But the SGI assembler always does */ 4/* that. Furthermore, a generic preprocessor won't do, since some of */ 5/* the SGI-supplied include files rely on behavior of the MIPS */ 6/* assembler. Hence we treat and name this file as though it required */ 7/* no preprocessing. */ 8 9# define call_push(x) move $4,x; jal GC_push_one 10 11 .option pic2 12 .text 13/* Mark from machine registers that are saved by C compiler */ 14# define FRAMESZ 32 15# define RAOFF FRAMESZ-SZREG 16# define GPOFF FRAMESZ-(2*SZREG) 17 NESTED(GC_push_regs, FRAMESZ, ra) 18 .mask 0x80000000,-SZREG # inform debugger of saved ra loc 19 move t0,gp 20 SETUP_GPX(t8) 21 PTR_SUBU sp,FRAMESZ 22# ifdef SETUP_GP64 23 SETUP_GP64(GPOFF, GC_push_regs) 24# endif 25 SAVE_GP(GPOFF) 26 REG_S ra,RAOFF(sp) 27# if (_MIPS_SIM == _MIPS_SIM_ABI32) 28 call_push($2) 29 call_push($3) 30# endif 31 call_push($16) 32 call_push($17) 33 call_push($18) 34 call_push($19) 35 call_push($20) 36 call_push($21) 37 call_push($22) 38 call_push($23) 39 call_push($30) 40 REG_L ra,RAOFF(sp) 41# ifdef RESTORE_GP64 42 RESTORE_GP64 43# endif 44 PTR_ADDU sp,FRAMESZ 45 j ra 46 .end GC_push_regs