From: Thiemo S. <th...@us...> - 2006-05-08 02:48:26
|
Update of /cvsroot/sbcl/sbcl/src/compiler/mips In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6858/src/compiler/mips Modified Files: array.lisp c-call.lisp macros.lisp show.lisp Log Message: 0.9.12.9: Improve code legibility. Index: array.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/mips/array.lisp,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- array.lisp 7 Sep 2005 23:06:19 -0000 1.11 +++ array.lisp 8 May 2006 02:48:22 -0000 1.12 @@ -138,13 +138,13 @@ (def-full-data-vector-frobs simple-array-signed-byte-32 signed-num signed-reg)) -;;; Integer vectors whos elements are smaller than a byte. I.e. bit, 2-bit, +;;; Integer vectors whose elements are smaller than a byte. I.e. bit, 2-bit, ;;; and 4-bit vectors. (macrolet ((def-small-data-vector-frobs (type bits) (let* ((elements-per-word (floor n-word-bits bits)) (bit-shift (1- (integer-length elements-per-word)))) `(progn - (define-vop (,(symbolicate 'data-vector-ref/ type)) + (define-vop (,(symbolicate 'DATA-VECTOR-REF/ type)) (:note "inline array access") (:translate data-vector-ref) (:policy :fast-safe) @@ -170,7 +170,7 @@ (inst srl result temp) (inst and result ,(1- (ash 1 bits))) (inst sll value result n-fixnum-tag-bits))) - (define-vop (,(symbolicate 'data-vector-ref-c/ type)) + (define-vop (,(symbolicate 'DATA-VECTOR-REF-C/ type)) (:translate data-vector-ref) (:policy :fast-safe) (:args (object :scs (descriptor-reg))) @@ -195,7 +195,7 @@ (inst srl result (* extra ,bits))) (unless (= extra ,(1- elements-per-word)) (inst and result ,(1- (ash 1 bits))))))) - (define-vop (,(symbolicate 'data-vector-set/ type)) + (define-vop (,(symbolicate 'DATA-VECTOR-SET/ type)) (:note "inline array store") (:translate data-vector-set) (:policy :fast-safe) @@ -244,7 +244,7 @@ (move result zero-tn)) (unsigned-reg (move result value))))) - (define-vop (,(symbolicate 'data-vector-set-c/ type)) + (define-vop (,(symbolicate 'DATA-VECTOR-SET-C/ type)) (:translate data-vector-set) (:policy :fast-safe) (:args (object :scs (descriptor-reg)) Index: c-call.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/mips/c-call.lisp,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- c-call.lisp 29 Sep 2005 06:45:08 -0000 1.8 +++ c-call.lisp 8 May 2006 02:48:22 -0000 1.9 @@ -167,8 +167,8 @@ ;; 64-bit long long types are stored in ;; consecutive locations, endian word order, ;; aligned to 8 bytes. - (if (oddp (length (new-args))) - (new-args nil)) + (when (oddp (length (new-args))) + (new-args nil)) #!-little-endian (progn (new-args `(ash ,arg -32)) (new-args `(logand ,arg #xffffffff)) Index: macros.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/mips/macros.lisp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- macros.lisp 28 Sep 2005 15:10:40 -0000 1.15 +++ macros.lisp 8 May 2006 02:48:22 -0000 1.16 @@ -296,9 +296,8 @@ (:results (value :scs ,scs)) (:result-types ,el-type) (:generator 5 - (inst add lip object index) - (inst lw value lip (- (* ,offset n-word-bytes) ,lowtag)) - (inst nop))) + (inst addu lip object index) + (loadw value lip ,offset ,lowtag))) (define-vop (,(symbolicate name "-C")) ,@(when translate `((:translate ,translate))) @@ -311,8 +310,7 @@ (:results (value :scs ,scs)) (:result-types ,el-type) (:generator 4 - (inst lw value object (- (* (+ ,offset index) n-word-bytes) ,lowtag)) - (inst nop))))) + (loadw value object (+ ,offset index) ,lowtag))))) (defmacro define-full-setter (name type offset lowtag scs el-type &optional translate) @@ -329,8 +327,8 @@ (:results (result :scs ,scs)) (:result-types ,el-type) (:generator 2 - (inst add lip object index) - (inst sw value lip (- (* ,offset n-word-bytes) ,lowtag)) + (inst addu lip object index) + (storew value lip ,offset ,lowtag) (move result value))) (define-vop (,(symbolicate name "-C")) ,@(when translate @@ -346,7 +344,7 @@ (:results (result :scs ,scs)) (:result-types ,el-type) (:generator 1 - (inst sw value object (- (* (+ ,offset index) n-word-bytes) ,lowtag)) + (storew value object (+ ,offset index) ,lowtag) (move result value))))) Index: show.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/mips/show.lisp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- show.lisp 8 Sep 2005 08:04:48 -0000 1.3 +++ show.lisp 8 May 2006 02:48:22 -0000 1.4 @@ -27,8 +27,8 @@ (move nl0 object) (inst li cfunc (make-fixup "debug_print" :foreign)) (inst jal (make-fixup "call_into_c" :foreign)) - (inst addu nsp-tn nsp-tn -16) - (inst addu nsp-tn nsp-tn 16) + (inst subu nsp-tn 16) + (inst addu nsp-tn 16) (when cur-nfp (load-stack-tn cur-nfp nfp-save)) (move result nl0)))) |