From df5796ea2745a56e47d98d9d1894f72452ebf3f5 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Tue, 21 Jun 1988 04:21:49 +0000 Subject: [PATCH] Add `stack-frame/return-address' operation. This will be more useful when the stack parser is generalized to handle compiled code frames. --- v7/src/runtime/conpar.scm | 8 +++++++- v8/src/runtime/conpar.scm | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/v7/src/runtime/conpar.scm b/v7/src/runtime/conpar.scm index b4572ced2..90c0b1ff0 100644 --- a/v7/src/runtime/conpar.scm +++ b/v7/src/runtime/conpar.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/conpar.scm,v 14.2 1988/06/13 11:41:24 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/conpar.scm,v 14.3 1988/06/21 04:21:49 cph Exp $ Copyright (c) 1988 Massachusetts Institute of Technology @@ -101,6 +101,9 @@ MIT in each case. |# (let ((elements (stack-frame/elements stack-frame))) (lambda () (vector-ref elements index))))) +(define-integrable (stack-frame/return-address stack-frame) + (stack-frame-type/address (stack-frame/type stack-frame))) + (define-integrable (stack-frame/return-code stack-frame) (stack-frame-type/code (stack-frame/type stack-frame))) @@ -382,6 +385,9 @@ MIT in each case. |# (error "return-code too large" code)) (vector-ref stack-frame-types code)) +(define-integrable (stack-frame-type/address frame-type) + (make-return-address (stack-frame-type/code frame-type))) + (define (initialize-package!) (set! stack-frame-types (make-stack-frame-types))) diff --git a/v8/src/runtime/conpar.scm b/v8/src/runtime/conpar.scm index e60a2858b..0d2bc3d12 100644 --- a/v8/src/runtime/conpar.scm +++ b/v8/src/runtime/conpar.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/conpar.scm,v 14.2 1988/06/13 11:41:24 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/conpar.scm,v 14.3 1988/06/21 04:21:49 cph Exp $ Copyright (c) 1988 Massachusetts Institute of Technology @@ -101,6 +101,9 @@ MIT in each case. |# (let ((elements (stack-frame/elements stack-frame))) (lambda () (vector-ref elements index))))) +(define-integrable (stack-frame/return-address stack-frame) + (stack-frame-type/address (stack-frame/type stack-frame))) + (define-integrable (stack-frame/return-code stack-frame) (stack-frame-type/code (stack-frame/type stack-frame))) @@ -382,6 +385,9 @@ MIT in each case. |# (error "return-code too large" code)) (vector-ref stack-frame-types code)) +(define-integrable (stack-frame-type/address frame-type) + (make-return-address (stack-frame-type/code frame-type))) + (define (initialize-package!) (set! stack-frame-types (make-stack-frame-types))) -- 2.25.1