changeset 8293:74218ea236fe

(disassemble-1): Display the pc values. (disassemble-column-1-indent): Increase to 8.
author Richard M. Stallman <rms@gnu.org>
date Wed, 20 Jul 1994 05:33:14 +0000
parents 6857db0f3c82
children cd3d2474ea10
files lisp/emacs-lisp/disass.el
diffstat 1 files changed, 19 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/disass.el	Wed Jul 20 05:31:29 1994 +0000
+++ b/lisp/emacs-lisp/disass.el	Wed Jul 20 05:33:14 1994 +0000
@@ -41,7 +41,7 @@
 ;;; Since we don't use byte-decompile-lapcode, let's try not loading byte-opt.
 (require 'byte-compile "bytecomp")
 
-(defvar disassemble-column-1-indent 5 "*")
+(defvar disassemble-column-1-indent 8 "*")
 (defvar disassemble-column-2-indent 10 "*")
 
 (defvar disassemble-recursive-indent 3 "*")
@@ -169,7 +169,7 @@
       (setq bytes (aref obj 1)
 	    constvec (aref obj 2)))
     (let ((lap (byte-decompile-bytecode bytes constvec))
-	  op arg opname)
+	  op arg opname pc-value)
       (let ((tagno 0)
 	    tmp
 	    (lap lap))
@@ -177,12 +177,26 @@
 	  (setcar (cdr tmp) (setq tagno (1+ tagno)))
 	  (setq lap (cdr (memq tmp lap)))))
       (while lap
+	;; Take off the pc value of the next thing
+	;; and put it in pc-value.
+	(setq pc-value nil)
+	(if (numberp (car lap))
+	    (setq pc-value (car lap)
+		  lap (cdr lap)))
+	;; Fetch the next op and its arg.
 	(setq op (car (car lap))
 	      arg (cdr (car lap)))
+	(setq lap (cdr lap))
 	(indent-to indent)
 	(if (eq 'TAG op)
-	    (insert (int-to-string (car arg)) ":")
-
+	    (progn
+	      ;; We have a label.  Display it, but first its pc value.
+	      (if pc-value
+		  (insert (format "%d:" pc-value)))
+	      (insert (int-to-string (car arg))))
+	  ;; We have an instruction.  Display its pc value first.
+	  (if pc-value
+	      (insert (format "%d" pc-value)))
 	  (indent-to (+ indent disassemble-column-1-indent))
 	  (if (and op
 		   (string-match "^byte-" (setq opname (symbol-name op))))
@@ -241,8 +255,7 @@
 			(let ((print-escape-newlines t))
 			  (prin1 arg (current-buffer))))))
 		)
-	  (insert "\n"))
-	(setq lap (cdr lap)))))
+	  (insert "\n")))))
   nil)
 
 ;;; disass.el ends here