From e82e84b69265b47782099497673ac7fd039cfb34 Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Wed, 6 Jun 1990 04:09:19 +0000 Subject: [PATCH] Fixed object-not-weak-pointer to be object-not-weak-pointer-error. Fixed internal-error to check to see if the trap was hit while in a branch-delay slot, and deal with it correctly if so. --- code/interr.lisp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/code/interr.lisp b/code/interr.lisp index fa4db6202..c9150f420 100644 --- a/code/interr.lisp +++ b/code/interr.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/interr.lisp,v 1.3 1990/06/05 14:43:05 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/interr.lisp,v 1.4 1990/06/06 04:09:19 wlott Exp $ ;;; ;;; Functions and macros to define and deal with internal errors (i.e. ;;; problems that can be signaled from assembler code). @@ -374,7 +374,7 @@ (&rest args) (error "object-not-complex:~{ ~S~}" args)) -(deferr object-not-weak-pointer +(deferr object-not-weak-pointer-error "Object is not a WEAK-POINTER." (&rest args) (error "object-not-weak-pointer:~{ ~S~}" args)) @@ -390,7 +390,15 @@ mach:sigcontext t) (regs (mach:sigcontext-regs (alien-value sc)) mach:int-array t)) - (let* ((pc (int-sap (alien-access (mach:sigcontext-pc (alien-value sc))))) + (let* ((pc (int-sap (+ (alien-access + (mach:sigcontext-pc + (alien-value sc))) + (if (logbitp 31 + (alien-access + (mach:sigcontext-cause + (alien-value sc)))) + 4 + 0)))) (bad-inst (sap-ref-32 pc 0)) (number (sap-ref-8 pc 4)) (info (svref *internal-errors* number)) -- GitLab