From: Christophe R. <cr...@us...> - 2004-04-08 09:38:17
|
Update of /cvsroot/sbcl/sbcl/src/compiler/ppc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28296/src/compiler/ppc Modified Files: type-vops.lisp Log Message: 0.8.9.28: Restore buildability goodness on PPC and SPARC ... move n-fixnum-foo-bits and so on from sparc-specific code to early-vm.lisp ... while I'm at it, make the n-lowtag-bits calculated rather than #+ / #- ... restore the hideous hack in ppc type-vops UGH UGH UGH (my brain is too slow to fix this properly) Index: type-vops.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ppc/type-vops.lisp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- type-vops.lisp 2 Mar 2004 09:37:48 -0000 1.4 +++ type-vops.lisp 8 Apr 2004 09:25:09 -0000 1.5 @@ -13,14 +13,13 @@ (defun %test-fixnum (value target not-p &key temp) (assemble () - ;; FIXME: again, this 3 should be FIXNUM-MASK - (inst andi. temp value 3) + (inst andi. temp value fixnum-tag-mask) (inst b? (if not-p :ne :eq) target))) (defun %test-fixnum-and-headers (value target not-p headers &key temp) (let ((drop-through (gen-label))) (assemble () - (inst andi. temp value 3) + (inst andi. temp value fixnum-tag-mask) (inst beq (if not-p drop-through target))) (%test-headers value target not-p nil headers :drop-through drop-through :temp temp))) @@ -140,13 +139,9 @@ ,@(if mask `((inst andi. temp value ,mask) (inst twi 0 value (error-number-or-lose ',error-code)) - (inst twi :ne temp ,@(if ;; KLUDGE: At - ;; present, MASK is - ;; 3 or LOWTAG-MASK - (eql mask 3) - ;; KLUDGE - `(0) - type-codes)) + (inst twi :ne temp ,@(ecase mask + ((fixnum-tag-mask) `(0)) + ((lowtag-mask) type-codes))) (move result value)) `((let ((err-lab (generate-error-code vop ,error-code value))) |