diff options
author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-07-10 14:21:11 +0000 |
---|---|---|
committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-07-10 14:21:11 +0000 |
commit | bb118b7356439a930be13962ced5f36aab9f74bf (patch) | |
tree | 5a9fad8dd6dc7f236bfc8e6b22c04cad0b837928 /gc/mips_sgi_mach_dep.S | |
parent | delete old ftp site (diff) | |
download | w3m-bb118b7356439a930be13962ced5f36aab9f74bf.tar.gz w3m-bb118b7356439a930be13962ced5f36aab9f74bf.zip |
import gc6.1alpha5
Diffstat (limited to 'gc/mips_sgi_mach_dep.S')
-rw-r--r-- | gc/mips_sgi_mach_dep.S | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gc/mips_sgi_mach_dep.S b/gc/mips_sgi_mach_dep.S new file mode 100644 index 0000000..bae9b5e --- /dev/null +++ b/gc/mips_sgi_mach_dep.S @@ -0,0 +1,41 @@ +#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 |