From 36b8abb92fe10fd8b4128ae6bd17efa45f70b7e1 Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Tue, 11 Aug 2009 18:32:55 +0000 Subject: [PATCH] Some symbol cleanups. code/exports.lisp: o Import STREAM:SET-SYSTEM-EXTERNAL-FORMAT into the EXT package. o Define and export %sin-quick, %cos-quick, and %tan-quick only for x87 builds. compiler/float-tran.lisp: o Only apply defknowns and deftransforms for %sin-quick, %cos-quick, and %tan-quick for x87 builds. --- code/exports.lisp | 17 ++++++++++------- compiler/float-tran.lisp | 7 ++++--- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/code/exports.lisp b/code/exports.lisp index 926a82d69..e2adf25b3 100644 --- a/code/exports.lisp +++ b/code/exports.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/exports.lisp,v 1.287 2009/08/10 21:48:18 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/exports.lisp,v 1.288 2009/08/11 18:32:55 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -1234,7 +1234,7 @@ (dolist (name '("STRING-TO-OCTETS" "OCTETS-TO-STRING" "*DEFAULT-EXTERNAL-FORMAT*" - "STRING-ENCODE" "STRING-DECODE")) + "STRING-ENCODE" "STRING-DECODE" "SET-SYSTEM-EXTERNAL-FORMAT")) (intern name "STREAM")) (defpackage "EXTENSIONS" @@ -1464,9 +1464,11 @@ (:import-from "STREAM" "STRING-TO-OCTETS" "OCTETS-TO-STRING" "*DEFAULT-EXTERNAL-FORMAT*" - "STRING-ENCODE" "STRING-DECODE") + "STRING-ENCODE" "STRING-DECODE" + "SET-SYSTEM-EXTERNAL-FORMAT") (:export "STRING-TO-OCTETS" "OCTETS-TO-STRING" "*DEFAULT-EXTERNAL-FORMAT*" - "STRING-ENCODE" "STRING-DECODE")) + "STRING-ENCODE" "STRING-DECODE" + "SET-SYSTEM-EXTERNAL-FORMAT")) (defpackage "STREAM" (:import-from "SYSTEM" "LISP-STREAM") @@ -2017,7 +2019,7 @@ "%ARRAY-DISPLACEMENT" "%ARRAY-FILL-POINTER" "%ARRAY-FILL-POINTER-P" "%ASIN" "%ASINH" "%ATAN" "%ATAN2" "%ATANH" "%CALLER-FRAME-AND-PC" "%CHECK-BOUND" "%CLOSURE-FUNCTION" - "%CLOSURE-INDEX-REF" "%COS" "%COS-QUICK" "%COSH" "%DEPOSIT-FIELD" + "%CLOSURE-INDEX-REF" "%COS" "%COSH" "%DEPOSIT-FIELD" "%DOUBLE-FLOAT" "%DPB" "%EXP" "%EXPM1" "%HYPOT" "%LDB" "%LOG" "%LOGB" "%LOG10" "%LOG1P" "%LONG-FLOAT" "%MAKE-COMPLEX" "%MAKE-FUNCALLABLE-INSTANCE" "%MAKE-RATIO" @@ -2034,10 +2036,9 @@ "%SET-SAP-REF-SAP" "%SET-SAP-REF-SINGLE" "%SET-SIGNED-SAP-REF-16" "%SET-SIGNED-SAP-REF-32" "%SET-SIGNED-SAP-REF-64" "%SET-SIGNED-SAP-REF-8" - "%SET-STACK-REF" "%SIN" "%SET-SYMBOL-HASH" "%SIN-QUICK" + "%SET-STACK-REF" "%SIN" "%SET-SYMBOL-HASH" "%SINGLE-FLOAT" "%SINH" "%SP-SET-DEFINITION" "%SP-SET-PLIST" "%SQRT" "%SXHASH-SIMPLE-STRING" "%SXHASH-SIMPLE-SUBSTRING" "%TAN" - "%TAN-QUICK" "%TANH" "%UNARY-ROUND" "%UNARY-TRUNCATE" "%UNARY-FTRUNCATE" "%UNARY-FTRUNCATE/SINGLE-FLOAT" "%UNARY-FTRUNCATE/DOUBLE-FLOAT" "%WITH-ARRAY-DATA" @@ -2280,6 +2281,8 @@ "ATOMIC-POP-SYMBOL-VALUE" "ATOMIC-PUSHA" "ATOMIC-PUSHD") + #+x87 + (:export "%COS-QUICK" "%SIN-QUICK" "%TAN-QUICK") ;;#+double-double (:export "DOUBLE-DOUBLE-FLOAT" "DOUBLE-DOUBLE-FLOAT-P" diff --git a/compiler/float-tran.lisp b/compiler/float-tran.lisp index 20067878b..16428f103 100644 --- a/compiler/float-tran.lisp +++ b/compiler/float-tran.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/compiler/float-tran.lisp,v 1.132 2009/06/16 02:53:07 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/float-tran.lisp,v 1.133 2009/08/11 18:32:55 rtoy Rel $") ;;; ;;; ********************************************************************** ;;; @@ -610,11 +610,11 @@ ;;;; Irrational transforms: -(defknown (%tan %sinh %asinh %atanh %log %logb %log10 %tan-quick) +(defknown (%tan %sinh %asinh %atanh %log %logb %log10 #+x87 %tan-quick) (double-float) double-float (movable foldable flushable)) -(defknown (%sin %cos %tanh %sin-quick %cos-quick) +(defknown (%sin %cos %tanh #+x87 %sin-quick #+x87 %cos-quick) (double-float) (double-float -1.0d0 1.0d0) (movable foldable flushable)) @@ -687,6 +687,7 @@ ;;; Simple tests show that sin/cos produce numbers greater than 1 when ;;; the arg >= 2^63. tan produces floating-point invalid exceptions ;;; for arg >= 2^62. So limit these to that range. +#+x87 (dolist (stuff '((sin %sin %sin-quick 63) (cos %cos %cos-quick 63) (tan %tan %tan-quick 62))) -- GitLab