math.bitwise: factor M\ fixnum (bit-count) to a separate word so it can be made intrinsic
parent
c00272d80a
commit
7c6c4ef8ae
|
@ -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 +
|
||||
|
|
Loading…
Reference in New Issue