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.