CMUCL commit: sparc-tramp-assem-branch src/lisp (gencgc.c x86-assem.S)

Raymond Toy rtoy at common-lisp.net
Sun Jul 18 22:29:22 CEST 2010


    Date: Sunday, July 18, 2010 @ 16:29:22
  Author: rtoy
    Path: /project/cmucl/cvsroot/src/lisp
     Tag: sparc-tramp-assem-branch

Modified: gencgc.c x86-assem.S

lisp/x86-assem.S:
o Comment out closure_tramp and undefined_tramp.

lisp/gencgc.c:
o Update code since closure_tramp and undefined_tramp no longer exist
  as C functions.


-------------+
 gencgc.c    |   13 +++++++++----
 x86-assem.S |   11 ++++++++++-
 2 files changed, 19 insertions(+), 5 deletions(-)


Index: src/lisp/gencgc.c
diff -u src/lisp/gencgc.c:1.107.2.1 src/lisp/gencgc.c:1.107.2.2
--- src/lisp/gencgc.c:1.107.2.1	Sat Jul 17 09:43:43 2010
+++ src/lisp/gencgc.c	Sun Jul 18 16:29:21 2010
@@ -7,7 +7,7 @@
  *
  * Douglas Crosher, 1996, 1997, 1998, 1999.
  *
- * $Header: /project/cmucl/cvsroot/src/lisp/gencgc.c,v 1.107.2.1 2010-07-17 13:43:43 rtoy Exp $
+ * $Header: /project/cmucl/cvsroot/src/lisp/gencgc.c,v 1.107.2.2 2010-07-18 20:29:21 rtoy Exp $
  *
  */
 
@@ -670,6 +670,9 @@
 #define SSE_STATE_SIZE ((512+16)/4)
     int fpu_state[FPU_STATE_SIZE];
     int sse_state[SSE_STATE_SIZE];
+
+    extern void sse_save(void *);
+    extern void sse_restore(void *);
 #elif defined(sparc)
     /*
      * 32 (single-precision) FP registers, and the FP state register.
@@ -2028,6 +2031,8 @@
 extern char undefined_tramp();
 #elif defined(sparc)
 /* closure tramp and undefined tramp are Lisp assembly routines */
+#elif (defined(i386) || defined(__x86_64))
+/* undefined tramp are Lisp assembly routines */
 #else
 extern int undefined_tramp;
 #endif
@@ -6844,13 +6849,13 @@
 
 		    && !((thing == (int) &closure_tramp) ||
                          (thing == (int) &undefined_tramp))
-#elif defined(sparc)
-                    /* Nothing for sparc since these are Lisp assembly routines */
+#elif defined(sparc) || defined(i386) || defined(__x86_64)
+                    /* Nothing for since these are Lisp assembly routines */
 #else
 		    && thing != (int) &undefined_tramp
 #endif
 		    ) {
-#ifndef sparc
+#if !(defined(sparc) || defined(i386) || defined(__x86_64))
 		    fprintf(stderr,
 			    "*** Ptr %lx @ %lx sees Junk (undefined_tramp = %lx)",
 			    (unsigned long) thing, (unsigned long) start,
Index: src/lisp/x86-assem.S
diff -u src/lisp/x86-assem.S:1.33 src/lisp/x86-assem.S:1.33.2.1
--- src/lisp/x86-assem.S:1.33	Thu Apr  1 10:05:45 2010
+++ src/lisp/x86-assem.S	Sun Jul 18 16:29:21 2010
@@ -1,6 +1,6 @@
 ### x86-assem.S -*- Mode: Asm; -*-
 /**
- * $Header: /project/cmucl/cvsroot/src/lisp/x86-assem.S,v 1.33 2010-04-01 14:05:45 rtoy Exp $
+ * $Header: /project/cmucl/cvsroot/src/lisp/x86-assem.S,v 1.33.2.1 2010-07-18 20:29:21 rtoy Exp $
  *
  * Authors:	Paul F. Werkowski <pw at snoopy.mv.com>
  *		Douglas T. Crosher
@@ -286,7 +286,14 @@
 ENDFUNC(sse_restore)
 
 
+#if 0
 /*
+ * These are now implemented as Lisp assembly routines.  We leave
+ * these here for the time being until we're sure the assembly
+ * routines are working as expected.
+ */
+
+ /*
  * The undefined-function trampoline.
  */
 FUNCDEF(undefined_tramp)
@@ -308,6 +315,8 @@
 	jmp	*CLOSURE_FUNCTION_OFFSET(%eax)
 ENDFUNC(closure_tramp)
 
+#endif
+
 /*
  * Function-end breakpoint magic.
  */



More information about the cmucl-commit mailing list