From 9fc63a91e4c4cd92f502bf122d13595da641bd03 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Tue, 2 Apr 1991 00:06:29 +0000 Subject: [PATCH] In `block/next-continuation-offset', if the next continuation is 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 | 4 ++-- v7/src/compiler/rtlgen/rtlgen.scm | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/v7/src/compiler/machines/bobcat/make.scm-68040 b/v7/src/compiler/machines/bobcat/make.scm-68040 index 91f2efdc2..e59b163ec 100644 --- a/v7/src/compiler/machines/bobcat/make.scm-68040 +++ b/v7/src/compiler/machines/bobcat/make.scm-68040 @@ -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 diff --git a/v7/src/compiler/rtlgen/rtlgen.scm b/v7/src/compiler/rtlgen/rtlgen.scm index f7f37bbdd..e0d3051ab 100644 --- a/v7/src/compiler/rtlgen/rtlgen.scm +++ b/v7/src/compiler/rtlgen/rtlgen.scm @@ -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) -- 2.25.1