diff options
author | Tom Tromey <tromey@gcc.gnu.org> | 1999-04-07 08:01:30 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1999-04-07 08:01:30 +0000 |
commit | 73ffefd017128fecccdd52aa8b6fb9f042e0bbb8 (patch) | |
tree | e6d8fcc8767be9361e18c552ee43ecfc3b4fdea8 /boehm-gc/mips_sgi_mach_dep.s | |
parent | c46bb2fd3d0119fff60915dbefc4e0aa3147e8a2 (diff) | |
download | gcc-73ffefd017128fecccdd52aa8b6fb9f042e0bbb8.tar.gz |
Initial revision
From-SVN: r26246
Diffstat (limited to 'boehm-gc/mips_sgi_mach_dep.s')
-rw-r--r-- | boehm-gc/mips_sgi_mach_dep.s | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/boehm-gc/mips_sgi_mach_dep.s b/boehm-gc/mips_sgi_mach_dep.s new file mode 100644 index 00000000000..03c4b98060c --- /dev/null +++ b/boehm-gc/mips_sgi_mach_dep.s @@ -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 |