In `block/next-continuation-offset', if the next continuation is
authorChris Hanson <org/chris-hanson/cph>
Tue, 2 Apr 1991 00:06:29 +0000 (00:06 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 2 Apr 1991 00:06:29 +0000 (00:06 +0000)
always known, then it won't be pushed and the offset must include the
distance to the next continuation after that.

v7/src/compiler/machines/bobcat/make.scm-68040
v7/src/compiler/rtlgen/rtlgen.scm

index 91f2efdc211c8da8bee97066c6dbd9e4126f2a98..e59b163eca28169d4f99a6aef1ae4d0f20f78839 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/make.scm-68040,v 4.81 1991/03/24 23:52:47 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/make.scm-68040,v 4.82 1991/04/02 00:06:29 cph Exp $
 
 Copyright (c) 1988-91 Massachusetts Institute of Technology
 
@@ -41,4 +41,4 @@ MIT in each case. |#
            ((package/reference (find-package name) 'INITIALIZE-PACKAGE!)))
          '((COMPILER MACROS)
            (COMPILER DECLARATIONS)))
-(add-system! (make-system "Liar (Motorola MC68020)" 4 81 '()))
\ No newline at end of file
+(add-system! (make-system "Liar (Motorola MC68020)" 4 82 '()))
\ No newline at end of file
index f7f37bbdd5e980aca01adb21639dc046504699a2..e0d3051abd773429c2348226c25bf5b7435506ae 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rtlgen.scm,v 4.24 1991/02/15 16:52:44 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rtlgen.scm,v 4.25 1991/04/02 00:05:04 cph Exp $
 
 Copyright (c) 1988-91 Massachusetts Institute of Technology
 
@@ -234,7 +234,16 @@ MIT in each case. |#
                   (block/next-continuation-offset
                    (block-parent stack-link)
                    offset)
-                  offset))))
+                  (let ((continuation
+                         (lvalue-known-value
+                          (stack-block/continuation-lvalue popping-limit))))
+                    (if (and continuation
+                             (continuation/always-known-operator?
+                              continuation))
+                        (block/next-continuation-offset
+                         (continuation/closing-block continuation)
+                         offset)
+                        offset))))))
       offset))
 
 (define (generate/continuation-entry/pop-extra continuation)