github.com/aergoio/aergo@v1.3.1/libtool/src/gmp-6.1.2/mpn/x86/k6/gmp-mparam.h (about)

     1  /* AMD K6 gmp-mparam.h -- Compiler/machine parameter header file.
     2  
     3  Copyright 1991, 1993, 1994, 2000-2004, 2009, 2010 Free Software Foundation,
     4  Inc.
     5  
     6  This file is part of the GNU MP Library.
     7  
     8  The GNU MP Library is free software; you can redistribute it and/or modify
     9  it under the terms of either:
    10  
    11    * the GNU Lesser General Public License as published by the Free
    12      Software Foundation; either version 3 of the License, or (at your
    13      option) any later version.
    14  
    15  or
    16  
    17    * the GNU General Public License as published by the Free Software
    18      Foundation; either version 2 of the License, or (at your option) any
    19      later version.
    20  
    21  or both in parallel, as here.
    22  
    23  The GNU MP Library is distributed in the hope that it will be useful, but
    24  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    25  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    26  for more details.
    27  
    28  You should have received copies of the GNU General Public License and the
    29  GNU Lesser General Public License along with the GNU MP Library.  If not,
    30  see https://www.gnu.org/licenses/.  */
    31  
    32  #define GMP_LIMB_BITS 32
    33  #define GMP_LIMB_BYTES 4
    34  
    35  
    36  /* 450MHz K6-2 */
    37  
    38  #define MOD_1_NORM_THRESHOLD                12
    39  #define MOD_1_UNNORM_THRESHOLD           MP_SIZE_T_MAX  /* never */
    40  #define MOD_1N_TO_MOD_1_1_THRESHOLD         41
    41  #define MOD_1U_TO_MOD_1_1_THRESHOLD         32
    42  #define MOD_1_1_TO_MOD_1_2_THRESHOLD         3
    43  #define MOD_1_2_TO_MOD_1_4_THRESHOLD         0
    44  #define PREINV_MOD_1_TO_MOD_1_THRESHOLD    128
    45  #define USE_PREINV_DIVREM_1                  0
    46  #define DIVEXACT_1_THRESHOLD                 0  /* always (native) */
    47  #define BMOD_1_TO_MOD_1_THRESHOLD        MP_SIZE_T_MAX  /* never */
    48  
    49  #define MUL_TOOM22_THRESHOLD                20
    50  #define MUL_TOOM33_THRESHOLD                69
    51  #define MUL_TOOM44_THRESHOLD               106
    52  #define MUL_TOOM6H_THRESHOLD               157
    53  #define MUL_TOOM8H_THRESHOLD               199
    54  
    55  #define MUL_TOOM32_TO_TOOM43_THRESHOLD      73
    56  #define MUL_TOOM32_TO_TOOM53_THRESHOLD      69
    57  #define MUL_TOOM42_TO_TOOM53_THRESHOLD      65
    58  #define MUL_TOOM42_TO_TOOM63_THRESHOLD      64
    59  
    60  #define SQR_BASECASE_THRESHOLD               0  /* always (native) */
    61  #define SQR_TOOM2_THRESHOLD                 32
    62  #define SQR_TOOM3_THRESHOLD                 97
    63  #define SQR_TOOM4_THRESHOLD                143
    64  #define SQR_TOOM6_THRESHOLD                222
    65  #define SQR_TOOM8_THRESHOLD                272
    66  
    67  #define MULMOD_BNM1_THRESHOLD               13
    68  #define SQRMOD_BNM1_THRESHOLD               17
    69  
    70  #define MUL_FFT_MODF_THRESHOLD             476  /* k = 5 */
    71  #define MUL_FFT_TABLE3                                      \
    72    { {    476, 5}, {     17, 6}, {      9, 5}, {     19, 6}, \
    73      {     11, 5}, {     23, 6}, {     17, 7}, {      9, 6}, \
    74      {     19, 7}, {     11, 6}, {     23, 7}, {     13, 6}, \
    75      {     27, 7}, {     15, 6}, {     31, 7}, {     17, 6}, \
    76      {     35, 7}, {     21, 8}, {     11, 7}, {     27, 8}, \
    77      {     15, 7}, {     35, 8}, {     19, 7}, {     39, 8}, \
    78      {     23, 7}, {     47, 8}, {     27, 9}, {     15, 8}, \
    79      {     31, 7}, {     63, 8}, {     39, 9}, {     23, 8}, \
    80      {     51,10}, {     15, 9}, {     31, 8}, {     67, 9}, \
    81      {     47,10}, {     31, 9}, {     79,10}, {     47, 9}, \
    82      {     95,11}, {     31,10}, {     63, 9}, {    135,10}, \
    83      {     79, 9}, {    167,10}, {     95, 9}, {    191,10}, \
    84      {    111,11}, {     63,10}, {    127, 9}, {    255,10}, \
    85      {    143, 9}, {    287,10}, {    159,11}, {     95,10}, \
    86      {    191, 9}, {    383,12}, {     63,11}, {    127,10}, \
    87      {    255, 9}, {    511,10}, {    271, 9}, {    543,10}, \
    88      {    287,11}, {    159,10}, {    351,11}, {    191,10}, \
    89      {    415, 9}, {    831,11}, {    223,12}, {    127,11}, \
    90      {    255,10}, {    543,11}, {    287,10}, {    575,11}, \
    91      {    351,10}, {    703,12}, {    191,11}, {    415,10}, \
    92      {    831,13}, {    127,12}, {    255,11}, {    543,10}, \
    93      {   1087,11}, {    575,12}, {    319,11}, {    703,12}, \
    94      {    383,11}, {    831,12}, {    447,11}, {    895,13}, \
    95      {    255,12}, {    511,11}, {   1087,12}, {    575,11}, \
    96      {   1151,12}, {    703,13}, {    383,12}, {    959,14}, \
    97      {    255,13}, {    511,12}, {   1215,13}, {   8192,14}, \
    98      {  16384,15}, {  32768,16} }
    99  #define MUL_FFT_TABLE3_SIZE 106
   100  #define MUL_FFT_THRESHOLD                 7424
   101  
   102  #define SQR_FFT_MODF_THRESHOLD             432  /* k = 5 */
   103  #define SQR_FFT_TABLE3                                      \
   104    { {    432, 5}, {     17, 6}, {      9, 5}, {     19, 6}, \
   105      {     11, 5}, {     23, 6}, {     21, 7}, {     11, 6}, \
   106      {     24, 7}, {     13, 6}, {     27, 7}, {     15, 6}, \
   107      {     31, 7}, {     21, 8}, {     11, 7}, {     29, 8}, \
   108      {     15, 7}, {     35, 8}, {     19, 7}, {     39, 8}, \
   109      {     23, 7}, {     49, 8}, {     27, 9}, {     15, 8}, \
   110      {     39, 9}, {     23, 7}, {     93, 8}, {     47, 7}, \
   111      {     95, 8}, {     51,10}, {     15, 9}, {     31, 8}, \
   112      {     67, 9}, {     39, 8}, {     79, 9}, {     47, 8}, \
   113      {     95, 9}, {     55,10}, {     31, 9}, {     71, 8}, \
   114      {    143, 9}, {     79,10}, {     47, 9}, {     95,11}, \
   115      {     31,10}, {     63, 9}, {    135,10}, {     79, 9}, \
   116      {    167,10}, {     95, 9}, {    191,11}, {     63,10}, \
   117      {    127, 9}, {    255,10}, {    143, 9}, {    287, 8}, \
   118      {    575,10}, {    159, 9}, {    319,11}, {     95,10}, \
   119      {    191,12}, {     63,11}, {    127,10}, {    255, 9}, \
   120      {    511,10}, {    271, 9}, {    543,10}, {    287,11}, \
   121      {    159,10}, {    319, 9}, {    639,10}, {    351, 9}, \
   122      {    703,11}, {    191,10}, {    415,11}, {    223,12}, \
   123      {    127,11}, {    255,10}, {    543,11}, {    287,10}, \
   124      {    607,11}, {    319,10}, {    639,11}, {    351,10}, \
   125      {    703,12}, {    191,11}, {    415,10}, {    831,13}, \
   126      {    127,12}, {    255,11}, {    543,10}, {   1087,11}, \
   127      {    607,12}, {    319,11}, {    703,12}, {    383,11}, \
   128      {    831,12}, {    447,13}, {    255,12}, {    511,11}, \
   129      {   1087,12}, {    575,11}, {   1215,12}, {    703,13}, \
   130      {    383,12}, {    895,14}, {    255,13}, {    511,12}, \
   131      {   1215,13}, {   8192,14}, {  16384,15}, {  32768,16} }
   132  #define SQR_FFT_TABLE3_SIZE 112
   133  #define SQR_FFT_THRESHOLD                 7040
   134  
   135  #define MULLO_BASECASE_THRESHOLD             3
   136  #define MULLO_DC_THRESHOLD                  60
   137  #define MULLO_MUL_N_THRESHOLD            13463
   138  
   139  #define DC_DIV_QR_THRESHOLD                 78
   140  #define DC_DIVAPPR_Q_THRESHOLD             252
   141  #define DC_BDIV_QR_THRESHOLD                84
   142  #define DC_BDIV_Q_THRESHOLD                171
   143  
   144  #define INV_MULMOD_BNM1_THRESHOLD           55
   145  #define INV_NEWTON_THRESHOLD               234
   146  #define INV_APPR_THRESHOLD                 236
   147  
   148  #define BINV_NEWTON_THRESHOLD              268
   149  #define REDC_1_TO_REDC_N_THRESHOLD          67
   150  
   151  #define MU_DIV_QR_THRESHOLD               1308
   152  #define MU_DIVAPPR_Q_THRESHOLD            1142
   153  #define MUPI_DIV_QR_THRESHOLD              134
   154  #define MU_BDIV_QR_THRESHOLD              1164
   155  #define MU_BDIV_Q_THRESHOLD               1164
   156  
   157  #define MATRIX22_STRASSEN_THRESHOLD         15
   158  #define HGCD_THRESHOLD                     182
   159  #define GCD_DC_THRESHOLD                   591
   160  #define GCDEXT_DC_THRESHOLD                472
   161  #define JACOBI_BASE_METHOD                   2
   162  
   163  #define GET_STR_DC_THRESHOLD                24
   164  #define GET_STR_PRECOMPUTE_THRESHOLD        40
   165  #define SET_STR_DC_THRESHOLD               834
   166  #define SET_STR_PRECOMPUTE_THRESHOLD      2042