math.bitwise: factor M\ fixnum (bit-count) to a separate word so it can be made intrinsic

db4
Joe Groff 2010-05-15 13:27:26 -07:00
parent c00272d80a
commit 7c6c4ef8ae
1 changed files with 4 additions and 1 deletions

View File

@ -84,7 +84,7 @@ DEFER: byte-bit-count
GENERIC: (bit-count) ( x -- n )
M: fixnum (bit-count)
: fixnum-bit-count ( x -- n )
0 swap [
dup 0 >
] [
@ -92,6 +92,9 @@ M: fixnum (bit-count)
[ + ] dip
] while drop ;
M: fixnum (bit-count)
fixnum-bit-count ; inline
M: bignum (bit-count)
dup 0 = [ drop 0 ] [
[ byte-bit-count ] [ -8 shift (bit-count) ] bi +