0.8.16.6:
[sbcl.git] / src / runtime / mips-lispregs.h
1 #ifdef LANGUAGE_ASSEMBLY
2 #define REG(num) $ ## num
3 #else
4 #define REG(num) num
5 #endif
6
7 #define NREGS   (32)
8
9 #define reg_ZERO    REG(0)
10 #define reg_NL3     REG(1)
11 #define reg_CFUNC   REG(2)
12 #define reg_NL4     REG(3)
13 #define reg_NL0     REG(4)
14 #define reg_NL1     REG(5)
15 #define reg_NL2     REG(6)
16 #define reg_NARGS   REG(7)
17 #define reg_A0      REG(8)
18 #define reg_A1      REG(9)
19 #define reg_A2      REG(10)
20 #define reg_A3      REG(11)
21 #define reg_A4      REG(12)
22 #define reg_A5      REG(13)
23 #define reg_FDEFN   REG(14)
24 #define reg_LEXENV  REG(15)
25 #define reg_NFP     REG(16)
26 #define reg_OCFP    REG(17)
27 #define reg_LRA     REG(18)
28 #define reg_L0      REG(19)
29 #define reg_NIL     REG(20)
30 #define reg_BSP     REG(21)
31 #define reg_CFP     REG(22)
32 #define reg_CSP     REG(23)
33 #define reg_L1      REG(24)
34 #define reg_ALLOC   REG(25)
35 #define reg_NSP     REG(29)
36 #define reg_CODE    REG(30)
37 #define reg_LIP     REG(31)
38
39 #define REGNAMES \
40         "ZERO",         "NL3",          "CFUNC",        "NL4", \
41         "NL0",          "NL1",          "NL2",          "NARGS", \
42         "A0",           "A1",           "A2",           "A3", \
43         "A4",           "A5",           "FDEFN",        "LEXENV", \
44         "NFP",          "OCFP",         "LRA",          "L0", \
45         "NIL",          "BSP",          "CFP",          "CSP", \
46         "L1",           "ALLOC",        "K0",           "K1", \
47         "GP",           "NSP",          "CODE",         "LIP"
48
49
50 #define BOXED_REGISTERS { \
51     reg_A0, reg_A1, reg_A2, reg_A3, reg_A4, reg_A5, reg_FDEFN, reg_LEXENV, \
52     reg_NFP, reg_OCFP, reg_LRA, reg_L0, reg_L1, reg_CODE \
53 }
54
55 #define SC_REG(sc, n) ((sc)->sc_regs[n])
56 #define SC_PC(sc) ((sc)->sc_pc)