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 )
|
GENERIC: (bit-count) ( x -- n )
|
||||||
|
|
||||||
M: fixnum (bit-count)
|
: fixnum-bit-count ( x -- n )
|
||||||
0 swap [
|
0 swap [
|
||||||
dup 0 >
|
dup 0 >
|
||||||
] [
|
] [
|
||||||
|
@ -92,6 +92,9 @@ M: fixnum (bit-count)
|
||||||
[ + ] dip
|
[ + ] dip
|
||||||
] while drop ;
|
] while drop ;
|
||||||
|
|
||||||
|
M: fixnum (bit-count)
|
||||||
|
fixnum-bit-count ; inline
|
||||||
|
|
||||||
M: bignum (bit-count)
|
M: bignum (bit-count)
|
||||||
dup 0 = [ drop 0 ] [
|
dup 0 = [ drop 0 ] [
|
||||||
[ byte-bit-count ] [ -8 shift (bit-count) ] bi +
|
[ byte-bit-count ] [ -8 shift (bit-count) ] bi +
|
||||||
|
|
Loading…
Reference in New Issue