* gcc.dg/ultrasp2.c: Don't run it with -m64 on sparc-*-*.
[official-gcc.git] / boehm-gc / mips_sgi_mach_dep.s
blobbae9b5ebfe4117be1c262d8239eb14cbce5eb2ad
1 #include <sys/regdef.h>
2 #include <sys/asm.h>
4 # define call_push(x) move $4,x; jal GC_push_one
6 .option pic2
7 .text
8 /* Mark from machine registers that are saved by C compiler */
9 # define FRAMESZ 32
10 # define RAOFF FRAMESZ-SZREG
11 # define GPOFF FRAMESZ-(2*SZREG)
12 NESTED(GC_push_regs, FRAMESZ, ra)
13 .mask 0x80000000,-SZREG # inform debugger of saved ra loc
14 move t0,gp
15 SETUP_GPX(t8)
16 PTR_SUBU sp,FRAMESZ
17 # ifdef SETUP_GP64
18 SETUP_GP64(GPOFF, GC_push_regs)
19 # endif
20 SAVE_GP(GPOFF)
21 REG_S ra,RAOFF(sp)
22 # if (_MIPS_SIM == _MIPS_SIM_ABI32)
23 call_push($2)
24 call_push($3)
25 # endif
26 call_push($16)
27 call_push($17)
28 call_push($18)
29 call_push($19)
30 call_push($20)
31 call_push($21)
32 call_push($22)
33 call_push($23)
34 call_push($30)
35 REG_L ra,RAOFF(sp)
36 # ifdef RESTORE_GP64
37 RESTORE_GP64
38 # endif
39 PTR_ADDU sp,FRAMESZ
40 j ra
41 .end GC_push_regs