Mercurial > emacs
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