From: Nikodemus S. <de...@us...> - 2011-12-09 21:53:53
|
The branch "master" has been updated in SBCL: via a9ca350b35a3336f81e7bf509007366b025ac8e3 (commit) from 60059052d267b3072ed8cefb1faf1e590f96adf7 (commit) - Log ----------------------------------------------------------------- commit a9ca350b35a3336f81e7bf509007366b025ac8e3 Author: Nikodemus Siivola <nik...@ra...> Date: Fri Dec 9 16:56:10 2011 +0200 use FAST-READ-BYTE in LOAD-S-INTEGER No reason not to. --- src/code/fop.lisp | 23 ++++++++++++----------- 1 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/code/fop.lisp b/src/code/fop.lisp index 91fa04e..9f6d58b 100644 --- a/src/code/fop.lisp +++ b/src/code/fop.lisp @@ -266,17 +266,18 @@ ;;; Load a signed integer LENGTH bytes long from *FASL-INPUT-STREAM*. (defun load-s-integer (length) - (declare (fixnum length)) - ;; #+cmu (declare (optimize (inhibit-warnings 2))) - (do* ((index length (1- index)) - (byte 0 (read-byte *fasl-input-stream*)) - (result 0 (+ result (ash byte bits))) - (bits 0 (+ bits 8))) - ((= index 0) - (if (logbitp 7 byte) ; look at sign bit - (- result (ash 1 bits)) - result)) - (declare (fixnum index byte bits)))) + (declare (fixnum length) + (optimize speed)) + (with-fast-read-byte ((unsigned-byte 8) *fasl-input-stream*) + (do* ((index length (1- index)) + (byte 0 (fast-read-byte)) + (result 0 (+ result (ash byte bits))) + (bits 0 (+ bits 8))) + ((= index 0) + (if (logbitp 7 byte) ; look at sign bit + (- result (ash 1 bits)) + result)) + (declare (fixnum index byte bits))))) (define-cloned-fops (fop-integer 33) (fop-small-integer 34) (load-s-integer (clone-arg))) ----------------------------------------------------------------------- hooks/post-receive -- SBCL |