Tell unstackify how large the bytes block is.
authorChris Hanson <org/chris-hanson/cph>
Tue, 17 Apr 2007 06:02:14 +0000 (06:02 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 17 Apr 2007 06:02:14 +0000 (06:02 +0000)
v7/src/compiler/machines/C/cout.scm
v7/src/microcode/liarc.h
v7/src/microcode/unstackify.c

index 8c5af178e93b6e05de960666519ef0f06da06999..aed8c967afcb6debdd8c4dd0ba00a24ea24a820a 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: cout.scm,v 1.38 2007/04/15 19:21:53 cph Exp $
+$Id: cout.scm,v 1.39 2007/04/17 06:02:06 cph Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -76,6 +76,7 @@ USA.
                (c:line)
                (c:return (c:ecall 'unstackify
                                   (c:cast 'uchar* (c:aptr 'prog 0))
+                                  (c:ecall 'sizeof 'prog)
                                   0)))))))
 
 (define (stringify-data/traditional object output-pathname)
@@ -413,6 +414,7 @@ USA.
                         (c:= 'ccb
                              (c:ecall 'unstackify
                                       (c:cast 'uchar* (c:aptr name 0))
+                                      (c:ecall 'sizeof name)
                                       'dispatch_base))
                         (c:= 'current_block (c:object-address 'ccb))
                         (c:return (c:cptr initial-offset))))))))
index b921a39e2d7f3a848ac13ca2f0875860d6589f9c..834b994f4bc642498dd358fd179605ff2c311f0a 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: liarc.h,v 1.27 2007/01/12 06:27:29 cph Exp $
+$Id: liarc.h,v 1.28 2007/04/17 06:02:10 cph Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -554,7 +554,8 @@ extern int
 extern SCHEME_OBJECT
   EXFUN (initialize_subblock, (char *)),
   * EXFUN (invoke_utility, (int, long, long, long, long)),
-  EXFUN (unstackify, (unsigned char * prog, entry_count_t dispatch_base));
+  EXFUN (unstackify,
+        (unsigned char * prog, unsigned long, entry_count_t dispatch_base));
 
 extern double
   EXFUN (acos, (double)),
index 469806922cf87d5fb667e5529c72e4a081fad7eb..c9ae6323db7b68feabf869408a6b5027a7e0ee01 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: unstackify.c,v 11.3 2007/01/05 21:19:25 cph Exp $
+$Id: unstackify.c,v 11.4 2007/04/17 06:02:14 cph Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -1057,8 +1057,10 @@ DEFUN (unstackify_restore_context, (context), stackify_context_t context)
 }
 
 SCHEME_OBJECT
-DEFUN (unstackify, (bytes, db),
-       unsigned char * bytes AND entry_count_t db)
+DEFUN (unstackify, (bytes, n_bytes, db),
+       unsigned char * bytes
+       AND unsigned long n_bytes
+       AND entry_count_t db)
 {
     unsigned char op;
     SCHEME_OBJECT result;