1 /* AMD K7 gmp-mparam.h -- Compiler/machine parameter header file.
3 Copyright (C) 1991, 1993, 1994, 2000 Free Software Foundation, Inc.
5 This file is part of the GNU MP Library.
7 The GNU MP Library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation; either version 2.1 of the License, or (at your
10 option) any later version.
12 The GNU MP Library is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15 License for more details.
17 You should have received a copy of the GNU Lesser General Public License
18 along with the GNU MP Library; see the file COPYING.LIB. If not, write to
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
20 MA 02111-1307, USA. */
22 #define BITS_PER_MP_LIMB 32
23 #define BYTES_PER_MP_LIMB 4
24 #define BITS_PER_LONGINT 32
25 #define BITS_PER_INT 32
26 #define BITS_PER_SHORTINT 16
27 #define BITS_PER_CHAR 8
30 /* the low limb is ready after 4 cycles, but normally it's the high limb
31 which is of interest, and that comes out after 6 cycles */
33 #define UMUL_TIME 6 /* cycles */
36 /* AMD doco says 40, but it measures 39 back-to-back */
38 #define UDIV_TIME 39 /* cycles */
42 #ifndef COUNT_TRAILING_ZEROS_TIME
43 #define COUNT_TRAILING_ZEROS_TIME 7 /* cycles */
47 /* Generated by tuneup.c, 2000-07-06. */
49 #ifndef KARATSUBA_MUL_THRESHOLD
50 #define KARATSUBA_MUL_THRESHOLD 26
52 #ifndef TOOM3_MUL_THRESHOLD
53 #define TOOM3_MUL_THRESHOLD 177
56 #ifndef KARATSUBA_SQR_THRESHOLD
57 #define KARATSUBA_SQR_THRESHOLD 52
59 #ifndef TOOM3_SQR_THRESHOLD
60 #define TOOM3_SQR_THRESHOLD 173
64 #define BZ_THRESHOLD 76
68 #define FIB_THRESHOLD 114
71 #ifndef POWM_THRESHOLD
72 #define POWM_THRESHOLD 34
75 #ifndef GCD_ACCEL_THRESHOLD
76 #define GCD_ACCEL_THRESHOLD 5
78 #ifndef GCDEXT_THRESHOLD
79 #define GCDEXT_THRESHOLD 54
83 #define FFT_MUL_TABLE { 720, 1440, 2944, 7680, 18432, 57344, 0 }
85 #ifndef FFT_MODF_MUL_THRESHOLD
86 #define FFT_MODF_MUL_THRESHOLD 736
88 #ifndef FFT_MUL_THRESHOLD
89 #define FFT_MUL_THRESHOLD 6912
93 #define FFT_SQR_TABLE { 784, 1696, 3200, 7680, 18432, 57344, 0 }
95 #ifndef FFT_MODF_SQR_THRESHOLD
96 #define FFT_MODF_SQR_THRESHOLD 800
98 #ifndef FFT_SQR_THRESHOLD
99 #define FFT_SQR_THRESHOLD 8448