]> gitweb.factorcode.org Git - factor.git/commitdiff
layouts: defining "fixnum-bits".
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 22 Aug 2012 00:54:01 +0000 (17:54 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 22 Aug 2012 01:05:59 +0000 (18:05 -0700)
basis/compiler/tree/propagation/transforms/transforms.factor
core/layouts/layouts-docs.factor
core/layouts/layouts.factor

index d1793208aef7409217c1d788d1711d554302d281..180413abb81c2170990b8bb226feb51bd0a9fb27 100644 (file)
@@ -293,9 +293,6 @@ M\ set diff [ diff-quot ] 1 define-partial-eval
 
 M\ set intersect [ intersect-quot ] 1 define-partial-eval
 
-: fixnum-bits ( -- n )
-    cell-bits tag-bits get - ;
-
 : bit-quot ( #call -- quot/f )
     in-d>> second value-info interval>> 0 fixnum-bits [a,b] interval-subset?
     [ [ >fixnum ] dip fixnum-bit? ] f ? ;
index efea1ffb4e008401a36c35210d766132b3a6f95a..2897f48e346a928487f722fc7d35d34f137c7b68 100644 (file)
@@ -22,6 +22,9 @@ HELP: tag-fixnum
 { $values { "n" integer } { "tagged" integer } }
 { $description "Outputs a tagged fixnum." } ;
 
+HELP: fixnum-bits
+{ $values { "n" "number of bits in a fixnum" } } ;
+
 HELP: first-bignum
 { $values { "n" "smallest positive integer not representable by a fixnum" } } ;
 
index 78d8b682097fc18819540d051b79031b26df83d9..643e5c221a92c023affcb2b9c6807e4caebb5a9a 100644 (file)
@@ -38,7 +38,9 @@ SYMBOL: header-bits
 <<
 : cell ( -- n ) OBJ-CELL-SIZE special-object ; foldable
 
-: (first-bignum) ( m -- n ) tag-bits get - 1 - 2^ ; foldable
+: (fixnum-bits) ( m -- n ) tag-bits get - ; foldable
+
+: (first-bignum) ( m -- n ) (fixnum-bits) 1 - 2^ ; foldable
 >>
 
 : cells ( m -- n ) cell * ; inline
@@ -54,6 +56,9 @@ SYMBOL: header-bits
 : first-bignum ( -- n )
     cell-bits (first-bignum) ; inline
 
+: fixnum-bits ( -- n )
+    cell-bits (fixnum-bits) ; inline
+
 : most-positive-fixnum ( -- n )
     first-bignum 1 - >fixnum ; inline