Improve disassembler output of compiled code blocks.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Wed, 7 Jul 1993 20:44:44 +0000 (20:44 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Wed, 7 Jul 1993 20:44:44 +0000 (20:44 +0000)
v7/src/compiler/machines/i386/dassm1.scm

index eae05129d62d6cca43e4f49d1cb7f230db0a7e3d..918c7f52f0a5dbed841c3e0b083f180a3a7f73ac 100644 (file)
@@ -1,9 +1,8 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/i386/dassm1.scm,v 1.5 1992/08/11 02:33:58 jinx Exp $
-$MC68020-Header: dassm1.scm,v 4.15 90/07/12 16:42:39 GMT jinx Exp $
+$Id: dassm1.scm,v 1.6 1993/07/07 20:44:44 gjr Exp $
 
-Copyright (c) 1992 Massachusetts Institute of Technology
+Copyright (c) 1992-1993 Massachusetts Institute of Technology
 
 This material was developed by the Scheme project at the Massachusetts
 Institute of Technology, Department of Electrical Engineering and
@@ -77,7 +76,9 @@ MIT in each case. |#
                           (compiled-code-block/dbg-info (car blocks)
                                                         symbol-table?))
                          (if (not (null? (cdr blocks)))
-                             (write-char #\page)))))))))))))
+                             (begin
+                               (write-char #\page)
+                               (newline))))))))))))))
 
 (define disassembler/base-address)
 
@@ -95,6 +96,20 @@ MIT in each case. |#
   (let ((symbol-table (and info (dbg-info/labels info))))
     (write-string "Disassembly of ")
     (write block)
+    (let loop ((info (compiled-code-block/debugging-info block)))
+      (cond ((string? info)
+            (write-string " (")
+            (write-string info)
+            (write-string ")"))
+           ((not (pair? info)))
+           ((vector? (car info))
+            (loop (cdr info)))
+           (else
+              (write-string " (Block ")
+              (write (cdr info))
+              (write-string " in ")
+              (write-string (car info))
+              (write-string ")"))))
     (write-string ":\n")
     (write-string "Code:\n\n")
     (disassembler/write-instruction-stream