OSDN Git Service

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