/[cmucl]/src/lisp/sparc-lispregs.h
ViewVC logotype

Diff of /src/lisp/sparc-lispregs.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by ram, Mon Oct 24 19:51:49 1994 UTC revision 1.10 by rtoy, Thu Sep 15 18:26:52 2005 UTC
# Line 1  Line 1 
1  /* $Header$ */  /* $Header$ */
2    
3    #ifndef _SPARC_LISPREGS_H_
4    #define _SPARC_LISPREGS_H_
5    
6  #ifdef LANGUAGE_ASSEMBLY  #ifdef LANGUAGE_ASSEMBLY
7    
# Line 32  Line 33 
33    
34  #endif  #endif
35    
36    #define GREG_NUM(num) (num)
37    #define OREG_NUM(num) ((num)+8)
38    #define LREG_NUM(num) ((num)+16)
39    #define IREG_NUM(num) ((num)+24)
40    
41  #define NREGS   (32)  #define NREGS   (32)
42    
43    /*
44     * Define all the Lisp registers appropriately for assembly and C.
45     * The registers ending with NUM are meant for use in assembly
46     * routines where we need the register number for getting SC_OFFSET
47     */
48  #define reg_ZERO        GREG(0)  #define reg_ZERO        GREG(0)
49    #define reg_ZERO_NUM    GREG_NUM(0)
50  #define reg_ALLOC       GREG(1)  #define reg_ALLOC       GREG(1)
51    #define reg_ALLOC_NUM   GREG_NUM(1)
52  #define reg_NIL         GREG(2)  #define reg_NIL         GREG(2)
53    #define reg_NIL_NUM     GREG_NUM(2)
54  #define reg_CSP         GREG(3)  #define reg_CSP         GREG(3)
55    #define reg_CSP_NUM     GREG_NUM(3)
56  #define reg_CFP         GREG(4)  #define reg_CFP         GREG(4)
57    #define reg_CFP_NUM     GREG_NUM(4)
58  #define reg_BSP         GREG(5)  #define reg_BSP         GREG(5)
59  #define reg_NFP         GREG(6)  #define reg_BSP_NUM     GREG_NUM(5)
60  #define reg_CFUNC       GREG(7)  /* %g6 and %g7 are supposed to be reserved for the system */
61    
62  #define reg_NL0         OREG(0)  #define reg_NL0         OREG(0)
63    #define reg_NL0_NUM     OREG_NUM(0)
64  #define reg_NL1         OREG(1)  #define reg_NL1         OREG(1)
65    #define reg_NL1_NUM     OREG_NUM(1)
66  #define reg_NL2         OREG(2)  #define reg_NL2         OREG(2)
67    #define reg_NL2_NUM     OREG_NUM(2)
68  #define reg_NL3         OREG(3)  #define reg_NL3         OREG(3)
69    #define reg_NL3_NUM     OREG_NUM(3)
70  #define reg_NL4         OREG(4)  #define reg_NL4         OREG(4)
71    #define reg_NL4_NUM     OREG_NUM(4)
72  #define reg_NL5         OREG(5)  #define reg_NL5         OREG(5)
73    #define reg_NL5_NUM     OREG_NUM(5)
74  #define reg_NSP         OREG(6)  #define reg_NSP         OREG(6)
75    #define reg_NSP_NUM     OREG_NUM(6)
76  #define reg_NARGS       OREG(7)  #define reg_NARGS       OREG(7)
77    #define reg_NARGS_NUM   OREG_NUM(7)
78    
79  #define reg_A0          LREG(0)  #define reg_A0          LREG(0)
80    #define reg_A0_NUM      LREG_NUM(0)
81  #define reg_A1          LREG(1)  #define reg_A1          LREG(1)
82    #define reg_A1_NUM      LREG_NUM(1)
83  #define reg_A2          LREG(2)  #define reg_A2          LREG(2)
84    #define reg_A2_NUM      LREG_NUM(2)
85  #define reg_A3          LREG(3)  #define reg_A3          LREG(3)
86    #define reg_A3_NUM      LREG_NUM(3)
87  #define reg_A4          LREG(4)  #define reg_A4          LREG(4)
88    #define reg_A4_NUM      LREG_NUM(4)
89  #define reg_A5          LREG(5)  #define reg_A5          LREG(5)
90    #define reg_A5_NUM      LREG_NUM(5)
91  #define reg_OCFP        LREG(6)  #define reg_OCFP        LREG(6)
92    #define reg_OCFP_NUM    LREG_NUM(6)
93  #define reg_LRA         LREG(7)  #define reg_LRA         LREG(7)
94    #define reg_LRA_NUM     LREG_NUM(7)
95    
96  #define reg_FDEFN       IREG(0)  #define reg_FDEFN       IREG(0)
97    #define reg_FDEFN_NUM   IREG_NUM(0)
98  #define reg_LEXENV      IREG(1)  #define reg_LEXENV      IREG(1)
99    #define reg_LEXENV_NUM  IREG_NUM(1)
100  #define reg_L0          IREG(2)  #define reg_L0          IREG(2)
101  #define reg_L1          IREG(3)  #define reg_L0_NUM      IREG_NUM(2)
102  #define reg_L2          IREG(4)  #define reg_NFP         IREG(3)
103    #define reg_NFP_NUM     IREG_NUM(3)
104    #define reg_CFUNC       IREG(4)
105    #define reg_CFUNC_NUM   IREG_NUM(4)
106  #define reg_CODE        IREG(5)  #define reg_CODE        IREG(5)
107    #define reg_CODE_NUM    IREG_NUM(5)
108  #define reg_LIP         IREG(7)  #define reg_LIP         IREG(7)
109    #define reg_LIP_NUM     IREG_NUM(7)
110    
111  #define REGNAMES \  #define REGNAMES \
112          "ZERO",         "ALLOC",        "NULL",         "CSP", \          "ZERO",         "ALLOC",        "NULL",         "CSP", \
113          "CFP",          "BSP",          "NFP",          "CFUNC", \          "CFP",          "BSP",          "%g6",          "%g7", \
114          "NL0",          "NL1",          "NL2",          "NL3", \          "NL0",          "NL1",          "NL2",          "NL3", \
115          "NL4",          "NL5",          "NSP",          "NARGS", \          "NL4",          "NL5",          "NSP",          "NARGS", \
116          "A0",           "A1",           "A2",           "A3", \          "A0",           "A1",           "A2",           "A3", \
117          "A4",           "A5",           "OCFP",         "LRA", \          "A4",           "A5",           "OCFP",         "LRA", \
118          "FDEFN",        "LEXENV",       "L0",           "L1", \          "FDEFN",        "LEXENV",       "L0",           "NFP", \
119          "L2",           "CODE",         "???",          "LIP"          "CFUNC",        "CODE",         "???",          "LIP"
120    
121  #define BOXED_REGISTERS { \  #define BOXED_REGISTERS { \
122      reg_A0, reg_A1, reg_A2, reg_A3, reg_A4, reg_A5, reg_FDEFN, reg_LEXENV, \      reg_A0, reg_A1, reg_A2, reg_A3, reg_A4, reg_A5, reg_FDEFN, reg_LEXENV, \
123      reg_NFP, reg_OCFP, reg_LRA, reg_L0, reg_L1, reg_L2, reg_CODE \      reg_OCFP, reg_LRA, reg_CODE \
124  }  }
125    
126  #ifndef LANGUAGE_ASSEMBLY  #ifndef LANGUAGE_ASSEMBLY
# Line 90  Line 129 
129    
130  #include <ucontext.h>  #include <ucontext.h>
131    
132  extern int * solaris_register_address(struct ucontext *, int);  extern int *solaris_register_address(struct ucontext *, int);
133    
134  #define SC_REG(sc, reg) (*solaris_register_address(sc,reg))  #define SC_REG(sc, reg) (*solaris_register_address(sc,reg))
135    
# Line 108  extern int * solaris_register_address(st Line 147  extern int * solaris_register_address(st
147  #endif /* SOLARIS */  #endif /* SOLARIS */
148    
149  #endif  #endif
150    
151    #endif /* _SPARC_LISPREGS_H_ */

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.5