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

Contents of /src/lisp/amd64-lispregs.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (show annotations)
Mon Nov 2 15:05:07 2009 UTC (4 years, 5 months ago) by rtoy
Branch: MAIN
CVS Tags: sparc-tramp-assem-base, post-merge-intl-branch, intl-branch-working-2010-02-19-1000, release-20b-pre1, release-20b-pre2, sparc-tramp-assem-2010-07-19, intl-2-branch-base, GIT-CONVERSION, cross-sol-x86-merged, intl-branch-working-2010-02-11-1000, RELEASE_20b, cross-sol-x86-base, snapshot-2010-12, snapshot-2010-11, snapshot-2011-09, snapshot-2011-06, snapshot-2011-07, snapshot-2011-04, snapshot-2011-02, snapshot-2011-03, snapshot-2011-01, pre-merge-intl-branch, snapshot-2010-05, snapshot-2010-04, snapshot-2010-07, snapshot-2010-06, snapshot-2010-01, snapshot-2010-03, snapshot-2010-02, snapshot-2010-08, cross-sol-x86-2010-12-20, intl-branch-2010-03-18-1300, snapshot-2009-12, cross-sparc-branch-base, intl-branch-base, HEAD
Branch point for: cross-sparc-branch, RELEASE-20B-BRANCH, sparc-tramp-assem-branch, intl-branch, cross-sol-x86-branch, intl-2-branch
Changes since 1.5: +2 -4 lines
File MIME type: text/plain
Revert previous changes.  They were supposed to go on
amd64-dd-branch.
1 /* x86-lispregs.h -*- Mode: C; -*-
2 * $Header: /tiger/var/lib/cvsroots/cmucl/src/lisp/amd64-lispregs.h,v 1.6 2009/11/02 15:05:07 rtoy Rel $
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
11 #ifndef _AMD64_LISPREGS_H_
12 #define _AMD64_LISPREGS_H_
13
14 #define NREGS (16)
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)
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)
38
39 #define reg_SP reg_RSP
40 #define reg_FP reg_RBP
41 #define reg_NARGS reg_RCX
42
43 #define REGNAMES "RAX", "RCX", "RDX", "RBX", "RSP", "RBP", "RSI", "RDI", "R8", "R9", "R10", "R11", "R12", "R13", "R14", "R15"
44
45 /* These registers can contain lisp object pointers */
46 #define BOXED_REGISTERS {\
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 \
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
55 #define SC_REG(sc, n) (*sc_reg(sc,n))
56 #define SC_PC(sc) ((sc)->sc_pc)
57
58 #endif /* _AMD64_LISPREGS_H_ */

  ViewVC Help
Powered by ViewVC 1.1.5