summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2012-01-25 18:49:43 +0100
committerAndy Wingo <wingo@pobox.com>2012-01-25 18:49:43 +0100
commite5cf97290c3d2dcda0eca02f9fcf4020452bca42 (patch)
tree4c730ef54e462713e4fabfcdabf1a9bf1a39267c
parentd646d81ec1c9f16a1e4d3f5bd388ec069c47a1c2 (diff)
downloadguile-e5cf97290c3d2dcda0eca02f9fcf4020452bca42.tar.gz
better function prologue disassembly
* module/language/assembly/disassemble.scm (code-annotation): Add an annotation for assert-nargs-ee/locals and assert-nargs-ge/locals.
-rw-r--r--module/language/assembly/disassemble.scm5
1 files changed, 4 insertions, 1 deletions
diff --git a/module/language/assembly/disassemble.scm b/module/language/assembly/disassemble.scm
index 88ea0d7d6..ced5f26a8 100644
--- a/module/language/assembly/disassemble.scm
+++ b/module/language/assembly/disassemble.scm
@@ -1,6 +1,6 @@
;;; Guile VM code converters
-;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2009, 2010, 2012 Free Software Foundation, Inc.
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -141,6 +141,9 @@
(list "`~a'~@[ (arg)~]"
(binding:name b) (< (binding:index b) nargs))
(lp (cdr bindings))))))))
+ ((assert-nargs-ee/locals assert-nargs-ge/locals)
+ (list "~a arg~:p, ~a local~:p"
+ (logand (car args) #x7) (ash (car args) -3)))
((free-ref free-boxed-ref free-boxed-set)
;; FIXME: we can do better than this
(list "(closure variable)"))