2016-03-08 10:33:08 -05:00
USING: compiler.cfg compiler.cfg.instructions help.markup help.syntax
layouts math quotations words ;
2015-04-29 22:51:58 -04:00
IN: compiler.cfg.intrinsics.fixnum
2015-06-14 02:59:03 -04:00
HELP: fixnum*overflow
{ $values { "x" fixnum } { "y" fixnum } { "z" bignum } }
{ $description "Word called to perform a fixnum multiplication when the product overflows the value storable in " { $link cell } "." }
{ $see-also most-negative-fixnum most-positive-fixnum } ;
2015-04-29 22:51:58 -04:00
HELP: emit-fixnum-comparison
{ $values { "cc" "comparison symbol" } }
2018-08-10 14:04:49 -04:00
{ $description "Emits a " { $link compare-integer## } " instruction to the make sequence." } ;
2016-03-08 10:33:08 -05:00
HELP: emit-fixnum-overflow-op
{ $values
{ "block" basic-block }
{ "quot" quotation }
{ "word" word }
{ "block'" basic-block }
}
{ $description "Inputs to the final instruction need to be copied because of loc>vreg sync." } ;
HELP: emit-fixnum-shift-general
{ $values
{ "block" basic-block }
{ "block'" basic-block }
}
2018-08-10 14:04:49 -04:00
{ $description "Emits intrinsic code for shifting a " { $link fixnum } ". For positive shifts, " { $link shl## } " is used, for negative shifts it is more complicated." } ;
2016-03-08 10:33:08 -05:00
ARTICLE: "compiler.cfg.intrinsics.fixnum" "Generating instructions for fixnum arithmetic"
"Combinators:"
{ $subsections
emit-fixnum-overflow-op
} ;
ABOUT: "compiler.cfg.intrinsics.fixnum"