diff --git a/lisp/Linux-os.c b/lisp/Linux-os.c index 1aeb610fc977c6148a46b9597f768330dbb24cbb..514e103aa553a4066192bbcc7b7cea3fdf3bd969 100644 --- a/lisp/Linux-os.c +++ b/lisp/Linux-os.c @@ -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; } diff --git a/lisp/amd64-lispregs.h b/lisp/amd64-lispregs.h index cd2ace5d25fb1acf74b637b15d1b70aa5017b30e..422593083b0ae7e70cb90fc4b0a16f43adc26b6c 100644 --- a/lisp/amd64-lispregs.h +++ b/lisp/amd64-lispregs.h @@ -1,5 +1,5 @@ /* 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.