From 81eabad0e091699dfc638ee6e2b5f79826a8530d Mon Sep 17 00:00:00 2001
From: rtoy <rtoy>
Date: Wed, 28 Mar 2007 04:30:01 +0000
Subject: [PATCH] o Fix typo handling complex-double-double-reg-sc-number case.
 o Fix extra paren for double-double-stack-sc-number case, and don't   use
 with-nfp which doesn't exist on x86. o Add support for
 complex-double-double-stack-sc-number, which was   missing for x86.

---
 code/debug-int.lisp | 33 +++++++++++++++++++++++----------
 1 file changed, 23 insertions(+), 10 deletions(-)

diff --git a/code/debug-int.lisp b/code/debug-int.lisp
index 2a8e3a614..c25bc5de2 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.126 2007/03/28 03:54:12 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/debug-int.lisp,v 1.127 2007/03/28 04:30:01 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -3400,7 +3400,7 @@ The result is a symbol or nil if the routine cannot be found."
 	      'double-float))
 	    (kernel:%make-double-double-float
 	     (vm:sigcontext-float-register
-	      escaped (+ (c:sc-offset-offset sc-offset) #+sparc 4 #+sparc 1)
+	      escaped (+ (c:sc-offset-offset sc-offset) #+sparc 4 #-sparc 2)
 	      'double-float)
 	     (vm:sigcontext-float-register
 	      escaped (+ (c:sc-offset-offset sc-offset) #+sparc 6 #-sparc 3)
@@ -3426,14 +3426,27 @@ The result is a symbol or nil if the routine cannot be found."
 	(system:sap-ref-long fp (- (* (+ (c:sc-offset-offset sc-offset) 6)
 				      vm:word-bytes)))))
       #+double-double
-      ((#.vm:double-double-stack-sc-number
-	(with-nfp (nfp)
-	  (kernel:%make-double-double-float
-	   (system:sap-ref-double nfp (* (c:sc-offset-offset sc-offset)
-					 vm:word-bytes))
-	   (system:sap-ref-double nfp (* (+ (c:sc-offset-offset sc-offset)
-					    2)
-					 vm:word-bytes))))))
+      (#.vm:complex-double-double-stack-sc-number
+       (if escaped
+	   (complex
+	    (kernel:%make-double-double-float
+	     (system:sap-ref-double fp (- (* (+ (c:sc-offset-offset sc-offset) 2)
+					     vm:word-bytes)))
+	     (system:sap-ref-double fp (- (* (+ (c:sc-offset-offset sc-offset) 4)
+					     vm:word-bytes))))
+	    (kernel:%make-double-double-float
+	     (system:sap-ref-double fp (- (* (+ (c:sc-offset-offset sc-offset) 6)
+					     vm:word-bytes)))
+	     (system:sap-ref-double fp (- (* (+ (c:sc-offset-offset sc-offset) 8)
+					     vm:word-bytes)))))
+	   :invalid-value-for-unescaped-register-storage))
+      #+double-double
+      (#.vm:double-double-stack-sc-number
+       (kernel:%make-double-double-float
+	(system:sap-ref-double fp (- (* (+ (c:sc-offset-offset sc-offset) 2)
+					vm:word-bytes)))
+	(system:sap-ref-double fp (- (* (+ (c:sc-offset-offset sc-offset) 4)
+					vm:word-bytes)))))
       (#.vm:control-stack-sc-number
        (kernel:stack-ref fp (c:sc-offset-offset sc-offset)))
       (#.vm:base-char-stack-sc-number
-- 
GitLab