From: Christophe R. <cr...@us...> - 2003-09-06 11:03:29
|
Update of /cvsroot/sbcl/sbcl/src/assembly/sparc In directory sc8-pr-cvs1:/tmp/cvs-serv23707/src/assembly/sparc Modified Files: array.lisp Log Message: 0.8.3.39: Fix the ASH bugs for mips (I think) ... just one vop to fix While I'm at it, delete unused or bogus SXHASH assembly routines; Add mips to INSTALL as suggested by Lars Brinkhoff. Index: array.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/assembly/sparc/array.lisp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- array.lisp 15 Feb 2002 17:10:02 -0000 1.1 +++ array.lisp 6 Sep 2003 11:03:21 -0000 1.2 @@ -36,79 +36,3 @@ ;; the kernel doesn't bitch if we pass it the string. (storew zero-tn alloc-tn 0) (move result vector)) - - - -;;;; Hash primitives - -;;; this is commented out in the alpha port. I'm therefore going to -;;; comment it out here pending explanation -- CSR, 2001-08-31. - -#| -#+assembler -(defparameter sxhash-simple-substring-entry (gen-label)) - -(define-assembly-routine (sxhash-simple-string - (:translate %sxhash-simple-string) - (:policy :fast-safe) - (:result-types positive-fixnum)) - ((:arg string descriptor-reg a0-offset) - (:res result any-reg a0-offset) - - (:temp length any-reg a1-offset) - (:temp accum non-descriptor-reg nl0-offset) - (:temp data non-descriptor-reg nl1-offset) - (:temp temp non-descriptor-reg nl2-offset) - (:temp offset non-descriptor-reg nl3-offset)) - - (declare (ignore result accum data temp offset)) - - (inst b sxhash-simple-substring-entry) - (loadw length string vector-length-slot other-pointer-lowtag)) - - -(define-assembly-routine (sxhash-simple-substring - (:translate %sxhash-simple-substring) - (:policy :fast-safe) - (:arg-types * positive-fixnum) - (:result-types positive-fixnum)) - ((:arg string descriptor-reg a0-offset) - (:arg length any-reg a1-offset) - (:res result any-reg a0-offset) - - (:temp accum non-descriptor-reg nl0-offset) - (:temp data non-descriptor-reg nl1-offset) - (:temp temp non-descriptor-reg nl2-offset) - (:temp offset non-descriptor-reg nl3-offset)) - (emit-label sxhash-simple-substring-entry) - - (inst li offset (- (* vector-data-offset n-word-bytes) other-pointer-lowtag)) - (inst b test) - (move accum zero-tn) - - LOOP - - (inst xor accum data) - (inst sll temp accum 27) - (inst srl accum 5) - (inst or accum temp) - (inst add offset 4) - - TEST - - (inst subcc length (fixnumize 4)) - (inst b :ge loop) - (inst ld data string offset) - - (inst addcc length (fixnumize 4)) - (inst b :eq done) - (inst neg length) - (inst sll length 1) - (inst srl data length) - (inst xor accum data) - - DONE - - (inst sll result accum 5) - (inst srl result result 3)) -|# |