Remove program-sources-pre-retire case for stack programs.
authorAndy Wingo <wingo@pobox.com>
Fri, 8 Nov 2013 16:41:31 +0000 (17:41 +0100)
committerAndy Wingo <wingo@pobox.com>
Fri, 8 Nov 2013 16:41:31 +0000 (17:41 +0100)
* module/system/vm/program.scm (program-sources-pre-retire): Remove
  stack program case.

module/system/vm/program.scm

index cf77c28..f99df80 100644 (file)
@@ -21,7 +21,6 @@
 (define-module (system vm program)
   #:use-module (ice-9 match)
   #:use-module (system vm instruction)
-  #:use-module (system vm objcode)
   #:use-module (system vm debug)
   #:use-module (rnrs bytevectors)
   #:use-module (srfi srfi-1)
 ;; pre-retire addresses.
 ;;
 (define (program-sources-pre-retire proc)
-  (cond
-   ((rtl-program? proc)
-    (map (lambda (source)
-           (cons* (- (source-pre-pc source) (rtl-program-code proc))
-                  (source-file source)
-                  (source-line source)
-                  (source-column source)))
-         (find-program-sources (rtl-program-code proc))))
-   (else
-    (let ((bv (objcode->bytecode (program-objcode proc))))
-      (let lp ((in (program-sources proc))
-               (out '())
-               (ip 0))
-        (cond
-         ((null? in)
-          (reverse out))
-         (else
-          (match (car in)
-            ((post-ip . source)
-             (let lp2 ((ip ip)
-                       (next ip))
-               (if (< next post-ip)
-                   (lp2 next (+ next (bytecode-instruction-length bv next)))
-                   (lp (cdr in)
-                       (acons ip source out)
-                       next))))
-            (_
-             (error "unexpected"))))))))))
+  (map (lambda (source)
+         (cons* (- (source-pre-pc source) (rtl-program-code proc))
+                (source-file source)
+                (source-line source)
+                (source-column source)))
+       (find-program-sources (rtl-program-code proc))))
 
 (define (collapse-locals locs)
   (let lp ((ret '()) (locs locs))