From b5748c6a19abb19ca95f5ab9dd9f1e98a274b97b Mon Sep 17 00:00:00 2001
From: cwang <cwang>
Date: Tue, 22 Jun 2004 22:38:27 +0000
Subject: [PATCH] Use r11 instead of r15 for linkage entry because r11 is a
 temporary register

---
 lisp/amd64-arch.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lisp/amd64-arch.c b/lisp/amd64-arch.c
index 55d642340..a96e3516a 100644
--- a/lisp/amd64-arch.c
+++ b/lisp/amd64-arch.c
@@ -1,6 +1,6 @@
 /* x86-arch.c -*- Mode: C; comment-column: 40 -*-
  *
- * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/amd64-arch.c,v 1.2 2004/06/15 23:40:58 cwang Exp $ 
+ * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/amd64-arch.c,v 1.3 2004/06/22 22:38:27 cwang Exp $ 
  *
  */
 
@@ -375,15 +375,16 @@ void arch_make_linkage_entry(long linkage_entry, void *target_addr, long type)
 	long offset = (char *)target_addr;
 	int i;
 	
+	/* %r11 is a temp register */
 	*reloc_addr++ = 0x49;		/* opcode for MOV */
-	*reloc_addr++ = 0xbf; /* %r15 */
+	*reloc_addr++ = 0xbb; /* %r11 */
 	for (i = 0; i < 8; i++) {
 	    *reloc_addr++ = offset & 0xff;
 	    offset >>= 8;
 	}
 	*reloc_addr++ = 0x41; /* jmpq */
 	*reloc_addr++ = 0xff;
-	*reloc_addr++ = 0xe7; /* %r15 */
+	*reloc_addr++ = 0xe3; /* %r11 */
 	/* write a nop for good measure. */
 	*reloc_addr = 0x90;
     } else if (type == 2) {
-- 
GitLab