|
Last change
on this file was 2, checked in by bird, 23 years ago |
|
Initial revision
|
-
Property cvs2svn:cvs-rev
set to
1.1
-
Property svn:eol-style
set to
native
-
Property svn:executable
set to
*
|
|
File size:
949 bytes
|
| Line | |
|---|
| 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 | .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
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.