;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Mon Apr 8 11:36:55 1996 ;;; from file /home/fsf/rms/e19/lisp/disass.el ;;; emacs version 19.30.96.2. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`disass.el' was compiled for Emacs 19.29 or later")) (require (quote byte-compile) "bytecomp") #@3 * (defvar disassemble-column-1-indent 8 (#$ . -511)) #@3 * (defvar disassemble-column-2-indent 10 (#$ . -569)) #@3 * (defvar disassemble-recursive-indent 3 (#$ . -628)) #@274 Print disassembled code for OBJECT in (optional) BUFFER. OBJECT can be a symbol defined as a function, or a function itself (a lambda expression or a compiled-function object). If OBJECT is not already compiled, we compile it, but do not redefine OBJECT if it is a symbol. (defalias 'disassemble #[(object &optional buffer indent interactive-p) "=\fE\f.Ȑq\f?#8q\f#)Ç" [object byte-code lambda nil indent 0 interactive-p buffer "*Disassemble*" disassemble-internal] 5 (#$ . 689) (list (intern (completing-read "Disassemble function: " obarray (quote fboundp) t)) nil 0 t)]) (defalias 'disassemble-internal #[(obj indent interactive-p) " 9  K !! \" <6 @=6 A@! K =B A " autoload load t byte-code lambda "not a function" interactive-p message "Compiling %s's definition..." "Compiling definition..." byte-compile "Done compiling. Disassembling..." byte-code-function-p 0 "Compilation failed" indent format "byte code%s%s%s:\n" " for" "" " macro" " %s" documentation princ " doc: " string-match "\n" " ..." " args: " prin1 interactive 5 " interactive: " disassemble-1 disassemble-recursive-indent print-escape-newlines "Uncompiled body: " progn] 8]) #@120 Prints the byte-code call OBJ in the current buffer. OBJ should be a call to BYTE-CODE generated by the byte compiler. (defalias 'disassemble-1 #[(obj indent) " : A@ AA@! ! H H\n \" \n \f\f\f\f]AT\f>A\f=+\f\f@w\f@\fA\f\f@@ \f@A\n\fA\fj =\"c\n@!c^\"c\\j  ! \" O   =c c\\\\\\jc !> \nA@!c >\n!c >,\n@p\" >\n@\n\n!o\n=N\no\n=\nA!o\nA=\nA\n!|c\n=cc\n.\\\\#\n=c\n.\\\"\n=c\n\"5\np\")c^." [nil constvec bytes obj fetch-bytecode 1 2 byte-decompile-bytecode pc-value opname arg op lap 0 tmp tagno TAG indent format "%d:" int-to-string "%d" disassemble-column-1-indent string-match "^byte-" symbol-name 5 "" byte-constant2 " #### shouldn't have seen constant2 here!\n " disassemble-column-2-indent -1 " " byte-goto-ops (byte-call byte-unbind byte-listN byte-concatN byte-insertN) (byte-varref byte-varset byte-varbind) prin1 (byte-constant byte-constant2) byte-code-function-p lambda byte-code macro "\n" "" "\n" disassemble-internal disassemble-recursive-indent "\n" disassemble-1 "(...)\n" mapcar #[(obj) " \n \\\"" [disassemble-1 obj indent disassemble-recursive-indent] 4] t print-escape-newlines "\n"] 5 (#$ . 2420)])