# HG changeset patch # User Richard M. Stallman # Date 774682394 0 # Node ID 74218ea236fea775afb77656c7e3a6bdc089b19a # Parent 6857db0f3c826318973946008cfa3dc1d7a6f4b3 (disassemble-1): Display the pc values. (disassemble-column-1-indent): Increase to 8. diff -r 6857db0f3c82 -r 74218ea236fe lisp/emacs-lisp/disass.el --- 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