xref: /minix3/external/lgpl3/gmp/lib/libgmp/arch/i386/gmp-mparam.h (revision e3209ae7661484355fce7e5f8f0090acb283ef74)
1*e3209ae7SThomas Veerman /* 80486 gmp-mparam.h -- Compiler/machine parameter header file.
2*e3209ae7SThomas Veerman 
3*e3209ae7SThomas Veerman Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
4*e3209ae7SThomas Veerman 
5*e3209ae7SThomas Veerman This file is part of the GNU MP Library.
6*e3209ae7SThomas Veerman 
7*e3209ae7SThomas Veerman The GNU MP Library is free software; you can redistribute it and/or modify
8*e3209ae7SThomas Veerman it under the terms of the GNU Lesser General Public License as published by
9*e3209ae7SThomas Veerman the Free Software Foundation; either version 3 of the License, or (at your
10*e3209ae7SThomas Veerman option) any later version.
11*e3209ae7SThomas Veerman 
12*e3209ae7SThomas Veerman The GNU MP Library is distributed in the hope that it will be useful, but
13*e3209ae7SThomas Veerman WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14*e3209ae7SThomas Veerman or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
15*e3209ae7SThomas Veerman License for more details.
16*e3209ae7SThomas Veerman 
17*e3209ae7SThomas Veerman You should have received a copy of the GNU Lesser General Public License
18*e3209ae7SThomas Veerman along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.  */
19*e3209ae7SThomas Veerman 
20*e3209ae7SThomas Veerman #define GMP_LIMB_BITS 32
21*e3209ae7SThomas Veerman #define BYTES_PER_MP_LIMB 4
22*e3209ae7SThomas Veerman 
23*e3209ae7SThomas Veerman 
24*e3209ae7SThomas Veerman /* 100MHz DX4 */
25*e3209ae7SThomas Veerman 
26*e3209ae7SThomas Veerman /* Generated by tuneup.c, 2003-02-13, gcc 2.95 */
27*e3209ae7SThomas Veerman 
28*e3209ae7SThomas Veerman #define MUL_TOOM22_THRESHOLD             18
29*e3209ae7SThomas Veerman #define MUL_TOOM33_THRESHOLD            228
30*e3209ae7SThomas Veerman 
31*e3209ae7SThomas Veerman #define SQR_BASECASE_THRESHOLD           13
32*e3209ae7SThomas Veerman #define SQR_TOOM2_THRESHOLD              49
33*e3209ae7SThomas Veerman #define SQR_TOOM3_THRESHOLD             238
34*e3209ae7SThomas Veerman 
35*e3209ae7SThomas Veerman #define DIV_SB_PREINV_THRESHOLD       MP_SIZE_T_MAX  /* never */
36*e3209ae7SThomas Veerman #define DIV_DC_THRESHOLD                 72
37*e3209ae7SThomas Veerman #define POWM_THRESHOLD                   38
38*e3209ae7SThomas Veerman 
39*e3209ae7SThomas Veerman #define GCD_ACCEL_THRESHOLD               3
40*e3209ae7SThomas Veerman #define JACOBI_BASE_METHOD                2
41*e3209ae7SThomas Veerman 
42*e3209ae7SThomas Veerman #define USE_PREINV_DIVREM_1               0
43*e3209ae7SThomas Veerman #define USE_PREINV_MOD_1                  0
44*e3209ae7SThomas Veerman #define DIVREM_2_THRESHOLD            MP_SIZE_T_MAX  /* never */
45*e3209ae7SThomas Veerman #define DIVEXACT_1_THRESHOLD              0  /* always (native) */
46*e3209ae7SThomas Veerman #define MODEXACT_1_ODD_THRESHOLD         17
47*e3209ae7SThomas Veerman 
48*e3209ae7SThomas Veerman #define GET_STR_DC_THRESHOLD             32
49*e3209ae7SThomas Veerman #define GET_STR_PRECOMPUTE_THRESHOLD     82
50*e3209ae7SThomas Veerman #define SET_STR_THRESHOLD              3524
51*e3209ae7SThomas Veerman 
52*e3209ae7SThomas Veerman #define MUL_FFT_TABLE  { 464, 928, 1920, 4608, 10240, 40960, 0 }
53*e3209ae7SThomas Veerman #define MUL_FFT_MODF_THRESHOLD          392
54*e3209ae7SThomas Veerman #define MUL_FFT_THRESHOLD              2816
55*e3209ae7SThomas Veerman 
56*e3209ae7SThomas Veerman #define SQR_FFT_TABLE  { 432, 928, 1920, 4608, 14336, 40960, 0 }
57*e3209ae7SThomas Veerman #define SQR_FFT_MODF_THRESHOLD          392
58*e3209ae7SThomas Veerman #define SQR_FFT_THRESHOLD              2816
59