ABI (Application Binary Interface) refers to the calling conventions between functions, meaning what registers are used and what sizes the various C data types are. ISA (Instruction Set Architecture) refers to the instructions and registers a CPU has available.
Some 64-bit ISA CPUs have both a 64-bit ABI and a 32-bit ABI defined, the latter for compatibility with older CPUs in the family. GMP chooses the best ABI available for a given target system, and this generally gives significantly greater speed.
The burden is on application programs and cooperating libraries to ensure they match the ABI chosen by GMP. Fortunately this presents a difficulty only on a few systems, and if you have one of them then the performance gains are enough to make it worth the trouble.
Some of what's described in this section may change in future releases of GMP.
c89
. No
gcc
support is planned for 64-bit operations in this ABI.
Applications must be compiled with the same options as GMP, which means
c89 +DA2.0 +e -D_LONG_LONG_LIMBA 32-bit limb is used in other cases, and no special compiler options are needed. CPU target `hppa2.0w' uses the hppa2.0w 64-bit ABI, which is available on HP-UX 11 or up when using
c89
. gcc
support for this is in
progress. Applications must be compiled for the same ABI, which means
c89 +DD64
gcc -mabi=n32 cc -n32
gcc -maix64 xlc -q64On other systems the 32-bit ABI is used, but with 64-bit limbs provided by
long long
in gcc
. Applications must be compiled using
gcc -D_LONG_LONG_LIMB
gcc -mv8plus cc -xarch=v8plusFor the v9 ABI, applications must be compiled with either
gcc -m64 -mptr64 -Wa,-xarch=v9 -mcpu=v9 cc -xarch=v9Don't be confused by the names of these options, they're called `arch' but they effectively control the ABI.
Go to the first, previous, next, last section, table of contents.