Skip to content
Snippets Groups Projects
Commit 3325871e authored by cwang's avatar cwang
Browse files

Add registers r8-15

parent 9fb9e249
No related branches found
No related tags found
No related merge requests found
......@@ -15,7 +15,7 @@
* GENCGC support by Douglas Crosher, 1996, 1997.
* Alpha support by Julian Dolby, 1999.
*
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Linux-os.c,v 1.21 2004/09/11 19:18:02 rtoy Exp $
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Linux-os.c,v 1.22 2004/10/19 19:12:03 cwang Exp $
*
*/
......@@ -120,11 +120,7 @@ int sc_reg(struct sigcontext_struct *c, int offset)
#endif
#ifdef __x86_64
#if (LINUX_VERSION_CODE >= linuxversion(2,1,0)) || (__GNU_LIBRARY__ >= 6)
int sc_reg(struct sigcontext *c, int offset)
#else
int sc_reg(struct sigcontext_struct *c, int offset)
#endif
{
switch(offset)
{
......@@ -136,6 +132,14 @@ int sc_reg(struct sigcontext_struct *c, int offset)
case 10: return c->rbp;
case 12: return c->rsi;
case 14: return c->rdi;
case 16: return c->r8;
case 18: return c->r9;
case 20: return c->r10;
case 22: return c->r11;
case 24: return c->r12;
case 26: return c->r13;
case 28: return c->r14;
case 30: return c->r15;
}
return 0;
}
......
/* x86-lispregs.h -*- Mode: C; -*-
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/amd64-lispregs.h,v 1.1 2004/05/18 22:06:04 cwang Exp $
* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/amd64-lispregs.h,v 1.2 2004/10/19 19:07:17 cwang Exp $
*/
/* These register names and offsets correspond to definitions
......@@ -8,7 +8,7 @@
* os dependent function.
*/
#define NREGS (8)
#define NREGS (16)
#ifdef LANGUAGE_ASSEMBLY
#define REG(num) $ ## num
......@@ -24,15 +24,23 @@
#define reg_RBP REG(10)
#define reg_RSI REG(12)
#define reg_RDI REG(14)
#define reg_R8 REG(16)
#define reg_R9 REG(18)
#define reg_R10 REG(20)
#define reg_R11 REG(22)
#define reg_R12 REG(24)
#define reg_R13 REG(26)
#define reg_R14 REG(28)
#define reg_R15 REG(30)
#define reg_SP reg_RSP
#define reg_FP reg_RBP
#define REGNAMES "RAX", "RCX", "RDX", "RBX", "RSP", "RBP", "RSI", "RDI"
#define REGNAMES "RAX", "RCX", "RDX", "RBX", "RSP", "RBP", "RSI", "RDI", "R8", "R9", "R10", "R11", "R12", "R13", "R14", "R15"
/* These registers can contain lisp object pointers */
#define BOXED_REGISTERS {\
reg_RAX, reg_RCX, reg_RDX, reg_RBX, reg_RSI, reg_RDI \
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 \
}
/* N is offset in storage class (SC) as defined in vm.lisp.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment