Clean up RCS ids
[projects/cmucl/cmucl.git] / src / lisp / amd64-lispregs.h
CommitLineData
a173edfb 1/* x86-lispregs.h -*- Mode: C; -*-
eeab7066 2
a173edfb 3 */
4
5/* These register names and offsets correspond to definitions
6 * in compiler/amd64/vm.lisp. They map into accessors in the
7 * os dependent <machine/signal.h> structure via the sc_reg
8 * os dependent function.
9 */
10
e67c0397 11#ifndef _AMD64_LISPREGS_H_
12#define _AMD64_LISPREGS_H_
13
3325871e 14#define NREGS (16)
a173edfb 15
16#ifdef LANGUAGE_ASSEMBLY
17#define REG(num) $ ## num
18#else
19#define REG(num) num
20#endif
21
22#define reg_RAX REG( 0)
23#define reg_RCX REG( 2)
24#define reg_RDX REG( 4)
25#define reg_RBX REG( 6)
26#define reg_RSP REG( 8)
27#define reg_RBP REG(10)
28#define reg_RSI REG(12)
29#define reg_RDI REG(14)
3325871e 30#define reg_R8 REG(16)
31#define reg_R9 REG(18)
32#define reg_R10 REG(20)
33#define reg_R11 REG(22)
34#define reg_R12 REG(24)
35#define reg_R13 REG(26)
36#define reg_R14 REG(28)
37#define reg_R15 REG(30)
a173edfb 38
39#define reg_SP reg_RSP
40#define reg_FP reg_RBP
3e4590e7 41#define reg_NARGS reg_RCX
a173edfb 42
3325871e 43#define REGNAMES "RAX", "RCX", "RDX", "RBX", "RSP", "RBP", "RSI", "RDI", "R8", "R9", "R10", "R11", "R12", "R13", "R14", "R15"
a173edfb 44
45/* These registers can contain lisp object pointers */
46#define BOXED_REGISTERS {\
3325871e 47 reg_RAX, reg_RCX, reg_RDX, reg_RBX, reg_RSI, reg_RDI, reg_R8, reg_R9, reg_R10, reg_R11, reg_R12, reg_R13, reg_R14, reg_R15 \
a173edfb 48 }
49
50/* N is offset in storage class (SC) as defined in vm.lisp.
51 * Ordering in sigcontext is probably os dependent so let
52 * xxx-os.c handle it.
53 */
54
d01310f2 55#define SC_REG(sc, n) (*sc_reg(sc,n))
56#define SC_PC(sc) ((sc)->sc_pc)
a173edfb 57
e67c0397 58#endif /* _AMD64_LISPREGS_H_ */