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