]> git.ipfire.org Git - thirdparty/gcc.git/blame - boehm-gc/mips_sgi_mach_dep.s
MAINTAINERS: Update my email address in WAA section.
[thirdparty/gcc.git] / boehm-gc / mips_sgi_mach_dep.s
CommitLineData
ca77b9e1
BM
1#include <sys/regdef.h>
2#include <sys/asm.h>
30c3de1f
JS
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. */
ca77b9e1
BM
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)
27d54b2a 27# if (_MIPS_SIM == _ABIO32)
ca77b9e1
BM
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