1/* Intel P6 gmp-mparam.h -- Compiler/machine parameter header file.
2
3Copyright 1991, 1993, 1994, 1999, 2000, 2001, 2002, 2003 Free Software
4Foundation, Inc.
5
6This file is part of the GNU MP Library.
7
8The GNU MP Library is free software; you can redistribute it and/or modify
9it under the terms of the GNU Lesser General Public License as published by
10the Free Software Foundation; either version 3 of the License, or (at your
11option) any later version.
12
13The GNU MP Library is distributed in the hope that it will be useful, but
14WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
16License for more details.
17
18You should have received a copy of the GNU Lesser General Public License
19along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.  */
20
21
22#define GMP_LIMB_BITS 32
23#define BYTES_PER_MP_LIMB 4
24
25
26/* NOTE: In a fat binary build SQR_TOOM2_THRESHOLD here cannot be smaller than
27   the value in mpn/x86/p6/mmx/gmp-mparam.h.  The former is used as a hard
28   limit in mpn/x86/p6/sqr_basecase.asm, and that file will be run by the
29   p6/mmx cpus (pentium2, pentium3).  */
30
31
32/* 200MHz Pentium Pro */
33
34/* Generated by tuneup.c, 2003-02-12, gcc 2.95 */
35
36#define MUL_TOOM22_THRESHOLD             23
37#define MUL_TOOM33_THRESHOLD            140
38
39#define SQR_BASECASE_THRESHOLD            0  /* always */
40#define SQR_TOOM2_THRESHOLD              52
41#define SQR_TOOM3_THRESHOLD             189
42
43#define DIV_SB_PREINV_THRESHOLD           0  /* always */
44#define DIV_DC_THRESHOLD                116
45#define POWM_THRESHOLD                  131
46
47#define GCD_ACCEL_THRESHOLD               3
48#define JACOBI_BASE_METHOD                1
49
50#define USE_PREINV_DIVREM_1               0
51#define USE_PREINV_MOD_1                  1  /* native */
52#define DIVREM_2_THRESHOLD                0  /* always */
53#define DIVEXACT_1_THRESHOLD              0  /* always */
54#define MODEXACT_1_ODD_THRESHOLD          0  /* always */
55
56#define GET_STR_DC_THRESHOLD             18
57#define GET_STR_PRECOMPUTE_THRESHOLD     23
58#define SET_STR_THRESHOLD              6093
59
60#define MUL_FFT_TABLE  { 464, 928, 1920, 3584, 10240, 40960, 0 }
61#define MUL_FFT_MODF_THRESHOLD          360
62#define MUL_FFT_THRESHOLD              2816
63
64#define SQR_FFT_TABLE  { 528, 1184, 1920, 4608, 14336, 40960, 0 }
65#define SQR_FFT_MODF_THRESHOLD          440
66#define SQR_FFT_THRESHOLD              2816
67