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