From 3958c05ae02edac75fe6f3413020b62f1993b22b Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Mon, 8 Jan 2007 06:39:03 +0000 Subject: [PATCH] r11470: improve 64-bit sbcl performance --- utils.lisp | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/utils.lisp b/utils.lisp index 9fc23e4..ba75eea 100644 --- a/utils.lisp +++ b/utils.lisp @@ -15,7 +15,7 @@ ;;;; UMLisp users are granted the rights to distribute and use this software ;;;; as governed by the terms of the GNU General Public License. ;;;; ************************************************************************* - + (in-package #:umlisp) (declaim (inline make-cuisui make-cuilui parse-ui parse-cui)) @@ -48,7 +48,7 @@ (parse-ui cui) (nth-value 0 (parse-integer cui)))) cui)) - + (defun parse-lui (lui) (declare (optimize (speed 3) (safety 0))) (if (stringp lui) @@ -57,7 +57,7 @@ (parse-ui lui) (nth-value 0 (parse-integer lui)))) lui)) - + (defun parse-sui (sui) (declare (optimize (speed 3) (safety 0))) (if (stringp sui) @@ -66,7 +66,7 @@ (parse-ui sui) (nth-value 0 (parse-integer sui)))) sui)) - + (defun parse-tui (tui) (declare (optimize (speed 3) (safety 0))) (if (stringp tui) @@ -102,31 +102,31 @@ (parse-ui eui) (nth-value 0 (parse-integer eui)))) eui)) - + (defconstant +cuisui-scale+ 10000000) (declaim (type (integer 0 10000000) +cuisui-scale+)) -#+64bit +#+(or 64bit x86-64) (defun make-cuisui (cui sui) - (declare (fixnum cui sui) - (optimize (speed 3) (safety 0) (space 0))) - (the fixnum + (declare (type (integer 0 10000000) cui sui) + (optimize (speed 3) (safety 0) (space 0))) + (the fixnum (+ (the fixnum (* +cuisui-scale+ cui)) sui))) -#-64bit +#-(or 64bit x86-64) (defun make-cuisui (cui sui) (declare (fixnum cui sui) (optimize (speed 3) (safety 0) (space 0))) (+ (* +cuisui-scale+ cui) sui)) -#+64bit +#+(or 64bit x86-64) (defun make-cuilui (cui lui) - (declare (fixnum cui lui) - (optimize (speed 3) (safety 0) (space 0))) - (the fixnum + (declare (type (integer 0 10000000) cui lui) + (optimize (speed 3) (safety 0) (space 0))) + (the fixnum (+ (the fixnum (* +cuisui-scale+ cui)) lui))) -#-64bit +#-(or 64bit x86-64) (defun make-cuilui (cui lui) (declare (fixnum cui lui) (optimize (speed 3) (safety 0) (space 0))) @@ -134,8 +134,8 @@ (defun decompose-cuisui (cuisui) "Returns the CUI and SUI of a cuisui number" - #-64bit (declare (integer cuisui)) - #+64bit (declare (fixnum cuisui)) + #-(or 64bit x86-64) (declare (integer cuisui)) + #+(or 64bit x86-64) (declare (fixnum cuisui)) (floor cuisui +cuisui-scale+)) ;;; Lookup functions for uterms,ustr in ucons -- 2.34.1