Fix OOE bug in disassemble-one-instruction.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Tue, 18 Aug 1992 13:55:09 +0000 (13:55 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Tue, 18 Aug 1992 13:55:09 +0000 (13:55 +0000)
v7/src/compiler/machines/i386/dassm2.scm

index 6164a718bed9df107490ef56188dec7505f93948..b52c2f9faaf5dc1a709b31711f3f47b04cc56ad5 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/i386/dassm2.scm,v 1.5 1992/08/12 09:45:11 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/i386/dassm2.scm,v 1.6 1992/08/18 13:55:09 jinx Exp $
 $MC68020-Header: /scheme/compiler/bobcat/RCS/dassm2.scm,v 4.18 1991/05/07 13:46:04 jinx Exp $
 
 Copyright (c) 1992 Massachusetts Institute of Technology
@@ -101,17 +101,18 @@ MIT in each case. |#
       ;; External label markers come in two parts:
       ;; An entry type descriptor, and a gc offset.
       (cond ((eq? state 'EXTERNAL-LABEL-OFFSET)
-            (let* ((offset (next-unsigned-16-bit-word))
+            (let* ((word (next-unsigned-16-bit-word))
                    (label (find-label *current-offset)))
               (receiver *current-offset
                         (if label
                             `(BLOCK-OFFSET ,label)
-                            `(WORD U ,offset))
+                            `(WORD U ,word))
                         'INSTRUCTION)))
            ((external-label-marker? symbol-table offset state)
-            (receiver *current-offset
-                      `(WORD U ,(next-unsigned-16-bit-word))
-                      'EXTERNAL-LABEL-OFFSET))
+            (let ((word ,(next-unsigned-16-bit-word)))
+              (receiver *current-offset
+                        `(WORD U ,word)
+                        'EXTERNAL-LABEL-OFFSET)))
            (else
             (let ((instruction (disassemble-next-instruction)))
               (if (or *valid? (not (eq? 'BYTE (car instruction))))