OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [boehm-gc/] [mips_sgi_mach_dep.s] - Blame information for rev 841

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 721 jeremybenn
#include <sys/regdef.h>
2
#include <sys/asm.h>
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.                                                    */
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)
27
#   if (_MIPS_SIM == _ABIO32)
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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.