From: Thiemo S. <th...@us...> - 2008-12-23 14:10:31
|
Update of /cvsroot/sbcl/sbcl/src/compiler/sparc In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv25684/src/compiler/sparc Modified Files: array.lisp Log Message: 1.0.23.66: Calculate array sizes in a more reliable way. * The old implementation depended on the array header size being an even number of words. * Also, another micro-optimization for MIPS. Index: array.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/sparc/array.lisp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- array.lisp 4 Jun 2006 14:25:07 -0000 1.12 +++ array.lisp 23 Dec 2008 14:10:23 -0000 1.13 @@ -24,7 +24,8 @@ (:generator 0 (pseudo-atomic () (inst or header alloc-tn other-pointer-lowtag) - (inst add ndescr rank (* (1+ array-dimensions-offset) n-word-bytes)) + (inst add ndescr rank (+ (* (1+ array-dimensions-offset) n-word-bytes) + lowtag-mask)) (inst andn ndescr 4) (inst add alloc-tn ndescr) (inst add ndescr rank (fixnumize (1- array-dimensions-offset))) @@ -641,4 +642,4 @@ (:arg-types * tagged-num unsigned-num) (:results (result :scs (unsigned-reg))) (:result-types unsigned-num) - (:variant vector-data-offset other-pointer-lowtag)) \ No newline at end of file + (:variant vector-data-offset other-pointer-lowtag)) |