,xx for RTL images
authorAndy Wingo <wingo@pobox.com>
Thu, 29 Aug 2013 18:50:19 +0000 (20:50 +0200)
committerAndy Wingo <wingo@pobox.com>
Thu, 29 Aug 2013 18:50:19 +0000 (20:50 +0200)
* module/scripts/disassemble.scm (disassemble):
* module/system/vm/disassembler.scm (disassemble-file): Factor
  disassemble-file out.

* module/system/repl/command.scm (disassemble-file): Map ,xx to
  disassemble RTL images.

module/scripts/disassemble.scm
module/system/repl/command.scm
module/system/vm/disassembler.scm

index 3825bc1..426f87c 100644 (file)
 ;;; Code:
 
 (define-module (scripts disassemble)
-  #:use-module (system vm objcode)
-  #:use-module (system vm program)
   #:use-module (system vm disassembler)
-  #:use-module ((language assembly disassemble)
-                #:renamer (symbol-prefix-proc 'asm:))
   #:export (disassemble))
 
 (define %summary "Disassemble a compiled .go file.")
 
 (define (disassemble . files)
-  (for-each (lambda (file)
-              (let* ((thunk (load-thunk-from-file file))
-                     (elf (find-mapped-elf-image (rtl-program-code thunk))))
-                (disassemble-image elf)))
-            files))
+  (for-each disassemble-file files))
 
 (define main disassemble)
index 215451e..e084cf1 100644 (file)
@@ -487,6 +487,9 @@ Run the optimizer on a piece of code and print the result."
 (define (disassemble-program x)
   ((@ (system vm disassembler) disassemble-program) x))
 
+(define (disassemble-file x)
+  ((@ (system vm disassembler) disassemble-file) x))
+
 (define-meta-command (disassemble repl (form))
   "disassemble EXP
 Disassemble a compiled procedure."
@@ -503,7 +506,7 @@ Disassemble a compiled procedure."
 (define-meta-command (disassemble-file repl file)
   "disassemble-file FILE
 Disassemble a file."
-  (guile:disassemble (load-thunk-from-file (->string file))))
+  (disassemble-file (->string file)))
 
 \f
 ;;;
index 482d68f..ad7bb2b 100644 (file)
@@ -32,7 +32,8 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-4)
   #:export (disassemble-program
-            disassemble-image))
+            disassemble-image
+            disassemble-file))
 
 (define-syntax-rule (u32-ref buf n)
   (bytevector-u32-native-ref buf (* n 4)))
@@ -357,3 +358,8 @@ address of that offset."
                              ctx)
          (display "\n\n" port)))))
   (values))
+
+(define (disassemble-file file)
+  (let* ((thunk (load-thunk-from-file file))
+         (elf (find-mapped-elf-image (rtl-program-code thunk))))
+    (disassemble-image elf)))