From da81cb9035d28997fb9080877b54f936c96da0ba Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Fri, 11 Nov 2011 23:36:21 -0800 Subject: [PATCH] math.bitwise: don't count the same bits over&over --- basis/math/bitwise/bitwise.factor | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/basis/math/bitwise/bitwise.factor b/basis/math/bitwise/bitwise.factor index a0d19b49ec..4dc99e47ec 100644 --- a/basis/math/bitwise/bitwise.factor +++ b/basis/math/bitwise/bitwise.factor @@ -90,13 +90,13 @@ GENERIC: (bit-count) ( x -- n ) { fixnum } declare [ byte-bit-count ] keep [ -8 shift byte-bit-count + ] keep - [ -8 shift byte-bit-count + ] keep - [ -8 shift byte-bit-count + ] keep + [ -16 shift byte-bit-count + ] keep + [ -24 shift byte-bit-count + ] keep cell 8 = [ - [ -8 shift byte-bit-count + ] keep - [ -8 shift byte-bit-count + ] keep - [ -8 shift byte-bit-count + ] keep - -8 shift byte-bit-count + >fixnum + [ -32 shift byte-bit-count + ] keep + [ -40 shift byte-bit-count + ] keep + [ -48 shift byte-bit-count + ] keep + -56 shift byte-bit-count + >fixnum ] [ drop ] if ; M: fixnum (bit-count)