{ $description "Outputs the value for the target architecture when bootstrapping." } ;
HELP:cell
{ $values { "n""a positive integer" } }
{ $description "Outputs the pointer size in bytes of the current CPU architecture." } ;
HELP:cells
{ $values { "m"integer } { "n"integer } }
{ $description "Computes the number of bytes used by " { $snippet "m" } " CPU operand-sized cells." } ;
HELP:cell-bits
{ $values { "n"integer } }
{ $description "Outputs the number of bits in one CPU operand-sized cell." } ;
HELP:bootstrap-cell
{ $values { "n""a positive integer" } }
{ $description "Outputs the pointer size in bytes for the target image (if bootstrapping) or the current CPU architecture (otherwise)." } ;
HELP:bootstrap-cells
{ $values { "m"integer } { "n"integer } }
{ $description "Computes the number of bytes used by " { $snippet "m" } " cells in the target image (if bootstrapping) or the current CPU architecture (otherwise)." } ;
HELP:bootstrap-cell-bits
{ $values { "n"integer } }
{ $description "Outputs the number of bits in one cell in the target image (if bootstrapping) or the current CPU architecture (otherwise)." } ;
"Every pointer stored on the stack or in the heap has a " { $emphasis "tag" } ", which is a small integer identifying the type of the pointer. If the tag is not equal to one of the two special tags, the remaining bits contain the memory address of a heap-allocated object. The two special tags are the " { $link fixnum } " tag and the " { $link f } " tag."
"The Factor VM does not actually expose any words for working with tagged pointers directly. The above words operate on integers; they are used in the bootstrap image generator and the optimizing compiler.";
"The words documented in this section do not ever need to be called by user code. They are documented for the benefit of those wishing to explore the internals of Factor's implementation."