* config/alpha/alpha.c (some_small_symbolic_operand,
[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