summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/asm.tl9
1 files changed, 7 insertions, 2 deletions
diff --git a/share/txr/stdlib/asm.tl b/share/txr/stdlib/asm.tl
index 34eeed45..b6e8dff5 100644
--- a/share/txr/stdlib/asm.tl
+++ b/share/txr/stdlib/asm.tl
@@ -203,18 +203,21 @@
(defmeth assembler dis-listing (me : (stream *stdout*))
(let ((p 0)
+ (c 0)
(l (len me.buf)))
me.(set-pos p)
(while (< p l)
(let* ((dis me.(dis-one))
(dis-txt (cat-str [mapcar tostringp dis] " "))
(q me.(cur-pos)))
+ (inc c)
me.(set-pos p)
(format t "~,5d: ~,08X ~a\n" (trunc p 4) me.(get-word) dis-txt)
(while (< (inc p 4) q)
(format t "~,5d: ~,08X\n" (trunc p 4) me.(get-word)))
me.(set-pos q)
- (set p q)))))
+ (set p q)))
+ c))
(defvarl %oc-list-builder% (new list-builder))
@@ -670,7 +673,9 @@
(put-line "funs:")
(mapdo (do format t "~5d: ~s\n" @1 @2) (range 0) funv)
(put-line "code:")
- asm.(dis-listing)))
+ (let ((ninsn asm.(dis-listing)))
+ (put-line "instruction count:")
+ (format t "~5d\n" ninsn))))
(defun usr:disassemble (obj : (stream *stdout*))
(typecase obj