From 0d9c0b01b7c323c77af12fe46ae2cc60578c6d19 Mon Sep 17 00:00:00 2001
From: dtc <dtc>
Date: Wed, 3 Dec 1997 20:05:27 +0000
Subject: [PATCH] Cleanup the mess in the x86 port versions of
 get-context-value and (setf get-context-values). The return addresses are now
 stored in sap-reg and sap-stack SCs, so there is now need to detect alternate
 references to these locations and map them to the sap-ref and sap-stack
 locations.

---
 code/debug-int.lisp | 68 ++++++++-------------------------------------
 1 file changed, 11 insertions(+), 57 deletions(-)

diff --git a/code/debug-int.lisp b/code/debug-int.lisp
index ebd3819ad..d50fa544b 100644
--- a/code/debug-int.lisp
+++ b/code/debug-int.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/debug-int.lisp,v 1.78 1997/11/29 16:11:32 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/debug-int.lisp,v 1.79 1997/12/03 20:05:27 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1085,35 +1085,12 @@
   (let ((pointer (frame-pointer frame))
 	(escaped (compiled-frame-escaped frame)))
     (if escaped
+	(sub-access-debug-var-slot pointer loc escaped)
 	(ecase stack-slot
-	       (#.vm::ocfp-save-offset
-		(sub-access-debug-var-slot pointer loc escaped))
-	       (#.vm::lra-save-offset
-;		(format t "escaped ra: pointer=~s loc=~s (~s ~s)~%"
-;			pointer loc
-;			(c:sc-offset-scn loc) (c::sc-offset-offset loc))
-		(case (c::sc-offset-scn loc)
-		      ((#.vm:any-reg-sc-number #.vm:descriptor-reg-sc-number)
-		       (format t "escaped ra: pointer=~s loc=~s (~s ~s)~%"
-			       pointer loc
-			       (c:sc-offset-scn loc) (c::sc-offset-offset loc))
-		       ;; Translate to sap-reg at the same offset.
-		       (setf loc (c::make-sc-offset vm:sap-reg-sc-number
-						    (c:sc-offset-scn loc))))
-		      (#.vm:control-stack-sc-number
-		       ;; Translate to sap-stack at the same offset.
-		       (setf loc (c::make-sc-offset vm:sap-stack-sc-number
-						    (c:sc-offset-offset loc))))
-		      (t
-		       (format t "unexpected RA sc location?~%")))
-;		(format t " translated to loc=~s (~s ~s)~%" loc
-;			(c:sc-offset-scn loc) (c::sc-offset-offset loc))
-		(sub-access-debug-var-slot pointer loc escaped)))
-      (ecase stack-slot
-	     (#.vm::ocfp-save-offset
-	      (kernel:stack-ref pointer stack-slot))
-	     (#.vm::lra-save-offset
-	      (sap-ref-sap pointer (- (* (1+ stack-slot) 4))))))))
+	  (#.vm::ocfp-save-offset
+	   (kernel:stack-ref pointer stack-slot))
+	  (#.vm::lra-save-offset
+	   (sap-ref-sap pointer (- (* (1+ stack-slot) 4))))))))
 
 ;;;
 #-x86
@@ -1133,35 +1110,12 @@
   (let ((pointer (frame-pointer frame))
 	(escaped (compiled-frame-escaped frame)))
     (if escaped
+	(sub-set-debug-var-slot pointer loc value escaped)
 	(ecase stack-slot
-	       (#.vm::ocfp-save-offset
-		(sub-set-debug-var-slot pointer loc value escaped))
-	       (#.vm::lra-save-offset
-;		(format t "escaped ra: pointer=~s loc=~s (~s ~s)~%"
-;			pointer loc
-;			(c:sc-offset-scn loc) (c::sc-offset-offset loc))
-		(case (c::sc-offset-scn loc)
-		      ((#.vm:any-reg-sc-number #.vm:descriptor-reg-sc-number)
-		       (format t "escaped ra: pointer=~s loc=~s (~s ~s)~%"
-			       pointer loc
-			       (c:sc-offset-scn loc) (c::sc-offset-offset loc))
-		       ;; Translate to sap-reg at the same offset.
-		       (setf loc (c::make-sc-offset vm:sap-reg-sc-number
-						    (c:sc-offset-scn loc))))
-		      (#.vm:control-stack-sc-number
-		       ;; Translate to sap-stack at the same offset.
-		       (setf loc (c::make-sc-offset vm:sap-stack-sc-number
-						    (c:sc-offset-offset loc))))
-		      (t
-		       (format t "unexpected RA sc location?~%")))
-;		(format t " translated to loc=~s (~s ~s)~%" loc
-;			(c:sc-offset-scn loc) (c::sc-offset-offset loc))
-		(sub-set-debug-var-slot pointer loc value escaped)))
-      (ecase stack-slot
-	     (#.vm::ocfp-save-offset
-	      (setf (kernel:stack-ref pointer stack-slot) value))
-	     (#.vm::lra-save-offset
-	      (setf (sap-ref-sap pointer (- (* (1+ stack-slot) 4))) value))))))
+	  (#.vm::ocfp-save-offset
+	   (setf (kernel:stack-ref pointer stack-slot) value))
+	  (#.vm::lra-save-offset
+	   (setf (sap-ref-sap pointer (- (* (1+ stack-slot) 4))) value))))))
 
 
 (defvar *debugging-interpreter* nil
-- 
GitLab