1*7d829589Smrg /* PowerPC-64 gmp-mparam.h -- Compiler/machine parameter header file.
2988d036cSmrg 
3*7d829589Smrg Copyright 2008, 2009 Free Software Foundation, Inc.
4988d036cSmrg 
5988d036cSmrg This file is part of the GNU MP Library.
6988d036cSmrg 
7988d036cSmrg The GNU MP Library is free software; you can redistribute it and/or modify
8*7d829589Smrg it under the terms of either:
9*7d829589Smrg 
10*7d829589Smrg   * the GNU Lesser General Public License as published by the Free
11*7d829589Smrg     Software Foundation; either version 3 of the License, or (at your
12988d036cSmrg     option) any later version.
13988d036cSmrg 
14*7d829589Smrg or
15*7d829589Smrg 
16*7d829589Smrg   * the GNU General Public License as published by the Free Software
17*7d829589Smrg     Foundation; either version 2 of the License, or (at your option) any
18*7d829589Smrg     later version.
19*7d829589Smrg 
20*7d829589Smrg or both in parallel, as here.
21*7d829589Smrg 
22988d036cSmrg The GNU MP Library is distributed in the hope that it will be useful, but
23988d036cSmrg WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
24*7d829589Smrg or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
25*7d829589Smrg for more details.
26988d036cSmrg 
27*7d829589Smrg You should have received copies of the GNU General Public License and the
28*7d829589Smrg GNU Lesser General Public License along with the GNU MP Library.  If not,
29*7d829589Smrg see https://www.gnu.org/licenses/.  */
30988d036cSmrg 
31*7d829589Smrg #define GMP_LIMB_BITS 64
32*7d829589Smrg #define GMP_LIMB_BYTES 8
33988d036cSmrg 
34*7d829589Smrg /* 1600MHz PPC970 */
35*7d829589Smrg 
36*7d829589Smrg /* Generated by tuneup.c, 2009-01-14, gcc 4.0 */
37*7d829589Smrg 
38*7d829589Smrg #define MUL_TOOM22_THRESHOLD             14
39*7d829589Smrg #define MUL_TOOM33_THRESHOLD             93
40*7d829589Smrg #define MUL_TOOM44_THRESHOLD            135
41*7d829589Smrg 
42*7d829589Smrg #define SQR_BASECASE_THRESHOLD            6
43*7d829589Smrg #define SQR_TOOM2_THRESHOLD              32
44*7d829589Smrg #define SQR_TOOM3_THRESHOLD              74
45*7d829589Smrg #define SQR_TOOM4_THRESHOLD             136
46*7d829589Smrg 
47*7d829589Smrg #define MULLO_BASECASE_THRESHOLD          0  /* always */
48*7d829589Smrg #define MULLO_DC_THRESHOLD               44
49*7d829589Smrg #define MULLO_MUL_N_THRESHOLD           234
50*7d829589Smrg 
51*7d829589Smrg #define DIV_SB_PREINV_THRESHOLD           0  /* always */
52*7d829589Smrg #define DIV_DC_THRESHOLD                 33
53*7d829589Smrg #define POWM_THRESHOLD                   89
54*7d829589Smrg 
55*7d829589Smrg #define MATRIX22_STRASSEN_THRESHOLD      15
56*7d829589Smrg #define HGCD_THRESHOLD                   93
57*7d829589Smrg #define GCD_DC_THRESHOLD                237
58*7d829589Smrg #define GCDEXT_DC_THRESHOLD             273
59*7d829589Smrg #define JACOBI_BASE_METHOD                1
60*7d829589Smrg 
61*7d829589Smrg #define MOD_1_NORM_THRESHOLD              0  /* always */
62*7d829589Smrg #define MOD_1_UNNORM_THRESHOLD            0  /* always */
63*7d829589Smrg #define MOD_1_1_THRESHOLD                 6
64*7d829589Smrg #define MOD_1_2_THRESHOLD                 9
65*7d829589Smrg #define MOD_1_4_THRESHOLD                23
66*7d829589Smrg #define USE_PREINV_DIVREM_1               0
67*7d829589Smrg #define USE_PREINV_MOD_1                  0
68*7d829589Smrg #define DIVEXACT_1_THRESHOLD              0  /* always (native) */
69*7d829589Smrg #define MODEXACT_1_ODD_THRESHOLD          0  /* always (native) */
70*7d829589Smrg 
71*7d829589Smrg #define GET_STR_DC_THRESHOLD             12
72*7d829589Smrg #define GET_STR_PRECOMPUTE_THRESHOLD     24
73*7d829589Smrg #define SET_STR_DC_THRESHOLD            650
74*7d829589Smrg #define SET_STR_PRECOMPUTE_THRESHOLD   1713
75*7d829589Smrg 
76*7d829589Smrg #define MUL_FFT_TABLE  { 336, 672, 1856, 2816, 7168, 20480, 81920, 327680, 0 }
77*7d829589Smrg #define MUL_FFT_MODF_THRESHOLD          304
78*7d829589Smrg #define MUL_FFT_THRESHOLD              4224
79*7d829589Smrg 
80*7d829589Smrg #define SQR_FFT_TABLE  { 272, 672, 1600, 2816, 7168, 20480, 81920, 327680, 786432, 0 }
81*7d829589Smrg #define SQR_FFT_MODF_THRESHOLD          272
82*7d829589Smrg #define SQR_FFT_THRESHOLD              2688
83