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

Raymond Toy rtoy at common-lisp.net
Sat Jul 17 15:43:43 CEST 2010


    Date: Saturday, July 17, 2010 @ 09:43:43
  Author: rtoy
    Path: /project/cmucl/cvsroot/src/lisp
     Tag: sparc-tramp-assem-branch

Modified: gencgc.c sparc-assem.S

lisp/sparc-assem.S:
o #ifdef out closure_tramp and undefined_tramp; they're Lisp assembly
  functions now.  

lisp/gencgc.c:
o Update code for sparc which doesn't have closure_tramp and
  undefined_tramp anymore.


---------------+
 gencgc.c      |   24 +++++++++++++++---------
 sparc-assem.S |    9 +++++++--
 2 files changed, 22 insertions(+), 11 deletions(-)


Index: src/lisp/gencgc.c
diff -u src/lisp/gencgc.c:1.107 src/lisp/gencgc.c:1.107.2.1
--- src/lisp/gencgc.c:1.107	Thu Apr  1 10:05:45 2010
+++ src/lisp/gencgc.c	Sat Jul 17 09:43:43 2010
@@ -7,7 +7,7 @@
  *
  * Douglas Crosher, 1996, 1997, 1998, 1999.
  *
- * $Header: /project/cmucl/cvsroot/src/lisp/gencgc.c,v 1.107 2010-04-01 14:05:45 rtoy Exp $
+ * $Header: /project/cmucl/cvsroot/src/lisp/gencgc.c,v 1.107.2.1 2010-07-17 13:43:43 rtoy Exp $
  *
  */
 
@@ -2019,13 +2019,15 @@
 #endif    
 }
 
-#if defined(sparc) || (defined(DARWIN) && defined(__ppc__))
+#if (defined(DARWIN) && defined(__ppc__))
 /*
  * The assembly code defines these as functions, so we make them
  * functions.  We only care about their addresses anyway.
  */
 extern char closure_tramp();
 extern char undefined_tramp();
+#elif defined(sparc)
+/* closure tramp and undefined tramp are Lisp assembly routines */
 #else
 extern int undefined_tramp;
 #endif
@@ -6837,20 +6839,24 @@
 #endif
 	    } else {
 		/* Verify that it points to another valid space */
-		if (!to_readonly_space && !to_static_space &&
-#if defined(sparc) || (defined(DARWIN) && defined(__ppc__))
-		    !((thing == (int) &closure_tramp) ||
-		      (thing == (int) &undefined_tramp))
+		if (!to_readonly_space && !to_static_space 
+#if (defined(DARWIN) && defined(__ppc__))
+
+		    && !((thing == (int) &closure_tramp) ||
+                         (thing == (int) &undefined_tramp))
+#elif defined(sparc)
+                    /* Nothing for sparc since these are Lisp assembly routines */
 #else
-		    thing != (int) &undefined_tramp
+		    && thing != (int) &undefined_tramp
 #endif
 		    ) {
+#ifndef sparc
 		    fprintf(stderr,
 			    "*** Ptr %lx @ %lx sees Junk (undefined_tramp = %lx)",
 			    (unsigned long) thing, (unsigned long) start,
 			    (unsigned long) &undefined_tramp);
-                    
-#if defined(sparc) || (defined(DARWIN) && defined(__ppc__))
+#endif                    
+#if (defined(DARWIN) && defined(__ppc__))
                     fprintf(stderr, " (closure_tramp = %lx)",
 			    (unsigned long) &closure_tramp);
 #endif
Index: src/lisp/sparc-assem.S
diff -u src/lisp/sparc-assem.S:1.24 src/lisp/sparc-assem.S:1.24.46.1
--- src/lisp/sparc-assem.S:1.24	Thu Oct 23 22:57:00 2003
+++ src/lisp/sparc-assem.S	Sat Jul 17 09:43:43 2010
@@ -269,7 +269,12 @@
 
 	SET_SIZE(_call_into_c)
 
-
+#if 0
+/* undefined_tramp and closure_tramp are now Lisp assembly routines.
+ * so we don't need these anymore.  Leave them here for a bit so 
+ * we can look at the "real" versions for a while.  But eventually,
+ * remove these.
+ */
         .global _undefined_tramp
 	FUNCDEF(_undefined_tramp)
         .align  8
@@ -318,7 +323,7 @@
 	jmp	reg_CODE+FUNCTION_CODE_OFFSET
 	nop
 	SET_SIZE(_closure_tramp)
-
+#endif
 
 
 /*



More information about the cmucl-commit mailing list