9900cf0a604f9d05e421123eae1bfe0ee896c3cf
[projects/cmucl/cmucl.git] / src / lisp / alpha-lispregs.h
1 /* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/alpha-lispregs.h,v 1.4 2005/01/13 19:55:00 fgilham Rel $ */
2
3 #ifndef _ALPHA_LISPREGS_H_
4 #define _ALPHA_LISPREGS_H_
5
6 #define NREGS   (32)
7
8 #ifdef LANGUAGE_ASSEMBLY
9 #ifdef __linux__
10 #define R(s) $ ## s
11 #define REG(num) $##num
12 #else
13 #define R(s) s
14 #define REG(num) $/**/num
15 #endif
16 #else
17 #define REG(num) num
18 #endif
19
20 #define reg_LIP REG(0)
21 #define reg_A0 REG(1)
22 #define reg_A1 REG(2)
23 #define reg_A2 REG(3)
24 #define reg_A3 REG(4)
25 #define reg_A4 REG(5)
26 #define reg_A5 REG(6)
27 #define reg_L0 REG(7)
28 #define reg_NARGS REG(8)
29 #define reg_CSP REG(9)
30 #define reg_CFP REG(10)
31 #define reg_OCFP REG(11)
32 #define reg_BSP REG(12)
33 #define reg_LEXENV REG(13)
34 #define reg_CODE REG(14)
35 #define reg_NULL REG(15)
36 #define reg_NL0 REG(16)
37 #define reg_NL1 REG(17)
38 #define reg_NL2 REG(18)
39 #define reg_NL3 REG(19)
40 #define reg_NL4 REG(20)
41 #define reg_NL5 REG(21)
42 #define reg_ALLOC REG(22)
43 #define reg_FDEFN REG(23)
44 #define reg_CFUNC REG(24)
45 #define reg_NFP REG(25)
46 #define reg_LRA REG(26)
47 #define reg_L1 REG(27)
48 #define reg_L2 REG(28)
49 #define reg_GP REG(29)
50 #define reg_NSP REG(30)
51 #define reg_ZERO REG(31)
52
53
54 #define REGNAMES \
55     "LIP", "NL0", "NL1", "NL2", "NL3", "NL4", "NL5", "L0", "NARGS", \
56     "CSP", "CFP", "OCFP", "BSP", "LEXENV", "CODE", "FDEFN", "A0", "A1", \
57     "A2", "A3", "A4", "A5", "ALLOC", "NULL", "CFUNC", "NFP", "LRA", "L1", \
58     "L2", "GP", "NSP", "ZERO"
59
60 #define BOXED_REGISTERS { \
61     reg_CODE, reg_FDEFN, reg_LEXENV, reg_NARGS, reg_OCFP, reg_LRA, \
62     reg_A0, reg_A1, reg_A2, reg_A3, reg_A4, reg_A5, \
63     reg_L0, reg_L1, reg_L2 \
64 }
65
66 #define SC_REG(sc, n) ((sc)->sc_regs[n])
67 #define SC_PC(sc) ((sc)->sc_pc)
68
69 #define call_into_lisp_LRA_page 0x10000
70
71 #endif /* _ALPHA_LISPREGS_H_ */