DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(gmp.info.gz) Assembler Basics

Info Catalog (gmp.info.gz) Assembler Code Organisation (gmp.info.gz) Assembler Coding (gmp.info.gz) Assembler Carry Propagation
 
 Assembler Basics
 ----------------
 
 `mpn_addmul_1' and `mpn_submul_1' are the most important routines for
 overall GMP performance.  All multiplications and divisions come down to
 repeated calls to these.  `mpn_add_n', `mpn_sub_n', `mpn_lshift' and
 `mpn_rshift' are next most important.
 
    On some CPUs assembler versions of the internal functions
 `mpn_mul_basecase' and `mpn_sqr_basecase' give significant speedups,
 mainly through avoiding function call overheads.  They can also
 potentially make better use of a wide superscalar processor, as can
 bigger primitives like `mpn_addmul_2' or `mpn_addmul_4'.
 
 Low-level Functions::) are designed to facilitate a variety of
 implementations.  For example, knowing `mpn_add_n' won't have partly
 overlapping sources and destination means reading can be done far ahead
 of writing on superscalar processors, and loops can be vectorized on a
 vector processor, depending on the carry handling.
 
Info Catalog (gmp.info.gz) Assembler Code Organisation (gmp.info.gz) Assembler Coding (gmp.info.gz) Assembler Carry Propagation
automatically generated byinfo2html