Add `stack-frame/return-address' operation. This will be more useful
authorChris Hanson <org/chris-hanson/cph>
Tue, 21 Jun 1988 04:21:49 +0000 (04:21 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 21 Jun 1988 04:21:49 +0000 (04:21 +0000)
when the stack parser is generalized to handle compiled code frames.

v7/src/runtime/conpar.scm
v8/src/runtime/conpar.scm

index b4572ced2c8b261cdbb1f6b423524bdbbfe24a85..90c0b1ff0c069695ccc4f92b62ad696fd48ec717 100644 (file)
@@ -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)))
 
index e60a2858b8024b8ef1990b61ede4001f2b3126ae..0d2bc3d12310894e3a26815fad8c251d9a8b1039 100644 (file)
@@ -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)))