GNU Info

Info Node: (gmp.info)Assembler Coding

(gmp.info)Assembler Coding


Prev: Other Algorithms Up: Algorithms
Enter node , (file) or (file)node

Assembler Coding
================

   The assembler subroutines in GMP are the most significant source of
speed at small to moderate sizes.  At larger sizes algorithm selection
becomes more important, but of course speedups in low level routines
will still speed up everything proportionally.

   Carry handling and widening multiplies that are important for GMP
can't be easily expressed in C.  GCC `asm' blocks help a lot and are
provided in `longlong.h', but hand coding low level routines invariably
offers a speedup over generic C by a factor of anything from 2 to 10.

Assembler Code Organisation
Assembler Basics
Assembler Carry Propagation
Assembler Cache Handling
Assembler Floating Point
Assembler SIMD Instructions
Assembler Software Pipelining
Assembler Loop Unrolling

automatically generated by info2www version 1.2.2.9