From d5fbf4bd7b09f68d760f5e55540fadd98e6bc480 Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Thu, 28 Jun 1990 18:09:44 +0000 Subject: [PATCH] Export two more hardware trap utilities for the error handler. --- v7/src/runtime/conpar.scm | 16 ++++++++++++---- v7/src/runtime/runtime.pkg | 4 +++- v8/src/runtime/conpar.scm | 16 ++++++++++++---- v8/src/runtime/runtime.pkg | 4 +++- 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/v7/src/runtime/conpar.scm b/v7/src/runtime/conpar.scm index e8e72ee12..f57b6abbd 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.14 1990/06/28 16:36:12 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/conpar.scm,v 14.15 1990/06/28 18:09:25 jinx Exp $ Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology @@ -625,10 +625,18 @@ MIT in each case. |# offset (heuristic (stream-cdr stream) (1+ offset)))) +(define (hardware-trap-frame? frame) + (and (stack-frame? frame) + (eq? (stack-frame/type frame) + stack-frame-type/hardware-trap))) + +(define (hardware-trap-frame/code frame) + (guarantee-hardware-trap-frame frame) + (let ((code (stack-frame/ref frame hardware-trap/code-index))) + (and (pair? code) (cdr code)))) + (define (guarantee-hardware-trap-frame frame) - (if (or (not (stack-frame? frame)) - (not (eq? (stack-frame/type frame) - stack-frame-type/hardware-trap))) + (if (not (hardware-trap-frame? frame)) (error "guarantee-hardware-trap-frame: invalid" frame))) (define (hardware-trap-frame/print-registers frame) diff --git a/v7/src/runtime/runtime.pkg b/v7/src/runtime/runtime.pkg index 6d59bd61d..42152bff9 100644 --- a/v7/src/runtime/runtime.pkg +++ b/v7/src/runtime/runtime.pkg @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.69 1990/06/22 01:04:42 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.70 1990/06/28 18:09:44 jinx Exp $ Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology @@ -297,9 +297,11 @@ MIT in each case. |# (export () continuation->stack-frame continuation/first-subproblem + hardware-trap-frame? hardware-trap-frame/describe hardware-trap-frame/print-registers hardware-trap-frame/print-stack + hardware-trap-frame/code microcode-return/code->type stack-frame->continuation stack-frame-type/code diff --git a/v8/src/runtime/conpar.scm b/v8/src/runtime/conpar.scm index 50264df1a..a0ed15bac 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.14 1990/06/28 16:36:12 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/conpar.scm,v 14.15 1990/06/28 18:09:25 jinx Exp $ Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology @@ -625,10 +625,18 @@ MIT in each case. |# offset (heuristic (stream-cdr stream) (1+ offset)))) +(define (hardware-trap-frame? frame) + (and (stack-frame? frame) + (eq? (stack-frame/type frame) + stack-frame-type/hardware-trap))) + +(define (hardware-trap-frame/code frame) + (guarantee-hardware-trap-frame frame) + (let ((code (stack-frame/ref frame hardware-trap/code-index))) + (and (pair? code) (cdr code)))) + (define (guarantee-hardware-trap-frame frame) - (if (or (not (stack-frame? frame)) - (not (eq? (stack-frame/type frame) - stack-frame-type/hardware-trap))) + (if (not (hardware-trap-frame? frame)) (error "guarantee-hardware-trap-frame: invalid" frame))) (define (hardware-trap-frame/print-registers frame) diff --git a/v8/src/runtime/runtime.pkg b/v8/src/runtime/runtime.pkg index b86049c44..1ee3f609f 100644 --- a/v8/src/runtime/runtime.pkg +++ b/v8/src/runtime/runtime.pkg @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.69 1990/06/22 01:04:42 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.70 1990/06/28 18:09:44 jinx Exp $ Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology @@ -297,9 +297,11 @@ MIT in each case. |# (export () continuation->stack-frame continuation/first-subproblem + hardware-trap-frame? hardware-trap-frame/describe hardware-trap-frame/print-registers hardware-trap-frame/print-stack + hardware-trap-frame/code microcode-return/code->type stack-frame->continuation stack-frame-type/code -- 2.25.1