1 /* Various Thresholds of MPFR, not exported. -*- mode: C -*- 2 3 Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. 4 5 This file is part of the GNU MPFR Library. 6 7 The GNU MPFR 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 3 of the License, or (at your 10 option) any later version. 11 12 The GNU MPFR 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. 16 17 You should have received a copy of the GNU Lesser General Public License 18 along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see 19 http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., 20 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ 21 22 #ifndef __MPFR_IMPL_H__ 23 # error "MPFR Internal not included" 24 #endif 25 26 /* Note: the different macros used here are those defined by gcc, 27 for example with gcc -dM -E -xc /dev/null 28 As of gcc 4.2, you can also use: -march=native or -mtune=native */ 29 30 #if defined (__tune_pentium4__) /* Threshold for Pentium 4 */ 31 #define MPFR_TUNE_CASE "src/x86_64/pentium4/mparam.h" 32 #include "x86_64/pentium4/mparam.h" 33 34 #elif (defined (__tune_core2__) || defined (__tune_nocona__)) && defined (__x86_64) /* 64-bit Core 2 or Xeon */ 35 #define MPFR_TUNE_CASE "src/x86_64/core2/mparam.h" 36 #include "x86_64/core2/mparam.h" 37 38 #elif defined (__tune_core2__) && defined (__i386) /* 32-bit Core 2, 39 for example a 64-bit machine with gmp/mpfr compiled with ABI=32 */ 40 #define MPFR_TUNE_CASE "src/x86/core2/mparam.h" 41 #include "x86/core2/mparam.h" 42 43 #elif defined (__tune_k8__) /* Threshold for AMD 64 */ 44 #define MPFR_TUNE_CASE "src/amd/k8/mparam.h" 45 #include "amd/k8/mparam.h" 46 47 #elif defined (__tune_athlon__) /* Threshold for Athlon */ 48 #define MPFR_TUNE_CASE "src/amd/athlon/mparam.h" 49 #include "amd/athlon/mparam.h" 50 51 #elif defined (__tune_pentiumpro__) || defined (__tune_i686__) || defined (__i386) /* we consider all other 386's here */ 52 #define MPFR_TUNE_CASE "src/x86/mparam.h" 53 #include "x86/mparam.h" 54 55 #elif defined (__ia64) || defined (__itanium__) || defined (__tune_ia64__) 56 /* Threshold for IA64 */ 57 #define MPFR_TUNE_CASE "src/ia64/mparam.h" 58 #include "ia64/mparam.h" 59 60 #elif defined (__arm__) /* Threshold for ARM */ 61 #define MPFR_TUNE_CASE "src/arm/mparam.h" 62 #include "arm/mparam.h" 63 64 #elif defined (__PPC64__) /* Threshold for 64-bit PowerPC, test it before 65 32-bit PowerPC since _ARCH_PPC is also defined 66 on 64-bit PowerPC */ 67 #define MPFR_TUNE_CASE "src/powerpc64/mparam.h" 68 #include "powerpc64/mparam.h" 69 70 #elif defined (_ARCH_PPC) /* Threshold for 32-bit PowerPC */ 71 #define MPFR_TUNE_CASE "src/powerpc32/mparam.h" 72 #include "powerpc32/mparam.h" 73 74 #elif defined (__sparc_v9__) /* Threshold for 64-bits Sparc */ 75 #define MPFR_TUNE_CASE "src/sparc64/mparam.h" 76 #include "sparc64/mparam.h" 77 78 #elif defined (__hppa__) /* Threshold for HPPA */ 79 #define MPFR_TUNE_CASE "src/hppa/mparam.h" 80 #include "hppa/mparam.h" 81 82 #else 83 #define MPFR_TUNE_CASE "default" 84 #endif 85 86 /**************************************************************** 87 * Default values of Threshold. * 88 * Must be included in any case: it checks, for every constant, * 89 * if it has been defined, and it sets it to a default value if * 90 * it was not previously defined. * 91 ****************************************************************/ 92 #include "generic/mparam.h" 93