summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschevill <schevill@280ebfd0-de03-0410-8827-d642c229c3f4>2010-10-15 15:18:18 +0000
committerschevill <schevill@280ebfd0-de03-0410-8827-d642c229c3f4>2010-10-15 15:18:18 +0000
commitfe1d9c40e27b2606dc2f3c2bb0979aceee52ada5 (patch)
tree7c63fa62f2fe94db2d22a2e3bd209aeb92b41ef9
parente832877ec222701b3a4d2e298980db36797c5881 (diff)
downloadmpfr-fe1d9c40e27b2606dc2f3c2bb0979aceee52ada5.tar.gz
Reorganized mparam_h.in in separate files.
Added mpfr_buildopt_tune_case function. git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@7201 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r--src/amd/athlon/mparam.h70
-rw-r--r--src/amd/k8/mparam.h139
-rw-r--r--src/arm/mparam.h139
-rw-r--r--src/buildopt.c9
-rw-r--r--src/generic/mparam.h44
-rw-r--r--src/ia64/mparam.h139
-rw-r--r--src/mparam_h.in1419
-rw-r--r--src/mpfr.h1
-rw-r--r--src/powerpc64/mparam.h139
-rw-r--r--src/sparc64/mparam.h139
-rw-r--r--src/x86/core2/mparam.h138
-rw-r--r--src/x86/mparam.h139
-rw-r--r--src/x86_64/core2/mparam.h144
-rw-r--r--src/x86_64/pentium4/mparam.h139
-rw-r--r--tune/tuneup.c18
15 files changed, 1416 insertions, 1400 deletions
diff --git a/src/amd/athlon/mparam.h b/src/amd/athlon/mparam.h
new file mode 100644
index 000000000..414f39a01
--- /dev/null
+++ b/src/amd/athlon/mparam.h
@@ -0,0 +1,70 @@
+#define MPFR_TUNE_CASE "AMD Athlon"
+#define MPFR_MULHIGH_TAB \
+ -1,0,-1,0,-1,0,-1,-1,0,-1,-1,0,0,0,0,10, \
+ 0,12,13,14,15,16,0,0,0,0,0,19,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32, \
+ 30,32,30,34,32,32,36,34,36,36,38,38,42,38,38,42, \
+ 40,38,42,46,42,42,42,44,44,44,44,44,48,50,46,46, \
+ 60,50,50,48,50,56,56,56,56,56,56,56,60,60,64,60, \
+ 64,64,60,60,60,72,64,64,68,72,76,72,76,72,72,76, \
+ 75,76,76,72,76,72,75,72,72,72,84,76,84,75,72,76, \
+ 84,80,76,84,84,76,76,76,76,88,84,88,80,84,83,96, \
+ 84,96,92,84,88,91,92,88,92,90,96,96,92,91,92,96, \
+ 96,120,95,100,112,120,100,119,112,120,120,112,119,112,119,119, \
+ 120,118,119,119,119,118,119,120,128,127,120,128,128,120,120,127, \
+ 120,128,128,128,128,120,128,127,120,128,128,127,128,127,144,136, \
+ 128,144,152,152,152,136,144,144,144,136,151,152,144,152,128,151, \
+ 144,152,144,144,151,144,150,150,136,151,152,143,143,143,142,168, \
+ 144,144,168,151,168,144,152,151,152,152,160,152,151,152,160,151, \
+ 152,151,152,167,152,152,166,152,167,160,168,204,160,160,168,168, \
+ 204,176,202,167,168,166,167,168,204,184,202,204,204,204,204,192, \
+ 184,192,204,202,202,216,204,227,202,204,216,203,203,204,203,227, \
+ 202,204,202,202,202,203,202,215,204,202,203,202,202,215,228,214, \
+ 226,214,228,214,228,215,228,216,226,214,228,225,226,228,226,226, \
+ 226,215,216,216,226,225,226,227,216,227,240,216,252,252,226,227, \
+ 228,239,227,250,227,226,227,227,252,238,228,239,252,227,228,228, \
+ 252,226,246,228,227,227,252,247,250,263,262,250,252,250,250,252, \
+ 250,288,288,250,250,250,251,264,264,271,287,276,250,288,252,286, \
+ 251,287,288,251,276,274,288,262,263,263,282,252,288,252,276,284, \
+ 287,274,264,274,288,275,275,274,274,288,276,264,273,286,274,276, \
+ 300,287,288,286,286,276,288,285,275,300,275,273,275,299,300,299, \
+ 279,336,336,286,287,284,360,359,336,335,288,360,333,359,334,335, \
+ 335,287,359,335,336,336,359,333,334,359,360,288,360,332,335,336, \
+ 335,336,336,333,336,335,336,359,334,334,335,360,336,334,356,357, \
+ 335,336,358,359,359,336,335,336,334,355,384,356,354,384,334,357, \
+ 336,359,384,359,360,356,384,382,336,383,384,384,354,355,383,384, \
+ 382,359,384,382,382,383,383,359,381,382,383,356,384,382,381,384, \
+ 357,384,358,357,358,358,380,383,382,382,383,360,360,381,382,360, \
+ 377,360,378,360,360,381,382,383,381,380,383,383,360,382,383,380, \
+ 383,383,384,381,379,360,381,381,382,431,380,380,378,380,384,381, \
+ 382,382,384,407,384,382,379,384,430,431,383,384,408,384,456,431, \
+ 431,455,431,428,384,454,455,403,432,383,407,430,430,456,408,427, \
+ 455,455,456,455,432,431,431,429,455,432,432,424,430,427,427,429, \
+ 452,454,426,455,456,431,430,454,452,454,431,456,431,428,455,430, \
+ 454,430,432,455,454,442,443,432,443,431,451,452,456,430,451,456, \
+ 444,455,449,456,432,454,449,454,502,432,448,504,450,503,503,453, \
+ 454,502,446,452,453,454,455,499,504,453,456,504,454,453,503,455, \
+ 456,456,500,478,502,454,456,499,478,454,480,499,501,496,502,455, \
+ 499,502,503,456,478,500,501,500,479,503,504,451,452,479,454,455, \
+ 502,503,504,504,454,499,503,501,454,503,456,503,504,501,455,502, \
+ 503,503,502,504,610,503,504,574,480,551,528,504,609,576,480,503, \
+ 496,502,503,552,551,552,551,503,504,503,610,608,609,610,611,608, \
+ 608,551,648,611,612,550,576,572,608,611,610,606,608,611,610,574, \
+ 575,576,606,607,606,606,608,606,606,575,576,604,604,604,608,609, \
+ 606,606,606,608,604,604,611,604,604,576,610,606,610,606,604,610, \
+ 606,612,604,608,610,609,604,608,606,647,612,610,604,606,648,610, \
+ 610,606,646,608,604,647,606,647,606,609,610,647,648,609,641,611, \
+ 643,611,643,648,643,640,646,611,644,644,645,611,642,646,611,612, \
+ 640,647,610,611,610,611,606,647,648,647,648,644,682,642,682,683, \
+ 610,611,680,678,642,681,682,647,682,612,682,648,611,665,680,683, \
+ 609,646,666,676,680,646,679,647,646,646,648,679,684,611,612,643, \
+ 684,645,646,647,683,647,608,645,682,647,682,646,610,648,682,610, \
+ 684,612,612,683,684,647,647,646,680,646,646,745,648,646,644,647, \
+ 648,647,678,646,647,683,642,682,682,684,646,645,642,647,646,677, \
+ 646,647,683,678,680,646,646,643,681,647,683,645,666,755,756,645, \
+ 643,647,646,647,647,648,674,755,756,674,647,643,680,682,684,680, \
+ 680,682,682,675,682,677,666,683,680,682,682,684,680,681,674,674 \
+
+#define MPFR_MUL_THRESHOLD 19
+#define MPFR_EXP_2_THRESHOLD 411 /* bits */
+#define MPFR_EXP_THRESHOLD 45200 /* bits */
diff --git a/src/amd/k8/mparam.h b/src/amd/k8/mparam.h
new file mode 100644
index 000000000..4854df1fe
--- /dev/null
+++ b/src/amd/k8/mparam.h
@@ -0,0 +1,139 @@
+/* Generated by MPFR's tuneup.c, 2009-02-09, gcc 4.3 */
+/* achille.loria.fr with gmp-4.2.4 */
+
+#define MPFR_TUNE_CASE "AMD K8"
+#define MPFR_MULHIGH_TAB \
+ -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,68,68,0,67,66,66, \
+ 65,65,64,64,67,67,64,72,65,79,68,72,67,79,72,72, \
+ 80,80,81,72,76,82,77,77,84,84,88,88,83,83,81,84, \
+ 88,88,80,80,96,96,100,97,98,89,96,84,100,97,98,98, \
+ 96,96,100,100,98,98,93,93,100,97,101,98,96,99,121,121, \
+ 104,101,108,108,112,109,110,122,111,117,115,115,122,122,123,123, \
+ 117,117,122,122,123,123,128,128,129,129,126,126,135,131,128,128, \
+ 129,129,126,126,147,143,132,132,141,137,134,134,135,147,140,140, \
+ 141,141,146,146,147,147,144,140,149,141,146,146,147,147,152,144, \
+ 153,165,146,146,147,147,152,156,165,153,162,170,167,171,168,168, \
+ 159,159,170,170,171,166,167,172,168,168,189,189,200,170,171,171, \
+ 177,167,168,168,169,199,195,200,201,201,192,192,198,198,199,189, \
+ 195,195,201,201,207,207,188,188,189,199,195,200,201,201,202,197, \
+ 198,198,189,199,210,200,196,196,197,192,213,208,219,224,225,200, \
+ 233,227,228,204,211,211,212,206,237,213,202,220,203,239,204,240, \
+ 247,211,212,212,213,243,232,232,239,215,216,222,229,235,236,224, \
+ 225,225,226,226,227,245,246,234,241,223,248,224,225,249,226,226, \
+ 227,233,234,252,247,235,236,236,237,237,250,238,239,245,246,240, \
+ 249,249,236,236,237,251,252,252,253,253,254,254,297,241,242,249, \
+ 257,257,258,251,245,245,246,267,247,261,248,248,249,249,285,278, \
+ 258,258,259,273,281,281,282,261,276,297,270,270,271,271,272,272, \
+ 273,273,288,281,282,289,290,283,284,277,285,278,286,286,287,287, \
+ 289,281,282,290,291,291,284,284,293,301,302,310,311,303,304,312, \
+ 273,297,330,282,283,299,308,348,309,285,310,366,287,327,288,288, \
+ 297,297,330,338,339,339,348,348,349,349,302,366,335,335,344,312, \
+ 297,361,330,354,355,339,348,348,341,365,342,342,359,351,360,328, \
+ 329,365,357,357,358,349,350,341,342,351,352,361,362,380,363,363, \
+ 364,364,347,347,348,348,349,367,368,341,342,342,343,343,380,380, \
+ 345,345,346,346,347,347,348,357,358,385,386,359,360,360,361,361, \
+ 362,362,363,363,364,364,365,410,411,357,358,358,359,422,414,378, \
+ 379,369,410,380,381,381,432,362,363,423,434,434,425,435,436,366, \
+ 417,437,438,438,369,399,400,440,441,441,402,382,383,393,384,384, \
+ 445,405,406,436,437,417,418,418,409,429,410,390,411,431,402,432, \
+ 423,393,414,404,445,425,436,436,417,417,438,438,399,449,450,440, \
+ 431,420,421,443,433,433,434,445,435,435,414,414,426,426,427,427, \
+ 417,417,418,418,419,430,431,442,443,443,433,433,434,434,435,501, \
+ 425,447,470,459,416,427,428,450,429,429,430,474,486,464,432,432, \
+ 455,455,489,456,468,457,469,447,459,459,438,471,472,450,462,473, \
+ 497,509,510,486,463,487,452,452,501,489,490,454,467,491,492,456, \
+ 469,469,470,470,483,447,508,508,509,509,510,510,451,499,452,452, \
+ 513,501,526,490,491,455,456,492,493,505,506,470,495,483,484,472, \
+ 473,521,510,474,535,487,488,500,501,501,502,562,563,563,528,528, \
+ 528,528,581,490,491,491,492,492,506,493,494,520,495,495,561,587, \
+ 588,510,563,589,590,499,513,513,566,566,528,515,516,516,517,569, \
+ 583,583,571,597,598,585,599,586,600,600,510,575,576,563,525,564, \
+ 578,591,527,579,567,528,594,607,556,582,583,583,558,597,598,546, \
+ 571,585,586,600,601,545,588,546,589,561,562,562,591,591,578,592, \
+ 593,593,594,594,567,595,596,596,597,597,598,598,571,599,600,572, \
+ 573,573,574,574,575,589,618,590,563,633,634,578,593,579,580,580, \
+ 581,595,596,582,597,625,626,570,571,571,600,600,601,601,602,602, \
+ 599,599,600,600,601,616,602,602,618,618,589,634,590,605,621,591, \
+ 607,607,623,623,624,609,625,595,596,596,597,597,598,628,629,599, \
+ 645,645,616,631,632,632,633,708,634,604,605,680,681,636,652,607, \
+ 608,623,624,744,670,640,641,626,627,672,673,658,659,704,630,630, \
+ 625,705,674,642,643,675,676,708,709,709,710,742,679,743,744,696, \
+ 681,633,698,682,683,699,668,732,717,669,670,670,687,703,704,704, \
+ 657,689,674,690,707,675,676,708,709,709,710,710,695,727,728,744, \
+ 713,681,682,714,715,699,700,684,701,701,702,702,703,703,704,672 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,0,0,0,0,0,0,0,0,5,6,6,7,7,8,8, \
+ 9,10,10,10,11,11,12,12,13,13,14,14,15,15,16,16, \
+ 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
+ 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
+ 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40, \
+ 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
+ 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
+ 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
+ 65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72, \
+ 73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80, \
+ 81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88, \
+ 89,89,90,90,91,91,92,92,93,93,94,94,95,95,96,96, \
+ 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
+ 105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112, \
+ 113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120, \
+ 121,121,122,122,123,123,124,124,125,125,126,126,127,127,128,128, \
+ 129,129,130,130,131,131,132,132,133,133,134,134,135,135,136,136, \
+ 137,137,138,138,139,139,140,140,141,141,142,142,143,143,144,144, \
+ 145,145,146,146,147,147,148,158,159,149,150,150,151,151,152,152, \
+ 153,153,154,154,155,155,156,156,157,157,158,158,159,159,160,160, \
+ 161,161,162,162,163,163,164,164,165,165,166,166,167,167,180,186, \
+ 199,169,170,170,171,171,172,172,173,209,198,198,205,175,176,176, \
+ 177,177,178,214,215,179,180,210,211,199,200,200,201,183,184,184, \
+ 185,185,216,186,187,211,212,212,213,189,190,190,191,191,192,192, \
+ 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
+ 201,201,202,202,203,203,204,204,205,205,206,206,207,207,208,208, \
+ 209,209,210,210,211,211,212,240,213,213,214,214,215,215,216,216, \
+ 217,217,218,218,219,219,248,248,249,221,222,222,223,223,224,224, \
+ 225,225,226,226,227,227,228,228,229,229,230,230,231,231,232,264, \
+ 273,233,234,234,267,235,236,236,237,237,238,238,239,239,240,288, \
+ 273,241,242,242,243,243,244,284,261,277,278,270,271,247,248,248, \
+ 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
+ 257,284,258,294,295,259,260,260,261,261,262,262,263,263,264,264, \
+ 265,265,266,266,267,267,268,268,269,269,270,270,271,271,272,272, \
+ 273,273,274,274,320,320,276,276,277,277,278,278,279,279,280,280, \
+ 281,281,282,282,283,283,284,284,285,285,286,286,287,287,288,288, \
+ 289,289,290,290,291,291,292,292,293,293,294,294,295,295,296,296, \
+ 297,297,298,298,299,299,300,300,301,301,302,302,303,303,304,304, \
+ 305,305,306,306,307,307,308,308,309,309,310,310,311,311,312,342, \
+ 333,313,314,314,315,315,316,316,317,317,318,318,319,319,320,320, \
+ 321,321,322,322,323,323,324,324,325,325,326,326,327,327,328,328, \
+ 329,329,330,330,331,331,332,332,333,333,334,334,335,335,336,336, \
+ 337,337,338,338,339,339,340,340,341,341,342,342,343,343,344,344, \
+ 345,345,346,401,402,402,348,414,349,349,350,350,351,351,352,418, \
+ 413,425,426,354,427,427,356,428,429,429,430,358,359,359,360,420, \
+ 361,361,362,422,423,363,364,436,437,401,402,366,367,415,416,416, \
+ 417,417,418,454,371,371,456,372,373,373,374,374,375,375,376,376, \
+ 377,377,378,378,379,379,380,380,381,381,382,382,383,383,384,384, \
+ 385,385,386,386,387,465,388,440,441,441,390,390,391,391,392,392, \
+ 393,393,394,446,447,395,396,396,397,397,398,437,438,464,465,400, \
+ 401,401,402,402,468,403,404,404,405,444,445,497,407,472,473,408, \
+ 409,409,501,410,411,411,451,438,465,465,414,492,493,415,416,416, \
+ 417,417,418,418,419,419,420,420,421,421,422,422,423,423,424,424, \
+ 425,425,426,426,427,427,428,428,429,429,486,430,431,431,432,432, \
+ 433,433,434,434,435,435,436,436,437,437,438,438,439,439,440,440, \
+ 441,441,442,498,499,443,444,528,445,445,446,446,447,447,448,448, \
+ 449,449,450,510,526,451,452,452,453,453,454,454,455,455,456,546, \
+ 487,457,458,458,459,459,460,460,461,461,462,462,463,463,464,464, \
+ 465,540,541,466,467,467,468,513,514,499,560,470,471,471,472,472, \
+ 473,473,474,474,475,535,536,476,477,582,553,478,479,599,600,585, \
+ 481,481,482,578,579,483,484,484,485,485,486,486,487,487,488,488, \
+ 489,489,490,490,491,603,620,492,493,589,590,494,495,495,496,496, \
+ 497,593,594,498,499,499,500,500,501,501,502,502,503,503,504,504, \
+ 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,608 \
+
+#define MPFR_MUL_THRESHOLD 6 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 595 /* bits */
+#define MPFR_EXP_THRESHOLD 10606 /* bits */
diff --git a/src/arm/mparam.h b/src/arm/mparam.h
new file mode 100644
index 000000000..0b19c8098
--- /dev/null
+++ b/src/arm/mparam.h
@@ -0,0 +1,139 @@
+/* Generated by MPFR's tuneup.c, 2009-02-10, gcc 4.3 */
+/* gcc50.fsffrance.org (armv5tel-unknown-linux-gnueabi) with gmp-4.2.4 */
+
+#define MPFR_TUNE_CASE "ARM"
+#define MPFR_MULHIGH_TAB \
+ -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,80,0,0,72,72, \
+ 80,77,72,72,76,76,80,77,84,84,76,76,77,77,84,84, \
+ 76,76,80,80,84,84,76,76,80,80,84,84,79,79,80,80, \
+ 81,81,82,82,83,83,84,84,103,103,104,104,96,111,103,112, \
+ 104,104,111,111,112,112,128,128,120,120,127,127,119,119,111,111, \
+ 113,113,114,126,127,127,128,128,129,129,118,134,123,135,128,136, \
+ 137,137,134,134,127,127,128,128,141,137,142,142,143,143,144,144, \
+ 145,145,142,142,143,143,144,144,145,145,150,150,151,151,152,144, \
+ 149,149,158,150,159,159,160,160,161,153,158,154,159,159,160,160, \
+ 159,159,160,160,166,166,152,167,168,168,159,159,160,160,161,161, \
+ 167,167,163,163,164,159,150,160,161,166,167,162,168,158,159,159, \
+ 160,155,156,156,162,157,158,158,159,159,160,160,166,161,162,167, \
+ 168,168,159,159,160,160,206,206,207,167,168,168,224,224,210,205, \
+ 167,167,168,168,223,223,224,224,219,225,226,208,221,239,240,240, \
+ 223,205,224,224,225,207,208,256,239,209,222,222,253,223,224,224, \
+ 225,255,256,256,221,221,222,222,223,223,224,224,255,255,232,256, \
+ 233,233,234,234,223,253,254,254,243,249,250,250,239,233,240,288, \
+ 256,242,243,271,272,251,252,287,288,288,240,240,241,255,256,256, \
+ 257,257,258,272,252,252,253,253,254,254,255,255,256,256,271,257, \
+ 272,272,266,273,288,274,268,268,290,269,284,284,271,271,272,272, \
+ 280,280,288,281,282,282,290,304,333,298,271,299,307,286,287,287, \
+ 305,305,298,306,315,299,300,300,301,309,326,286,287,303,304,288, \
+ 289,305,330,330,331,331,332,324,333,333,286,286,287,335,336,336, \
+ 353,329,330,330,331,331,332,332,333,357,302,342,359,351,352,328, \
+ 353,345,354,330,331,331,332,332,333,357,358,358,359,367,368,368, \
+ 329,356,357,330,331,331,332,377,378,378,379,379,380,380,372,381, \
+ 355,382,383,356,357,384,367,403,404,404,405,405,379,352,353,362, \
+ 363,363,373,382,383,374,402,384,403,403,404,404,405,378,379,352, \
+ 353,362,381,381,427,427,428,428,429,429,367,376,377,431,405,432, \
+ 429,379,380,380,381,381,402,402,403,453,404,384,405,375,406,406, \
+ 407,377,378,378,379,379,380,380,381,381,432,432,383,383,384,384, \
+ 385,425,426,396,407,477,408,408,419,399,400,380,381,401,402,392, \
+ 393,403,404,404,405,405,476,426,427,417,428,428,429,429,430,430, \
+ 409,420,421,476,477,477,401,401,402,402,403,403,426,426,427,405, \
+ 417,428,429,429,430,430,431,431,432,421,477,422,423,423,424,424, \
+ 425,425,426,459,471,449,428,428,429,429,430,452,453,475,465,454, \
+ 455,455,456,456,468,468,469,458,470,492,438,471,472,450,473,473, \
+ 449,449,450,450,451,451,452,452,453,453,454,478,479,467,468,456, \
+ 481,469,470,458,459,471,496,472,473,461,462,462,463,475,476,476, \
+ 477,477,478,466,467,467,468,468,469,469,470,482,483,483,484,496, \
+ 497,485,486,474,475,475,476,500,501,477,490,490,491,491,492,492, \
+ 463,476,477,477,478,478,479,492,480,493,494,481,495,495,483,483, \
+ 497,497,498,498,499,473,474,474,475,488,489,463,464,464,465,465, \
+ 466,453,467,467,468,494,495,482,483,470,471,497,498,498,499,499, \
+ 500,474,475,475,476,463,464,490,491,491,492,492,493,480,481,572, \
+ 501,473,474,474,475,475,476,476,477,477,478,478,479,479,620,480, \
+ 481,495,496,496,497,595,596,498,499,499,612,486,613,669,614,600, \
+ 489,615,616,672,477,477,618,618,619,619,620,620,607,621,664,622, \
+ 623,623,624,624,625,611,612,668,669,669,614,614,615,671,672,616, \
+ 614,644,645,645,616,616,647,617,618,618,619,664,650,665,666,651, \
+ 667,667,668,668,669,654,655,655,656,656,657,657,658,658,659,659, \
+ 660,645,646,661,662,617,648,648,619,649,650,665,666,711,712,667, \
+ 668,668,714,669,715,715,716,671,672,672,673,658,674,704,690,675, \
+ 657,657,658,658,659,691,708,708,693,709,710,710,711,711,712,712, \
+ 713,713,714,666,667,667,668,716,765,717,718,718,719,719,720,720, \
+ 737,705,690,722,723,755,756,740,725,757,758,710,759,759,712,712, \
+ 761,713,714,714,715,715,764,764,765,717,766,766,767,767,768,768 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,12,13,13,14,14,15,15,16,16, \
+ 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
+ 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
+ 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40, \
+ 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
+ 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
+ 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
+ 65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72, \
+ 73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80, \
+ 81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88, \
+ 89,89,90,90,91,91,92,92,93,93,94,94,95,95,96,96, \
+ 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
+ 105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112, \
+ 113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120, \
+ 121,121,122,122,123,123,124,124,125,125,126,126,127,127,128,128, \
+ 129,129,130,130,131,131,132,132,133,133,134,134,135,135,136,136, \
+ 137,137,138,138,139,139,140,140,141,141,142,142,143,143,144,144, \
+ 145,145,146,146,147,147,148,148,149,149,150,150,151,151,152,152, \
+ 168,153,154,154,155,155,156,156,157,177,168,168,174,159,160,160, \
+ 161,173,174,168,175,163,164,164,165,183,184,184,167,167,168,168, \
+ 169,169,170,170,171,171,172,172,173,173,174,174,175,175,176,176, \
+ 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
+ 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
+ 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
+ 201,201,202,202,203,224,204,204,205,205,206,206,207,207,208,208, \
+ 209,209,210,210,211,211,212,212,213,213,214,214,215,215,216,216, \
+ 217,217,218,218,219,219,220,220,221,221,222,222,223,223,224,224, \
+ 225,225,226,226,227,227,228,228,229,229,230,230,231,231,232,232, \
+ 233,233,234,234,235,235,236,236,237,237,238,238,239,239,240,240, \
+ 241,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248, \
+ 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
+ 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
+ 265,265,266,266,267,267,268,268,269,269,270,270,271,271,272,272, \
+ 273,273,274,274,275,302,303,276,304,277,278,296,279,288,316,280, \
+ 281,308,309,282,283,319,320,302,303,285,286,313,314,287,288,288, \
+ 329,289,320,310,311,321,312,312,313,313,334,324,325,325,326,326, \
+ 327,337,328,328,329,329,330,330,331,301,302,332,333,333,334,304, \
+ 305,305,306,306,357,337,338,328,349,349,350,350,351,351,352,352, \
+ 343,343,344,354,355,365,366,366,367,387,388,388,319,349,370,370, \
+ 365,354,355,355,356,378,379,368,369,380,381,392,393,393,328,328, \
+ 329,373,374,396,386,386,387,387,388,399,378,400,412,423,336,424, \
+ 403,403,393,371,372,405,406,406,396,407,408,397,398,409,410,432, \
+ 345,422,423,401,402,413,414,392,393,415,416,427,428,417,429,440, \
+ 437,401,402,438,439,451,452,452,453,417,418,430,431,431,432,432, \
+ 433,421,422,446,447,459,460,424,425,365,366,366,367,451,452,368, \
+ 369,429,430,454,455,443,444,456,457,445,446,482,483,375,376,376, \
+ 377,437,438,450,451,475,476,488,501,465,478,430,431,383,384,384, \
+ 385,385,386,503,504,491,440,388,389,389,390,507,391,391,392,392, \
+ 393,393,394,394,395,434,396,487,449,449,450,398,399,399,400,400, \
+ 401,401,402,402,403,403,404,404,405,405,445,458,459,446,460,408, \
+ 461,409,410,410,411,411,412,412,413,413,414,492,415,415,416,416, \
+ 417,417,418,418,419,489,420,420,421,421,422,422,423,423,424,480, \
+ 425,425,426,468,497,427,428,428,429,429,430,430,431,431,432,432, \
+ 433,433,434,434,435,435,436,436,437,437,438,438,439,439,440,440, \
+ 441,441,442,442,443,443,444,444,445,445,446,446,447,447,448,448, \
+ 449,449,450,450,451,451,452,452,453,453,454,454,455,455,456,456, \
+ 457,457,458,458,459,459,460,520,521,461,462,462,463,463,464,464, \
+ 465,465,466,511,512,467,468,468,469,469,470,470,471,471,472,472, \
+ 473,473,474,474,475,535,536,551,477,477,478,478,479,479,480,480, \
+ 481,481,482,482,483,483,484,484,485,485,486,486,487,487,488,488, \
+ 489,489,490,490,491,491,492,492,493,493,494,494,495,495,496,496, \
+ 497,497,498,498,499,499,500,500,501,501,502,502,503,503,504,504, \
+ 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
+
+#define MPFR_MUL_THRESHOLD 7 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 407 /* bits */
+#define MPFR_EXP_THRESHOLD 4030 /* bits */
diff --git a/src/buildopt.c b/src/buildopt.c
index 267b30e5b..dfb675e3d 100644
--- a/src/buildopt.c
+++ b/src/buildopt.c
@@ -42,3 +42,12 @@ mpfr_buildopt_decimal_p (void)
return 0;
#endif
}
+
+const char *mpfr_buildopt_tune_case (void)
+{
+#ifdef MPFR_TUNE_CASE
+ return MPFR_TUNE_CASE;
+#else
+ return "Generic thresholds";
+#endif
+}
diff --git a/src/generic/mparam.h b/src/generic/mparam.h
new file mode 100644
index 000000000..17f4cac81
--- /dev/null
+++ b/src/generic/mparam.h
@@ -0,0 +1,44 @@
+#ifndef MPFR_MULHIGH_TAB
+# define MPFR_MULHIGH_TAB -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0
+#endif
+
+#ifndef MPFR_SQRHIGH_TAB
+# define MPFR_SQRHIGH_TAB -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0
+#endif
+
+#ifndef MPFR_DIVHIGH_TAB
+# define MPFR_DIVHIGH_TAB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
+#endif
+
+#ifndef MPFR_MUL_THRESHOLD
+# define MPFR_MUL_THRESHOLD 20 /* limbs */
+#endif
+
+#ifndef MPFR_SQR_THRESHOLD
+# define MPFR_SQR_THRESHOLD 20 /* limbs */
+#endif
+
+#ifndef MPFR_EXP_2_THRESHOLD
+# define MPFR_EXP_2_THRESHOLD 100 /* bits */
+#endif
+
+#ifndef MPFR_EXP_THRESHOLD
+# define MPFR_EXP_THRESHOLD 25000 /* bits */
+#endif
+
+#ifndef MPFR_SINCOS_THRESHOLD
+# define MPFR_SINCOS_THRESHOLD 30000 /* bits */
+#endif
+
+#ifndef MPFR_AI_THRESHOLD1
+# define MPFR_AI_THRESHOLD1 -13107 /* threshold for negative input of mpfr_ai */
+#endif
+
+#ifndef MPFR_AI_THRESHOLD2
+# define MPFR_AI_THRESHOLD2 1311
+#endif
+
+#ifndef MPFR_AI_THRESHOLD3
+# define MPFR_AI_THRESHOLD3 19661
+#endif
+
diff --git a/src/ia64/mparam.h b/src/ia64/mparam.h
new file mode 100644
index 000000000..06f443df1
--- /dev/null
+++ b/src/ia64/mparam.h
@@ -0,0 +1,139 @@
+/* Generated by MPFR's tuneup.c, 2009-02-10, gcc 4.3 */
+/* pipol13.inrialpes.fr (McKinley) with gmp-4.2.4 */
+
+#define MPFR_TUNE_CASE "IA64"
+#define MPFR_MULHIGH_TAB \
+ -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,44,44,47,47,44,44, \
+ 45,51,48,48,49,49,48,48,55,51,56,52,51,51,52,60, \
+ 59,59,56,56,63,63,64,64,63,63,64,60,67,67,68,68, \
+ 67,67,64,64,71,71,72,72,71,71,72,90,75,73,76,76, \
+ 89,89,84,90,82,88,92,89,90,90,88,88,89,89,90,90, \
+ 88,88,89,98,90,99,97,94,98,95,96,96,94,103,104,104, \
+ 108,105,109,106,110,110,108,108,109,103,104,104,111,111,109,118, \
+ 116,116,120,120,121,124,128,116,117,123,124,121,125,125,126,141, \
+ 141,129,134,126,127,123,140,132,137,141,126,150,139,143,132,140, \
+ 141,141,146,146,135,139,140,140,141,141,146,138,139,147,152,140, \
+ 141,141,162,162,143,139,140,156,165,153,158,154,147,147,152,152, \
+ 153,153,150,162,155,155,156,152,153,153,174,170,171,171,156,156, \
+ 159,164,165,165,176,166,167,167,168,168,164,179,165,165,166,176, \
+ 177,177,188,188,189,174,180,180,176,171,177,192,173,183,189,189, \
+ 180,195,186,186,182,177,183,188,189,184,190,190,201,191,192,192, \
+ 188,203,204,199,200,200,201,201,192,207,208,213,204,189,210,210, \
+ 191,203,204,216,223,211,212,212,213,225,196,202,203,215,216,216, \
+ 217,211,212,236,237,267,208,220,233,263,264,228,259,223,260,260, \
+ 261,267,220,262,257,275,276,258,259,259,266,260,261,267,262,268, \
+ 263,263,264,270,271,283,272,266,267,267,268,262,269,263,264,276, \
+ 270,284,278,264,272,293,294,273,274,274,261,261,262,269,270,263, \
+ 264,264,265,265,266,287,267,267,303,275,269,262,312,270,285,285, \
+ 279,279,266,301,267,274,303,275,276,276,277,284,285,292,272,272, \
+ 294,294,330,288,289,303,276,290,291,284,285,285,286,279,287,287, \
+ 281,313,314,314,315,291,348,308,301,285,294,294,303,303,296,304, \
+ 305,305,306,330,307,307,308,292,309,309,294,326,311,311,312,328, \
+ 321,321,306,322,347,323,308,308,333,317,326,326,343,311,328,384, \
+ 329,337,338,330,315,323,348,348,357,341,342,374,343,343,312,368, \
+ 365,347,339,366,367,340,332,368,360,378,352,370,353,380,336,381, \
+ 346,328,365,383,348,366,358,358,350,359,387,369,361,379,344,407, \
+ 408,354,355,346,383,383,420,420,367,421,377,377,378,378,406,415, \
+ 398,416,372,372,418,418,419,419,411,384,385,412,413,395,414,414, \
+ 419,419,410,420,381,381,372,422,383,393,414,384,415,415,416,416, \
+ 427,417,408,418,419,419,420,420,391,391,442,392,453,413,414,454, \
+ 435,445,446,456,407,427,448,438,449,409,410,420,411,431,432,422, \
+ 423,453,434,414,415,425,436,446,427,417,418,468,489,419,420,420, \
+ 420,486,410,454,422,444,445,456,446,446,447,458,459,492,482,438, \
+ 439,417,418,418,452,452,453,420,432,454,444,444,445,445,479,446, \
+ 458,447,448,459,460,427,450,494,495,528,441,452,453,453,454,487, \
+ 488,488,456,500,501,490,491,480,492,492,526,449,450,483,484,484, \
+ 461,497,474,474,463,499,488,488,489,453,490,490,527,491,492,492, \
+ 529,505,506,482,471,495,508,484,485,497,498,498,523,487,488,524, \
+ 525,465,490,490,515,515,516,492,493,481,482,494,495,483,544,520, \
+ 509,485,546,486,535,499,512,488,525,489,490,526,527,527,528,492, \
+ 567,528,490,503,504,491,531,492,571,506,507,572,573,573,522,561, \
+ 562,510,524,524,538,525,500,565,527,514,515,528,516,555,569,556, \
+ 557,518,519,571,533,533,560,560,522,561,536,536,537,537,564,525, \
+ 526,552,527,566,567,580,607,542,543,543,596,596,545,558,559,559, \
+ 599,599,600,600,531,531,532,588,631,603,548,576,577,563,536,564, \
+ 565,593,594,566,567,567,582,582,555,555,598,556,557,571,572,558, \
+ 559,559,560,560,561,603,618,604,563,633,634,564,593,621,594,636, \
+ 567,567,568,554,555,597,598,598,599,571,572,600,629,629,588,630, \
+ 599,644,630,570,571,586,587,632,633,618,634,634,635,605,621,606, \
+ 607,592,593,593,594,594,595,595,596,626,627,627,628,643,569,644, \
+ 600,600,601,586,587,632,633,618,634,634,635,605,606,636,637,637, \
+ 638,593,594,669,670,625,641,596,672,582,643,598,644,644,600,585, \
+ 673,657,674,674,643,643,644,596,597,597,598,710,663,599,600,600, \
+ 633,681,698,602,603,619,620,796,797,797,798,798,623,671,672,640, \
+ 801,785,786,786,787,819,788,628,629,661,662,790,791,807,824,696, \
+ 681,777,714,698,699,795,796,796,781,717,798,798,815,735,704,816 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8, \
+ 9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16, \
+ 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
+ 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
+ 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40, \
+ 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
+ 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
+ 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
+ 65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72, \
+ 73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80, \
+ 81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88, \
+ 89,89,90,90,91,91,92,92,93,93,94,94,95,95,96,96, \
+ 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
+ 105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112, \
+ 113,113,114,114,115,115,116,116,137,117,118,118,119,119,120,120, \
+ 121,141,138,138,147,123,124,124,153,141,146,138,143,147,128,152, \
+ 144,129,130,130,131,151,152,132,153,138,144,159,165,135,136,136, \
+ 137,137,138,138,139,139,140,140,141,141,142,142,143,143,144,144, \
+ 145,145,146,146,147,147,148,148,149,149,150,150,151,151,152,152, \
+ 153,153,154,154,155,155,156,156,157,177,183,158,159,159,160,160, \
+ 161,161,162,162,163,163,164,164,165,165,166,166,167,167,168,168, \
+ 169,169,170,170,171,171,172,172,173,173,174,174,175,175,176,176, \
+ 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
+ 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
+ 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
+ 201,201,202,202,203,203,204,204,205,205,206,206,207,207,208,208, \
+ 209,209,210,210,211,211,212,212,213,213,214,214,215,215,216,216, \
+ 217,217,218,218,219,219,220,220,221,221,222,222,223,223,224,224, \
+ 225,225,226,226,227,227,228,228,229,229,230,230,231,231,232,232, \
+ 233,233,234,234,235,235,236,236,237,237,238,238,239,239,240,240, \
+ 241,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248, \
+ 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
+ 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
+ 265,265,266,266,267,267,268,268,269,269,270,270,271,271,272,272, \
+ 273,273,274,274,275,275,276,276,277,277,278,278,279,279,280,280, \
+ 281,281,282,282,283,283,284,284,285,285,286,286,287,287,288,288, \
+ 289,289,290,290,291,291,292,292,293,333,294,294,295,295,296,296, \
+ 297,297,298,308,309,299,300,300,301,301,302,302,303,303,304,304, \
+ 305,305,306,306,307,307,308,308,309,309,310,310,311,311,312,312, \
+ 313,353,354,314,315,315,316,316,317,317,318,318,319,319,320,320, \
+ 321,409,355,322,323,323,324,324,325,325,326,326,415,393,328,328, \
+ 329,329,407,330,331,342,354,420,432,410,334,411,335,335,336,336, \
+ 414,425,338,415,416,372,406,340,341,341,342,419,409,376,377,410, \
+ 411,411,379,412,424,347,348,348,437,382,416,394,395,351,429,418, \
+ 437,353,354,354,355,415,404,428,429,441,406,358,443,359,360,420, \
+ 409,421,446,362,411,411,364,424,413,413,366,366,367,415,416,452, \
+ 441,369,430,370,419,455,456,456,469,373,374,374,375,375,376,376, \
+ 377,377,378,378,379,379,380,464,381,381,466,454,455,455,456,456, \
+ 385,411,464,386,465,387,388,388,389,389,455,390,391,391,392,483, \
+ 393,393,394,472,473,421,422,474,423,410,411,437,438,490,452,426, \
+ 427,427,428,428,429,429,456,417,418,444,432,406,407,407,408,408, \
+ 409,409,410,410,411,411,464,438,413,413,414,414,415,415,416,416, \
+ 417,417,418,418,419,531,420,420,421,463,492,422,423,423,424,424, \
+ 425,425,426,426,427,427,428,428,429,429,430,430,431,487,488,474, \
+ 489,433,434,434,435,435,436,436,437,437,438,438,439,509,510,440, \
+ 441,441,442,498,499,527,528,444,445,515,516,502,503,517,504,490, \
+ 449,509,510,450,451,451,452,452,453,453,454,454,455,455,456,456, \
+ 457,457,458,503,504,459,460,460,461,461,462,462,463,463,464,464, \
+ 465,465,466,466,467,467,468,468,469,469,470,470,471,471,472,472, \
+ 473,473,474,474,565,520,536,476,477,537,478,523,479,479,480,540, \
+ 481,481,482,482,483,483,532,484,485,485,486,486,487,519,552,552, \
+ 569,489,490,554,491,491,492,492,493,573,494,494,495,495,496,496, \
+ 497,497,498,498,499,499,500,500,533,501,550,566,567,503,504,504, \
+ 505,505,506,506,507,507,508,508,509,509,510,510,511,607,608,512 \
+
+#define MPFR_MUL_THRESHOLD 6 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 455 /* bits */
+#define MPFR_EXP_THRESHOLD 10001 /* bits */
diff --git a/src/mparam_h.in b/src/mparam_h.in
index 606a484bb..5af4c233f 100644
--- a/src/mparam_h.in
+++ b/src/mparam_h.in
@@ -27,1416 +27,45 @@ http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
for example with gcc -dM -E -xc /dev/null
As of gcc 4.2, you can also use: -march=native or -mtune=native */
-/*****************************
- * Threshold for Pentium 4 *
- *****************************/
-#if defined (__tune_pentium4__)
+#if defined (__tune_pentium4__) /* Threshold for Pentium 4 */
+#include "x86_64/pentium4/mparam.h"
-/* Generated by MPFR's tuneup.c, 2009-02-09, gcc 4.3 */
-/* crumble.loria.fr with gmp-4.2.4 */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,18,19,19,24,26,0,0,24,26,28,27,26,28, \
- 30,32,32,32,30,30,34,34,32,34,34,36,32,34,36,34, \
- 35,0,0,36,35,0,36,48,0,0,48,48,51,0,48,52, \
- 51,0,52,52,51,55,52,56,55,0,56,60,59,59,60,64, \
- 63,63,64,64,67,67,68,72,63,71,72,60,67,67,60,72, \
- 63,61,64,64,63,71,68,68,71,67,68,68,67,71,68,72, \
- 68,68,72,72,76,76,68,68,72,72,70,103,104,71,72,96, \
- 103,94,95,104,96,96,94,103,104,104,96,96,103,103,104,104, \
- 120,120,103,103,104,104,120,111,103,112,104,104,120,120,109,103, \
- 119,119,120,120,127,112,128,128,120,120,136,127,128,128,120,126, \
- 121,129,126,134,135,135,136,120,113,113,114,118,127,127,136,120, \
- 121,125,126,118,119,119,120,136,121,153,122,122,127,119,120,128, \
- 165,153,162,134,163,159,136,136,153,153,134,158,135,135,136,136, \
- 153,153,162,158,159,159,156,152,153,189,158,186,187,163,156,168, \
- 189,159,165,165,176,176,172,172,183,173,164,174,165,165,176,176, \
- 177,177,183,188,189,189,180,185,176,186,177,177,193,188,189,189, \
- 200,200,201,201,177,207,188,198,199,189,200,200,186,201,207,207, \
- 213,203,189,189,200,210,201,196,212,207,208,213,189,199,200,200, \
- 203,209,216,204,199,223,206,200,213,225,208,208,203,203,216,204, \
- 205,205,224,212,213,213,184,208,209,203,198,210,199,187,206,200, \
- 201,189,208,208,203,185,216,198,187,199,200,212,213,213,202,208, \
- 203,197,198,198,199,211,212,212,285,213,280,274,227,275,288,204, \
- 284,284,278,285,307,216,273,308,309,309,275,219,213,311,305,284, \
- 306,306,307,307,308,308,309,309,303,303,311,311,284,312,285,285, \
- 307,286,287,308,309,309,303,303,304,332,305,305,306,299,328,300, \
- 308,301,309,309,303,310,311,311,333,305,285,285,307,314,308,308, \
- 321,305,354,322,331,355,332,308,309,333,334,334,303,303,304,312, \
- 305,305,306,306,307,307,308,308,309,309,302,302,375,311,312,360, \
- 353,305,330,354,307,355,380,308,357,309,358,358,359,311,312,312, \
- 345,329,378,354,331,355,356,356,357,357,374,334,375,311,336,384, \
- 356,329,330,357,331,358,404,332,369,333,334,334,335,353,354,354, \
- 355,382,356,347,357,357,358,358,377,359,405,333,352,379,353,353, \
- 354,354,355,355,356,356,357,357,358,376,359,377,369,360,379,370, \
- 380,380,354,372,355,382,383,401,357,357,376,358,377,377,405,378, \
- 379,379,380,380,381,381,402,402,353,403,404,404,405,405,376,376, \
- 377,357,368,358,379,379,360,400,401,381,372,452,373,383,454,384, \
- 405,405,456,356,357,357,358,378,379,379,490,370,381,381,492,402, \
- 463,403,404,404,405,405,456,456,527,357,448,448,489,449,400,450, \
- 453,453,454,454,455,455,456,456,468,490,491,491,492,404,405,482, \
- 472,450,451,462,463,463,464,453,465,465,455,455,456,489,490,490, \
- 491,491,492,492,405,526,483,527,484,484,452,452,486,453,454,454, \
- 455,477,456,522,490,490,491,524,481,492,526,482,483,527,495,517, \
- 521,533,522,474,499,523,524,524,489,489,490,526,527,527,528,528, \
- 529,529,518,554,495,483,496,472,521,557,486,522,535,535,524,512, \
- 525,561,526,526,491,527,528,528,529,517,518,554,531,519,544,520, \
- 521,521,558,546,559,535,560,536,489,573,490,514,491,563,492,492, \
- 528,489,555,555,491,491,492,596,597,545,546,546,560,599,600,600, \
- 523,562,563,511,564,525,526,630,553,527,528,528,607,555,595,543, \
- 544,531,532,571,559,559,599,560,535,535,562,562,563,537,564,564, \
- 565,630,514,631,528,632,555,542,634,595,557,557,597,558,559,559, \
- 571,599,530,530,559,545,546,616,561,547,548,534,633,563,564,564, \
- 607,537,594,636,567,539,624,554,555,555,598,598,557,557,558,572, \
- 559,559,560,574,603,561,562,632,563,563,578,592,593,607,580,608, \
- 553,609,624,596,597,597,598,612,627,585,600,614,573,629,616,602, \
- 599,599,585,585,616,616,587,632,603,603,634,634,635,605,636,621, \
- 622,607,623,593,609,609,625,610,611,626,612,597,628,598,599,599, \
- 600,630,631,616,602,632,633,603,634,634,635,635,636,636,607,637, \
- 668,608,609,609,610,610,611,611,597,657,628,628,629,629,630,630, \
- 609,625,562,626,627,563,564,628,629,629,630,630,631,599,664,632, \
- 681,633,634,634,635,635,620,636,621,621,622,622,623,639,672,592, \
- 609,641,594,594,595,627,596,564,629,597,598,598,631,599,600,600, \
- 601,681,618,634,603,635,636,636,557,621,622,606,623,623,608,608 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,7,7,8,8, \
- 9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16, \
- 17,17,18,18,19,19,20,20,21,21,22,22,26,23,24,24, \
- 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
- 33,33,34,34,35,35,36,38,39,39,38,38,39,39,40,40, \
- 41,41,42,42,43,43,44,46,45,45,46,46,47,47,48,48, \
- 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
- 57,57,58,58,59,59,60,60,61,61,62,68,63,63,64,64, \
- 65,68,66,69,67,67,71,68,69,75,76,76,71,71,72,72, \
- 73,82,74,80,78,75,76,76,77,83,78,81,82,79,80,80, \
- 81,81,82,85,83,83,84,84,85,85,86,86,87,87,88,88, \
- 89,92,90,93,94,91,92,92,93,93,94,94,95,95,96,96, \
- 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
- 105,105,106,106,107,107,108,112,109,109,110,118,111,111,112,112, \
- 113,113,114,122,123,115,116,116,117,117,118,118,119,119,120,120, \
- 121,121,122,122,123,123,124,124,125,125,126,126,127,127,128,128, \
- 129,154,135,130,131,131,132,132,133,133,134,134,135,140,151,136, \
- 142,137,138,143,144,154,155,150,151,156,152,142,153,158,144,144, \
- 165,145,146,146,152,162,148,148,149,149,150,150,151,171,152,152, \
- 153,153,154,154,155,155,156,156,157,157,158,158,159,159,160,160, \
- 161,161,162,162,163,163,164,164,165,165,166,166,167,167,168,168, \
- 169,169,170,170,171,183,172,172,173,173,174,174,175,187,194,182, \
- 183,177,178,178,179,179,180,180,181,181,182,182,195,183,184,184, \
- 185,197,186,186,187,187,188,188,189,189,190,190,191,191,192,204, \
- 207,200,201,208,209,195,196,203,204,197,198,198,199,199,200,200, \
- 201,215,216,230,217,210,211,218,212,205,206,206,207,207,208,208, \
- 209,230,231,231,232,225,226,226,227,227,228,242,222,257,216,216, \
- 217,245,246,218,219,240,241,234,235,235,236,264,230,258,224,224, \
- 225,225,226,226,227,227,228,260,261,229,230,270,247,231,232,232, \
- 233,233,234,234,235,235,236,236,237,237,238,238,239,239,240,240, \
- 241,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248, \
- 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
- 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
- 265,265,266,266,267,267,268,268,269,269,279,270,271,271,272,272, \
- 273,273,274,274,275,275,276,276,277,277,278,278,279,279,280,280, \
- 281,281,282,282,283,283,284,284,294,285,286,286,287,287,288,288, \
- 289,289,290,290,291,291,292,292,293,293,294,294,295,295,296,296, \
- 297,297,298,298,299,299,300,300,301,301,302,302,303,303,304,304, \
- 305,305,306,306,307,307,308,308,309,309,310,310,311,311,312,312, \
- 313,313,314,314,315,315,316,316,317,317,318,318,319,319,320,320, \
- 321,321,322,322,323,323,324,324,325,325,326,337,349,338,328,328, \
- 329,329,330,330,331,331,332,332,333,333,334,334,335,335,336,336, \
- 337,337,338,360,339,339,340,340,341,341,342,342,343,354,355,344, \
- 345,345,368,368,369,369,359,348,393,382,383,361,362,362,363,363, \
- 365,365,366,390,367,391,380,404,357,393,406,382,383,395,396,396, \
- 385,409,386,410,387,399,388,412,413,401,390,366,367,403,404,416, \
- 417,405,382,406,407,407,408,408,409,409,410,410,435,411,412,412, \
- 413,413,414,378,439,427,428,392,393,441,442,430,479,455,444,432, \
- 437,385,451,386,465,439,427,388,389,454,455,455,404,417,444,444, \
- 393,393,394,446,460,460,461,487,410,475,398,476,477,464,400,465, \
- 401,492,402,402,403,403,404,404,405,405,406,419,407,407,408,408, \
- 409,409,410,410,411,411,412,412,413,413,414,414,415,415,416,416, \
- 417,417,418,418,419,419,420,420,421,421,422,422,423,423,424,508, \
- 425,425,426,426,427,427,428,428,429,429,430,430,431,431,432,432, \
- 433,433,434,434,435,435,436,436,437,437,438,536,439,439,440,440, \
- 441,441,442,442,443,443,444,444,445,445,446,446,447,447,448,476, \
- 449,449,450,450,451,451,482,452,453,453,454,454,455,455,456,456, \
- 457,457,458,458,459,459,460,460,461,461,462,462,463,463,464,464, \
- 465,465,466,466,467,467,468,468,469,469,470,470,471,471,472,472, \
- 473,473,474,474,475,475,476,476,477,477,478,478,479,479,480,480, \
- 481,481,482,482,483,483,484,484,485,485,486,486,487,487,488,488, \
- 489,489,490,490,491,491,492,492,493,493,494,494,495,495,496,496, \
- 497,497,498,498,499,499,500,500,501,501,502,502,503,503,504,504, \
- 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
-
-#define MPFR_MUL_THRESHOLD 8 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 519 /* bits */
-#define MPFR_EXP_THRESHOLD 6533 /* bits */
-
-/****************************
- * Threshold for Core 2 *
- ****************************/
#elif defined (__tune_core2__) && !defined (__i386) /* 64-bit Core 2 */
-
-/* Generated by MPFR's tuneup.c, 2010-09-24, gcc 4.4.4 */
-/* tarte.loria.fr with gmp-5.0.1 */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,8,10, \
- 10,10,10,12,11,12,12,13,14,15,16,17,18,18,19,18, \
- 23,24,24,24,24,24,28,26,28,28,30,24,28,24,24,26, \
- 32,30,32,28,28,30,32,30,30,32,32,32,34,34,34,36, \
- 47,47,46,48,47,47,48,46,47,47,48,48,47,47,52,52, \
- 47,47,48,48,47,51,52,52,53,55,56,56,59,53,56,56, \
- 55,61,64,64,63,63,60,68,69,69,64,64,67,69,80,72, \
- 69,75,80,80,81,81,78,78,81,81,80,80,81,87,92,90, \
- 80,92,87,81,91,94,92,92,90,90,88,91,92,92,87,93, \
- 88,91,92,89,90,93,94,91,92,104,87,99,94,103,92,104, \
- 90,99,103,103,104,104,93,93,100,103,116,101,102,99,100,139, \
- 110,140,141,141,139,133,140,140,141,141,139,139,140,140,138,141, \
- 141,141,138,138,139,139,140,136,141,141,134,138,135,135,136,140, \
- 141,141,138,138,139,135,140,140,141,141,138,138,139,139,140,140, \
- 141,153,154,158,159,151,140,156,165,165,186,186,187,159,164,188, \
- 165,165,186,186,187,163,188,164,165,165,186,162,187,187,180,188, \
- 184,184,180,185,186,186,187,187,188,188,184,184,185,165,201,201, \
- 187,187,188,188,204,204,220,185,186,201,187,202,188,188,204,204, \
- 220,185,201,201,187,187,188,188,204,214,220,220,216,211,212,187, \
- 188,188,204,204,210,220,216,201,217,252,188,233,204,219,220,220, \
- 203,251,240,240,235,211,212,212,219,243,280,220,233,281,282,282, \
- 277,247,236,236,279,279,220,280,269,281,276,276,235,235,236,272, \
- 273,279,274,280,281,275,282,270,277,277,278,278,279,279,280,280, \
- 281,281,276,276,277,247,272,272,279,279,274,274,275,275,276,276, \
- 270,270,278,278,279,300,280,280,330,281,282,275,304,276,277,305, \
- 306,306,279,279,329,280,281,281,282,282,311,318,305,298,327,306, \
- 328,328,329,329,330,330,282,282,304,304,305,305,306,306,328,328, \
- 322,329,330,330,317,352,318,325,305,326,327,327,328,328,329,329, \
- 305,329,330,330,323,323,324,348,325,317,318,318,327,327,328,328, \
- 329,329,330,330,363,371,324,372,349,405,406,358,375,359,376,376, \
- 377,377,378,378,371,371,372,364,349,349,366,406,407,407,408,352, \
- 353,377,378,378,363,371,372,404,405,405,406,406,407,439,440,440, \
- 437,437,375,375,439,439,440,440,378,378,406,406,407,407,408,408, \
- 436,400,428,437,438,438,439,439,440,440,423,423,424,406,407,407, \
- 408,408,436,436,419,437,429,438,439,439,440,440,432,423,406,406, \
- 407,470,408,408,436,436,437,437,438,438,439,430,431,431,504,504, \
- 439,429,440,440,431,431,472,432,463,503,504,434,435,465,436,436, \
- 437,467,468,438,439,439,440,440,471,471,472,462,463,503,494,494, \
- 455,485,466,496,437,497,488,438,439,439,440,440,471,471,472,502, \
- 503,503,504,504,435,495,496,496,437,487,438,438,439,499,500,470, \
- 486,486,487,498,499,488,467,500,501,501,502,502,503,503,504,471, \
- 472,472,495,495,540,540,497,486,487,542,543,543,544,544,501,501, \
- 480,502,503,503,493,493,538,472,495,495,496,540,541,497,498,487, \
- 488,488,500,500,501,501,502,502,503,503,504,504,472,615,495,495, \
- 497,497,498,498,499,583,584,500,501,501,502,502,503,503,504,504, \
- 541,541,542,542,543,543,544,544,629,533,630,630,631,631,632,584, \
- 621,621,622,538,611,623,624,504,589,589,590,542,543,615,616,544, \
- 629,629,630,630,631,631,632,632,621,609,610,586,587,587,588,636, \
- 632,632,633,633,582,634,635,635,636,584,637,611,612,638,639,613, \
- 614,640,615,589,590,616,630,591,592,592,632,632,607,633,634,621, \
- 609,609,610,636,611,611,612,625,626,639,627,627,615,615,629,629, \
- 630,630,631,631,632,632,633,685,686,634,635,622,636,688,637,624, \
- 627,711,628,712,727,727,728,728,631,631,632,632,661,661,662,704, \
- 635,635,706,706,637,637,638,722,709,723,710,710,711,711,712,712, \
- 727,727,728,686,631,631,632,632,731,731,732,732,733,663,664,734, \
- 679,735,736,708,639,639,640,710,711,711,712,712,685,685,686,728, \
- 704,704,705,735,736,706,707,707,708,708,709,709,710,710,711,711, \
- 712,712,728,728,729,729,730,730,731,731,717,732,733,718,734,734, \
- 720,705,706,736,677,707,723,723,679,709,725,680,711,726,712,712, \
- 728,728,684,729,685,685,686,686,687,732,688,733,704,704,705,735, \
- 705,705,706,706,707,707,724,708,709,709,710,710,711,711,712,712, \
- 713,729,730,714,715,731,732,716,781,733,734,734,735,735,736,720, \
- 705,705,706,818,819,707,820,708,709,725,726,822,711,727,824,824, \
- 777,825,730,730,731,779,780,828,733,733,734,734,735,735,736,736 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,0,0,0,0,0,4,5,5,7,6,7,7,8,8, \
- 9,9,10,10,11,11,12,13,14,14,16,16,17,16,17,16, \
- 17,17,21,18,19,19,20,20,21,21,22,22,23,23,24,24, \
- 25,25,26,26,28,32,28,28,32,32,32,32,32,32,34,34, \
- 33,33,34,34,35,35,36,36,37,39,38,38,39,39,40,40, \
- 41,41,42,42,43,43,46,52,45,51,52,46,47,47,56,56, \
- 51,51,52,56,51,51,52,64,55,59,56,64,63,55,56,56, \
- 57,59,58,58,59,59,64,64,63,67,68,68,63,75,64,64, \
- 68,68,72,72,67,67,68,68,69,72,70,70,71,71,72,72, \
- 76,76,80,80,78,75,76,76,77,80,84,84,79,79,80,80, \
- 84,84,88,88,83,83,84,84,85,88,92,92,99,99,88,88, \
- 98,95,96,96,106,91,92,92,102,99,103,97,98,110,108,105, \
- 105,105,114,110,99,99,104,116,117,117,122,110,115,111,116,116, \
- 117,105,122,114,107,115,116,116,117,113,114,122,115,123,116,116, \
- 117,113,114,114,123,115,116,116,117,117,118,122,119,123,164,156, \
- 141,121,122,122,123,123,140,148,125,129,126,126,135,155,128,140, \
- 129,129,135,155,141,141,147,147,148,148,164,154,140,135,141,156, \
- 137,137,138,138,139,154,140,140,141,141,162,142,143,163,164,164, \
- 145,155,156,156,147,147,148,163,154,154,155,155,196,156,162,157, \
- 163,188,204,154,155,155,196,156,172,172,188,178,184,164,175,180, \
- 161,179,180,180,163,163,164,164,171,219,184,178,179,203,204,192, \
- 187,217,218,194,195,195,202,220,203,203,204,204,199,217,236,212, \
- 195,219,220,220,203,251,252,252,217,217,218,248,219,219,220,220, \
- 251,245,246,246,247,247,248,236,249,219,244,220,251,251,204,240, \
- 249,249,243,250,251,244,245,245,260,267,268,247,262,220,249,256, \
- 250,264,251,244,252,252,267,267,268,268,220,220,228,270,236,250, \
- 251,251,259,266,267,267,268,268,220,220,242,235,236,236,251,244, \
- 252,252,246,246,247,247,248,248,242,249,264,236,251,244,245,252, \
- 265,265,266,266,251,267,252,252,245,245,326,262,311,247,248,248, \
- 249,249,266,266,251,259,292,268,261,261,262,326,311,255,264,264, \
- 265,249,266,266,267,243,292,268,293,293,310,294,311,311,248,280, \
- 281,281,266,266,267,251,308,268,309,261,326,310,311,263,296,256, \
- 311,266,294,267,259,259,260,260,261,261,262,325,263,326,264,327, \
- 265,265,266,266,267,267,268,268,296,359,324,324,325,325,326,326, \
- 327,282,292,292,293,311,312,294,322,376,278,323,360,324,325,343, \
- 344,326,309,408,310,328,311,374,294,312,376,376,359,359,342,342, \
- 309,339,340,390,391,311,312,312,323,323,324,324,325,325,326,326, \
- 327,407,308,328,389,389,360,360,391,311,342,312,343,343,344,374, \
- 375,325,406,406,327,327,328,328,439,439,440,360,391,391,392,392, \
- 423,373,434,434,435,375,376,436,407,437,408,438,359,439,440,440, \
- 431,343,344,344,356,499,390,390,391,391,436,392,437,437,438,438, \
- 439,406,407,407,408,408,497,431,388,487,433,488,390,500,501,501, \
- 502,502,503,437,504,504,439,406,440,407,408,408,420,497,487,432, \
- 488,433,434,500,501,501,502,436,437,437,504,438,439,439,440,440, \
- 437,437,438,438,439,439,440,440,501,501,502,502,503,503,504,504, \
- 433,433,434,494,471,495,472,520,437,485,486,498,499,487,488,488, \
- 501,501,502,502,503,503,504,504,481,529,434,518,495,495,472,496, \
- 497,485,486,438,487,499,440,440,501,501,502,502,503,503,504,492, \
- 502,502,503,503,504,439,440,440,493,519,520,533,534,495,535,496, \
- 536,497,498,472,499,434,500,500,436,501,502,502,438,503,504,439, \
- 440,531,532,532,494,520,534,534,535,535,497,536,472,472,499,486, \
- 487,487,488,501,502,502,503,568,504,504,531,492,493,532,533,468, \
- 487,487,488,488,503,503,504,504,519,519,520,520,535,535,536,494, \
- 495,495,552,482,497,497,498,498,485,499,500,472,487,501,502,502, \
- 503,503,504,504,533,533,534,436,535,535,536,522,523,495,496,524, \
- 525,469,526,526,485,471,472,472,487,487,502,628,503,503,504,504, \
- 584,584,600,600,496,616,527,632,528,498,529,499,500,500,501,531, \
- 532,652,563,503,504,564,565,520,566,551,567,552,568,568,524,629, \
- 630,600,631,631,632,662,558,558,499,664,620,500,531,501,502,502, \
- 503,533,504,504,535,535,536,536,552,567,598,568,629,599,525,660, \
- 529,561,546,530,531,531,532,532,629,565,630,630,631,663,536,536, \
- 521,553,554,554,555,555,620,620,621,605,622,494,623,623,496,624, \
- 561,593,626,562,563,563,564,564,565,597,582,566,663,615,632,632, \
- 553,601,586,586,619,587,524,524,525,525,526,622,623,527,608,592 \
-
-#define MPFR_MUL_THRESHOLD 10 /* limbs */
-#define MPFR_SQR_THRESHOLD 13 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 1030 /* bits */
-#define MPFR_EXP_THRESHOLD 9603 /* bits */
-#define MPFR_SINCOS_THRESHOLD 25095 /* bits */
-#define MPFR_AI_THRESHOLD1 -12440
-#define MPFR_AI_THRESHOLD2 1433
-#define MPFR_AI_THRESHOLD3 19860
-/* Tuneup completed successfully, took 91 seconds */
+#include "x86_64/core2/mparam.h"
#elif defined (__tune_core2__) && defined (__i386) /* 32-bit Core 2,
for example a 64-bit machine with gmp/mpfr compiled with ABI=32 */
+#include "x86/core2/mparam.h"
-/* Generated by MPFR's tuneup.c, 2007-12-21, gcc 4.1 */
-
-#define MPFR_MULHIGH_TAB \
- -1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28, \
- 30,28,30,28,28,32,30,30,30,32,32,34,32,32,32,32, \
- 33,35,44,40,35,41,40,42,41,47,48,48,47,51,56,48, \
- 47,55,48,56,51,55,56,60,55,55,56,56,55,55,56,64, \
- 63,59,60,64,59,59,64,64,63,63,60,68,63,67,60,64, \
- 67,67,64,68,63,81,64,64,81,81,64,80,81,81,92,86, \
- 86,80,81,81,79,91,86,92,93,84,85,85,86,86,87,87, \
- 91,88,89,98,99,96,91,91,92,92,93,93,94,91,92,92, \
- 99,99,103,97,98,98,96,93,121,115,104,116,93,99,121,127, \
- 128,110,129,117,121,127,128,128,129,126,124,127,122,128,123,129, \
- 129,129,134,138,139,139,140,140,129,141,122,138,139,139,128,128, \
- 129,165,162,138,139,139,164,164,165,153,138,162,139,139,164,140, \
- 165,165,150,146,139,163,164,164,141,177,158,162,151,151,160,156, \
- 165,153,162,158,163,163,164,164,165,153,174,174,163,163,164,164, \
- 164,164,165,165,176,176,172,177,168,163,189,189,165,165,176,176, \
- 177,177,188,188,189,189,175,180,176,176,177,177,188,183,184,189, \
- 180,180,191,201,192,177,188,188,189,199,200,200,201,201,212,212, \
- 213,188,189,189,200,200,201,201,177,212,188,213,189,189,200,195, \
- 239,239,240,240,199,199,212,212,213,201,232,196,215,197,240,240, \
- 247,211,200,236,237,213,256,256,239,257,240,240,247,247,254,248, \
- 237,255,256,238,257,257,240,240,253,247,272,272,237,237,256,256, \
- 275,257,258,276,265,271,272,254,255,267,274,256,257,257,258,276, \
- 256,249,257,285,258,258,266,294,267,267,275,275,276,276,291,270, \
- 257,257,258,293,273,294,274,267,261,261,276,276,270,277,278,271, \
- 293,293,294,294,267,267,268,275,276,276,284,284,292,271,272,293, \
- 294,273,274,274,275,289,276,276,291,291,285,285,293,293,294,294, \
- 321,305,290,290,291,275,276,348,285,293,294,310,311,303,312,288, \
- 289,329,330,306,347,291,292,348,381,381,294,294,327,343,384,384, \
- 345,337,306,346,347,307,308,340,341,381,366,366,343,383,384,384, \
- 345,329,330,330,347,339,380,380,357,381,366,358,359,375,376,376, \
- 383,383,366,366,340,367,368,359,360,360,361,379,362,362,417,381, \
- 364,382,383,383,384,384,412,376,413,359,360,378,361,379,380,416, \
- 417,381,382,418,419,365,384,384,412,412,413,377,378,378,379,379, \
- 380,380,381,363,418,382,383,383,384,384,385,376,377,413,414,378, \
- 379,379,380,380,381,381,382,382,383,363,364,414,415,365,366,366, \
- 417,377,378,418,379,419,420,420,491,441,492,492,403,383,384,384, \
- 415,415,386,416,417,417,418,418,419,419,420,490,491,491,492,492, \
- 423,483,414,414,415,525,416,486,497,417,418,418,419,489,490,490, \
- 486,420,487,421,488,455,456,423,424,490,491,491,492,492,471,471, \
- 483,417,418,528,419,419,420,420,465,487,488,488,489,456,490,490, \
- 491,491,492,492,526,493,527,494,484,528,419,452,453,486,487,454, \
- 455,488,489,467,468,490,491,480,492,492,482,482,483,527,528,506, \
- 521,485,522,498,487,487,488,524,525,489,490,490,491,491,492,528, \
- 481,505,506,494,495,495,496,520,497,497,486,498,487,487,488,524, \
- 489,489,490,526,527,491,492,492,529,529,506,518,519,483,496,484, \
- 485,569,510,522,523,487,488,488,489,489,490,490,491,491,492,492, \
- 528,528,490,490,491,491,492,492,506,506,507,507,521,521,535,522, \
- 523,523,524,563,564,525,526,526,527,527,528,528,529,542,543,556, \
- 570,557,571,558,533,533,534,560,535,522,523,536,537,563,564,525, \
- 526,526,527,527,528,528,542,594,595,543,557,557,597,532,559,559, \
- 557,557,558,558,559,531,546,560,561,547,548,562,563,563,564,564, \
- 565,565,566,566,567,553,582,568,569,583,584,584,585,557,558,600, \
- 559,573,560,588,533,561,590,562,563,563,564,564,593,579,594,566, \
- 567,581,582,568,569,569,598,584,571,585,600,600,629,559,560,560, \
- 599,599,600,600,601,586,587,602,603,603,634,604,605,635,636,636, \
- 562,637,638,563,564,564,565,565,566,611,612,552,628,568,569,584, \
- 585,600,631,616,617,632,633,633,634,634,635,635,636,606,592,712, \
- 713,638,639,564,595,715,716,716,717,597,583,568,569,704,600,585, \
- 625,593,594,770,771,595,596,708,597,597,598,694,695,599,600,712, \
- 633,633,714,634,715,715,716,636,717,717,686,750,751,751,752,768, \
- 753,753,754,770,771,771,756,708,709,709,710,742,743,711,712,760, \
- 761,713,714,714,715,715,716,716,765,717,718,750,751,751,768,736 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,-1,-1,0,0,0,0,0,0,0,0,-1,-1,0,8, \
- 9,9,10,10,11,12,12,13,13,13,14,14,15,15,16,16, \
- 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
- 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
- 33,33,34,34,35,35,36,36,37,37,38,42,39,39,40,40, \
- 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
- 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
- 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
- 65,74,66,66,67,67,68,68,69,78,70,70,74,71,72,72, \
- 73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80, \
- 81,84,82,82,83,83,84,84,85,85,92,92,87,87,88,88, \
- 89,89,90,96,91,91,92,92,93,96,100,100,95,95,96,96, \
- 97,97,98,98,99,99,100,100,101,101,114,102,103,103,104,104, \
- 105,105,114,106,107,123,108,108,117,109,110,110,111,111,112,112, \
- 113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,132, \
- 141,121,122,122,123,135,140,144,141,125,126,126,127,127,128,128, \
- 129,129,130,135,131,131,132,132,133,158,134,134,135,135,136,136, \
- 137,137,138,138,169,139,140,140,141,141,142,142,143,143,144,144, \
- 145,145,146,171,177,147,153,148,149,159,150,150,151,171,177,177, \
- 153,153,154,159,180,165,156,156,157,177,183,168,159,159,170,165, \
- 161,161,162,162,163,163,164,164,165,165,166,166,167,167,168,168, \
- 169,169,170,170,171,171,172,172,173,173,174,174,175,175,176,176, \
- 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
- 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
- 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
- 201,201,202,202,203,210,225,204,205,205,206,206,207,207,208,208, \
- 209,209,210,210,211,211,212,212,213,213,214,214,215,215,216,216, \
- 217,217,218,218,219,219,220,220,221,221,222,222,223,223,224,224, \
- 225,225,226,226,227,227,228,228,229,229,230,230,231,231,232,232, \
- 233,249,234,234,235,235,236,236,237,237,238,238,239,239,240,240, \
- 241,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248, \
- 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
- 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
- 265,283,266,284,285,267,268,268,269,269,270,270,271,271,272,272, \
- 273,273,274,274,275,275,276,276,277,277,278,278,279,279,280,280, \
- 281,281,282,282,283,283,284,284,285,285,286,295,332,287,288,288, \
- 289,309,320,320,321,291,292,292,293,293,294,324,295,295,296,296, \
- 297,297,298,298,299,299,300,300,301,301,302,302,303,333,304,304, \
- 345,305,306,306,307,307,348,338,339,309,310,310,311,311,312,312, \
- 333,323,324,354,355,345,336,316,317,337,338,338,319,339,320,340, \
- 365,365,344,333,323,345,346,324,325,347,348,348,349,327,328,328, \
- 384,329,330,330,331,364,332,354,366,366,356,356,357,335,336,336, \
- 337,337,338,338,339,383,384,340,341,341,342,342,343,343,344,344, \
- 345,345,346,346,347,347,348,348,349,382,383,350,351,351,352,352, \
- 353,353,402,354,355,355,356,356,357,357,358,358,359,419,420,420, \
- 361,361,362,362,363,363,364,364,365,365,366,366,367,367,368,368, \
- 369,369,370,370,371,371,372,372,373,373,374,374,375,375,376,376, \
- 377,377,378,378,379,379,380,380,381,381,382,382,383,383,384,384, \
- 385,385,399,490,387,387,388,388,389,389,390,390,391,391,392,392, \
- 393,393,420,394,395,395,396,396,397,397,398,398,399,399,400,400, \
- 401,401,402,402,507,507,508,404,405,509,510,510,407,407,408,473, \
- 474,474,527,436,437,411,412,412,413,491,492,492,415,415,416,416, \
- 417,417,418,418,419,419,420,420,421,463,492,492,521,479,480,424, \
- 425,425,426,426,427,427,428,484,429,429,430,472,473,473,474,432, \
- 433,433,434,504,491,491,492,436,437,507,508,508,481,467,468,468, \
- 469,483,484,512,513,471,486,500,501,515,516,488,489,447,448,490, \
- 509,509,510,510,481,526,527,512,513,528,544,544,545,455,456,456, \
- 517,487,488,488,489,489,490,460,461,461,462,492,508,508,509,509, \
- 510,510,511,526,527,467,468,528,544,469,470,515,546,531,517,472, \
- 473,473,474,474,475,535,581,476,477,477,478,478,479,479,480,480, \
- 481,481,482,482,483,547,548,484,485,485,486,566,535,487,488,488, \
- 489,489,490,490,491,491,492,492,493,493,494,494,495,495,496,496, \
- 497,561,498,578,579,579,580,580,581,501,502,598,599,503,504,504, \
- 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
-
-#define MPFR_MUL_THRESHOLD 11 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 441 /* bits */
-#define MPFR_EXP_THRESHOLD 9145 /* bits */
-
-/****************************
- * Threshold for AMD 64 *
- ****************************/
-#elif defined (__tune_k8__)
-
-/* Generated by MPFR's tuneup.c, 2009-02-09, gcc 4.3 */
-/* achille.loria.fr with gmp-4.2.4 */
+#elif defined (__tune_k8__) /* Threshold for AMD 64 */
+#include "amd/k8/mparam.h"
-#define MPFR_MULHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,68,68,0,67,66,66, \
- 65,65,64,64,67,67,64,72,65,79,68,72,67,79,72,72, \
- 80,80,81,72,76,82,77,77,84,84,88,88,83,83,81,84, \
- 88,88,80,80,96,96,100,97,98,89,96,84,100,97,98,98, \
- 96,96,100,100,98,98,93,93,100,97,101,98,96,99,121,121, \
- 104,101,108,108,112,109,110,122,111,117,115,115,122,122,123,123, \
- 117,117,122,122,123,123,128,128,129,129,126,126,135,131,128,128, \
- 129,129,126,126,147,143,132,132,141,137,134,134,135,147,140,140, \
- 141,141,146,146,147,147,144,140,149,141,146,146,147,147,152,144, \
- 153,165,146,146,147,147,152,156,165,153,162,170,167,171,168,168, \
- 159,159,170,170,171,166,167,172,168,168,189,189,200,170,171,171, \
- 177,167,168,168,169,199,195,200,201,201,192,192,198,198,199,189, \
- 195,195,201,201,207,207,188,188,189,199,195,200,201,201,202,197, \
- 198,198,189,199,210,200,196,196,197,192,213,208,219,224,225,200, \
- 233,227,228,204,211,211,212,206,237,213,202,220,203,239,204,240, \
- 247,211,212,212,213,243,232,232,239,215,216,222,229,235,236,224, \
- 225,225,226,226,227,245,246,234,241,223,248,224,225,249,226,226, \
- 227,233,234,252,247,235,236,236,237,237,250,238,239,245,246,240, \
- 249,249,236,236,237,251,252,252,253,253,254,254,297,241,242,249, \
- 257,257,258,251,245,245,246,267,247,261,248,248,249,249,285,278, \
- 258,258,259,273,281,281,282,261,276,297,270,270,271,271,272,272, \
- 273,273,288,281,282,289,290,283,284,277,285,278,286,286,287,287, \
- 289,281,282,290,291,291,284,284,293,301,302,310,311,303,304,312, \
- 273,297,330,282,283,299,308,348,309,285,310,366,287,327,288,288, \
- 297,297,330,338,339,339,348,348,349,349,302,366,335,335,344,312, \
- 297,361,330,354,355,339,348,348,341,365,342,342,359,351,360,328, \
- 329,365,357,357,358,349,350,341,342,351,352,361,362,380,363,363, \
- 364,364,347,347,348,348,349,367,368,341,342,342,343,343,380,380, \
- 345,345,346,346,347,347,348,357,358,385,386,359,360,360,361,361, \
- 362,362,363,363,364,364,365,410,411,357,358,358,359,422,414,378, \
- 379,369,410,380,381,381,432,362,363,423,434,434,425,435,436,366, \
- 417,437,438,438,369,399,400,440,441,441,402,382,383,393,384,384, \
- 445,405,406,436,437,417,418,418,409,429,410,390,411,431,402,432, \
- 423,393,414,404,445,425,436,436,417,417,438,438,399,449,450,440, \
- 431,420,421,443,433,433,434,445,435,435,414,414,426,426,427,427, \
- 417,417,418,418,419,430,431,442,443,443,433,433,434,434,435,501, \
- 425,447,470,459,416,427,428,450,429,429,430,474,486,464,432,432, \
- 455,455,489,456,468,457,469,447,459,459,438,471,472,450,462,473, \
- 497,509,510,486,463,487,452,452,501,489,490,454,467,491,492,456, \
- 469,469,470,470,483,447,508,508,509,509,510,510,451,499,452,452, \
- 513,501,526,490,491,455,456,492,493,505,506,470,495,483,484,472, \
- 473,521,510,474,535,487,488,500,501,501,502,562,563,563,528,528, \
- 528,528,581,490,491,491,492,492,506,493,494,520,495,495,561,587, \
- 588,510,563,589,590,499,513,513,566,566,528,515,516,516,517,569, \
- 583,583,571,597,598,585,599,586,600,600,510,575,576,563,525,564, \
- 578,591,527,579,567,528,594,607,556,582,583,583,558,597,598,546, \
- 571,585,586,600,601,545,588,546,589,561,562,562,591,591,578,592, \
- 593,593,594,594,567,595,596,596,597,597,598,598,571,599,600,572, \
- 573,573,574,574,575,589,618,590,563,633,634,578,593,579,580,580, \
- 581,595,596,582,597,625,626,570,571,571,600,600,601,601,602,602, \
- 599,599,600,600,601,616,602,602,618,618,589,634,590,605,621,591, \
- 607,607,623,623,624,609,625,595,596,596,597,597,598,628,629,599, \
- 645,645,616,631,632,632,633,708,634,604,605,680,681,636,652,607, \
- 608,623,624,744,670,640,641,626,627,672,673,658,659,704,630,630, \
- 625,705,674,642,643,675,676,708,709,709,710,742,679,743,744,696, \
- 681,633,698,682,683,699,668,732,717,669,670,670,687,703,704,704, \
- 657,689,674,690,707,675,676,708,709,709,710,710,695,727,728,744, \
- 713,681,682,714,715,699,700,684,701,701,702,702,703,703,704,672 \
+#elif defined (__tune_athlon__) /* Threshold for Athlon */
+#include "amd/athlon/mparam.h"
-#define MPFR_SQRHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,5,6,6,7,7,8,8, \
- 9,10,10,10,11,11,12,12,13,13,14,14,15,15,16,16, \
- 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
- 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
- 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40, \
- 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
- 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
- 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
- 65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72, \
- 73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80, \
- 81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88, \
- 89,89,90,90,91,91,92,92,93,93,94,94,95,95,96,96, \
- 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
- 105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112, \
- 113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120, \
- 121,121,122,122,123,123,124,124,125,125,126,126,127,127,128,128, \
- 129,129,130,130,131,131,132,132,133,133,134,134,135,135,136,136, \
- 137,137,138,138,139,139,140,140,141,141,142,142,143,143,144,144, \
- 145,145,146,146,147,147,148,158,159,149,150,150,151,151,152,152, \
- 153,153,154,154,155,155,156,156,157,157,158,158,159,159,160,160, \
- 161,161,162,162,163,163,164,164,165,165,166,166,167,167,180,186, \
- 199,169,170,170,171,171,172,172,173,209,198,198,205,175,176,176, \
- 177,177,178,214,215,179,180,210,211,199,200,200,201,183,184,184, \
- 185,185,216,186,187,211,212,212,213,189,190,190,191,191,192,192, \
- 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
- 201,201,202,202,203,203,204,204,205,205,206,206,207,207,208,208, \
- 209,209,210,210,211,211,212,240,213,213,214,214,215,215,216,216, \
- 217,217,218,218,219,219,248,248,249,221,222,222,223,223,224,224, \
- 225,225,226,226,227,227,228,228,229,229,230,230,231,231,232,264, \
- 273,233,234,234,267,235,236,236,237,237,238,238,239,239,240,288, \
- 273,241,242,242,243,243,244,284,261,277,278,270,271,247,248,248, \
- 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
- 257,284,258,294,295,259,260,260,261,261,262,262,263,263,264,264, \
- 265,265,266,266,267,267,268,268,269,269,270,270,271,271,272,272, \
- 273,273,274,274,320,320,276,276,277,277,278,278,279,279,280,280, \
- 281,281,282,282,283,283,284,284,285,285,286,286,287,287,288,288, \
- 289,289,290,290,291,291,292,292,293,293,294,294,295,295,296,296, \
- 297,297,298,298,299,299,300,300,301,301,302,302,303,303,304,304, \
- 305,305,306,306,307,307,308,308,309,309,310,310,311,311,312,342, \
- 333,313,314,314,315,315,316,316,317,317,318,318,319,319,320,320, \
- 321,321,322,322,323,323,324,324,325,325,326,326,327,327,328,328, \
- 329,329,330,330,331,331,332,332,333,333,334,334,335,335,336,336, \
- 337,337,338,338,339,339,340,340,341,341,342,342,343,343,344,344, \
- 345,345,346,401,402,402,348,414,349,349,350,350,351,351,352,418, \
- 413,425,426,354,427,427,356,428,429,429,430,358,359,359,360,420, \
- 361,361,362,422,423,363,364,436,437,401,402,366,367,415,416,416, \
- 417,417,418,454,371,371,456,372,373,373,374,374,375,375,376,376, \
- 377,377,378,378,379,379,380,380,381,381,382,382,383,383,384,384, \
- 385,385,386,386,387,465,388,440,441,441,390,390,391,391,392,392, \
- 393,393,394,446,447,395,396,396,397,397,398,437,438,464,465,400, \
- 401,401,402,402,468,403,404,404,405,444,445,497,407,472,473,408, \
- 409,409,501,410,411,411,451,438,465,465,414,492,493,415,416,416, \
- 417,417,418,418,419,419,420,420,421,421,422,422,423,423,424,424, \
- 425,425,426,426,427,427,428,428,429,429,486,430,431,431,432,432, \
- 433,433,434,434,435,435,436,436,437,437,438,438,439,439,440,440, \
- 441,441,442,498,499,443,444,528,445,445,446,446,447,447,448,448, \
- 449,449,450,510,526,451,452,452,453,453,454,454,455,455,456,546, \
- 487,457,458,458,459,459,460,460,461,461,462,462,463,463,464,464, \
- 465,540,541,466,467,467,468,513,514,499,560,470,471,471,472,472, \
- 473,473,474,474,475,535,536,476,477,582,553,478,479,599,600,585, \
- 481,481,482,578,579,483,484,484,485,485,486,486,487,487,488,488, \
- 489,489,490,490,491,603,620,492,493,589,590,494,495,495,496,496, \
- 497,593,594,498,499,499,500,500,501,501,502,502,503,503,504,504, \
- 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,608 \
-
-#define MPFR_MUL_THRESHOLD 6 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 595 /* bits */
-#define MPFR_EXP_THRESHOLD 10606 /* bits */
-
-/*****************************
- * Threshold for Athlon *
- *****************************/
-#elif defined (__tune_athlon__)
-
-#define MPFR_MULHIGH_TAB \
- -1,0,-1,0,-1,0,-1,-1,0,-1,-1,0,0,0,0,10, \
- 0,12,13,14,15,16,0,0,0,0,0,19,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32, \
- 30,32,30,34,32,32,36,34,36,36,38,38,42,38,38,42, \
- 40,38,42,46,42,42,42,44,44,44,44,44,48,50,46,46, \
- 60,50,50,48,50,56,56,56,56,56,56,56,60,60,64,60, \
- 64,64,60,60,60,72,64,64,68,72,76,72,76,72,72,76, \
- 75,76,76,72,76,72,75,72,72,72,84,76,84,75,72,76, \
- 84,80,76,84,84,76,76,76,76,88,84,88,80,84,83,96, \
- 84,96,92,84,88,91,92,88,92,90,96,96,92,91,92,96, \
- 96,120,95,100,112,120,100,119,112,120,120,112,119,112,119,119, \
- 120,118,119,119,119,118,119,120,128,127,120,128,128,120,120,127, \
- 120,128,128,128,128,120,128,127,120,128,128,127,128,127,144,136, \
- 128,144,152,152,152,136,144,144,144,136,151,152,144,152,128,151, \
- 144,152,144,144,151,144,150,150,136,151,152,143,143,143,142,168, \
- 144,144,168,151,168,144,152,151,152,152,160,152,151,152,160,151, \
- 152,151,152,167,152,152,166,152,167,160,168,204,160,160,168,168, \
- 204,176,202,167,168,166,167,168,204,184,202,204,204,204,204,192, \
- 184,192,204,202,202,216,204,227,202,204,216,203,203,204,203,227, \
- 202,204,202,202,202,203,202,215,204,202,203,202,202,215,228,214, \
- 226,214,228,214,228,215,228,216,226,214,228,225,226,228,226,226, \
- 226,215,216,216,226,225,226,227,216,227,240,216,252,252,226,227, \
- 228,239,227,250,227,226,227,227,252,238,228,239,252,227,228,228, \
- 252,226,246,228,227,227,252,247,250,263,262,250,252,250,250,252, \
- 250,288,288,250,250,250,251,264,264,271,287,276,250,288,252,286, \
- 251,287,288,251,276,274,288,262,263,263,282,252,288,252,276,284, \
- 287,274,264,274,288,275,275,274,274,288,276,264,273,286,274,276, \
- 300,287,288,286,286,276,288,285,275,300,275,273,275,299,300,299, \
- 279,336,336,286,287,284,360,359,336,335,288,360,333,359,334,335, \
- 335,287,359,335,336,336,359,333,334,359,360,288,360,332,335,336, \
- 335,336,336,333,336,335,336,359,334,334,335,360,336,334,356,357, \
- 335,336,358,359,359,336,335,336,334,355,384,356,354,384,334,357, \
- 336,359,384,359,360,356,384,382,336,383,384,384,354,355,383,384, \
- 382,359,384,382,382,383,383,359,381,382,383,356,384,382,381,384, \
- 357,384,358,357,358,358,380,383,382,382,383,360,360,381,382,360, \
- 377,360,378,360,360,381,382,383,381,380,383,383,360,382,383,380, \
- 383,383,384,381,379,360,381,381,382,431,380,380,378,380,384,381, \
- 382,382,384,407,384,382,379,384,430,431,383,384,408,384,456,431, \
- 431,455,431,428,384,454,455,403,432,383,407,430,430,456,408,427, \
- 455,455,456,455,432,431,431,429,455,432,432,424,430,427,427,429, \
- 452,454,426,455,456,431,430,454,452,454,431,456,431,428,455,430, \
- 454,430,432,455,454,442,443,432,443,431,451,452,456,430,451,456, \
- 444,455,449,456,432,454,449,454,502,432,448,504,450,503,503,453, \
- 454,502,446,452,453,454,455,499,504,453,456,504,454,453,503,455, \
- 456,456,500,478,502,454,456,499,478,454,480,499,501,496,502,455, \
- 499,502,503,456,478,500,501,500,479,503,504,451,452,479,454,455, \
- 502,503,504,504,454,499,503,501,454,503,456,503,504,501,455,502, \
- 503,503,502,504,610,503,504,574,480,551,528,504,609,576,480,503, \
- 496,502,503,552,551,552,551,503,504,503,610,608,609,610,611,608, \
- 608,551,648,611,612,550,576,572,608,611,610,606,608,611,610,574, \
- 575,576,606,607,606,606,608,606,606,575,576,604,604,604,608,609, \
- 606,606,606,608,604,604,611,604,604,576,610,606,610,606,604,610, \
- 606,612,604,608,610,609,604,608,606,647,612,610,604,606,648,610, \
- 610,606,646,608,604,647,606,647,606,609,610,647,648,609,641,611, \
- 643,611,643,648,643,640,646,611,644,644,645,611,642,646,611,612, \
- 640,647,610,611,610,611,606,647,648,647,648,644,682,642,682,683, \
- 610,611,680,678,642,681,682,647,682,612,682,648,611,665,680,683, \
- 609,646,666,676,680,646,679,647,646,646,648,679,684,611,612,643, \
- 684,645,646,647,683,647,608,645,682,647,682,646,610,648,682,610, \
- 684,612,612,683,684,647,647,646,680,646,646,745,648,646,644,647, \
- 648,647,678,646,647,683,642,682,682,684,646,645,642,647,646,677, \
- 646,647,683,678,680,646,646,643,681,647,683,645,666,755,756,645, \
- 643,647,646,647,647,648,674,755,756,674,647,643,680,682,684,680, \
- 680,682,682,675,682,677,666,683,680,682,682,684,680,681,674,674 \
-
-#define MPFR_MUL_THRESHOLD 19
-#define MPFR_EXP_2_THRESHOLD 411 /* bits */
-#define MPFR_EXP_THRESHOLD 45200 /* bits */
-
-/**************************************
- * Threshold for PentiumPro/Pentium M *
- **************************************/
#elif defined (__tune_pentiumpro__) || defined (__tune_i686__) || defined (__i386) /* we consider all other 386's here */
+#include "x86/mparam.h"
-/* Generated by MPFR's tuneup.c, 2009-02-09, gcc 4.3 */
-/* toto.loria.fr (Pentium M) with gmp-4.2.4 */
-
-#define MPFR_MULHIGH_TAB \
- -1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30, \
- 30,30,28,30,30,30,30,30,30,34,34,34,32,32,44,38, \
- 43,39,44,44,41,41,44,44,47,43,48,44,47,51,48,48, \
- 47,55,48,48,55,51,56,52,51,55,60,56,55,55,60,60, \
- 55,63,60,60,63,59,60,60,63,63,60,60,59,67,68,60, \
- 63,67,60,68,75,81,68,68,81,81,78,86,81,81,84,80, \
- 80,80,81,81,85,85,86,86,84,84,85,91,86,86,87,87, \
- 85,91,92,92,93,99,91,97,98,86,93,93,97,91,92,92, \
- 90,99,91,97,98,95,96,93,97,115,128,116,117,111,115,109, \
- 128,128,129,129,121,115,128,116,126,129,127,121,140,128,129,129, \
- 141,129,126,126,127,127,128,128,129,129,138,138,139,127,128,128, \
- 129,153,134,150,139,139,140,140,141,141,134,162,139,147,140,144, \
- 141,141,150,174,175,151,140,164,165,165,150,154,155,151,152,152, \
- 153,165,150,162,163,151,152,176,177,165,158,162,171,163,164,164, \
- 164,164,165,165,176,166,177,172,168,163,189,189,165,175,176,176, \
- 177,177,183,188,179,189,180,180,186,176,177,177,183,188,189,189, \
- 185,180,186,201,177,187,183,188,189,189,200,200,201,191,192,177, \
- 188,198,189,204,195,200,201,201,212,192,188,188,189,194,200,200, \
- 221,239,240,240,199,235,236,230,237,231,220,208,239,239,234,240, \
- 229,247,236,230,231,231,238,238,239,239,240,240,247,265,248,236, \
- 237,237,256,238,239,257,258,240,253,253,254,266,249,255,256,274, \
- 275,275,276,276,247,253,254,272,267,273,256,256,257,257,276,258, \
- 256,256,257,257,258,258,266,294,288,267,275,275,276,276,291,270, \
- 257,271,293,272,294,294,260,267,261,275,276,276,291,270,271,285, \
- 293,293,294,273,288,267,275,275,276,276,277,284,285,285,293,293, \
- 273,294,274,274,275,289,276,290,291,277,292,285,293,293,294,294, \
- 297,297,330,290,267,307,276,276,309,293,294,310,311,319,328,328, \
- 329,289,330,290,283,283,348,292,293,381,294,382,327,343,384,384, \
- 289,289,290,330,291,339,308,308,381,341,342,366,383,383,384,384, \
- 345,345,378,378,379,323,324,380,381,381,382,366,375,383,384,376, \
- 383,365,384,384,376,340,341,341,342,378,379,379,380,371,417,381, \
- 382,382,383,383,384,384,376,376,377,377,378,378,379,379,380,380, \
- 381,381,382,382,383,419,420,384,376,412,413,377,378,414,415,388, \
- 416,416,417,381,382,382,419,419,384,384,412,385,386,395,396,378, \
- 379,419,380,420,381,381,382,382,383,383,384,384,395,405,456,406, \
- 417,417,418,418,419,419,420,420,381,491,492,492,383,413,414,384, \
- 415,455,456,426,427,417,488,418,419,419,420,420,441,491,492,492, \
- 383,413,434,454,455,415,416,416,417,417,418,418,459,429,490,420, \
- 486,420,487,454,422,499,423,489,490,490,491,491,492,492,416,438, \
- 450,527,528,528,419,485,453,420,432,465,455,455,456,456,479,479, \
- 480,491,492,459,493,526,527,494,495,484,485,452,453,453,487,454, \
- 455,499,489,456,490,490,480,491,492,481,482,526,527,527,528,528, \
- 521,485,486,474,499,487,524,524,489,489,490,490,491,491,492,492, \
- 505,505,506,482,483,459,520,472,497,485,498,498,499,535,488,524, \
- 489,525,490,490,491,527,528,492,529,493,494,506,495,483,484,484, \
- 485,521,522,486,487,487,488,488,489,489,490,562,563,491,492,492, \
- 528,528,490,555,556,491,492,492,506,519,520,507,521,521,522,522, \
- 523,523,524,524,525,564,552,500,501,527,528,528,529,542,556,530, \
- 531,531,558,532,533,520,534,521,548,561,562,562,563,563,564,564, \
- 526,526,527,527,528,528,542,555,556,530,531,557,558,558,598,559, \
- 585,557,558,558,559,531,560,560,561,561,562,548,535,549,564,564, \
- 579,537,580,552,567,567,582,568,569,597,556,584,585,571,600,572, \
- 573,559,588,588,533,561,590,604,605,563,564,564,565,607,608,580, \
- 567,609,582,582,597,597,528,598,599,571,558,600,559,559,560,602, \
- 599,599,600,600,556,601,602,617,633,603,604,634,635,560,561,636, \
- 562,562,563,563,564,564,580,715,716,596,717,717,553,568,569,569, \
- 570,600,631,601,602,662,663,663,604,604,695,710,711,711,712,712, \
- 713,713,714,714,715,715,596,656,657,657,583,598,599,599,600,600, \
- 689,769,770,594,691,707,708,596,597,693,710,662,695,711,712,712, \
- 713,697,698,714,715,699,716,716,717,717,750,702,719,751,720,704, \
- 705,705,722,738,755,771,708,708,709,741,742,710,711,743,744,712, \
- 713,761,714,714,715,715,716,716,717,717,766,750,751,751,736,736 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,8,8, \
- 9,9,10,12,11,11,12,12,13,13,14,14,15,15,16,16, \
- 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
- 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
- 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,42, \
- 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
- 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
- 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
- 65,65,66,66,67,67,68,68,69,84,70,70,74,71,72,72, \
- 73,73,74,74,78,75,76,76,77,77,84,78,79,79,80,80, \
- 81,84,88,82,83,83,84,84,85,85,92,92,87,87,88,88, \
- 89,89,96,90,91,91,92,92,93,93,100,94,95,95,96,96, \
- 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
- 105,105,106,106,107,123,108,108,129,129,126,126,135,135,112,128, \
- 129,129,134,134,123,135,128,140,141,129,134,134,135,135,140,132, \
- 133,141,122,122,123,135,136,140,153,141,126,126,127,159,128,128, \
- 129,129,135,135,141,131,132,132,133,133,134,134,135,135,136,136, \
- 137,137,138,138,159,139,140,140,141,141,142,142,143,143,144,144, \
- 145,165,146,146,147,147,148,148,149,149,150,150,151,171,152,152, \
- 153,153,154,159,155,155,156,156,157,157,158,158,159,159,170,170, \
- 161,161,162,162,163,163,188,164,165,165,166,166,167,167,168,186, \
- 187,169,170,170,171,171,172,172,173,173,174,174,175,175,176,176, \
- 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
- 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
- 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
- 201,201,202,202,203,203,204,204,205,205,206,206,207,207,208,208, \
- 209,209,210,210,211,211,212,212,213,213,214,214,215,215,216,216, \
- 217,217,218,218,219,261,248,220,221,249,222,222,223,223,224,224, \
- 225,225,226,226,227,227,228,228,229,229,230,230,231,231,248,232, \
- 233,233,234,234,235,235,236,236,261,285,270,238,239,239,240,248, \
- 249,249,242,242,243,251,260,244,261,245,246,246,247,247,248,248, \
- 249,249,250,250,251,251,252,252,285,253,254,254,255,255,256,256, \
- 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
- 265,265,266,284,285,267,268,268,269,296,297,270,271,271,272,272, \
- 273,273,274,274,275,275,276,276,277,277,278,278,279,279,280,280, \
- 281,281,282,282,283,283,284,284,285,321,295,286,287,287,288,288, \
- 289,289,320,320,321,321,292,292,293,313,314,294,295,295,296,296, \
- 297,297,298,298,309,299,300,300,301,301,302,332,333,333,304,384, \
- 375,305,306,306,307,307,308,308,309,309,320,310,311,311,312,312, \
- 313,363,394,384,375,375,316,376,357,317,348,348,369,319,320,320, \
- 321,321,366,366,378,323,324,324,402,369,359,381,382,382,383,383, \
- 373,384,396,374,375,375,387,365,366,399,389,400,401,390,391,402, \
- 381,381,382,404,405,405,384,373,374,374,375,386,387,387,388,388, \
- 378,378,390,401,391,391,403,414,404,382,383,383,395,395,396,418, \
- 401,401,378,402,403,427,428,404,405,417,382,418,419,419,420,384, \
- 409,421,422,410,423,423,436,436,437,401,402,366,427,463,464,368, \
- 369,369,370,370,455,371,372,456,373,433,434,434,435,471,472,472, \
- 473,377,474,378,379,451,380,380,381,381,382,382,383,383,384,384, \
- 398,398,399,438,465,387,427,440,441,389,455,390,391,391,392,392, \
- 393,393,394,420,395,395,396,396,397,397,398,398,399,399,400,400, \
- 401,401,402,402,455,403,404,508,405,405,406,406,407,433,434,447, \
- 474,435,436,410,411,411,412,412,413,413,414,492,415,454,455,416, \
- 417,417,418,418,419,419,420,420,421,421,422,464,465,423,424,424, \
- 425,425,426,426,427,455,456,484,485,429,430,472,473,431,432,432, \
- 433,461,434,434,435,477,436,436,437,437,438,438,509,453,468,510, \
- 441,441,512,456,471,527,528,472,543,445,544,446,447,447,448,504, \
- 449,509,510,450,451,451,452,527,453,483,514,544,545,455,456,546, \
- 502,517,518,518,504,519,535,460,461,551,552,507,508,463,464,509, \
- 510,525,526,526,527,542,543,543,544,544,545,515,516,546,472,472, \
- 473,563,474,474,475,535,551,476,477,582,478,553,479,479,480,480, \
- 481,545,546,530,531,547,516,564,597,549,550,486,487,551,488,536, \
- 537,489,490,490,491,491,492,492,493,493,494,494,495,495,496,496, \
- 497,497,578,546,499,499,500,500,501,501,502,598,599,503,504,504, \
- 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
-
-#define MPFR_MUL_THRESHOLD 10 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 32 /* bits */
-#define MPFR_EXP_THRESHOLD 6268 /* bits */
-
-/*****************************
- * Threshold for IA64 *
- *****************************/
#elif defined (__ia64) || defined (__itanium__) || defined (__tune_ia64__)
+/* Threshold for IA64 */
+#include "ia64/mparam.h"
-/* Generated by MPFR's tuneup.c, 2009-02-10, gcc 4.3 */
-/* pipol13.inrialpes.fr (McKinley) with gmp-4.2.4 */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,44,44,47,47,44,44, \
- 45,51,48,48,49,49,48,48,55,51,56,52,51,51,52,60, \
- 59,59,56,56,63,63,64,64,63,63,64,60,67,67,68,68, \
- 67,67,64,64,71,71,72,72,71,71,72,90,75,73,76,76, \
- 89,89,84,90,82,88,92,89,90,90,88,88,89,89,90,90, \
- 88,88,89,98,90,99,97,94,98,95,96,96,94,103,104,104, \
- 108,105,109,106,110,110,108,108,109,103,104,104,111,111,109,118, \
- 116,116,120,120,121,124,128,116,117,123,124,121,125,125,126,141, \
- 141,129,134,126,127,123,140,132,137,141,126,150,139,143,132,140, \
- 141,141,146,146,135,139,140,140,141,141,146,138,139,147,152,140, \
- 141,141,162,162,143,139,140,156,165,153,158,154,147,147,152,152, \
- 153,153,150,162,155,155,156,152,153,153,174,170,171,171,156,156, \
- 159,164,165,165,176,166,167,167,168,168,164,179,165,165,166,176, \
- 177,177,188,188,189,174,180,180,176,171,177,192,173,183,189,189, \
- 180,195,186,186,182,177,183,188,189,184,190,190,201,191,192,192, \
- 188,203,204,199,200,200,201,201,192,207,208,213,204,189,210,210, \
- 191,203,204,216,223,211,212,212,213,225,196,202,203,215,216,216, \
- 217,211,212,236,237,267,208,220,233,263,264,228,259,223,260,260, \
- 261,267,220,262,257,275,276,258,259,259,266,260,261,267,262,268, \
- 263,263,264,270,271,283,272,266,267,267,268,262,269,263,264,276, \
- 270,284,278,264,272,293,294,273,274,274,261,261,262,269,270,263, \
- 264,264,265,265,266,287,267,267,303,275,269,262,312,270,285,285, \
- 279,279,266,301,267,274,303,275,276,276,277,284,285,292,272,272, \
- 294,294,330,288,289,303,276,290,291,284,285,285,286,279,287,287, \
- 281,313,314,314,315,291,348,308,301,285,294,294,303,303,296,304, \
- 305,305,306,330,307,307,308,292,309,309,294,326,311,311,312,328, \
- 321,321,306,322,347,323,308,308,333,317,326,326,343,311,328,384, \
- 329,337,338,330,315,323,348,348,357,341,342,374,343,343,312,368, \
- 365,347,339,366,367,340,332,368,360,378,352,370,353,380,336,381, \
- 346,328,365,383,348,366,358,358,350,359,387,369,361,379,344,407, \
- 408,354,355,346,383,383,420,420,367,421,377,377,378,378,406,415, \
- 398,416,372,372,418,418,419,419,411,384,385,412,413,395,414,414, \
- 419,419,410,420,381,381,372,422,383,393,414,384,415,415,416,416, \
- 427,417,408,418,419,419,420,420,391,391,442,392,453,413,414,454, \
- 435,445,446,456,407,427,448,438,449,409,410,420,411,431,432,422, \
- 423,453,434,414,415,425,436,446,427,417,418,468,489,419,420,420, \
- 420,486,410,454,422,444,445,456,446,446,447,458,459,492,482,438, \
- 439,417,418,418,452,452,453,420,432,454,444,444,445,445,479,446, \
- 458,447,448,459,460,427,450,494,495,528,441,452,453,453,454,487, \
- 488,488,456,500,501,490,491,480,492,492,526,449,450,483,484,484, \
- 461,497,474,474,463,499,488,488,489,453,490,490,527,491,492,492, \
- 529,505,506,482,471,495,508,484,485,497,498,498,523,487,488,524, \
- 525,465,490,490,515,515,516,492,493,481,482,494,495,483,544,520, \
- 509,485,546,486,535,499,512,488,525,489,490,526,527,527,528,492, \
- 567,528,490,503,504,491,531,492,571,506,507,572,573,573,522,561, \
- 562,510,524,524,538,525,500,565,527,514,515,528,516,555,569,556, \
- 557,518,519,571,533,533,560,560,522,561,536,536,537,537,564,525, \
- 526,552,527,566,567,580,607,542,543,543,596,596,545,558,559,559, \
- 599,599,600,600,531,531,532,588,631,603,548,576,577,563,536,564, \
- 565,593,594,566,567,567,582,582,555,555,598,556,557,571,572,558, \
- 559,559,560,560,561,603,618,604,563,633,634,564,593,621,594,636, \
- 567,567,568,554,555,597,598,598,599,571,572,600,629,629,588,630, \
- 599,644,630,570,571,586,587,632,633,618,634,634,635,605,621,606, \
- 607,592,593,593,594,594,595,595,596,626,627,627,628,643,569,644, \
- 600,600,601,586,587,632,633,618,634,634,635,605,606,636,637,637, \
- 638,593,594,669,670,625,641,596,672,582,643,598,644,644,600,585, \
- 673,657,674,674,643,643,644,596,597,597,598,710,663,599,600,600, \
- 633,681,698,602,603,619,620,796,797,797,798,798,623,671,672,640, \
- 801,785,786,786,787,819,788,628,629,661,662,790,791,807,824,696, \
- 681,777,714,698,699,795,796,796,781,717,798,798,815,735,704,816 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8, \
- 9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16, \
- 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
- 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
- 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40, \
- 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
- 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
- 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
- 65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72, \
- 73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80, \
- 81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88, \
- 89,89,90,90,91,91,92,92,93,93,94,94,95,95,96,96, \
- 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
- 105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112, \
- 113,113,114,114,115,115,116,116,137,117,118,118,119,119,120,120, \
- 121,141,138,138,147,123,124,124,153,141,146,138,143,147,128,152, \
- 144,129,130,130,131,151,152,132,153,138,144,159,165,135,136,136, \
- 137,137,138,138,139,139,140,140,141,141,142,142,143,143,144,144, \
- 145,145,146,146,147,147,148,148,149,149,150,150,151,151,152,152, \
- 153,153,154,154,155,155,156,156,157,177,183,158,159,159,160,160, \
- 161,161,162,162,163,163,164,164,165,165,166,166,167,167,168,168, \
- 169,169,170,170,171,171,172,172,173,173,174,174,175,175,176,176, \
- 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
- 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
- 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
- 201,201,202,202,203,203,204,204,205,205,206,206,207,207,208,208, \
- 209,209,210,210,211,211,212,212,213,213,214,214,215,215,216,216, \
- 217,217,218,218,219,219,220,220,221,221,222,222,223,223,224,224, \
- 225,225,226,226,227,227,228,228,229,229,230,230,231,231,232,232, \
- 233,233,234,234,235,235,236,236,237,237,238,238,239,239,240,240, \
- 241,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248, \
- 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
- 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
- 265,265,266,266,267,267,268,268,269,269,270,270,271,271,272,272, \
- 273,273,274,274,275,275,276,276,277,277,278,278,279,279,280,280, \
- 281,281,282,282,283,283,284,284,285,285,286,286,287,287,288,288, \
- 289,289,290,290,291,291,292,292,293,333,294,294,295,295,296,296, \
- 297,297,298,308,309,299,300,300,301,301,302,302,303,303,304,304, \
- 305,305,306,306,307,307,308,308,309,309,310,310,311,311,312,312, \
- 313,353,354,314,315,315,316,316,317,317,318,318,319,319,320,320, \
- 321,409,355,322,323,323,324,324,325,325,326,326,415,393,328,328, \
- 329,329,407,330,331,342,354,420,432,410,334,411,335,335,336,336, \
- 414,425,338,415,416,372,406,340,341,341,342,419,409,376,377,410, \
- 411,411,379,412,424,347,348,348,437,382,416,394,395,351,429,418, \
- 437,353,354,354,355,415,404,428,429,441,406,358,443,359,360,420, \
- 409,421,446,362,411,411,364,424,413,413,366,366,367,415,416,452, \
- 441,369,430,370,419,455,456,456,469,373,374,374,375,375,376,376, \
- 377,377,378,378,379,379,380,464,381,381,466,454,455,455,456,456, \
- 385,411,464,386,465,387,388,388,389,389,455,390,391,391,392,483, \
- 393,393,394,472,473,421,422,474,423,410,411,437,438,490,452,426, \
- 427,427,428,428,429,429,456,417,418,444,432,406,407,407,408,408, \
- 409,409,410,410,411,411,464,438,413,413,414,414,415,415,416,416, \
- 417,417,418,418,419,531,420,420,421,463,492,422,423,423,424,424, \
- 425,425,426,426,427,427,428,428,429,429,430,430,431,487,488,474, \
- 489,433,434,434,435,435,436,436,437,437,438,438,439,509,510,440, \
- 441,441,442,498,499,527,528,444,445,515,516,502,503,517,504,490, \
- 449,509,510,450,451,451,452,452,453,453,454,454,455,455,456,456, \
- 457,457,458,503,504,459,460,460,461,461,462,462,463,463,464,464, \
- 465,465,466,466,467,467,468,468,469,469,470,470,471,471,472,472, \
- 473,473,474,474,565,520,536,476,477,537,478,523,479,479,480,540, \
- 481,481,482,482,483,483,532,484,485,485,486,486,487,519,552,552, \
- 569,489,490,554,491,491,492,492,493,573,494,494,495,495,496,496, \
- 497,497,498,498,499,499,500,500,533,501,550,566,567,503,504,504, \
- 505,505,506,506,507,507,508,508,509,509,510,510,511,607,608,512 \
-
-#define MPFR_MUL_THRESHOLD 6 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 455 /* bits */
-#define MPFR_EXP_THRESHOLD 10001 /* bits */
+#elif defined (__arm__) /* Threshold for ARM */
+#include "arm/mparam.h"
-/*********************
- * Threshold for ARM *
- *********************/
-#elif defined (__arm__)
+#elif defined (__PPC64__) /* Threshold for PowerPC */
+#include "powerpc64/mparam.h"
-/* Generated by MPFR's tuneup.c, 2009-02-10, gcc 4.3 */
-/* gcc50.fsffrance.org (armv5tel-unknown-linux-gnueabi) with gmp-4.2.4 */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,80,0,0,72,72, \
- 80,77,72,72,76,76,80,77,84,84,76,76,77,77,84,84, \
- 76,76,80,80,84,84,76,76,80,80,84,84,79,79,80,80, \
- 81,81,82,82,83,83,84,84,103,103,104,104,96,111,103,112, \
- 104,104,111,111,112,112,128,128,120,120,127,127,119,119,111,111, \
- 113,113,114,126,127,127,128,128,129,129,118,134,123,135,128,136, \
- 137,137,134,134,127,127,128,128,141,137,142,142,143,143,144,144, \
- 145,145,142,142,143,143,144,144,145,145,150,150,151,151,152,144, \
- 149,149,158,150,159,159,160,160,161,153,158,154,159,159,160,160, \
- 159,159,160,160,166,166,152,167,168,168,159,159,160,160,161,161, \
- 167,167,163,163,164,159,150,160,161,166,167,162,168,158,159,159, \
- 160,155,156,156,162,157,158,158,159,159,160,160,166,161,162,167, \
- 168,168,159,159,160,160,206,206,207,167,168,168,224,224,210,205, \
- 167,167,168,168,223,223,224,224,219,225,226,208,221,239,240,240, \
- 223,205,224,224,225,207,208,256,239,209,222,222,253,223,224,224, \
- 225,255,256,256,221,221,222,222,223,223,224,224,255,255,232,256, \
- 233,233,234,234,223,253,254,254,243,249,250,250,239,233,240,288, \
- 256,242,243,271,272,251,252,287,288,288,240,240,241,255,256,256, \
- 257,257,258,272,252,252,253,253,254,254,255,255,256,256,271,257, \
- 272,272,266,273,288,274,268,268,290,269,284,284,271,271,272,272, \
- 280,280,288,281,282,282,290,304,333,298,271,299,307,286,287,287, \
- 305,305,298,306,315,299,300,300,301,309,326,286,287,303,304,288, \
- 289,305,330,330,331,331,332,324,333,333,286,286,287,335,336,336, \
- 353,329,330,330,331,331,332,332,333,357,302,342,359,351,352,328, \
- 353,345,354,330,331,331,332,332,333,357,358,358,359,367,368,368, \
- 329,356,357,330,331,331,332,377,378,378,379,379,380,380,372,381, \
- 355,382,383,356,357,384,367,403,404,404,405,405,379,352,353,362, \
- 363,363,373,382,383,374,402,384,403,403,404,404,405,378,379,352, \
- 353,362,381,381,427,427,428,428,429,429,367,376,377,431,405,432, \
- 429,379,380,380,381,381,402,402,403,453,404,384,405,375,406,406, \
- 407,377,378,378,379,379,380,380,381,381,432,432,383,383,384,384, \
- 385,425,426,396,407,477,408,408,419,399,400,380,381,401,402,392, \
- 393,403,404,404,405,405,476,426,427,417,428,428,429,429,430,430, \
- 409,420,421,476,477,477,401,401,402,402,403,403,426,426,427,405, \
- 417,428,429,429,430,430,431,431,432,421,477,422,423,423,424,424, \
- 425,425,426,459,471,449,428,428,429,429,430,452,453,475,465,454, \
- 455,455,456,456,468,468,469,458,470,492,438,471,472,450,473,473, \
- 449,449,450,450,451,451,452,452,453,453,454,478,479,467,468,456, \
- 481,469,470,458,459,471,496,472,473,461,462,462,463,475,476,476, \
- 477,477,478,466,467,467,468,468,469,469,470,482,483,483,484,496, \
- 497,485,486,474,475,475,476,500,501,477,490,490,491,491,492,492, \
- 463,476,477,477,478,478,479,492,480,493,494,481,495,495,483,483, \
- 497,497,498,498,499,473,474,474,475,488,489,463,464,464,465,465, \
- 466,453,467,467,468,494,495,482,483,470,471,497,498,498,499,499, \
- 500,474,475,475,476,463,464,490,491,491,492,492,493,480,481,572, \
- 501,473,474,474,475,475,476,476,477,477,478,478,479,479,620,480, \
- 481,495,496,496,497,595,596,498,499,499,612,486,613,669,614,600, \
- 489,615,616,672,477,477,618,618,619,619,620,620,607,621,664,622, \
- 623,623,624,624,625,611,612,668,669,669,614,614,615,671,672,616, \
- 614,644,645,645,616,616,647,617,618,618,619,664,650,665,666,651, \
- 667,667,668,668,669,654,655,655,656,656,657,657,658,658,659,659, \
- 660,645,646,661,662,617,648,648,619,649,650,665,666,711,712,667, \
- 668,668,714,669,715,715,716,671,672,672,673,658,674,704,690,675, \
- 657,657,658,658,659,691,708,708,693,709,710,710,711,711,712,712, \
- 713,713,714,666,667,667,668,716,765,717,718,718,719,719,720,720, \
- 737,705,690,722,723,755,756,740,725,757,758,710,759,759,712,712, \
- 761,713,714,714,715,715,764,764,765,717,766,766,767,767,768,768 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,12,13,13,14,14,15,15,16,16, \
- 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
- 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
- 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40, \
- 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
- 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
- 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
- 65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72, \
- 73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80, \
- 81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88, \
- 89,89,90,90,91,91,92,92,93,93,94,94,95,95,96,96, \
- 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
- 105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112, \
- 113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120, \
- 121,121,122,122,123,123,124,124,125,125,126,126,127,127,128,128, \
- 129,129,130,130,131,131,132,132,133,133,134,134,135,135,136,136, \
- 137,137,138,138,139,139,140,140,141,141,142,142,143,143,144,144, \
- 145,145,146,146,147,147,148,148,149,149,150,150,151,151,152,152, \
- 168,153,154,154,155,155,156,156,157,177,168,168,174,159,160,160, \
- 161,173,174,168,175,163,164,164,165,183,184,184,167,167,168,168, \
- 169,169,170,170,171,171,172,172,173,173,174,174,175,175,176,176, \
- 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
- 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
- 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
- 201,201,202,202,203,224,204,204,205,205,206,206,207,207,208,208, \
- 209,209,210,210,211,211,212,212,213,213,214,214,215,215,216,216, \
- 217,217,218,218,219,219,220,220,221,221,222,222,223,223,224,224, \
- 225,225,226,226,227,227,228,228,229,229,230,230,231,231,232,232, \
- 233,233,234,234,235,235,236,236,237,237,238,238,239,239,240,240, \
- 241,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248, \
- 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
- 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
- 265,265,266,266,267,267,268,268,269,269,270,270,271,271,272,272, \
- 273,273,274,274,275,302,303,276,304,277,278,296,279,288,316,280, \
- 281,308,309,282,283,319,320,302,303,285,286,313,314,287,288,288, \
- 329,289,320,310,311,321,312,312,313,313,334,324,325,325,326,326, \
- 327,337,328,328,329,329,330,330,331,301,302,332,333,333,334,304, \
- 305,305,306,306,357,337,338,328,349,349,350,350,351,351,352,352, \
- 343,343,344,354,355,365,366,366,367,387,388,388,319,349,370,370, \
- 365,354,355,355,356,378,379,368,369,380,381,392,393,393,328,328, \
- 329,373,374,396,386,386,387,387,388,399,378,400,412,423,336,424, \
- 403,403,393,371,372,405,406,406,396,407,408,397,398,409,410,432, \
- 345,422,423,401,402,413,414,392,393,415,416,427,428,417,429,440, \
- 437,401,402,438,439,451,452,452,453,417,418,430,431,431,432,432, \
- 433,421,422,446,447,459,460,424,425,365,366,366,367,451,452,368, \
- 369,429,430,454,455,443,444,456,457,445,446,482,483,375,376,376, \
- 377,437,438,450,451,475,476,488,501,465,478,430,431,383,384,384, \
- 385,385,386,503,504,491,440,388,389,389,390,507,391,391,392,392, \
- 393,393,394,394,395,434,396,487,449,449,450,398,399,399,400,400, \
- 401,401,402,402,403,403,404,404,405,405,445,458,459,446,460,408, \
- 461,409,410,410,411,411,412,412,413,413,414,492,415,415,416,416, \
- 417,417,418,418,419,489,420,420,421,421,422,422,423,423,424,480, \
- 425,425,426,468,497,427,428,428,429,429,430,430,431,431,432,432, \
- 433,433,434,434,435,435,436,436,437,437,438,438,439,439,440,440, \
- 441,441,442,442,443,443,444,444,445,445,446,446,447,447,448,448, \
- 449,449,450,450,451,451,452,452,453,453,454,454,455,455,456,456, \
- 457,457,458,458,459,459,460,520,521,461,462,462,463,463,464,464, \
- 465,465,466,511,512,467,468,468,469,469,470,470,471,471,472,472, \
- 473,473,474,474,475,535,536,551,477,477,478,478,479,479,480,480, \
- 481,481,482,482,483,483,484,484,485,485,486,486,487,487,488,488, \
- 489,489,490,490,491,491,492,492,493,493,494,494,495,495,496,496, \
- 497,497,498,498,499,499,500,500,501,501,502,502,503,503,504,504, \
- 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
-
-#define MPFR_MUL_THRESHOLD 7 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 407 /* bits */
-#define MPFR_EXP_THRESHOLD 4030 /* bits */
-
-/*************************
- * Threshold for PowerPC *
- *************************/
-#elif defined (__PPC64__)
-
-/* Generated by MPFR's tuneup.c, 2009-02-18, gcc 4.1.2 */
-/* gcc40.fsffrance.org (powerpc64-unknown-linux-gnu) with gmp-4.2.4 */
-
-#define MPFR_MULHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
- 26,28,26,27,28,32,32,32,35,36,35,35,35,35,36,40, \
- 39,39,44,40,39,39,40,40,43,43,44,44,43,43,44,48, \
- 51,47,48,48,51,47,56,52,51,51,52,52,59,57,60,56, \
- 57,63,56,64,63,63,72,64,71,71,72,72,71,69,72,72, \
- 71,71,72,80,77,79,72,80,71,79,72,80,87,87,88,80, \
- 80,80,87,87,79,79,80,80,84,105,88,82,92,104,93,87, \
- 88,88,104,104,105,105,103,88,104,104,105,102,103,103,101,104, \
- 105,105,103,100,101,104,105,105,112,103,104,104,105,111,112,109, \
- 116,116,117,117,127,124,116,116,117,117,124,115,122,116,117,117, \
- 117,125,122,122,123,123,128,128,129,129,126,138,127,131,132,128, \
- 129,129,130,134,147,147,152,140,141,141,138,146,139,139,140,140, \
- 141,141,146,146,147,147,144,144,153,141,158,146,147,163,164,152, \
- 153,161,150,162,163,159,164,160,165,165,170,170,171,175,152,164, \
- 174,164,175,180,156,171,172,177,188,158,159,189,165,165,171,211, \
- 177,187,188,213,174,189,210,180,176,201,207,177,213,213,189,204, \
- 205,205,206,211,212,207,188,213,189,189,210,210,211,206,212,212, \
- 208,213,189,209,210,205,211,206,212,212,213,208,209,209,235,215, \
- 209,209,210,216,211,211,212,212,213,213,220,214,209,227,216,216, \
- 211,211,212,236,213,237,232,232,239,239,240,234,235,235,236,230, \
- 237,237,232,232,233,233,234,234,235,235,236,236,237,237,238,238, \
- 239,257,240,240,235,235,236,260,261,237,268,256,275,275,276,264, \
- 235,249,257,264,237,237,252,259,309,260,261,254,311,311,312,312, \
- 264,264,272,293,259,259,260,260,261,261,311,311,312,305,285,285, \
- 293,272,308,301,309,309,261,310,276,276,305,312,299,348,307,300, \
- 294,315,302,309,310,310,311,311,305,305,306,306,321,300,343,301, \
- 313,321,330,306,315,347,308,332,341,357,342,310,343,343,312,312, \
- 337,305,306,306,347,347,348,348,325,317,326,326,311,343,312,312, \
- 321,321,346,346,339,347,348,348,357,357,342,366,335,343,384,384, \
- 377,321,338,338,347,339,348,380,357,381,382,350,351,375,376,376, \
- 347,347,348,348,340,340,341,341,342,342,343,343,344,344,345,381, \
- 382,346,347,347,348,348,349,376,350,359,378,351,352,415,416,389, \
- 345,345,346,346,347,383,384,384,376,412,377,377,378,378,379,379, \
- 380,380,381,381,373,382,383,383,384,384,403,376,395,377,378,396, \
- 419,419,380,400,381,381,382,382,383,383,404,374,375,375,376,376, \
- 377,377,378,378,419,389,420,400,401,381,382,382,383,423,454,384, \
- 405,415,416,456,387,427,398,418,419,399,420,420,401,441,402,422, \
- 423,413,414,454,415,415,416,416,417,407,418,398,419,419,420,420, \
- 420,420,443,454,444,455,456,456,457,435,447,436,437,415,438,416, \
- 417,450,451,418,419,463,442,420,432,454,488,444,489,445,446,446, \
- 458,458,459,459,427,438,461,439,451,440,419,452,486,453,454,454, \
- 455,455,445,445,446,490,491,447,448,448,449,482,461,450,451,484, \
- 461,461,474,450,451,487,464,488,489,489,466,478,479,491,492,456, \
- 481,481,482,494,507,519,520,460,461,497,486,474,487,535,536,488, \
- 513,525,454,526,455,527,528,528,469,505,482,494,519,519,496,508, \
- 509,521,486,546,523,523,512,488,489,513,514,490,563,527,528,492, \
- 515,502,555,542,491,556,557,492,558,519,520,559,495,534,561,535, \
- 562,510,511,563,564,564,630,552,553,631,632,528,529,633,634,634, \
- 635,635,636,636,520,520,560,534,535,561,627,562,537,550,629,564, \
- 617,526,527,618,619,632,633,633,621,634,609,609,636,636,546,611, \
- 557,627,628,614,573,629,630,630,603,631,562,632,619,619,634,634, \
- 635,635,622,636,567,623,624,596,611,625,626,626,641,627,628,614, \
- 643,643,630,616,617,617,618,618,619,633,634,620,635,621,622,622, \
- 707,609,624,624,625,639,612,612,627,641,642,628,629,643,602,616, \
- 614,629,630,615,616,616,617,707,708,633,634,634,635,620,621,636, \
- 607,622,623,623,624,639,625,670,686,701,702,627,643,643,644,644, \
- 630,705,706,706,707,632,633,633,709,619,620,710,711,636,697,652, \
- 698,638,639,624,625,685,686,626,702,627,703,643,689,629,630,630, \
- 705,705,690,690,691,707,708,708,629,677,630,630,631,631,632,632, \
- 633,697,698,634,635,699,700,684,701,701,702,702,703,639,704,672, \
- 705,641,706,690,707,707,708,708,709,693,710,710,775,695,712,712, \
- 713,777,778,778,763,715,716,780,717,701,702,686,703,703,704,704 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,0,0,0,0,0,0,0,0,6,6,7,7,8,8, \
- 9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16, \
- 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
- 25,25,26,26,27,27,28,28,29,29,32,32,32,32,32,32, \
- 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40, \
- 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
- 51,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
- 57,57,58,58,59,59,64,64,63,67,64,64,63,63,64,64, \
- 65,65,66,66,67,67,68,68,69,69,70,76,71,71,72,72, \
- 73,73,74,80,75,75,76,76,77,77,78,78,79,79,80,80, \
- 81,81,82,82,83,83,84,84,85,85,86,92,102,87,88,88, \
- 89,104,102,105,106,91,92,104,102,105,94,112,104,110,96,105, \
- 105,105,102,114,123,107,108,120,117,117,122,122,123,103,104,120, \
- 105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112, \
- 113,113,114,114,115,115,116,116,117,117,118,118,119,131,128,120, \
- 121,129,122,122,123,135,140,124,125,125,126,126,127,127,128,128, \
- 129,129,130,130,131,131,132,132,133,158,159,134,135,135,136,156, \
- 137,147,138,138,139,139,140,140,141,141,142,142,143,143,144,144, \
- 145,145,146,146,147,147,148,188,189,149,150,150,151,191,187,192, \
- 153,153,189,189,155,155,156,196,187,187,188,188,189,189,190,195, \
- 191,161,162,204,163,187,188,194,189,189,190,190,191,209,192,216, \
- 199,193,194,188,189,189,190,190,191,191,192,192,187,193,194,194, \
- 195,201,202,196,197,197,198,210,199,199,206,212,213,213,184,184, \
- 215,185,216,204,187,187,188,188,189,189,190,220,191,227,228,192, \
- 193,193,194,194,195,237,224,224,225,225,240,198,213,199,200,200, \
- 201,201,202,202,203,224,225,204,205,226,227,206,207,207,208,236, \
- 237,209,210,210,211,260,240,240,248,213,214,214,215,215,216,216, \
- 217,217,218,218,219,219,220,220,221,221,222,222,223,223,224,224, \
- 225,225,226,226,227,227,228,228,229,229,230,230,231,231,264,232, \
- 249,233,234,266,267,235,236,268,237,237,302,238,239,239,240,240, \
- 241,241,242,242,243,243,308,244,245,245,246,246,247,247,248,312, \
- 249,249,250,250,251,251,252,324,285,309,254,254,327,295,272,312, \
- 311,329,312,303,259,259,260,260,261,306,298,307,308,308,309,327, \
- 328,310,311,293,294,285,304,268,269,305,306,315,316,307,308,326, \
- 327,327,319,310,311,311,312,348,277,304,314,323,324,324,334,316, \
- 317,308,309,336,319,328,329,320,312,366,286,286,359,332,333,342, \
- 309,329,320,320,321,341,332,342,363,353,354,344,345,325,326,366, \
- 297,337,338,328,329,339,350,350,351,351,362,352,353,373,374,344, \
- 345,325,326,366,307,337,328,348,339,369,360,360,361,381,382,382, \
- 333,373,314,364,315,315,346,336,337,377,378,368,369,319,320,380, \
- 365,398,366,344,389,345,379,324,402,347,348,392,360,327,328,328, \
- 329,329,330,374,375,375,387,365,366,366,356,389,390,357,380,369, \
- 381,370,371,382,383,339,373,384,396,396,397,342,343,343,344,344, \
- 345,345,346,346,347,347,348,348,393,415,416,350,351,351,407,385, \
- 401,353,354,402,355,391,392,416,417,429,418,418,419,419,420,420, \
- 445,409,362,362,363,363,364,436,365,437,438,366,427,415,416,416, \
- 441,417,418,454,455,431,432,420,373,433,434,434,435,375,436,376, \
- 377,377,378,402,415,379,380,380,381,381,382,382,383,383,384,384, \
- 385,411,425,425,426,387,388,388,389,402,416,429,391,456,470,392, \
- 432,393,394,446,447,395,396,474,397,397,398,398,399,399,400,400, \
- 401,401,402,402,429,429,404,404,405,405,458,406,459,472,473,408, \
- 474,409,410,410,411,411,412,412,413,413,414,414,415,454,455,455, \
- 417,417,418,418,419,419,420,420,421,421,422,422,423,423,494,424, \
- 425,425,426,510,567,427,428,428,429,429,556,430,431,431,432,558, \
- 489,489,490,434,435,435,562,436,437,437,438,438,439,439,440,440, \
- 441,567,568,456,569,569,570,584,585,445,446,558,573,447,448,560, \
- 569,569,570,600,451,571,452,557,558,453,454,454,455,560,456,456, \
- 562,457,458,563,564,564,595,580,581,461,462,582,583,598,599,599, \
- 585,585,571,556,557,557,558,573,574,469,470,470,471,636,472,472, \
- 473,563,564,564,550,580,581,581,582,567,568,598,599,584,585,585, \
- 561,593,594,594,563,483,580,564,581,597,598,630,487,487,488,600, \
- 601,601,602,618,635,571,572,572,557,573,574,558,591,591,608,592, \
- 593,641,498,562,563,579,564,564,565,501,566,550,551,503,600,584, \
- 585,617,618,506,635,603,604,572,573,573,574,622,591,575,576,592 \
-
-#define MPFR_MUL_THRESHOLD 6 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 744 /* bits */
-#define MPFR_EXP_THRESHOLD 11929 /* bits */
-
-/*******************************
- * Threshold for Sparc 64 bits *
- *******************************/
-#elif defined (__sparc_v9__)
-
-/* Generated by MPFR's tuneup.c, 2009-02-20, gcc 4.1.2 */
-/* gcc54.fsffrance.org (sparc64-unknown-linux-gnu) with gmp-4.2.4 */
-
-#define MPFR_MULHIGH_TAB \
- -1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1, \
- 11,13,13,15,13,15,15,16,17,17,17,18,19,19,19,21, \
- 21,19,23,21,23,24,25,25,26,27,26,30,25,27,27,34, \
- 30,25,30,33,34,31,34,34,34,34,34,37,38,37,38,38, \
- 39,39,42,40,43,41,42,42,45,43,50,46,45,45,46,48, \
- 49,49,50,54,49,49,50,60,59,59,60,60,59,59,60,60, \
- 67,67,60,68,61,65,68,66,67,67,68,68,69,75,76,68, \
- 73,75,76,68,69,81,76,76,75,81,84,76,81,75,74,80, \
- 98,92,96,84,76,97,80,83,84,99,76,85,92,110,99,96, \
- 97,97,92,95,111,102,106,97,92,101,111,108,109,109,110,101, \
- 99,99,100,109,110,110,108,108,112,109,110,110,111,111,109,118, \
- 119,122,120,117,118,121,122,122,114,123,133,121,134,122,132,132, \
- 129,133,134,126,135,123,132,140,125,137,138,126,135,147,140,144, \
- 133,137,138,134,147,147,132,140,153,141,138,142,147,147,148,136, \
- 137,177,138,138,159,147,152,156,177,177,174,146,175,159,176,168, \
- 173,177,170,174,167,171,180,156,177,177,158,174,159,191,164,200, \
- 159,174,180,180,176,201,172,177,173,178,179,199,180,180,176,201, \
- 177,177,183,173,179,199,195,175,201,201,177,177,198,203,199,194, \
- 200,200,201,201,177,197,198,193,189,199,200,225,201,191,197,192, \
- 198,198,199,224,200,200,201,201,202,207,198,213,199,224,200,225, \
- 221,203,228,204,223,223,218,224,201,225,208,220,221,245,228,228, \
- 241,223,218,224,225,237,220,220,221,227,228,252,229,235,236,224, \
- 243,225,226,250,293,293,228,276,229,289,248,272,249,237,244,280, \
- 269,227,282,282,271,271,272,266,243,249,250,292,293,293,288,288, \
- 256,291,285,285,293,286,294,287,288,281,303,289,283,276,270,277, \
- 285,278,279,272,294,294,302,288,296,289,283,290,291,284,278,278, \
- 293,286,294,294,288,288,310,275,325,283,312,284,313,292,293,314, \
- 301,315,330,316,282,324,325,276,291,291,348,292,286,300,301,294, \
- 337,313,330,314,315,323,324,292,325,357,366,350,311,303,344,320, \
- 321,329,330,330,339,363,292,348,293,333,294,294,327,295,320,328, \
- 329,329,322,322,371,331,316,324,333,325,334,366,327,311,312,312, \
- 313,353,362,346,355,355,372,348,341,349,366,342,327,351,360,328, \
- 329,329,330,357,331,358,332,350,324,333,325,352,380,371,363,363, \
- 391,373,365,365,339,366,349,358,359,395,333,378,370,343,344,371, \
- 354,363,364,364,365,365,411,366,358,349,404,350,360,360,361,388, \
- 362,380,390,381,400,382,401,392,402,375,376,403,395,368,378,378, \
- 369,379,380,380,381,411,372,402,453,443,394,374,425,435,436,426, \
- 427,427,438,438,399,409,400,420,431,401,432,432,413,393,424,414, \
- 425,375,406,436,387,397,418,418,399,419,390,430,401,401,442,432, \
- 433,393,394,474,405,435,436,426,437,437,388,438,429,449,400,440, \
- 486,409,443,476,411,477,423,434,468,446,425,458,459,437,471,526, \
- 450,450,473,528,441,474,519,442,432,410,477,433,478,434,435,435, \
- 436,502,481,437,471,449,483,516,473,528,518,452,453,519,454,520, \
- 433,532,533,434,479,512,513,513,525,459,427,438,516,516,517,528, \
- 437,437,474,474,511,523,512,524,525,525,514,502,539,527,480,528, \
- 517,529,506,518,519,531,520,520,533,521,522,498,499,487,500,524, \
- 525,525,526,490,527,539,504,600,493,589,518,518,507,483,544,496, \
- 521,593,474,522,535,511,524,524,585,597,526,514,599,587,564,528, \
- 580,580,594,594,569,582,596,596,532,519,585,533,534,599,561,600, \
- 523,588,524,524,590,564,591,526,579,527,528,515,516,529,608,595, \
- 570,596,597,597,598,598,599,521,535,587,588,523,524,602,577,590, \
- 526,578,540,605,671,593,594,594,608,582,557,609,597,558,585,598, \
- 599,599,600,586,587,601,602,532,589,589,590,576,661,535,578,578, \
- 593,579,566,594,581,581,554,596,611,597,570,626,599,599,614,600, \
- 573,671,588,574,603,589,590,590,591,605,606,662,663,579,594,608, \
- 609,595,680,652,597,667,598,598,599,599,600,600,573,587,672,588, \
- 584,659,600,600,601,616,602,602,618,588,619,664,605,590,591,591, \
- 592,652,593,608,609,669,595,595,596,581,672,597,613,673,599,629, \
- 690,600,601,616,617,662,663,663,739,679,650,635,621,681,622,652, \
- 668,623,609,669,655,670,671,671,657,672,733,658,644,674,600,660, \
- 641,657,722,658,675,723,660,676,661,677,678,710,663,743,664,680, \
- 649,665,714,730,699,747,684,636,685,605,654,670,671,671,752,672, \
- 721,673,658,706,675,659,676,676,677,597,742,742,743,679,728,744, \
- 681,665,666,730,651,747,652,668,669,685,750,670,735,687,736,752 \
-
-#define MPFR_SQRHIGH_TAB \
- -1,0,0,0,0,-1,0,-1,5,5,6,6,7,7,9,8, \
- 9,9,10,10,12,12,13,12,13,13,14,14,15,16,17,18, \
- 18,17,18,19,19,24,20,20,22,24,22,22,23,23,24,25, \
- 25,25,26,26,28,30,28,28,29,29,30,32,31,31,32,33, \
- 33,33,36,36,39,35,36,36,43,37,38,38,39,39,40,40, \
- 41,41,44,42,43,47,50,44,45,47,52,46,47,47,48,48, \
- 49,49,50,50,53,51,52,52,53,55,54,54,57,57,56,56, \
- 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
- 65,65,66,69,70,67,68,74,69,75,70,73,74,71,72,72, \
- 73,73,80,77,75,75,76,76,86,92,78,81,82,79,80,80, \
- 81,87,88,85,86,83,84,84,85,88,92,101,87,87,88,88, \
- 89,89,90,90,91,91,92,92,93,102,97,94,101,95,96,117, \
- 97,97,98,98,99,123,108,100,113,113,106,114,107,103,104,108, \
- 125,105,122,114,123,107,124,108,129,109,114,110,111,111,112,112, \
- 113,113,114,114,115,115,116,132,117,125,130,126,119,119,120,120, \
- 121,121,122,130,131,123,124,124,149,137,126,126,143,143,132,144, \
- 129,144,130,130,131,131,132,132,133,138,144,134,135,150,156,136, \
- 137,137,138,138,139,144,150,140,141,141,142,142,143,143,144,159, \
- 145,145,146,146,147,147,148,148,149,149,150,150,151,151,152,152, \
- 153,178,184,154,155,155,166,171,157,177,158,178,159,174,160,160, \
- 161,161,162,162,163,163,164,164,165,165,166,166,167,197,180,198, \
- 187,193,170,182,171,201,172,172,173,191,174,174,175,181,176,176, \
- 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
- 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
- 193,200,194,194,195,195,196,196,197,197,198,198,199,199,200,221, \
- 222,229,230,237,224,203,204,218,219,205,206,206,207,207,208,208, \
- 209,237,210,210,211,225,212,212,213,213,214,214,215,222,216,216, \
- 217,245,218,246,240,219,241,234,228,221,222,222,223,223,259,231, \
- 233,233,226,266,267,227,228,260,261,229,230,246,255,255,240,256, \
- 233,233,234,234,235,235,236,236,237,245,238,262,239,239,240,240, \
- 249,241,250,242,243,243,252,244,245,245,246,246,247,255,312,256, \
- 249,249,250,250,315,267,268,300,261,293,294,294,295,303,304,304, \
- 293,293,303,294,295,295,305,296,288,288,289,316,317,335,318,318, \
- 319,319,275,293,294,303,268,295,269,296,306,297,271,316,272,272, \
- 273,273,301,292,302,311,357,303,286,286,287,278,342,279,325,298, \
- 326,353,336,318,328,319,320,311,303,303,313,304,305,332,315,297, \
- 309,309,300,290,311,301,292,292,373,363,354,334,355,375,356,346, \
- 297,327,348,328,319,299,310,330,301,301,322,312,313,373,334,324, \
- 335,345,306,356,307,327,348,348,309,329,330,370,321,311,312,312, \
- 313,343,354,354,355,345,336,346,317,387,348,318,319,339,340,340, \
- 321,321,322,344,411,323,324,357,402,358,370,326,371,338,350,427, \
- 373,362,341,330,375,342,409,332,333,366,389,334,357,335,402,336, \
- 392,337,338,338,405,350,384,373,363,341,342,364,376,365,366,388, \
- 389,356,357,346,347,358,370,348,349,382,383,372,351,384,385,352, \
- 413,353,366,354,355,355,404,392,393,357,358,358,359,407,408,360, \
- 421,397,398,398,399,363,364,364,365,449,390,366,379,367,368,368, \
- 369,369,370,382,371,371,372,444,373,373,374,374,375,375,388,400, \
- 377,377,378,378,427,379,380,380,381,381,382,382,383,383,384,384, \
- 385,437,399,386,387,387,440,388,389,389,390,442,391,482,392,392, \
- 445,445,407,420,408,395,396,474,397,410,398,476,399,399,400,413, \
- 401,401,415,402,403,416,404,404,444,405,406,406,407,407,408,408, \
- 409,409,410,410,411,411,412,412,413,413,414,414,415,519,468,416, \
- 445,417,418,418,419,433,420,434,435,435,436,436,423,423,424,466, \
- 425,425,426,426,427,427,428,498,499,429,430,430,431,431,474,432, \
- 433,433,434,462,463,435,436,436,437,493,480,438,439,439,440,454, \
- 497,441,442,442,443,443,444,444,459,445,446,446,447,447,462,448, \
- 449,449,450,465,451,451,452,452,453,453,454,454,455,455,486,456, \
- 517,457,518,458,459,459,460,460,461,461,462,462,463,463,464,464, \
- 465,465,466,466,467,467,468,468,469,469,470,470,471,501,502,472, \
- 473,473,474,474,475,520,521,476,477,477,478,478,509,479,480,480, \
- 481,481,482,482,483,483,484,484,501,485,486,486,487,487,488,488, \
- 489,489,490,490,491,491,492,492,493,493,494,494,559,495,528,512, \
- 497,497,514,498,499,499,500,500,533,501,502,502,503,503,504,504, \
- 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
-
-#define MPFR_MUL_THRESHOLD 16 /* limbs */
-#define MPFR_EXP_2_THRESHOLD 64 /* bits */
-#define MPFR_EXP_THRESHOLD 9331 /* bits */
+#elif defined (__sparc_v9__) /* Threshold for Sparc 64 bits */
+#include "sparc64/mparam.h"
/* __mips64? __mips? */
#endif
-/*******************************
- * Default values of Threshold *
- *******************************/
-#ifndef MPFR_MULHIGH_TAB
-# define MPFR_MULHIGH_TAB -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0
-#endif
-#ifndef MPFR_SQRHIGH_TAB
-# define MPFR_SQRHIGH_TAB -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0
-#endif
-#ifndef MPFR_DIVHIGH_TAB
-# define MPFR_DIVHIGH_TAB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
-#endif
-#ifndef MPFR_MUL_THRESHOLD
-# define MPFR_MUL_THRESHOLD 20 /* limbs */
-#endif
-#ifndef MPFR_SQR_THRESHOLD
-# define MPFR_SQR_THRESHOLD 20 /* limbs */
-#endif
-#ifndef MPFR_EXP_2_THRESHOLD
-# define MPFR_EXP_2_THRESHOLD 100 /* bits */
-#endif
-#ifndef MPFR_EXP_THRESHOLD
-# define MPFR_EXP_THRESHOLD 25000 /* bits */
-#endif
-#ifndef MPFR_SINCOS_THRESHOLD
-# define MPFR_SINCOS_THRESHOLD 30000 /* bits */
-#endif
-#ifndef MPFR_AI_THRESHOLD1
-# define MPFR_AI_THRESHOLD1 -13107
-#endif
-#ifndef MPFR_AI_THRESHOLD2
-# define MPFR_AI_THRESHOLD2 1311
-#endif
-#ifndef MPFR_AI_THRESHOLD3
-# define MPFR_AI_THRESHOLD3 19661
-#endif
+/****************************************************************
+ * Default values of Threshold. *
+ * Must be included in any case: it checks, for every constant, *
+ * if it has been defined, and it sets it to a default value if *
+ * it was not previously defined. *
+ ****************************************************************/
+#include "generic/mparam.h"
diff --git a/src/mpfr.h b/src/mpfr.h
index c746a54d9..1e7c102c3 100644
--- a/src/mpfr.h
+++ b/src/mpfr.h
@@ -237,6 +237,7 @@ __MPFR_DECLSPEC __gmp_const char * mpfr_get_version _MPFR_PROTO ((void));
__MPFR_DECLSPEC __gmp_const char * mpfr_get_patches _MPFR_PROTO ((void));
__MPFR_DECLSPEC int mpfr_buildopt_tls_p _MPFR_PROTO ((void));
__MPFR_DECLSPEC int mpfr_buildopt_decimal_p _MPFR_PROTO ((void));
+__MPFR_DECLSPEC __gmp_const char * mpfr_buildopt_tune_case _MPFR_PROTO ((void));
__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emin _MPFR_PROTO ((void));
__MPFR_DECLSPEC int mpfr_set_emin _MPFR_PROTO ((mpfr_exp_t));
diff --git a/src/powerpc64/mparam.h b/src/powerpc64/mparam.h
new file mode 100644
index 000000000..9ccd3a370
--- /dev/null
+++ b/src/powerpc64/mparam.h
@@ -0,0 +1,139 @@
+/* Generated by MPFR's tuneup.c, 2009-02-18, gcc 4.1.2 */
+/* gcc40.fsffrance.org (powerpc64-unknown-linux-gnu) with gmp-4.2.4 */
+
+#define MPFR_TUNE_CASE "64-bit powerpc"
+#define MPFR_MULHIGH_TAB \
+ -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 26,28,26,27,28,32,32,32,35,36,35,35,35,35,36,40, \
+ 39,39,44,40,39,39,40,40,43,43,44,44,43,43,44,48, \
+ 51,47,48,48,51,47,56,52,51,51,52,52,59,57,60,56, \
+ 57,63,56,64,63,63,72,64,71,71,72,72,71,69,72,72, \
+ 71,71,72,80,77,79,72,80,71,79,72,80,87,87,88,80, \
+ 80,80,87,87,79,79,80,80,84,105,88,82,92,104,93,87, \
+ 88,88,104,104,105,105,103,88,104,104,105,102,103,103,101,104, \
+ 105,105,103,100,101,104,105,105,112,103,104,104,105,111,112,109, \
+ 116,116,117,117,127,124,116,116,117,117,124,115,122,116,117,117, \
+ 117,125,122,122,123,123,128,128,129,129,126,138,127,131,132,128, \
+ 129,129,130,134,147,147,152,140,141,141,138,146,139,139,140,140, \
+ 141,141,146,146,147,147,144,144,153,141,158,146,147,163,164,152, \
+ 153,161,150,162,163,159,164,160,165,165,170,170,171,175,152,164, \
+ 174,164,175,180,156,171,172,177,188,158,159,189,165,165,171,211, \
+ 177,187,188,213,174,189,210,180,176,201,207,177,213,213,189,204, \
+ 205,205,206,211,212,207,188,213,189,189,210,210,211,206,212,212, \
+ 208,213,189,209,210,205,211,206,212,212,213,208,209,209,235,215, \
+ 209,209,210,216,211,211,212,212,213,213,220,214,209,227,216,216, \
+ 211,211,212,236,213,237,232,232,239,239,240,234,235,235,236,230, \
+ 237,237,232,232,233,233,234,234,235,235,236,236,237,237,238,238, \
+ 239,257,240,240,235,235,236,260,261,237,268,256,275,275,276,264, \
+ 235,249,257,264,237,237,252,259,309,260,261,254,311,311,312,312, \
+ 264,264,272,293,259,259,260,260,261,261,311,311,312,305,285,285, \
+ 293,272,308,301,309,309,261,310,276,276,305,312,299,348,307,300, \
+ 294,315,302,309,310,310,311,311,305,305,306,306,321,300,343,301, \
+ 313,321,330,306,315,347,308,332,341,357,342,310,343,343,312,312, \
+ 337,305,306,306,347,347,348,348,325,317,326,326,311,343,312,312, \
+ 321,321,346,346,339,347,348,348,357,357,342,366,335,343,384,384, \
+ 377,321,338,338,347,339,348,380,357,381,382,350,351,375,376,376, \
+ 347,347,348,348,340,340,341,341,342,342,343,343,344,344,345,381, \
+ 382,346,347,347,348,348,349,376,350,359,378,351,352,415,416,389, \
+ 345,345,346,346,347,383,384,384,376,412,377,377,378,378,379,379, \
+ 380,380,381,381,373,382,383,383,384,384,403,376,395,377,378,396, \
+ 419,419,380,400,381,381,382,382,383,383,404,374,375,375,376,376, \
+ 377,377,378,378,419,389,420,400,401,381,382,382,383,423,454,384, \
+ 405,415,416,456,387,427,398,418,419,399,420,420,401,441,402,422, \
+ 423,413,414,454,415,415,416,416,417,407,418,398,419,419,420,420, \
+ 420,420,443,454,444,455,456,456,457,435,447,436,437,415,438,416, \
+ 417,450,451,418,419,463,442,420,432,454,488,444,489,445,446,446, \
+ 458,458,459,459,427,438,461,439,451,440,419,452,486,453,454,454, \
+ 455,455,445,445,446,490,491,447,448,448,449,482,461,450,451,484, \
+ 461,461,474,450,451,487,464,488,489,489,466,478,479,491,492,456, \
+ 481,481,482,494,507,519,520,460,461,497,486,474,487,535,536,488, \
+ 513,525,454,526,455,527,528,528,469,505,482,494,519,519,496,508, \
+ 509,521,486,546,523,523,512,488,489,513,514,490,563,527,528,492, \
+ 515,502,555,542,491,556,557,492,558,519,520,559,495,534,561,535, \
+ 562,510,511,563,564,564,630,552,553,631,632,528,529,633,634,634, \
+ 635,635,636,636,520,520,560,534,535,561,627,562,537,550,629,564, \
+ 617,526,527,618,619,632,633,633,621,634,609,609,636,636,546,611, \
+ 557,627,628,614,573,629,630,630,603,631,562,632,619,619,634,634, \
+ 635,635,622,636,567,623,624,596,611,625,626,626,641,627,628,614, \
+ 643,643,630,616,617,617,618,618,619,633,634,620,635,621,622,622, \
+ 707,609,624,624,625,639,612,612,627,641,642,628,629,643,602,616, \
+ 614,629,630,615,616,616,617,707,708,633,634,634,635,620,621,636, \
+ 607,622,623,623,624,639,625,670,686,701,702,627,643,643,644,644, \
+ 630,705,706,706,707,632,633,633,709,619,620,710,711,636,697,652, \
+ 698,638,639,624,625,685,686,626,702,627,703,643,689,629,630,630, \
+ 705,705,690,690,691,707,708,708,629,677,630,630,631,631,632,632, \
+ 633,697,698,634,635,699,700,684,701,701,702,702,703,639,704,672, \
+ 705,641,706,690,707,707,708,708,709,693,710,710,775,695,712,712, \
+ 713,777,778,778,763,715,716,780,717,701,702,686,703,703,704,704 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,0,0,0,0,0,0,0,0,0,6,6,7,7,8,8, \
+ 9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16, \
+ 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
+ 25,25,26,26,27,27,28,28,29,29,32,32,32,32,32,32, \
+ 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40, \
+ 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
+ 51,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
+ 57,57,58,58,59,59,64,64,63,67,64,64,63,63,64,64, \
+ 65,65,66,66,67,67,68,68,69,69,70,76,71,71,72,72, \
+ 73,73,74,80,75,75,76,76,77,77,78,78,79,79,80,80, \
+ 81,81,82,82,83,83,84,84,85,85,86,92,102,87,88,88, \
+ 89,104,102,105,106,91,92,104,102,105,94,112,104,110,96,105, \
+ 105,105,102,114,123,107,108,120,117,117,122,122,123,103,104,120, \
+ 105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112, \
+ 113,113,114,114,115,115,116,116,117,117,118,118,119,131,128,120, \
+ 121,129,122,122,123,135,140,124,125,125,126,126,127,127,128,128, \
+ 129,129,130,130,131,131,132,132,133,158,159,134,135,135,136,156, \
+ 137,147,138,138,139,139,140,140,141,141,142,142,143,143,144,144, \
+ 145,145,146,146,147,147,148,188,189,149,150,150,151,191,187,192, \
+ 153,153,189,189,155,155,156,196,187,187,188,188,189,189,190,195, \
+ 191,161,162,204,163,187,188,194,189,189,190,190,191,209,192,216, \
+ 199,193,194,188,189,189,190,190,191,191,192,192,187,193,194,194, \
+ 195,201,202,196,197,197,198,210,199,199,206,212,213,213,184,184, \
+ 215,185,216,204,187,187,188,188,189,189,190,220,191,227,228,192, \
+ 193,193,194,194,195,237,224,224,225,225,240,198,213,199,200,200, \
+ 201,201,202,202,203,224,225,204,205,226,227,206,207,207,208,236, \
+ 237,209,210,210,211,260,240,240,248,213,214,214,215,215,216,216, \
+ 217,217,218,218,219,219,220,220,221,221,222,222,223,223,224,224, \
+ 225,225,226,226,227,227,228,228,229,229,230,230,231,231,264,232, \
+ 249,233,234,266,267,235,236,268,237,237,302,238,239,239,240,240, \
+ 241,241,242,242,243,243,308,244,245,245,246,246,247,247,248,312, \
+ 249,249,250,250,251,251,252,324,285,309,254,254,327,295,272,312, \
+ 311,329,312,303,259,259,260,260,261,306,298,307,308,308,309,327, \
+ 328,310,311,293,294,285,304,268,269,305,306,315,316,307,308,326, \
+ 327,327,319,310,311,311,312,348,277,304,314,323,324,324,334,316, \
+ 317,308,309,336,319,328,329,320,312,366,286,286,359,332,333,342, \
+ 309,329,320,320,321,341,332,342,363,353,354,344,345,325,326,366, \
+ 297,337,338,328,329,339,350,350,351,351,362,352,353,373,374,344, \
+ 345,325,326,366,307,337,328,348,339,369,360,360,361,381,382,382, \
+ 333,373,314,364,315,315,346,336,337,377,378,368,369,319,320,380, \
+ 365,398,366,344,389,345,379,324,402,347,348,392,360,327,328,328, \
+ 329,329,330,374,375,375,387,365,366,366,356,389,390,357,380,369, \
+ 381,370,371,382,383,339,373,384,396,396,397,342,343,343,344,344, \
+ 345,345,346,346,347,347,348,348,393,415,416,350,351,351,407,385, \
+ 401,353,354,402,355,391,392,416,417,429,418,418,419,419,420,420, \
+ 445,409,362,362,363,363,364,436,365,437,438,366,427,415,416,416, \
+ 441,417,418,454,455,431,432,420,373,433,434,434,435,375,436,376, \
+ 377,377,378,402,415,379,380,380,381,381,382,382,383,383,384,384, \
+ 385,411,425,425,426,387,388,388,389,402,416,429,391,456,470,392, \
+ 432,393,394,446,447,395,396,474,397,397,398,398,399,399,400,400, \
+ 401,401,402,402,429,429,404,404,405,405,458,406,459,472,473,408, \
+ 474,409,410,410,411,411,412,412,413,413,414,414,415,454,455,455, \
+ 417,417,418,418,419,419,420,420,421,421,422,422,423,423,494,424, \
+ 425,425,426,510,567,427,428,428,429,429,556,430,431,431,432,558, \
+ 489,489,490,434,435,435,562,436,437,437,438,438,439,439,440,440, \
+ 441,567,568,456,569,569,570,584,585,445,446,558,573,447,448,560, \
+ 569,569,570,600,451,571,452,557,558,453,454,454,455,560,456,456, \
+ 562,457,458,563,564,564,595,580,581,461,462,582,583,598,599,599, \
+ 585,585,571,556,557,557,558,573,574,469,470,470,471,636,472,472, \
+ 473,563,564,564,550,580,581,581,582,567,568,598,599,584,585,585, \
+ 561,593,594,594,563,483,580,564,581,597,598,630,487,487,488,600, \
+ 601,601,602,618,635,571,572,572,557,573,574,558,591,591,608,592, \
+ 593,641,498,562,563,579,564,564,565,501,566,550,551,503,600,584, \
+ 585,617,618,506,635,603,604,572,573,573,574,622,591,575,576,592 \
+
+#define MPFR_MUL_THRESHOLD 6 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 744 /* bits */
+#define MPFR_EXP_THRESHOLD 11929 /* bits */
diff --git a/src/sparc64/mparam.h b/src/sparc64/mparam.h
new file mode 100644
index 000000000..48948fd8d
--- /dev/null
+++ b/src/sparc64/mparam.h
@@ -0,0 +1,139 @@
+/* Generated by MPFR's tuneup.c, 2009-02-20, gcc 4.1.2 */
+/* gcc54.fsffrance.org (sparc64-unknown-linux-gnu) with gmp-4.2.4 */
+
+#define MPFR_TUNE_CASE "64-bit SPARC"
+#define MPFR_MULHIGH_TAB \
+ -1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1, \
+ 11,13,13,15,13,15,15,16,17,17,17,18,19,19,19,21, \
+ 21,19,23,21,23,24,25,25,26,27,26,30,25,27,27,34, \
+ 30,25,30,33,34,31,34,34,34,34,34,37,38,37,38,38, \
+ 39,39,42,40,43,41,42,42,45,43,50,46,45,45,46,48, \
+ 49,49,50,54,49,49,50,60,59,59,60,60,59,59,60,60, \
+ 67,67,60,68,61,65,68,66,67,67,68,68,69,75,76,68, \
+ 73,75,76,68,69,81,76,76,75,81,84,76,81,75,74,80, \
+ 98,92,96,84,76,97,80,83,84,99,76,85,92,110,99,96, \
+ 97,97,92,95,111,102,106,97,92,101,111,108,109,109,110,101, \
+ 99,99,100,109,110,110,108,108,112,109,110,110,111,111,109,118, \
+ 119,122,120,117,118,121,122,122,114,123,133,121,134,122,132,132, \
+ 129,133,134,126,135,123,132,140,125,137,138,126,135,147,140,144, \
+ 133,137,138,134,147,147,132,140,153,141,138,142,147,147,148,136, \
+ 137,177,138,138,159,147,152,156,177,177,174,146,175,159,176,168, \
+ 173,177,170,174,167,171,180,156,177,177,158,174,159,191,164,200, \
+ 159,174,180,180,176,201,172,177,173,178,179,199,180,180,176,201, \
+ 177,177,183,173,179,199,195,175,201,201,177,177,198,203,199,194, \
+ 200,200,201,201,177,197,198,193,189,199,200,225,201,191,197,192, \
+ 198,198,199,224,200,200,201,201,202,207,198,213,199,224,200,225, \
+ 221,203,228,204,223,223,218,224,201,225,208,220,221,245,228,228, \
+ 241,223,218,224,225,237,220,220,221,227,228,252,229,235,236,224, \
+ 243,225,226,250,293,293,228,276,229,289,248,272,249,237,244,280, \
+ 269,227,282,282,271,271,272,266,243,249,250,292,293,293,288,288, \
+ 256,291,285,285,293,286,294,287,288,281,303,289,283,276,270,277, \
+ 285,278,279,272,294,294,302,288,296,289,283,290,291,284,278,278, \
+ 293,286,294,294,288,288,310,275,325,283,312,284,313,292,293,314, \
+ 301,315,330,316,282,324,325,276,291,291,348,292,286,300,301,294, \
+ 337,313,330,314,315,323,324,292,325,357,366,350,311,303,344,320, \
+ 321,329,330,330,339,363,292,348,293,333,294,294,327,295,320,328, \
+ 329,329,322,322,371,331,316,324,333,325,334,366,327,311,312,312, \
+ 313,353,362,346,355,355,372,348,341,349,366,342,327,351,360,328, \
+ 329,329,330,357,331,358,332,350,324,333,325,352,380,371,363,363, \
+ 391,373,365,365,339,366,349,358,359,395,333,378,370,343,344,371, \
+ 354,363,364,364,365,365,411,366,358,349,404,350,360,360,361,388, \
+ 362,380,390,381,400,382,401,392,402,375,376,403,395,368,378,378, \
+ 369,379,380,380,381,411,372,402,453,443,394,374,425,435,436,426, \
+ 427,427,438,438,399,409,400,420,431,401,432,432,413,393,424,414, \
+ 425,375,406,436,387,397,418,418,399,419,390,430,401,401,442,432, \
+ 433,393,394,474,405,435,436,426,437,437,388,438,429,449,400,440, \
+ 486,409,443,476,411,477,423,434,468,446,425,458,459,437,471,526, \
+ 450,450,473,528,441,474,519,442,432,410,477,433,478,434,435,435, \
+ 436,502,481,437,471,449,483,516,473,528,518,452,453,519,454,520, \
+ 433,532,533,434,479,512,513,513,525,459,427,438,516,516,517,528, \
+ 437,437,474,474,511,523,512,524,525,525,514,502,539,527,480,528, \
+ 517,529,506,518,519,531,520,520,533,521,522,498,499,487,500,524, \
+ 525,525,526,490,527,539,504,600,493,589,518,518,507,483,544,496, \
+ 521,593,474,522,535,511,524,524,585,597,526,514,599,587,564,528, \
+ 580,580,594,594,569,582,596,596,532,519,585,533,534,599,561,600, \
+ 523,588,524,524,590,564,591,526,579,527,528,515,516,529,608,595, \
+ 570,596,597,597,598,598,599,521,535,587,588,523,524,602,577,590, \
+ 526,578,540,605,671,593,594,594,608,582,557,609,597,558,585,598, \
+ 599,599,600,586,587,601,602,532,589,589,590,576,661,535,578,578, \
+ 593,579,566,594,581,581,554,596,611,597,570,626,599,599,614,600, \
+ 573,671,588,574,603,589,590,590,591,605,606,662,663,579,594,608, \
+ 609,595,680,652,597,667,598,598,599,599,600,600,573,587,672,588, \
+ 584,659,600,600,601,616,602,602,618,588,619,664,605,590,591,591, \
+ 592,652,593,608,609,669,595,595,596,581,672,597,613,673,599,629, \
+ 690,600,601,616,617,662,663,663,739,679,650,635,621,681,622,652, \
+ 668,623,609,669,655,670,671,671,657,672,733,658,644,674,600,660, \
+ 641,657,722,658,675,723,660,676,661,677,678,710,663,743,664,680, \
+ 649,665,714,730,699,747,684,636,685,605,654,670,671,671,752,672, \
+ 721,673,658,706,675,659,676,676,677,597,742,742,743,679,728,744, \
+ 681,665,666,730,651,747,652,668,669,685,750,670,735,687,736,752 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,0,0,0,0,-1,0,-1,5,5,6,6,7,7,9,8, \
+ 9,9,10,10,12,12,13,12,13,13,14,14,15,16,17,18, \
+ 18,17,18,19,19,24,20,20,22,24,22,22,23,23,24,25, \
+ 25,25,26,26,28,30,28,28,29,29,30,32,31,31,32,33, \
+ 33,33,36,36,39,35,36,36,43,37,38,38,39,39,40,40, \
+ 41,41,44,42,43,47,50,44,45,47,52,46,47,47,48,48, \
+ 49,49,50,50,53,51,52,52,53,55,54,54,57,57,56,56, \
+ 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
+ 65,65,66,69,70,67,68,74,69,75,70,73,74,71,72,72, \
+ 73,73,80,77,75,75,76,76,86,92,78,81,82,79,80,80, \
+ 81,87,88,85,86,83,84,84,85,88,92,101,87,87,88,88, \
+ 89,89,90,90,91,91,92,92,93,102,97,94,101,95,96,117, \
+ 97,97,98,98,99,123,108,100,113,113,106,114,107,103,104,108, \
+ 125,105,122,114,123,107,124,108,129,109,114,110,111,111,112,112, \
+ 113,113,114,114,115,115,116,132,117,125,130,126,119,119,120,120, \
+ 121,121,122,130,131,123,124,124,149,137,126,126,143,143,132,144, \
+ 129,144,130,130,131,131,132,132,133,138,144,134,135,150,156,136, \
+ 137,137,138,138,139,144,150,140,141,141,142,142,143,143,144,159, \
+ 145,145,146,146,147,147,148,148,149,149,150,150,151,151,152,152, \
+ 153,178,184,154,155,155,166,171,157,177,158,178,159,174,160,160, \
+ 161,161,162,162,163,163,164,164,165,165,166,166,167,197,180,198, \
+ 187,193,170,182,171,201,172,172,173,191,174,174,175,181,176,176, \
+ 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
+ 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
+ 193,200,194,194,195,195,196,196,197,197,198,198,199,199,200,221, \
+ 222,229,230,237,224,203,204,218,219,205,206,206,207,207,208,208, \
+ 209,237,210,210,211,225,212,212,213,213,214,214,215,222,216,216, \
+ 217,245,218,246,240,219,241,234,228,221,222,222,223,223,259,231, \
+ 233,233,226,266,267,227,228,260,261,229,230,246,255,255,240,256, \
+ 233,233,234,234,235,235,236,236,237,245,238,262,239,239,240,240, \
+ 249,241,250,242,243,243,252,244,245,245,246,246,247,255,312,256, \
+ 249,249,250,250,315,267,268,300,261,293,294,294,295,303,304,304, \
+ 293,293,303,294,295,295,305,296,288,288,289,316,317,335,318,318, \
+ 319,319,275,293,294,303,268,295,269,296,306,297,271,316,272,272, \
+ 273,273,301,292,302,311,357,303,286,286,287,278,342,279,325,298, \
+ 326,353,336,318,328,319,320,311,303,303,313,304,305,332,315,297, \
+ 309,309,300,290,311,301,292,292,373,363,354,334,355,375,356,346, \
+ 297,327,348,328,319,299,310,330,301,301,322,312,313,373,334,324, \
+ 335,345,306,356,307,327,348,348,309,329,330,370,321,311,312,312, \
+ 313,343,354,354,355,345,336,346,317,387,348,318,319,339,340,340, \
+ 321,321,322,344,411,323,324,357,402,358,370,326,371,338,350,427, \
+ 373,362,341,330,375,342,409,332,333,366,389,334,357,335,402,336, \
+ 392,337,338,338,405,350,384,373,363,341,342,364,376,365,366,388, \
+ 389,356,357,346,347,358,370,348,349,382,383,372,351,384,385,352, \
+ 413,353,366,354,355,355,404,392,393,357,358,358,359,407,408,360, \
+ 421,397,398,398,399,363,364,364,365,449,390,366,379,367,368,368, \
+ 369,369,370,382,371,371,372,444,373,373,374,374,375,375,388,400, \
+ 377,377,378,378,427,379,380,380,381,381,382,382,383,383,384,384, \
+ 385,437,399,386,387,387,440,388,389,389,390,442,391,482,392,392, \
+ 445,445,407,420,408,395,396,474,397,410,398,476,399,399,400,413, \
+ 401,401,415,402,403,416,404,404,444,405,406,406,407,407,408,408, \
+ 409,409,410,410,411,411,412,412,413,413,414,414,415,519,468,416, \
+ 445,417,418,418,419,433,420,434,435,435,436,436,423,423,424,466, \
+ 425,425,426,426,427,427,428,498,499,429,430,430,431,431,474,432, \
+ 433,433,434,462,463,435,436,436,437,493,480,438,439,439,440,454, \
+ 497,441,442,442,443,443,444,444,459,445,446,446,447,447,462,448, \
+ 449,449,450,465,451,451,452,452,453,453,454,454,455,455,486,456, \
+ 517,457,518,458,459,459,460,460,461,461,462,462,463,463,464,464, \
+ 465,465,466,466,467,467,468,468,469,469,470,470,471,501,502,472, \
+ 473,473,474,474,475,520,521,476,477,477,478,478,509,479,480,480, \
+ 481,481,482,482,483,483,484,484,501,485,486,486,487,487,488,488, \
+ 489,489,490,490,491,491,492,492,493,493,494,494,559,495,528,512, \
+ 497,497,514,498,499,499,500,500,533,501,502,502,503,503,504,504, \
+ 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
+
+#define MPFR_MUL_THRESHOLD 16 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 64 /* bits */
+#define MPFR_EXP_THRESHOLD 9331 /* bits */
diff --git a/src/x86/core2/mparam.h b/src/x86/core2/mparam.h
new file mode 100644
index 000000000..959634068
--- /dev/null
+++ b/src/x86/core2/mparam.h
@@ -0,0 +1,138 @@
+/* Generated by MPFR's tuneup.c, 2007-12-21, gcc 4.1 */
+
+#define MPFR_TUNE_CASE "32-bit Core2"
+#define MPFR_MULHIGH_TAB \
+ -1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28, \
+ 30,28,30,28,28,32,30,30,30,32,32,34,32,32,32,32, \
+ 33,35,44,40,35,41,40,42,41,47,48,48,47,51,56,48, \
+ 47,55,48,56,51,55,56,60,55,55,56,56,55,55,56,64, \
+ 63,59,60,64,59,59,64,64,63,63,60,68,63,67,60,64, \
+ 67,67,64,68,63,81,64,64,81,81,64,80,81,81,92,86, \
+ 86,80,81,81,79,91,86,92,93,84,85,85,86,86,87,87, \
+ 91,88,89,98,99,96,91,91,92,92,93,93,94,91,92,92, \
+ 99,99,103,97,98,98,96,93,121,115,104,116,93,99,121,127, \
+ 128,110,129,117,121,127,128,128,129,126,124,127,122,128,123,129, \
+ 129,129,134,138,139,139,140,140,129,141,122,138,139,139,128,128, \
+ 129,165,162,138,139,139,164,164,165,153,138,162,139,139,164,140, \
+ 165,165,150,146,139,163,164,164,141,177,158,162,151,151,160,156, \
+ 165,153,162,158,163,163,164,164,165,153,174,174,163,163,164,164, \
+ 164,164,165,165,176,176,172,177,168,163,189,189,165,165,176,176, \
+ 177,177,188,188,189,189,175,180,176,176,177,177,188,183,184,189, \
+ 180,180,191,201,192,177,188,188,189,199,200,200,201,201,212,212, \
+ 213,188,189,189,200,200,201,201,177,212,188,213,189,189,200,195, \
+ 239,239,240,240,199,199,212,212,213,201,232,196,215,197,240,240, \
+ 247,211,200,236,237,213,256,256,239,257,240,240,247,247,254,248, \
+ 237,255,256,238,257,257,240,240,253,247,272,272,237,237,256,256, \
+ 275,257,258,276,265,271,272,254,255,267,274,256,257,257,258,276, \
+ 256,249,257,285,258,258,266,294,267,267,275,275,276,276,291,270, \
+ 257,257,258,293,273,294,274,267,261,261,276,276,270,277,278,271, \
+ 293,293,294,294,267,267,268,275,276,276,284,284,292,271,272,293, \
+ 294,273,274,274,275,289,276,276,291,291,285,285,293,293,294,294, \
+ 321,305,290,290,291,275,276,348,285,293,294,310,311,303,312,288, \
+ 289,329,330,306,347,291,292,348,381,381,294,294,327,343,384,384, \
+ 345,337,306,346,347,307,308,340,341,381,366,366,343,383,384,384, \
+ 345,329,330,330,347,339,380,380,357,381,366,358,359,375,376,376, \
+ 383,383,366,366,340,367,368,359,360,360,361,379,362,362,417,381, \
+ 364,382,383,383,384,384,412,376,413,359,360,378,361,379,380,416, \
+ 417,381,382,418,419,365,384,384,412,412,413,377,378,378,379,379, \
+ 380,380,381,363,418,382,383,383,384,384,385,376,377,413,414,378, \
+ 379,379,380,380,381,381,382,382,383,363,364,414,415,365,366,366, \
+ 417,377,378,418,379,419,420,420,491,441,492,492,403,383,384,384, \
+ 415,415,386,416,417,417,418,418,419,419,420,490,491,491,492,492, \
+ 423,483,414,414,415,525,416,486,497,417,418,418,419,489,490,490, \
+ 486,420,487,421,488,455,456,423,424,490,491,491,492,492,471,471, \
+ 483,417,418,528,419,419,420,420,465,487,488,488,489,456,490,490, \
+ 491,491,492,492,526,493,527,494,484,528,419,452,453,486,487,454, \
+ 455,488,489,467,468,490,491,480,492,492,482,482,483,527,528,506, \
+ 521,485,522,498,487,487,488,524,525,489,490,490,491,491,492,528, \
+ 481,505,506,494,495,495,496,520,497,497,486,498,487,487,488,524, \
+ 489,489,490,526,527,491,492,492,529,529,506,518,519,483,496,484, \
+ 485,569,510,522,523,487,488,488,489,489,490,490,491,491,492,492, \
+ 528,528,490,490,491,491,492,492,506,506,507,507,521,521,535,522, \
+ 523,523,524,563,564,525,526,526,527,527,528,528,529,542,543,556, \
+ 570,557,571,558,533,533,534,560,535,522,523,536,537,563,564,525, \
+ 526,526,527,527,528,528,542,594,595,543,557,557,597,532,559,559, \
+ 557,557,558,558,559,531,546,560,561,547,548,562,563,563,564,564, \
+ 565,565,566,566,567,553,582,568,569,583,584,584,585,557,558,600, \
+ 559,573,560,588,533,561,590,562,563,563,564,564,593,579,594,566, \
+ 567,581,582,568,569,569,598,584,571,585,600,600,629,559,560,560, \
+ 599,599,600,600,601,586,587,602,603,603,634,604,605,635,636,636, \
+ 562,637,638,563,564,564,565,565,566,611,612,552,628,568,569,584, \
+ 585,600,631,616,617,632,633,633,634,634,635,635,636,606,592,712, \
+ 713,638,639,564,595,715,716,716,717,597,583,568,569,704,600,585, \
+ 625,593,594,770,771,595,596,708,597,597,598,694,695,599,600,712, \
+ 633,633,714,634,715,715,716,636,717,717,686,750,751,751,752,768, \
+ 753,753,754,770,771,771,756,708,709,709,710,742,743,711,712,760, \
+ 761,713,714,714,715,715,716,716,765,717,718,750,751,751,768,736 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,0,-1,-1,0,0,0,0,0,0,0,0,-1,-1,0,8, \
+ 9,9,10,10,11,12,12,13,13,13,14,14,15,15,16,16, \
+ 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
+ 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
+ 33,33,34,34,35,35,36,36,37,37,38,42,39,39,40,40, \
+ 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
+ 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
+ 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
+ 65,74,66,66,67,67,68,68,69,78,70,70,74,71,72,72, \
+ 73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80, \
+ 81,84,82,82,83,83,84,84,85,85,92,92,87,87,88,88, \
+ 89,89,90,96,91,91,92,92,93,96,100,100,95,95,96,96, \
+ 97,97,98,98,99,99,100,100,101,101,114,102,103,103,104,104, \
+ 105,105,114,106,107,123,108,108,117,109,110,110,111,111,112,112, \
+ 113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,132, \
+ 141,121,122,122,123,135,140,144,141,125,126,126,127,127,128,128, \
+ 129,129,130,135,131,131,132,132,133,158,134,134,135,135,136,136, \
+ 137,137,138,138,169,139,140,140,141,141,142,142,143,143,144,144, \
+ 145,145,146,171,177,147,153,148,149,159,150,150,151,171,177,177, \
+ 153,153,154,159,180,165,156,156,157,177,183,168,159,159,170,165, \
+ 161,161,162,162,163,163,164,164,165,165,166,166,167,167,168,168, \
+ 169,169,170,170,171,171,172,172,173,173,174,174,175,175,176,176, \
+ 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
+ 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
+ 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
+ 201,201,202,202,203,210,225,204,205,205,206,206,207,207,208,208, \
+ 209,209,210,210,211,211,212,212,213,213,214,214,215,215,216,216, \
+ 217,217,218,218,219,219,220,220,221,221,222,222,223,223,224,224, \
+ 225,225,226,226,227,227,228,228,229,229,230,230,231,231,232,232, \
+ 233,249,234,234,235,235,236,236,237,237,238,238,239,239,240,240, \
+ 241,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248, \
+ 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
+ 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
+ 265,283,266,284,285,267,268,268,269,269,270,270,271,271,272,272, \
+ 273,273,274,274,275,275,276,276,277,277,278,278,279,279,280,280, \
+ 281,281,282,282,283,283,284,284,285,285,286,295,332,287,288,288, \
+ 289,309,320,320,321,291,292,292,293,293,294,324,295,295,296,296, \
+ 297,297,298,298,299,299,300,300,301,301,302,302,303,333,304,304, \
+ 345,305,306,306,307,307,348,338,339,309,310,310,311,311,312,312, \
+ 333,323,324,354,355,345,336,316,317,337,338,338,319,339,320,340, \
+ 365,365,344,333,323,345,346,324,325,347,348,348,349,327,328,328, \
+ 384,329,330,330,331,364,332,354,366,366,356,356,357,335,336,336, \
+ 337,337,338,338,339,383,384,340,341,341,342,342,343,343,344,344, \
+ 345,345,346,346,347,347,348,348,349,382,383,350,351,351,352,352, \
+ 353,353,402,354,355,355,356,356,357,357,358,358,359,419,420,420, \
+ 361,361,362,362,363,363,364,364,365,365,366,366,367,367,368,368, \
+ 369,369,370,370,371,371,372,372,373,373,374,374,375,375,376,376, \
+ 377,377,378,378,379,379,380,380,381,381,382,382,383,383,384,384, \
+ 385,385,399,490,387,387,388,388,389,389,390,390,391,391,392,392, \
+ 393,393,420,394,395,395,396,396,397,397,398,398,399,399,400,400, \
+ 401,401,402,402,507,507,508,404,405,509,510,510,407,407,408,473, \
+ 474,474,527,436,437,411,412,412,413,491,492,492,415,415,416,416, \
+ 417,417,418,418,419,419,420,420,421,463,492,492,521,479,480,424, \
+ 425,425,426,426,427,427,428,484,429,429,430,472,473,473,474,432, \
+ 433,433,434,504,491,491,492,436,437,507,508,508,481,467,468,468, \
+ 469,483,484,512,513,471,486,500,501,515,516,488,489,447,448,490, \
+ 509,509,510,510,481,526,527,512,513,528,544,544,545,455,456,456, \
+ 517,487,488,488,489,489,490,460,461,461,462,492,508,508,509,509, \
+ 510,510,511,526,527,467,468,528,544,469,470,515,546,531,517,472, \
+ 473,473,474,474,475,535,581,476,477,477,478,478,479,479,480,480, \
+ 481,481,482,482,483,547,548,484,485,485,486,566,535,487,488,488, \
+ 489,489,490,490,491,491,492,492,493,493,494,494,495,495,496,496, \
+ 497,561,498,578,579,579,580,580,581,501,502,598,599,503,504,504, \
+ 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
+
+#define MPFR_MUL_THRESHOLD 11 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 441 /* bits */
+#define MPFR_EXP_THRESHOLD 9145 /* bits */
diff --git a/src/x86/mparam.h b/src/x86/mparam.h
new file mode 100644
index 000000000..b621b6b09
--- /dev/null
+++ b/src/x86/mparam.h
@@ -0,0 +1,139 @@
+/* Generated by MPFR's tuneup.c, 2009-02-09, gcc 4.3 */
+/* toto.loria.fr (Pentium M) with gmp-4.2.4 */
+
+#define MPFR_TUNE_CASE "Generic x86"
+#define MPFR_MULHIGH_TAB \
+ -1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30, \
+ 30,30,28,30,30,30,30,30,30,34,34,34,32,32,44,38, \
+ 43,39,44,44,41,41,44,44,47,43,48,44,47,51,48,48, \
+ 47,55,48,48,55,51,56,52,51,55,60,56,55,55,60,60, \
+ 55,63,60,60,63,59,60,60,63,63,60,60,59,67,68,60, \
+ 63,67,60,68,75,81,68,68,81,81,78,86,81,81,84,80, \
+ 80,80,81,81,85,85,86,86,84,84,85,91,86,86,87,87, \
+ 85,91,92,92,93,99,91,97,98,86,93,93,97,91,92,92, \
+ 90,99,91,97,98,95,96,93,97,115,128,116,117,111,115,109, \
+ 128,128,129,129,121,115,128,116,126,129,127,121,140,128,129,129, \
+ 141,129,126,126,127,127,128,128,129,129,138,138,139,127,128,128, \
+ 129,153,134,150,139,139,140,140,141,141,134,162,139,147,140,144, \
+ 141,141,150,174,175,151,140,164,165,165,150,154,155,151,152,152, \
+ 153,165,150,162,163,151,152,176,177,165,158,162,171,163,164,164, \
+ 164,164,165,165,176,166,177,172,168,163,189,189,165,175,176,176, \
+ 177,177,183,188,179,189,180,180,186,176,177,177,183,188,189,189, \
+ 185,180,186,201,177,187,183,188,189,189,200,200,201,191,192,177, \
+ 188,198,189,204,195,200,201,201,212,192,188,188,189,194,200,200, \
+ 221,239,240,240,199,235,236,230,237,231,220,208,239,239,234,240, \
+ 229,247,236,230,231,231,238,238,239,239,240,240,247,265,248,236, \
+ 237,237,256,238,239,257,258,240,253,253,254,266,249,255,256,274, \
+ 275,275,276,276,247,253,254,272,267,273,256,256,257,257,276,258, \
+ 256,256,257,257,258,258,266,294,288,267,275,275,276,276,291,270, \
+ 257,271,293,272,294,294,260,267,261,275,276,276,291,270,271,285, \
+ 293,293,294,273,288,267,275,275,276,276,277,284,285,285,293,293, \
+ 273,294,274,274,275,289,276,290,291,277,292,285,293,293,294,294, \
+ 297,297,330,290,267,307,276,276,309,293,294,310,311,319,328,328, \
+ 329,289,330,290,283,283,348,292,293,381,294,382,327,343,384,384, \
+ 289,289,290,330,291,339,308,308,381,341,342,366,383,383,384,384, \
+ 345,345,378,378,379,323,324,380,381,381,382,366,375,383,384,376, \
+ 383,365,384,384,376,340,341,341,342,378,379,379,380,371,417,381, \
+ 382,382,383,383,384,384,376,376,377,377,378,378,379,379,380,380, \
+ 381,381,382,382,383,419,420,384,376,412,413,377,378,414,415,388, \
+ 416,416,417,381,382,382,419,419,384,384,412,385,386,395,396,378, \
+ 379,419,380,420,381,381,382,382,383,383,384,384,395,405,456,406, \
+ 417,417,418,418,419,419,420,420,381,491,492,492,383,413,414,384, \
+ 415,455,456,426,427,417,488,418,419,419,420,420,441,491,492,492, \
+ 383,413,434,454,455,415,416,416,417,417,418,418,459,429,490,420, \
+ 486,420,487,454,422,499,423,489,490,490,491,491,492,492,416,438, \
+ 450,527,528,528,419,485,453,420,432,465,455,455,456,456,479,479, \
+ 480,491,492,459,493,526,527,494,495,484,485,452,453,453,487,454, \
+ 455,499,489,456,490,490,480,491,492,481,482,526,527,527,528,528, \
+ 521,485,486,474,499,487,524,524,489,489,490,490,491,491,492,492, \
+ 505,505,506,482,483,459,520,472,497,485,498,498,499,535,488,524, \
+ 489,525,490,490,491,527,528,492,529,493,494,506,495,483,484,484, \
+ 485,521,522,486,487,487,488,488,489,489,490,562,563,491,492,492, \
+ 528,528,490,555,556,491,492,492,506,519,520,507,521,521,522,522, \
+ 523,523,524,524,525,564,552,500,501,527,528,528,529,542,556,530, \
+ 531,531,558,532,533,520,534,521,548,561,562,562,563,563,564,564, \
+ 526,526,527,527,528,528,542,555,556,530,531,557,558,558,598,559, \
+ 585,557,558,558,559,531,560,560,561,561,562,548,535,549,564,564, \
+ 579,537,580,552,567,567,582,568,569,597,556,584,585,571,600,572, \
+ 573,559,588,588,533,561,590,604,605,563,564,564,565,607,608,580, \
+ 567,609,582,582,597,597,528,598,599,571,558,600,559,559,560,602, \
+ 599,599,600,600,556,601,602,617,633,603,604,634,635,560,561,636, \
+ 562,562,563,563,564,564,580,715,716,596,717,717,553,568,569,569, \
+ 570,600,631,601,602,662,663,663,604,604,695,710,711,711,712,712, \
+ 713,713,714,714,715,715,596,656,657,657,583,598,599,599,600,600, \
+ 689,769,770,594,691,707,708,596,597,693,710,662,695,711,712,712, \
+ 713,697,698,714,715,699,716,716,717,717,750,702,719,751,720,704, \
+ 705,705,722,738,755,771,708,708,709,741,742,710,711,743,744,712, \
+ 713,761,714,714,715,715,716,716,717,717,766,750,751,751,736,736 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,0,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,8,8, \
+ 9,9,10,12,11,11,12,12,13,13,14,14,15,15,16,16, \
+ 17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24, \
+ 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
+ 33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,42, \
+ 41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48, \
+ 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
+ 57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64, \
+ 65,65,66,66,67,67,68,68,69,84,70,70,74,71,72,72, \
+ 73,73,74,74,78,75,76,76,77,77,84,78,79,79,80,80, \
+ 81,84,88,82,83,83,84,84,85,85,92,92,87,87,88,88, \
+ 89,89,96,90,91,91,92,92,93,93,100,94,95,95,96,96, \
+ 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
+ 105,105,106,106,107,123,108,108,129,129,126,126,135,135,112,128, \
+ 129,129,134,134,123,135,128,140,141,129,134,134,135,135,140,132, \
+ 133,141,122,122,123,135,136,140,153,141,126,126,127,159,128,128, \
+ 129,129,135,135,141,131,132,132,133,133,134,134,135,135,136,136, \
+ 137,137,138,138,159,139,140,140,141,141,142,142,143,143,144,144, \
+ 145,165,146,146,147,147,148,148,149,149,150,150,151,171,152,152, \
+ 153,153,154,159,155,155,156,156,157,157,158,158,159,159,170,170, \
+ 161,161,162,162,163,163,188,164,165,165,166,166,167,167,168,186, \
+ 187,169,170,170,171,171,172,172,173,173,174,174,175,175,176,176, \
+ 177,177,178,178,179,179,180,180,181,181,182,182,183,183,184,184, \
+ 185,185,186,186,187,187,188,188,189,189,190,190,191,191,192,192, \
+ 193,193,194,194,195,195,196,196,197,197,198,198,199,199,200,200, \
+ 201,201,202,202,203,203,204,204,205,205,206,206,207,207,208,208, \
+ 209,209,210,210,211,211,212,212,213,213,214,214,215,215,216,216, \
+ 217,217,218,218,219,261,248,220,221,249,222,222,223,223,224,224, \
+ 225,225,226,226,227,227,228,228,229,229,230,230,231,231,248,232, \
+ 233,233,234,234,235,235,236,236,261,285,270,238,239,239,240,248, \
+ 249,249,242,242,243,251,260,244,261,245,246,246,247,247,248,248, \
+ 249,249,250,250,251,251,252,252,285,253,254,254,255,255,256,256, \
+ 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
+ 265,265,266,284,285,267,268,268,269,296,297,270,271,271,272,272, \
+ 273,273,274,274,275,275,276,276,277,277,278,278,279,279,280,280, \
+ 281,281,282,282,283,283,284,284,285,321,295,286,287,287,288,288, \
+ 289,289,320,320,321,321,292,292,293,313,314,294,295,295,296,296, \
+ 297,297,298,298,309,299,300,300,301,301,302,332,333,333,304,384, \
+ 375,305,306,306,307,307,308,308,309,309,320,310,311,311,312,312, \
+ 313,363,394,384,375,375,316,376,357,317,348,348,369,319,320,320, \
+ 321,321,366,366,378,323,324,324,402,369,359,381,382,382,383,383, \
+ 373,384,396,374,375,375,387,365,366,399,389,400,401,390,391,402, \
+ 381,381,382,404,405,405,384,373,374,374,375,386,387,387,388,388, \
+ 378,378,390,401,391,391,403,414,404,382,383,383,395,395,396,418, \
+ 401,401,378,402,403,427,428,404,405,417,382,418,419,419,420,384, \
+ 409,421,422,410,423,423,436,436,437,401,402,366,427,463,464,368, \
+ 369,369,370,370,455,371,372,456,373,433,434,434,435,471,472,472, \
+ 473,377,474,378,379,451,380,380,381,381,382,382,383,383,384,384, \
+ 398,398,399,438,465,387,427,440,441,389,455,390,391,391,392,392, \
+ 393,393,394,420,395,395,396,396,397,397,398,398,399,399,400,400, \
+ 401,401,402,402,455,403,404,508,405,405,406,406,407,433,434,447, \
+ 474,435,436,410,411,411,412,412,413,413,414,492,415,454,455,416, \
+ 417,417,418,418,419,419,420,420,421,421,422,464,465,423,424,424, \
+ 425,425,426,426,427,455,456,484,485,429,430,472,473,431,432,432, \
+ 433,461,434,434,435,477,436,436,437,437,438,438,509,453,468,510, \
+ 441,441,512,456,471,527,528,472,543,445,544,446,447,447,448,504, \
+ 449,509,510,450,451,451,452,527,453,483,514,544,545,455,456,546, \
+ 502,517,518,518,504,519,535,460,461,551,552,507,508,463,464,509, \
+ 510,525,526,526,527,542,543,543,544,544,545,515,516,546,472,472, \
+ 473,563,474,474,475,535,551,476,477,582,478,553,479,479,480,480, \
+ 481,545,546,530,531,547,516,564,597,549,550,486,487,551,488,536, \
+ 537,489,490,490,491,491,492,492,493,493,494,494,495,495,496,496, \
+ 497,497,578,546,499,499,500,500,501,501,502,598,599,503,504,504, \
+ 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
+
+#define MPFR_MUL_THRESHOLD 10 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 32 /* bits */
+#define MPFR_EXP_THRESHOLD 6268 /* bits */
diff --git a/src/x86_64/core2/mparam.h b/src/x86_64/core2/mparam.h
new file mode 100644
index 000000000..4c7d57a85
--- /dev/null
+++ b/src/x86_64/core2/mparam.h
@@ -0,0 +1,144 @@
+/* Generated by MPFR's tuneup.c, 2010-09-24, gcc 4.4.4 */
+/* tarte.loria.fr with gmp-5.0.1 */
+
+#define MPFR_TUNE_CASE "64-bit Core2"
+#define MPFR_MULHIGH_TAB \
+ -1,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,8,10, \
+ 10,10,10,12,11,12,12,13,14,15,16,17,18,18,19,18, \
+ 23,24,24,24,24,24,28,26,28,28,30,24,28,24,24,26, \
+ 32,30,32,28,28,30,32,30,30,32,32,32,34,34,34,36, \
+ 47,47,46,48,47,47,48,46,47,47,48,48,47,47,52,52, \
+ 47,47,48,48,47,51,52,52,53,55,56,56,59,53,56,56, \
+ 55,61,64,64,63,63,60,68,69,69,64,64,67,69,80,72, \
+ 69,75,80,80,81,81,78,78,81,81,80,80,81,87,92,90, \
+ 80,92,87,81,91,94,92,92,90,90,88,91,92,92,87,93, \
+ 88,91,92,89,90,93,94,91,92,104,87,99,94,103,92,104, \
+ 90,99,103,103,104,104,93,93,100,103,116,101,102,99,100,139, \
+ 110,140,141,141,139,133,140,140,141,141,139,139,140,140,138,141, \
+ 141,141,138,138,139,139,140,136,141,141,134,138,135,135,136,140, \
+ 141,141,138,138,139,135,140,140,141,141,138,138,139,139,140,140, \
+ 141,153,154,158,159,151,140,156,165,165,186,186,187,159,164,188, \
+ 165,165,186,186,187,163,188,164,165,165,186,162,187,187,180,188, \
+ 184,184,180,185,186,186,187,187,188,188,184,184,185,165,201,201, \
+ 187,187,188,188,204,204,220,185,186,201,187,202,188,188,204,204, \
+ 220,185,201,201,187,187,188,188,204,214,220,220,216,211,212,187, \
+ 188,188,204,204,210,220,216,201,217,252,188,233,204,219,220,220, \
+ 203,251,240,240,235,211,212,212,219,243,280,220,233,281,282,282, \
+ 277,247,236,236,279,279,220,280,269,281,276,276,235,235,236,272, \
+ 273,279,274,280,281,275,282,270,277,277,278,278,279,279,280,280, \
+ 281,281,276,276,277,247,272,272,279,279,274,274,275,275,276,276, \
+ 270,270,278,278,279,300,280,280,330,281,282,275,304,276,277,305, \
+ 306,306,279,279,329,280,281,281,282,282,311,318,305,298,327,306, \
+ 328,328,329,329,330,330,282,282,304,304,305,305,306,306,328,328, \
+ 322,329,330,330,317,352,318,325,305,326,327,327,328,328,329,329, \
+ 305,329,330,330,323,323,324,348,325,317,318,318,327,327,328,328, \
+ 329,329,330,330,363,371,324,372,349,405,406,358,375,359,376,376, \
+ 377,377,378,378,371,371,372,364,349,349,366,406,407,407,408,352, \
+ 353,377,378,378,363,371,372,404,405,405,406,406,407,439,440,440, \
+ 437,437,375,375,439,439,440,440,378,378,406,406,407,407,408,408, \
+ 436,400,428,437,438,438,439,439,440,440,423,423,424,406,407,407, \
+ 408,408,436,436,419,437,429,438,439,439,440,440,432,423,406,406, \
+ 407,470,408,408,436,436,437,437,438,438,439,430,431,431,504,504, \
+ 439,429,440,440,431,431,472,432,463,503,504,434,435,465,436,436, \
+ 437,467,468,438,439,439,440,440,471,471,472,462,463,503,494,494, \
+ 455,485,466,496,437,497,488,438,439,439,440,440,471,471,472,502, \
+ 503,503,504,504,435,495,496,496,437,487,438,438,439,499,500,470, \
+ 486,486,487,498,499,488,467,500,501,501,502,502,503,503,504,471, \
+ 472,472,495,495,540,540,497,486,487,542,543,543,544,544,501,501, \
+ 480,502,503,503,493,493,538,472,495,495,496,540,541,497,498,487, \
+ 488,488,500,500,501,501,502,502,503,503,504,504,472,615,495,495, \
+ 497,497,498,498,499,583,584,500,501,501,502,502,503,503,504,504, \
+ 541,541,542,542,543,543,544,544,629,533,630,630,631,631,632,584, \
+ 621,621,622,538,611,623,624,504,589,589,590,542,543,615,616,544, \
+ 629,629,630,630,631,631,632,632,621,609,610,586,587,587,588,636, \
+ 632,632,633,633,582,634,635,635,636,584,637,611,612,638,639,613, \
+ 614,640,615,589,590,616,630,591,592,592,632,632,607,633,634,621, \
+ 609,609,610,636,611,611,612,625,626,639,627,627,615,615,629,629, \
+ 630,630,631,631,632,632,633,685,686,634,635,622,636,688,637,624, \
+ 627,711,628,712,727,727,728,728,631,631,632,632,661,661,662,704, \
+ 635,635,706,706,637,637,638,722,709,723,710,710,711,711,712,712, \
+ 727,727,728,686,631,631,632,632,731,731,732,732,733,663,664,734, \
+ 679,735,736,708,639,639,640,710,711,711,712,712,685,685,686,728, \
+ 704,704,705,735,736,706,707,707,708,708,709,709,710,710,711,711, \
+ 712,712,728,728,729,729,730,730,731,731,717,732,733,718,734,734, \
+ 720,705,706,736,677,707,723,723,679,709,725,680,711,726,712,712, \
+ 728,728,684,729,685,685,686,686,687,732,688,733,704,704,705,735, \
+ 705,705,706,706,707,707,724,708,709,709,710,710,711,711,712,712, \
+ 713,729,730,714,715,731,732,716,781,733,734,734,735,735,736,720, \
+ 705,705,706,818,819,707,820,708,709,725,726,822,711,727,824,824, \
+ 777,825,730,730,731,779,780,828,733,733,734,734,735,735,736,736 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,0,0,0,0,0,0,4,5,5,7,6,7,7,8,8, \
+ 9,9,10,10,11,11,12,13,14,14,16,16,17,16,17,16, \
+ 17,17,21,18,19,19,20,20,21,21,22,22,23,23,24,24, \
+ 25,25,26,26,28,32,28,28,32,32,32,32,32,32,34,34, \
+ 33,33,34,34,35,35,36,36,37,39,38,38,39,39,40,40, \
+ 41,41,42,42,43,43,46,52,45,51,52,46,47,47,56,56, \
+ 51,51,52,56,51,51,52,64,55,59,56,64,63,55,56,56, \
+ 57,59,58,58,59,59,64,64,63,67,68,68,63,75,64,64, \
+ 68,68,72,72,67,67,68,68,69,72,70,70,71,71,72,72, \
+ 76,76,80,80,78,75,76,76,77,80,84,84,79,79,80,80, \
+ 84,84,88,88,83,83,84,84,85,88,92,92,99,99,88,88, \
+ 98,95,96,96,106,91,92,92,102,99,103,97,98,110,108,105, \
+ 105,105,114,110,99,99,104,116,117,117,122,110,115,111,116,116, \
+ 117,105,122,114,107,115,116,116,117,113,114,122,115,123,116,116, \
+ 117,113,114,114,123,115,116,116,117,117,118,122,119,123,164,156, \
+ 141,121,122,122,123,123,140,148,125,129,126,126,135,155,128,140, \
+ 129,129,135,155,141,141,147,147,148,148,164,154,140,135,141,156, \
+ 137,137,138,138,139,154,140,140,141,141,162,142,143,163,164,164, \
+ 145,155,156,156,147,147,148,163,154,154,155,155,196,156,162,157, \
+ 163,188,204,154,155,155,196,156,172,172,188,178,184,164,175,180, \
+ 161,179,180,180,163,163,164,164,171,219,184,178,179,203,204,192, \
+ 187,217,218,194,195,195,202,220,203,203,204,204,199,217,236,212, \
+ 195,219,220,220,203,251,252,252,217,217,218,248,219,219,220,220, \
+ 251,245,246,246,247,247,248,236,249,219,244,220,251,251,204,240, \
+ 249,249,243,250,251,244,245,245,260,267,268,247,262,220,249,256, \
+ 250,264,251,244,252,252,267,267,268,268,220,220,228,270,236,250, \
+ 251,251,259,266,267,267,268,268,220,220,242,235,236,236,251,244, \
+ 252,252,246,246,247,247,248,248,242,249,264,236,251,244,245,252, \
+ 265,265,266,266,251,267,252,252,245,245,326,262,311,247,248,248, \
+ 249,249,266,266,251,259,292,268,261,261,262,326,311,255,264,264, \
+ 265,249,266,266,267,243,292,268,293,293,310,294,311,311,248,280, \
+ 281,281,266,266,267,251,308,268,309,261,326,310,311,263,296,256, \
+ 311,266,294,267,259,259,260,260,261,261,262,325,263,326,264,327, \
+ 265,265,266,266,267,267,268,268,296,359,324,324,325,325,326,326, \
+ 327,282,292,292,293,311,312,294,322,376,278,323,360,324,325,343, \
+ 344,326,309,408,310,328,311,374,294,312,376,376,359,359,342,342, \
+ 309,339,340,390,391,311,312,312,323,323,324,324,325,325,326,326, \
+ 327,407,308,328,389,389,360,360,391,311,342,312,343,343,344,374, \
+ 375,325,406,406,327,327,328,328,439,439,440,360,391,391,392,392, \
+ 423,373,434,434,435,375,376,436,407,437,408,438,359,439,440,440, \
+ 431,343,344,344,356,499,390,390,391,391,436,392,437,437,438,438, \
+ 439,406,407,407,408,408,497,431,388,487,433,488,390,500,501,501, \
+ 502,502,503,437,504,504,439,406,440,407,408,408,420,497,487,432, \
+ 488,433,434,500,501,501,502,436,437,437,504,438,439,439,440,440, \
+ 437,437,438,438,439,439,440,440,501,501,502,502,503,503,504,504, \
+ 433,433,434,494,471,495,472,520,437,485,486,498,499,487,488,488, \
+ 501,501,502,502,503,503,504,504,481,529,434,518,495,495,472,496, \
+ 497,485,486,438,487,499,440,440,501,501,502,502,503,503,504,492, \
+ 502,502,503,503,504,439,440,440,493,519,520,533,534,495,535,496, \
+ 536,497,498,472,499,434,500,500,436,501,502,502,438,503,504,439, \
+ 440,531,532,532,494,520,534,534,535,535,497,536,472,472,499,486, \
+ 487,487,488,501,502,502,503,568,504,504,531,492,493,532,533,468, \
+ 487,487,488,488,503,503,504,504,519,519,520,520,535,535,536,494, \
+ 495,495,552,482,497,497,498,498,485,499,500,472,487,501,502,502, \
+ 503,503,504,504,533,533,534,436,535,535,536,522,523,495,496,524, \
+ 525,469,526,526,485,471,472,472,487,487,502,628,503,503,504,504, \
+ 584,584,600,600,496,616,527,632,528,498,529,499,500,500,501,531, \
+ 532,652,563,503,504,564,565,520,566,551,567,552,568,568,524,629, \
+ 630,600,631,631,632,662,558,558,499,664,620,500,531,501,502,502, \
+ 503,533,504,504,535,535,536,536,552,567,598,568,629,599,525,660, \
+ 529,561,546,530,531,531,532,532,629,565,630,630,631,663,536,536, \
+ 521,553,554,554,555,555,620,620,621,605,622,494,623,623,496,624, \
+ 561,593,626,562,563,563,564,564,565,597,582,566,663,615,632,632, \
+ 553,601,586,586,619,587,524,524,525,525,526,622,623,527,608,592 \
+
+#define MPFR_MUL_THRESHOLD 10 /* limbs */
+#define MPFR_SQR_THRESHOLD 13 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 1030 /* bits */
+#define MPFR_EXP_THRESHOLD 9603 /* bits */
+#define MPFR_SINCOS_THRESHOLD 25095 /* bits */
+#define MPFR_AI_THRESHOLD1 -12440 /* threshold for negative input of mpfr_ai */
+#define MPFR_AI_THRESHOLD2 1433
+#define MPFR_AI_THRESHOLD3 19860
diff --git a/src/x86_64/pentium4/mparam.h b/src/x86_64/pentium4/mparam.h
new file mode 100644
index 000000000..9a52d63f1
--- /dev/null
+++ b/src/x86_64/pentium4/mparam.h
@@ -0,0 +1,139 @@
+/* Generated by MPFR's tuneup.c, 2009-02-09, gcc 4.3 */
+/* crumble.loria.fr with gmp-4.2.4 */
+
+#define MPFR_TUNE_CASE "64-bit Pentium4"
+#define MPFR_MULHIGH_TAB \
+ -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
+ 0,0,0,18,19,19,24,26,0,0,24,26,28,27,26,28, \
+ 30,32,32,32,30,30,34,34,32,34,34,36,32,34,36,34, \
+ 35,0,0,36,35,0,36,48,0,0,48,48,51,0,48,52, \
+ 51,0,52,52,51,55,52,56,55,0,56,60,59,59,60,64, \
+ 63,63,64,64,67,67,68,72,63,71,72,60,67,67,60,72, \
+ 63,61,64,64,63,71,68,68,71,67,68,68,67,71,68,72, \
+ 68,68,72,72,76,76,68,68,72,72,70,103,104,71,72,96, \
+ 103,94,95,104,96,96,94,103,104,104,96,96,103,103,104,104, \
+ 120,120,103,103,104,104,120,111,103,112,104,104,120,120,109,103, \
+ 119,119,120,120,127,112,128,128,120,120,136,127,128,128,120,126, \
+ 121,129,126,134,135,135,136,120,113,113,114,118,127,127,136,120, \
+ 121,125,126,118,119,119,120,136,121,153,122,122,127,119,120,128, \
+ 165,153,162,134,163,159,136,136,153,153,134,158,135,135,136,136, \
+ 153,153,162,158,159,159,156,152,153,189,158,186,187,163,156,168, \
+ 189,159,165,165,176,176,172,172,183,173,164,174,165,165,176,176, \
+ 177,177,183,188,189,189,180,185,176,186,177,177,193,188,189,189, \
+ 200,200,201,201,177,207,188,198,199,189,200,200,186,201,207,207, \
+ 213,203,189,189,200,210,201,196,212,207,208,213,189,199,200,200, \
+ 203,209,216,204,199,223,206,200,213,225,208,208,203,203,216,204, \
+ 205,205,224,212,213,213,184,208,209,203,198,210,199,187,206,200, \
+ 201,189,208,208,203,185,216,198,187,199,200,212,213,213,202,208, \
+ 203,197,198,198,199,211,212,212,285,213,280,274,227,275,288,204, \
+ 284,284,278,285,307,216,273,308,309,309,275,219,213,311,305,284, \
+ 306,306,307,307,308,308,309,309,303,303,311,311,284,312,285,285, \
+ 307,286,287,308,309,309,303,303,304,332,305,305,306,299,328,300, \
+ 308,301,309,309,303,310,311,311,333,305,285,285,307,314,308,308, \
+ 321,305,354,322,331,355,332,308,309,333,334,334,303,303,304,312, \
+ 305,305,306,306,307,307,308,308,309,309,302,302,375,311,312,360, \
+ 353,305,330,354,307,355,380,308,357,309,358,358,359,311,312,312, \
+ 345,329,378,354,331,355,356,356,357,357,374,334,375,311,336,384, \
+ 356,329,330,357,331,358,404,332,369,333,334,334,335,353,354,354, \
+ 355,382,356,347,357,357,358,358,377,359,405,333,352,379,353,353, \
+ 354,354,355,355,356,356,357,357,358,376,359,377,369,360,379,370, \
+ 380,380,354,372,355,382,383,401,357,357,376,358,377,377,405,378, \
+ 379,379,380,380,381,381,402,402,353,403,404,404,405,405,376,376, \
+ 377,357,368,358,379,379,360,400,401,381,372,452,373,383,454,384, \
+ 405,405,456,356,357,357,358,378,379,379,490,370,381,381,492,402, \
+ 463,403,404,404,405,405,456,456,527,357,448,448,489,449,400,450, \
+ 453,453,454,454,455,455,456,456,468,490,491,491,492,404,405,482, \
+ 472,450,451,462,463,463,464,453,465,465,455,455,456,489,490,490, \
+ 491,491,492,492,405,526,483,527,484,484,452,452,486,453,454,454, \
+ 455,477,456,522,490,490,491,524,481,492,526,482,483,527,495,517, \
+ 521,533,522,474,499,523,524,524,489,489,490,526,527,527,528,528, \
+ 529,529,518,554,495,483,496,472,521,557,486,522,535,535,524,512, \
+ 525,561,526,526,491,527,528,528,529,517,518,554,531,519,544,520, \
+ 521,521,558,546,559,535,560,536,489,573,490,514,491,563,492,492, \
+ 528,489,555,555,491,491,492,596,597,545,546,546,560,599,600,600, \
+ 523,562,563,511,564,525,526,630,553,527,528,528,607,555,595,543, \
+ 544,531,532,571,559,559,599,560,535,535,562,562,563,537,564,564, \
+ 565,630,514,631,528,632,555,542,634,595,557,557,597,558,559,559, \
+ 571,599,530,530,559,545,546,616,561,547,548,534,633,563,564,564, \
+ 607,537,594,636,567,539,624,554,555,555,598,598,557,557,558,572, \
+ 559,559,560,574,603,561,562,632,563,563,578,592,593,607,580,608, \
+ 553,609,624,596,597,597,598,612,627,585,600,614,573,629,616,602, \
+ 599,599,585,585,616,616,587,632,603,603,634,634,635,605,636,621, \
+ 622,607,623,593,609,609,625,610,611,626,612,597,628,598,599,599, \
+ 600,630,631,616,602,632,633,603,634,634,635,635,636,636,607,637, \
+ 668,608,609,609,610,610,611,611,597,657,628,628,629,629,630,630, \
+ 609,625,562,626,627,563,564,628,629,629,630,630,631,599,664,632, \
+ 681,633,634,634,635,635,620,636,621,621,622,622,623,639,672,592, \
+ 609,641,594,594,595,627,596,564,629,597,598,598,631,599,600,600, \
+ 601,681,618,634,603,635,636,636,557,621,622,606,623,623,608,608 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,7,7,8,8, \
+ 9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16, \
+ 17,17,18,18,19,19,20,20,21,21,22,22,26,23,24,24, \
+ 25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32, \
+ 33,33,34,34,35,35,36,38,39,39,38,38,39,39,40,40, \
+ 41,41,42,42,43,43,44,46,45,45,46,46,47,47,48,48, \
+ 49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56, \
+ 57,57,58,58,59,59,60,60,61,61,62,68,63,63,64,64, \
+ 65,68,66,69,67,67,71,68,69,75,76,76,71,71,72,72, \
+ 73,82,74,80,78,75,76,76,77,83,78,81,82,79,80,80, \
+ 81,81,82,85,83,83,84,84,85,85,86,86,87,87,88,88, \
+ 89,92,90,93,94,91,92,92,93,93,94,94,95,95,96,96, \
+ 97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104, \
+ 105,105,106,106,107,107,108,112,109,109,110,118,111,111,112,112, \
+ 113,113,114,122,123,115,116,116,117,117,118,118,119,119,120,120, \
+ 121,121,122,122,123,123,124,124,125,125,126,126,127,127,128,128, \
+ 129,154,135,130,131,131,132,132,133,133,134,134,135,140,151,136, \
+ 142,137,138,143,144,154,155,150,151,156,152,142,153,158,144,144, \
+ 165,145,146,146,152,162,148,148,149,149,150,150,151,171,152,152, \
+ 153,153,154,154,155,155,156,156,157,157,158,158,159,159,160,160, \
+ 161,161,162,162,163,163,164,164,165,165,166,166,167,167,168,168, \
+ 169,169,170,170,171,183,172,172,173,173,174,174,175,187,194,182, \
+ 183,177,178,178,179,179,180,180,181,181,182,182,195,183,184,184, \
+ 185,197,186,186,187,187,188,188,189,189,190,190,191,191,192,204, \
+ 207,200,201,208,209,195,196,203,204,197,198,198,199,199,200,200, \
+ 201,215,216,230,217,210,211,218,212,205,206,206,207,207,208,208, \
+ 209,230,231,231,232,225,226,226,227,227,228,242,222,257,216,216, \
+ 217,245,246,218,219,240,241,234,235,235,236,264,230,258,224,224, \
+ 225,225,226,226,227,227,228,260,261,229,230,270,247,231,232,232, \
+ 233,233,234,234,235,235,236,236,237,237,238,238,239,239,240,240, \
+ 241,241,242,242,243,243,244,244,245,245,246,246,247,247,248,248, \
+ 249,249,250,250,251,251,252,252,253,253,254,254,255,255,256,256, \
+ 257,257,258,258,259,259,260,260,261,261,262,262,263,263,264,264, \
+ 265,265,266,266,267,267,268,268,269,269,279,270,271,271,272,272, \
+ 273,273,274,274,275,275,276,276,277,277,278,278,279,279,280,280, \
+ 281,281,282,282,283,283,284,284,294,285,286,286,287,287,288,288, \
+ 289,289,290,290,291,291,292,292,293,293,294,294,295,295,296,296, \
+ 297,297,298,298,299,299,300,300,301,301,302,302,303,303,304,304, \
+ 305,305,306,306,307,307,308,308,309,309,310,310,311,311,312,312, \
+ 313,313,314,314,315,315,316,316,317,317,318,318,319,319,320,320, \
+ 321,321,322,322,323,323,324,324,325,325,326,337,349,338,328,328, \
+ 329,329,330,330,331,331,332,332,333,333,334,334,335,335,336,336, \
+ 337,337,338,360,339,339,340,340,341,341,342,342,343,354,355,344, \
+ 345,345,368,368,369,369,359,348,393,382,383,361,362,362,363,363, \
+ 365,365,366,390,367,391,380,404,357,393,406,382,383,395,396,396, \
+ 385,409,386,410,387,399,388,412,413,401,390,366,367,403,404,416, \
+ 417,405,382,406,407,407,408,408,409,409,410,410,435,411,412,412, \
+ 413,413,414,378,439,427,428,392,393,441,442,430,479,455,444,432, \
+ 437,385,451,386,465,439,427,388,389,454,455,455,404,417,444,444, \
+ 393,393,394,446,460,460,461,487,410,475,398,476,477,464,400,465, \
+ 401,492,402,402,403,403,404,404,405,405,406,419,407,407,408,408, \
+ 409,409,410,410,411,411,412,412,413,413,414,414,415,415,416,416, \
+ 417,417,418,418,419,419,420,420,421,421,422,422,423,423,424,508, \
+ 425,425,426,426,427,427,428,428,429,429,430,430,431,431,432,432, \
+ 433,433,434,434,435,435,436,436,437,437,438,536,439,439,440,440, \
+ 441,441,442,442,443,443,444,444,445,445,446,446,447,447,448,476, \
+ 449,449,450,450,451,451,482,452,453,453,454,454,455,455,456,456, \
+ 457,457,458,458,459,459,460,460,461,461,462,462,463,463,464,464, \
+ 465,465,466,466,467,467,468,468,469,469,470,470,471,471,472,472, \
+ 473,473,474,474,475,475,476,476,477,477,478,478,479,479,480,480, \
+ 481,481,482,482,483,483,484,484,485,485,486,486,487,487,488,488, \
+ 489,489,490,490,491,491,492,492,493,493,494,494,495,495,496,496, \
+ 497,497,498,498,499,499,500,500,501,501,502,502,503,503,504,504, \
+ 505,505,506,506,507,507,508,508,509,509,510,510,511,511,512,512 \
+
+#define MPFR_MUL_THRESHOLD 8 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 519 /* bits */
+#define MPFR_EXP_THRESHOLD 6533 /* bits */
diff --git a/tune/tuneup.c b/tune/tuneup.c
index e97a7f2eb..7577d4aad 100644
--- a/tune/tuneup.c
+++ b/tune/tuneup.c
@@ -326,8 +326,15 @@ mpfr_speed_measure (speed_function_t fun, struct speed_params *s, char *m)
double t = -1.0;
int i;
int number_of_iterations = 5;
- for (i = 0; i < number_of_iterations && t == -1.0; i++)
- t = speed_measure (fun, s);
+ for (i = 1; i <= number_of_iterations && t == -1.0; i++)
+ {
+ t = speed_measure (fun, s);
+ if ( (t == -1.0) && (i+1 <= number_of_iterations) )
+ {
+ printf("speed_measure failed. Trying again... (%d/%d)\n",
+ i+1, number_of_iterations);
+ }
+ }
if (t == -1.0)
{
fprintf (stderr, "Failed to measure %s!\n", m);
@@ -422,14 +429,14 @@ domeasure2 (long int *threshold1, long int *threshold2, long int *threshold3,
*threshold1 = 0;
*threshold2 = 0;
*threshold3 = 0;
- t1 = mpfr_speed_measure (func, &s, "1");
+ t1 = mpfr_speed_measure (func, &s, "function 1");
if (MPFR_IS_NEG (x))
*threshold1 = INT_MIN;
else
*threshold3 = INT_MAX;
*threshold2 = INT_MAX;
- t2 = mpfr_speed_measure (func, &s, "2");
+ t2 = mpfr_speed_measure (func, &s, "function 2");
/* t1 is the time of the first algo (used for low prec) */
if (t2 >= t1)
@@ -1018,7 +1025,8 @@ all (const char *filename)
#else
fprintf (f, "system compiler */\n");
#endif
- fprintf (f, "\n");
+ fprintf (f, "\n\n");
+ fprintf (f, "#define MPFR_TUNE_CASE \"Tuned with 'make tune'\"\n");
/* Tune mulhigh */
tune_mul_mulders (f);