diff options
Diffstat (limited to 'gmp/mpn/x86/k6')
-rw-r--r-- | gmp/mpn/x86/k6/README | 25 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/aors_n.asm | 35 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/aorsmul_1.asm | 56 | ||||
-rwxr-xr-x | gmp/mpn/x86/k6/cross.pl | 33 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/divrem_1.asm | 36 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/gcd_1.asm | 35 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/gmp-mparam.h | 202 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/k62mmx/copyd.asm | 33 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/k62mmx/lshift.asm | 33 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/k62mmx/rshift.asm | 33 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mmx/com_n.asm (renamed from gmp/mpn/x86/k6/mmx/com.asm) | 41 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mmx/dive_1.asm | 37 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mmx/logops_n.asm | 35 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mmx/lshift.asm | 33 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mmx/popham.asm | 35 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mmx/rshift.asm | 33 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mod_34lsub1.asm | 35 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mode1o.asm | 37 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mul_1.asm | 47 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/mul_basecase.asm | 35 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/pre_mod_1.asm | 33 | ||||
-rw-r--r-- | gmp/mpn/x86/k6/sqr_basecase.asm | 57 |
22 files changed, 326 insertions, 653 deletions
diff --git a/gmp/mpn/x86/k6/README b/gmp/mpn/x86/k6/README index 1d65af3851..f488cbd1d8 100644 --- a/gmp/mpn/x86/k6/README +++ b/gmp/mpn/x86/k6/README @@ -3,28 +3,17 @@ Copyright 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU MP Library. The GNU MP Library is free software; you can redistribute it and/or modify -it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - -or - - * the GNU General Public License as published by the Free Software - Foundation; either version 2 of the License, or (at your option) any - later version. - -or both in parallel, as here. +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 3 of the License, or (at your +option) any later version. The GNU MP Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details. -You should have received copies of the GNU General Public License and the -GNU Lesser General Public License along with the GNU MP Library. If not, -see https://www.gnu.org/licenses/. +You should have received a copy of the GNU Lesser General Public License +along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. diff --git a/gmp/mpn/x86/k6/aors_n.asm b/gmp/mpn/x86/k6/aors_n.asm index 168f9b4ae4..09afd8f688 100644 --- a/gmp/mpn/x86/k6/aors_n.asm +++ b/gmp/mpn/x86/k6/aors_n.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_add/sub_n -- mpn addition or subtraction. -dnl Copyright 1999-2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/aorsmul_1.asm b/gmp/mpn/x86/k6/aorsmul_1.asm index eaa92ebb24..c3795e3abb 100644 --- a/gmp/mpn/x86/k6/aorsmul_1.asm +++ b/gmp/mpn/x86/k6/aorsmul_1.asm @@ -1,52 +1,42 @@ dnl AMD K6 mpn_addmul_1/mpn_submul_1 -- add or subtract mpn multiple. -dnl Copyright 1999-2003, 2005 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, +dnl Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') -C cycles/limb -C P5 -C P6 model 0-8,10-12 5.94 -C P6 model 9 (Banias) 5.51 -C P6 model 13 (Dothan) 5.57 +C cycles/limb +C P5: +C P6 model 0-8,10-12) 5.94 +C P6 model 9 (Banias) +C P6 model 13 (Dothan) 5.57 C P4 model 0 (Willamette) C P4 model 1 (?) C P4 model 2 (Northwood) C P4 model 3 (Prescott) C P4 model 4 (Nocona) -C AMD K6 7.65-8.5 (data dependent) -C AMD K7 -C AMD K8 +C K6: 7.65-8.5 (data dependent) +C K7: +C K8: -dnl K6: large multipliers small multipliers +dnl K6: large multpliers small multpliers dnl UNROLL_COUNT cycles/limb cycles/limb dnl 4 9.5 7.78 dnl 8 9.0 7.78 @@ -257,7 +247,7 @@ C registers at the point of doing the mul for the initial two carry limbs. C C The add/adc for the initial carry in %esi is necessary only for the C mpn_addmul/submul_1c entry points. Duplicating the startup code to -C eliminate this for the plain mpn_add/submul_1 doesn't seem like a good +C eliminiate this for the plain mpn_add/submul_1 doesn't seem like a good C idea. dnl overlapping with parameters already fetched diff --git a/gmp/mpn/x86/k6/cross.pl b/gmp/mpn/x86/k6/cross.pl index fc921a56b7..cf476d603b 100755 --- a/gmp/mpn/x86/k6/cross.pl +++ b/gmp/mpn/x86/k6/cross.pl @@ -2,31 +2,20 @@ # Copyright 2000, 2001 Free Software Foundation, Inc. # -# This file is part of the GNU MP Library. +# This file is part of the GNU MP Library. # -# The GNU MP Library is free software; you can redistribute it and/or modify -# it under the terms of either: +# The GNU MP Library is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation; either version 3 of the License, or (at +# your option) any later version. # -# * the GNU Lesser General Public License as published by the Free -# Software Foundation; either version 3 of the License, or (at your -# option) any later version. +# The GNU MP Library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +# License for more details. # -# or -# -# * the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any -# later version. -# -# or both in parallel, as here. -# -# The GNU MP Library is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received copies of the GNU General Public License and the -# GNU Lesser General Public License along with the GNU MP Library. If not, -# see https://www.gnu.org/licenses/. +# You should have received a copy of the GNU Lesser General Public License +# along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. # Usage: cross.pl [filename.o]... diff --git a/gmp/mpn/x86/k6/divrem_1.asm b/gmp/mpn/x86/k6/divrem_1.asm index b4cea4fa2a..1c86d9bd6c 100644 --- a/gmp/mpn/x86/k6/divrem_1.asm +++ b/gmp/mpn/x86/k6/divrem_1.asm @@ -1,32 +1,22 @@ dnl AMD K6 mpn_divrem_1 -- mpn by limb division. -dnl Copyright 1999-2003, 2007 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 1999, 2000, 2001, 2002, 2003, 2007 Free Software Foundation, +dnl Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/gcd_1.asm b/gmp/mpn/x86/k6/gcd_1.asm index 0c233ff362..58aff08221 100644 --- a/gmp/mpn/x86/k6/gcd_1.asm +++ b/gmp/mpn/x86/k6/gcd_1.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_gcd_1 -- mpn by 1 gcd. -dnl Copyright 2000-2002, 2004 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 2000, 2001, 2002, 2004 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/gmp-mparam.h b/gmp/mpn/x86/k6/gmp-mparam.h index f03f1b2d91..c04446a573 100644 --- a/gmp/mpn/x86/k6/gmp-mparam.h +++ b/gmp/mpn/x86/k6/gmp-mparam.h @@ -1,166 +1,68 @@ /* AMD K6 gmp-mparam.h -- Compiler/machine parameter header file. -Copyright 1991, 1993, 1994, 2000-2004, 2009, 2010 Free Software Foundation, -Inc. +Copyright 1991, 1993, 1994, 2000, 2001, 2002, 2003, 2004, 2009 +Free Software Foundation, Inc. This file is part of the GNU MP Library. The GNU MP Library is free software; you can redistribute it and/or modify -it under the terms of either: +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 3 of the License, or (at your +option) any later version. - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details. -or +You should have received a copy of the GNU Lesser General Public License +along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */ - * the GNU General Public License as published by the Free Software - Foundation; either version 2 of the License, or (at your option) any - later version. +#define BITS_PER_MP_LIMB 32 +#define BYTES_PER_MP_LIMB 4 -or both in parallel, as here. -The GNU MP Library is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +/* 450MHz K6-2 */ -You should have received copies of the GNU General Public License and the -GNU Lesser General Public License along with the GNU MP Library. If not, -see https://www.gnu.org/licenses/. */ +/* Generated by tuneup.c, 2009-01-05, gcc 3.4 */ -#define GMP_LIMB_BITS 32 -#define GMP_LIMB_BYTES 4 +#define MUL_KARATSUBA_THRESHOLD 19 +#define MUL_TOOM3_THRESHOLD 73 +#define MUL_TOOM44_THRESHOLD 104 +#define SQR_BASECASE_THRESHOLD 0 /* always (native) */ +#define SQR_KARATSUBA_THRESHOLD 32 +#define SQR_TOOM3_THRESHOLD 105 +#define SQR_TOOM4_THRESHOLD 143 -/* 450MHz K6-2 */ +#define MULLOW_BASECASE_THRESHOLD 0 /* always */ +#define MULLOW_DC_THRESHOLD 64 +#define MULLOW_MUL_N_THRESHOLD 232 + +#define DIV_SB_PREINV_THRESHOLD 4 +#define DIV_DC_THRESHOLD 67 +#define POWM_THRESHOLD 110 + +#define MATRIX22_STRASSEN_THRESHOLD 21 +#define HGCD_THRESHOLD 195 +#define GCD_DC_THRESHOLD 602 +#define GCDEXT_DC_THRESHOLD 662 +#define JACOBI_BASE_METHOD 2 + +#define USE_PREINV_DIVREM_1 0 +#define USE_PREINV_MOD_1 1 /* native */ +#define DIVEXACT_1_THRESHOLD 0 /* always (native) */ +#define MODEXACT_1_ODD_THRESHOLD 0 /* always (native) */ + +#define GET_STR_DC_THRESHOLD 31 +#define GET_STR_PRECOMPUTE_THRESHOLD 52 +#define SET_STR_DC_THRESHOLD 1127 +#define SET_STR_PRECOMPUTE_THRESHOLD 1795 + +#define MUL_FFT_TABLE { 336, 672, 1152, 3584, 10240, 24576, 163840, 393216, 0 } +#define MUL_FFT_MODF_THRESHOLD 352 +#define MUL_FFT_THRESHOLD 7168 -#define MOD_1_NORM_THRESHOLD 12 -#define MOD_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */ -#define MOD_1N_TO_MOD_1_1_THRESHOLD 41 -#define MOD_1U_TO_MOD_1_1_THRESHOLD 32 -#define MOD_1_1_TO_MOD_1_2_THRESHOLD 3 -#define MOD_1_2_TO_MOD_1_4_THRESHOLD 0 -#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 128 -#define USE_PREINV_DIVREM_1 0 -#define DIVEXACT_1_THRESHOLD 0 /* always (native) */ -#define BMOD_1_TO_MOD_1_THRESHOLD MP_SIZE_T_MAX /* never */ - -#define MUL_TOOM22_THRESHOLD 20 -#define MUL_TOOM33_THRESHOLD 69 -#define MUL_TOOM44_THRESHOLD 106 -#define MUL_TOOM6H_THRESHOLD 157 -#define MUL_TOOM8H_THRESHOLD 199 - -#define MUL_TOOM32_TO_TOOM43_THRESHOLD 73 -#define MUL_TOOM32_TO_TOOM53_THRESHOLD 69 -#define MUL_TOOM42_TO_TOOM53_THRESHOLD 65 -#define MUL_TOOM42_TO_TOOM63_THRESHOLD 64 - -#define SQR_BASECASE_THRESHOLD 0 /* always (native) */ -#define SQR_TOOM2_THRESHOLD 32 -#define SQR_TOOM3_THRESHOLD 97 -#define SQR_TOOM4_THRESHOLD 143 -#define SQR_TOOM6_THRESHOLD 222 -#define SQR_TOOM8_THRESHOLD 272 - -#define MULMOD_BNM1_THRESHOLD 13 -#define SQRMOD_BNM1_THRESHOLD 17 - -#define MUL_FFT_MODF_THRESHOLD 476 /* k = 5 */ -#define MUL_FFT_TABLE3 \ - { { 476, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \ - { 11, 5}, { 23, 6}, { 17, 7}, { 9, 6}, \ - { 19, 7}, { 11, 6}, { 23, 7}, { 13, 6}, \ - { 27, 7}, { 15, 6}, { 31, 7}, { 17, 6}, \ - { 35, 7}, { 21, 8}, { 11, 7}, { 27, 8}, \ - { 15, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \ - { 23, 7}, { 47, 8}, { 27, 9}, { 15, 8}, \ - { 31, 7}, { 63, 8}, { 39, 9}, { 23, 8}, \ - { 51,10}, { 15, 9}, { 31, 8}, { 67, 9}, \ - { 47,10}, { 31, 9}, { 79,10}, { 47, 9}, \ - { 95,11}, { 31,10}, { 63, 9}, { 135,10}, \ - { 79, 9}, { 167,10}, { 95, 9}, { 191,10}, \ - { 111,11}, { 63,10}, { 127, 9}, { 255,10}, \ - { 143, 9}, { 287,10}, { 159,11}, { 95,10}, \ - { 191, 9}, { 383,12}, { 63,11}, { 127,10}, \ - { 255, 9}, { 511,10}, { 271, 9}, { 543,10}, \ - { 287,11}, { 159,10}, { 351,11}, { 191,10}, \ - { 415, 9}, { 831,11}, { 223,12}, { 127,11}, \ - { 255,10}, { 543,11}, { 287,10}, { 575,11}, \ - { 351,10}, { 703,12}, { 191,11}, { 415,10}, \ - { 831,13}, { 127,12}, { 255,11}, { 543,10}, \ - { 1087,11}, { 575,12}, { 319,11}, { 703,12}, \ - { 383,11}, { 831,12}, { 447,11}, { 895,13}, \ - { 255,12}, { 511,11}, { 1087,12}, { 575,11}, \ - { 1151,12}, { 703,13}, { 383,12}, { 959,14}, \ - { 255,13}, { 511,12}, { 1215,13}, { 8192,14}, \ - { 16384,15}, { 32768,16} } -#define MUL_FFT_TABLE3_SIZE 106 -#define MUL_FFT_THRESHOLD 7424 - -#define SQR_FFT_MODF_THRESHOLD 432 /* k = 5 */ -#define SQR_FFT_TABLE3 \ - { { 432, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \ - { 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \ - { 24, 7}, { 13, 6}, { 27, 7}, { 15, 6}, \ - { 31, 7}, { 21, 8}, { 11, 7}, { 29, 8}, \ - { 15, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \ - { 23, 7}, { 49, 8}, { 27, 9}, { 15, 8}, \ - { 39, 9}, { 23, 7}, { 93, 8}, { 47, 7}, \ - { 95, 8}, { 51,10}, { 15, 9}, { 31, 8}, \ - { 67, 9}, { 39, 8}, { 79, 9}, { 47, 8}, \ - { 95, 9}, { 55,10}, { 31, 9}, { 71, 8}, \ - { 143, 9}, { 79,10}, { 47, 9}, { 95,11}, \ - { 31,10}, { 63, 9}, { 135,10}, { 79, 9}, \ - { 167,10}, { 95, 9}, { 191,11}, { 63,10}, \ - { 127, 9}, { 255,10}, { 143, 9}, { 287, 8}, \ - { 575,10}, { 159, 9}, { 319,11}, { 95,10}, \ - { 191,12}, { 63,11}, { 127,10}, { 255, 9}, \ - { 511,10}, { 271, 9}, { 543,10}, { 287,11}, \ - { 159,10}, { 319, 9}, { 639,10}, { 351, 9}, \ - { 703,11}, { 191,10}, { 415,11}, { 223,12}, \ - { 127,11}, { 255,10}, { 543,11}, { 287,10}, \ - { 607,11}, { 319,10}, { 639,11}, { 351,10}, \ - { 703,12}, { 191,11}, { 415,10}, { 831,13}, \ - { 127,12}, { 255,11}, { 543,10}, { 1087,11}, \ - { 607,12}, { 319,11}, { 703,12}, { 383,11}, \ - { 831,12}, { 447,13}, { 255,12}, { 511,11}, \ - { 1087,12}, { 575,11}, { 1215,12}, { 703,13}, \ - { 383,12}, { 895,14}, { 255,13}, { 511,12}, \ - { 1215,13}, { 8192,14}, { 16384,15}, { 32768,16} } -#define SQR_FFT_TABLE3_SIZE 112 -#define SQR_FFT_THRESHOLD 7040 - -#define MULLO_BASECASE_THRESHOLD 3 -#define MULLO_DC_THRESHOLD 60 -#define MULLO_MUL_N_THRESHOLD 13463 - -#define DC_DIV_QR_THRESHOLD 78 -#define DC_DIVAPPR_Q_THRESHOLD 252 -#define DC_BDIV_QR_THRESHOLD 84 -#define DC_BDIV_Q_THRESHOLD 171 - -#define INV_MULMOD_BNM1_THRESHOLD 55 -#define INV_NEWTON_THRESHOLD 234 -#define INV_APPR_THRESHOLD 236 - -#define BINV_NEWTON_THRESHOLD 268 -#define REDC_1_TO_REDC_N_THRESHOLD 67 - -#define MU_DIV_QR_THRESHOLD 1308 -#define MU_DIVAPPR_Q_THRESHOLD 1142 -#define MUPI_DIV_QR_THRESHOLD 134 -#define MU_BDIV_QR_THRESHOLD 1164 -#define MU_BDIV_Q_THRESHOLD 1164 - -#define MATRIX22_STRASSEN_THRESHOLD 15 -#define HGCD_THRESHOLD 182 -#define GCD_DC_THRESHOLD 591 -#define GCDEXT_DC_THRESHOLD 472 -#define JACOBI_BASE_METHOD 2 - -#define GET_STR_DC_THRESHOLD 24 -#define GET_STR_PRECOMPUTE_THRESHOLD 40 -#define SET_STR_DC_THRESHOLD 834 -#define SET_STR_PRECOMPUTE_THRESHOLD 2042 +#define SQR_FFT_TABLE { 272, 672, 1408, 4608, 10240, 24576, 163840, 393216, 0 } +#define SQR_FFT_MODF_THRESHOLD 336 +#define SQR_FFT_THRESHOLD 3840 diff --git a/gmp/mpn/x86/k6/k62mmx/copyd.asm b/gmp/mpn/x86/k6/k62mmx/copyd.asm index f80a5a1cdb..227ed78783 100644 --- a/gmp/mpn/x86/k6/k62mmx/copyd.asm +++ b/gmp/mpn/x86/k6/k62mmx/copyd.asm @@ -1,32 +1,21 @@ dnl AMD K6-2 mpn_copyd -- copy limb vector, decrementing. dnl Copyright 2001, 2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/k62mmx/lshift.asm b/gmp/mpn/x86/k6/k62mmx/lshift.asm index c86575feed..e48e73e19a 100644 --- a/gmp/mpn/x86/k6/k62mmx/lshift.asm +++ b/gmp/mpn/x86/k6/k62mmx/lshift.asm @@ -1,32 +1,21 @@ dnl AMD K6-2 mpn_lshift -- mpn left shift. dnl Copyright 1999, 2000, 2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/k62mmx/rshift.asm b/gmp/mpn/x86/k6/k62mmx/rshift.asm index f604a7bd52..b3114d0e6e 100644 --- a/gmp/mpn/x86/k6/k62mmx/rshift.asm +++ b/gmp/mpn/x86/k6/k62mmx/rshift.asm @@ -1,32 +1,21 @@ dnl AMD K6-2 mpn_rshift -- mpn right shift. dnl Copyright 1999, 2000, 2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/mmx/com.asm b/gmp/mpn/x86/k6/mmx/com_n.asm index b747454627..42e6ab392a 100644 --- a/gmp/mpn/x86/k6/mmx/com.asm +++ b/gmp/mpn/x86/k6/mmx/com_n.asm @@ -1,32 +1,21 @@ -dnl AMD K6-2 mpn_com -- mpn bitwise one's complement. +dnl AMD K6-2 mpn_com_n -- mpn bitwise one's complement. -dnl Copyright 1999-2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') @@ -39,7 +28,7 @@ C K6-2 1.0 1.18 1.18 1.18 cycles/limb C K6 1.5 1.85 1.75 1.85 -C void mpn_com (mp_ptr dst, mp_srcptr src, mp_size_t size); +C void mpn_com_n (mp_ptr dst, mp_srcptr src, mp_size_t size); C C Take the bitwise ones-complement of src,size and write it to dst,size. @@ -49,7 +38,7 @@ defframe(PARAM_DST, 4) TEXT ALIGN(16) -PROLOGUE(mpn_com) +PROLOGUE(mpn_com_n) deflit(`FRAME',0) movl PARAM_SIZE, %ecx diff --git a/gmp/mpn/x86/k6/mmx/dive_1.asm b/gmp/mpn/x86/k6/mmx/dive_1.asm index b644dca8cd..9cc90d88a5 100644 --- a/gmp/mpn/x86/k6/mmx/dive_1.asm +++ b/gmp/mpn/x86/k6/mmx/dive_1.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_divexact_1 -- mpn by limb exact division. -dnl Copyright 2000-2002, 2007 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 2000, 2001, 2002, 2007 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') @@ -128,7 +117,7 @@ Zdisp( movzbl, 0,(%eax,%ebp), %eax) subl %ebp, %eax C inv = 2*inv - inv*inv*d subl $1, %edx C shift amount, and clear carry - ASSERT(e,` C expect d*inv == 1 mod 2^GMP_LIMB_BITS + ASSERT(e,` C expect d*inv == 1 mod 2^BITS_PER_MP_LIMB pushl %eax FRAME_pushl() imull PARAM_DIVISOR, %eax cmpl $1, %eax diff --git a/gmp/mpn/x86/k6/mmx/logops_n.asm b/gmp/mpn/x86/k6/mmx/logops_n.asm index e17930bb2d..a6272131a2 100644 --- a/gmp/mpn/x86/k6/mmx/logops_n.asm +++ b/gmp/mpn/x86/k6/mmx/logops_n.asm @@ -1,33 +1,22 @@ dnl AMD K6-2 mpn_and_n, mpn_andn_n, mpn_nand_n, mpn_ior_n, mpn_iorn_n, dnl mpn_nior_n, mpn_xor_n, mpn_xnor_n -- mpn bitwise logical operations. -dnl Copyright 1999-2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/mmx/lshift.asm b/gmp/mpn/x86/k6/mmx/lshift.asm index 45be582633..1492025171 100644 --- a/gmp/mpn/x86/k6/mmx/lshift.asm +++ b/gmp/mpn/x86/k6/mmx/lshift.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_lshift -- mpn left shift. dnl Copyright 1999, 2000, 2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/mmx/popham.asm b/gmp/mpn/x86/k6/mmx/popham.asm index 2b19d0b5ee..a0a651d39c 100644 --- a/gmp/mpn/x86/k6/mmx/popham.asm +++ b/gmp/mpn/x86/k6/mmx/popham.asm @@ -1,33 +1,22 @@ dnl AMD K6-2 mpn_popcount, mpn_hamdist -- mpn bit population count and dnl hamming distance. -dnl Copyright 2000-2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 2000, 2001, 2002 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/mmx/rshift.asm b/gmp/mpn/x86/k6/mmx/rshift.asm index cd0382f322..80cd6fb05a 100644 --- a/gmp/mpn/x86/k6/mmx/rshift.asm +++ b/gmp/mpn/x86/k6/mmx/rshift.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_rshift -- mpn right shift. dnl Copyright 1999, 2000, 2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/mod_34lsub1.asm b/gmp/mpn/x86/k6/mod_34lsub1.asm index 7e30503e54..a5b7ee1064 100644 --- a/gmp/mpn/x86/k6/mod_34lsub1.asm +++ b/gmp/mpn/x86/k6/mod_34lsub1.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_mod_34lsub1 -- mpn remainder modulo 2**24-1. -dnl Copyright 2000-2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 2000, 2001, 2002 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/mode1o.asm b/gmp/mpn/x86/k6/mode1o.asm index a13f647b81..f299877911 100644 --- a/gmp/mpn/x86/k6/mode1o.asm +++ b/gmp/mpn/x86/k6/mode1o.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_modexact_1_odd -- exact division style remainder. -dnl Copyright 2000-2003, 2007 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 2000, 2001, 2002, 2003, 2007 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') @@ -114,7 +103,7 @@ Zdisp( movzbl, 0,(%ecx,%edi), %edi) C inv 8 bits subl %ecx, %edi C inv = 2*inv - inv*inv*d - ASSERT(e,` C d*inv == 1 mod 2^GMP_LIMB_BITS + ASSERT(e,` C d*inv == 1 mod 2^BITS_PER_MP_LIMB pushl %eax movl %esi, %eax imull %edi, %eax diff --git a/gmp/mpn/x86/k6/mul_1.asm b/gmp/mpn/x86/k6/mul_1.asm index 3ef7ec24fe..e1c468fe34 100644 --- a/gmp/mpn/x86/k6/mul_1.asm +++ b/gmp/mpn/x86/k6/mul_1.asm @@ -1,49 +1,38 @@ dnl AMD K6 mpn_mul_1 -- mpn by limb multiply. dnl Copyright 1999, 2000, 2002, 2005 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') -C cycles/limb -C P5 -C P6 model 0-8,10-12 5.5 +C cycles/limb +C P5: +C P6 model 0-8,10-12) 5.5 C P6 model 9 (Banias) -C P6 model 13 (Dothan) 4.87 +C P6 model 13 (Dothan) 4.87 C P4 model 0 (Willamette) C P4 model 1 (?) C P4 model 2 (Northwood) C P4 model 3 (Prescott) C P4 model 4 (Nocona) -C AMD K6 6.25 -C AMD K7 -C AMD K8 +C K6: 6.25 +C K7: +C K8: C mp_limb_t mpn_mul_1 (mp_ptr dst, mp_srcptr src, mp_size_t size, diff --git a/gmp/mpn/x86/k6/mul_basecase.asm b/gmp/mpn/x86/k6/mul_basecase.asm index 7030001c3f..dcd4d70082 100644 --- a/gmp/mpn/x86/k6/mul_basecase.asm +++ b/gmp/mpn/x86/k6/mul_basecase.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_mul_basecase -- multiply two mpn numbers. -dnl Copyright 1999-2003 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/pre_mod_1.asm b/gmp/mpn/x86/k6/pre_mod_1.asm index 34db20d386..3231539bfd 100644 --- a/gmp/mpn/x86/k6/pre_mod_1.asm +++ b/gmp/mpn/x86/k6/pre_mod_1.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_preinv_mod_1 -- mpn by 1 remainder, with pre-inverted divisor. dnl Copyright 2000, 2002, 2003 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') diff --git a/gmp/mpn/x86/k6/sqr_basecase.asm b/gmp/mpn/x86/k6/sqr_basecase.asm index b7ecb5cc8a..3392d38812 100644 --- a/gmp/mpn/x86/k6/sqr_basecase.asm +++ b/gmp/mpn/x86/k6/sqr_basecase.asm @@ -1,32 +1,21 @@ dnl AMD K6 mpn_sqr_basecase -- square an mpn number. -dnl Copyright 1999-2002 Free Software Foundation, Inc. - -dnl This file is part of the GNU MP Library. -dnl -dnl The GNU MP Library is free software; you can redistribute it and/or modify -dnl it under the terms of either: +dnl Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. dnl -dnl * the GNU Lesser General Public License as published by the Free -dnl Software Foundation; either version 3 of the License, or (at your -dnl option) any later version. -dnl -dnl or -dnl -dnl * the GNU General Public License as published by the Free Software -dnl Foundation; either version 2 of the License, or (at your option) any -dnl later version. +dnl This file is part of the GNU MP Library. dnl -dnl or both in parallel, as here. +dnl The GNU MP Library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public License as +dnl published by the Free Software Foundation; either version 3 of the +dnl License, or (at your option) any later version. dnl -dnl The GNU MP Library is distributed in the hope that it will be useful, but -dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -dnl for more details. +dnl The GNU MP Library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. dnl -dnl You should have received copies of the GNU General Public License and the -dnl GNU Lesser General Public License along with the GNU MP Library. If not, -dnl see https://www.gnu.org/licenses/. +dnl You should have received a copy of the GNU Lesser General Public License +dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. include(`../config.m4') @@ -36,35 +25,35 @@ C product (measured on the speed difference between 17 and 33 limbs, C which is roughly the Karatsuba recursing range). -dnl SQR_TOOM2_THRESHOLD_MAX is the maximum SQR_TOOM2_THRESHOLD this +dnl SQR_KARATSUBA_THRESHOLD_MAX is the maximum SQR_KARATSUBA_THRESHOLD this dnl code supports. This value is used only by the tune program to know dnl what it can go up to. (An attempt to compile with a bigger value will dnl trigger some m4_assert()s in the code, making the build fail.) dnl dnl The value is determined by requiring the displacements in the unrolled dnl addmul to fit in single bytes. This means a maximum UNROLL_COUNT of -dnl 63, giving a maximum SQR_TOOM2_THRESHOLD of 66. +dnl 63, giving a maximum SQR_KARATSUBA_THRESHOLD of 66. -deflit(SQR_TOOM2_THRESHOLD_MAX, 66) +deflit(SQR_KARATSUBA_THRESHOLD_MAX, 66) dnl Allow a value from the tune program to override config.m4. -ifdef(`SQR_TOOM2_THRESHOLD_OVERRIDE', -`define(`SQR_TOOM2_THRESHOLD',SQR_TOOM2_THRESHOLD_OVERRIDE)') +ifdef(`SQR_KARATSUBA_THRESHOLD_OVERRIDE', +`define(`SQR_KARATSUBA_THRESHOLD',SQR_KARATSUBA_THRESHOLD_OVERRIDE)') dnl UNROLL_COUNT is the number of code chunks in the unrolled addmul. The -dnl number required is determined by SQR_TOOM2_THRESHOLD, since -dnl mpn_sqr_basecase only needs to handle sizes < SQR_TOOM2_THRESHOLD. +dnl number required is determined by SQR_KARATSUBA_THRESHOLD, since +dnl mpn_sqr_basecase only needs to handle sizes < SQR_KARATSUBA_THRESHOLD. dnl dnl The first addmul is the biggest, and this takes the second least dnl significant limb and multiplies it by the third least significant and -dnl up. Hence for a maximum operand size of SQR_TOOM2_THRESHOLD-1 -dnl limbs, UNROLL_COUNT needs to be SQR_TOOM2_THRESHOLD-3. +dnl up. Hence for a maximum operand size of SQR_KARATSUBA_THRESHOLD-1 +dnl limbs, UNROLL_COUNT needs to be SQR_KARATSUBA_THRESHOLD-3. -m4_config_gmp_mparam(`SQR_TOOM2_THRESHOLD') -deflit(UNROLL_COUNT, eval(SQR_TOOM2_THRESHOLD-3)) +m4_config_gmp_mparam(`SQR_KARATSUBA_THRESHOLD') +deflit(UNROLL_COUNT, eval(SQR_KARATSUBA_THRESHOLD-3)) C void mpn_sqr_basecase (mp_ptr dst, mp_srcptr src, mp_size_t size); |