summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gmp-impl.h8
-rw-r--r--mp_minv_tab.c8
-rw-r--r--mpn/alpha/mode1o.asm2
-rw-r--r--mpn/asm-defs.m48
-rw-r--r--mpn/ia64/mode1o.asm2
-rw-r--r--mpn/powerpc32/README22
-rw-r--r--mpn/powerpc32/mode1o.asm6
-rw-r--r--mpn/powerpc64/mode64/dive_1.asm4
-rw-r--r--mpn/powerpc64/mode64/mode1o.asm4
-rw-r--r--mpn/x86/dive_1.asm6
-rw-r--r--mpn/x86/k6/mmx/dive_1.asm4
-rw-r--r--mpn/x86/k6/mode1o.asm6
-rw-r--r--mpn/x86/k7/dive_1.asm6
-rw-r--r--mpn/x86/k7/mode1o.asm6
-rw-r--r--mpn/x86/p6/dive_1.asm6
-rw-r--r--mpn/x86/p6/mode1o.asm6
-rw-r--r--mpn/x86/pentium/dive_1.asm4
-rw-r--r--mpn/x86/pentium/mode1o.asm4
-rw-r--r--mpn/x86/pentium4/sse2/dive_1.asm6
-rw-r--r--mpn/x86/pentium4/sse2/mode1o.asm6
-rw-r--r--mpn/x86_64/dive_1.asm4
-rw-r--r--mpn/x86_64/mode1o.asm6
-rw-r--r--tune/speed.c12
23 files changed, 75 insertions, 71 deletions
diff --git a/gmp-impl.h b/gmp-impl.h
index 02a264e3c..d1f2abd2e 100644
--- a/gmp-impl.h
+++ b/gmp-impl.h
@@ -2579,7 +2579,7 @@ mp_limb_t mpn_modexact_1_odd _PROTO ((mp_srcptr src, mp_size_t size,
: mpn_mod_1 (src, size, divisor))
-/* modlimb_invert() sets inv to the multiplicative inverse of n modulo
+/* binvert_limb() sets inv to the multiplicative inverse of n modulo
2^GMP_NUMB_BITS, ie. satisfying inv*n == 1 mod 2^GMP_NUMB_BITS.
n must be odd (otherwise such an inverse doesn't exist).
@@ -2599,8 +2599,8 @@ mp_limb_t mpn_modexact_1_odd _PROTO ((mp_srcptr src, mp_size_t size,
A 4-bit inverse can be obtained effectively from xoring bits 1 and 2 into
bit 3, for instance with (((n + 2) & 4) << 1) ^ n. */
-#define modlimb_invert_table __gmp_modlimb_invert_table
-__GMP_DECLSPEC extern const unsigned char modlimb_invert_table[128];
+#define binvert_limb_table __gmp_binvert_limb_table
+__GMP_DECLSPEC extern const unsigned char binvert_limb_table[128];
#define binvert_limb(inv,n) \
do { \
@@ -2608,7 +2608,7 @@ __GMP_DECLSPEC extern const unsigned char modlimb_invert_table[128];
mp_limb_t __inv; \
ASSERT ((__n & 1) == 1); \
\
- __inv = modlimb_invert_table[(__n/2) & 0x7F]; /* 8 */ \
+ __inv = binvert_limb_table[(__n/2) & 0x7F]; /* 8 */ \
if (GMP_NUMB_BITS > 8) __inv = 2 * __inv - __inv * __inv * __n; \
if (GMP_NUMB_BITS > 16) __inv = 2 * __inv - __inv * __inv * __n; \
if (GMP_NUMB_BITS > 32) __inv = 2 * __inv - __inv * __inv * __n; \
diff --git a/mp_minv_tab.c b/mp_minv_tab.c
index 9eb987513..a7f342b7c 100644
--- a/mp_minv_tab.c
+++ b/mp_minv_tab.c
@@ -1,4 +1,4 @@
-/* A table of data supporting modlimb_invert().
+/* A table of data supporting binvert_limb().
THE CONTENTS OF THIS FILE ARE FOR INTERNAL USE AND MAY CHANGE
INCOMPATIBLY OR DISAPPEAR IN A FUTURE GNU MP RELEASE. */
@@ -25,10 +25,10 @@ along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
#include "gmp-impl.h"
-/* modlimb_invert_table[i] is the multiplicative inverse of 2*i+1 mod 256,
- ie. (modlimb_invert_table[i] * (2*i+1)) % 256 == 1 */
+/* binvert_limb_table[i] is the multiplicative inverse of 2*i+1 mod 256,
+ ie. (binvert_limb_table[i] * (2*i+1)) % 256 == 1 */
-const unsigned char modlimb_invert_table[128] = {
+const unsigned char binvert_limb_table[128] = {
0x01, 0xAB, 0xCD, 0xB7, 0x39, 0xA3, 0xC5, 0xEF,
0xF1, 0x1B, 0x3D, 0xA7, 0x29, 0x13, 0x35, 0xDF,
0xE1, 0x8B, 0xAD, 0x97, 0x19, 0x83, 0xA5, 0xCF,
diff --git a/mpn/alpha/mode1o.asm b/mpn/alpha/mode1o.asm
index f64f4f46e..0611cd8ac 100644
--- a/mpn/alpha/mode1o.asm
+++ b/mpn/alpha/mode1o.asm
@@ -75,7 +75,7 @@ PROLOGUE(mpn_modexact_1c_odd,gp)
C r18 d
C r19 c
- LEA(r0, modlimb_invert_table)
+ LEA(r0, binvert_limb_table)
srl r18, 1, r20 C d >> 1
and r20, 127, r20 C idx = d>>1 & 0x7F
diff --git a/mpn/asm-defs.m4 b/mpn/asm-defs.m4
index 23f441c3b..bbafad018 100644
--- a/mpn/asm-defs.m4
+++ b/mpn/asm-defs.m4
@@ -1361,8 +1361,12 @@ define_mpn(preinv_divrem_1)
define_mpn(preinv_mod_1)
define_mpn(nand_n)
define_mpn(nior_n)
+define_mpn(powm)
+define_mpn(powlo)
define_mpn(random)
define_mpn(random2)
+define_mpn(redc_1)
+define_mpn(redc_2)
define_mpn(rsh1add_n)
define_mpn(rsh1sub_n)
define_mpn(rshift)
@@ -1403,9 +1407,9 @@ deflit(__clz_tab,
m4_assert_defined(`GSYM_PREFIX')
`GSYM_PREFIX`'MPN(`clz_tab')')
-deflit(modlimb_invert_table,
+deflit(binvert_limb_table,
m4_assert_defined(`GSYM_PREFIX')
-`GSYM_PREFIX`'__gmp_modlimb_invert_table')
+`GSYM_PREFIX`'__gmp_binvert_limb_table')
dnl Usage: ASM_START()
diff --git a/mpn/ia64/mode1o.asm b/mpn/ia64/mode1o.asm
index 7b65ccfcb..35335f4d4 100644
--- a/mpn/ia64/mode1o.asm
+++ b/mpn/ia64/mode1o.asm
@@ -97,7 +97,7 @@ C probably be about 14 cycles (2 per bit beyond the first couple). Or it
C could be taken from 4 bits to 8 with xmpy doubling as used beyond 8 bits,
C but that would be about 11 cycles.
C
-C The table is not the same as modlimb_invert_table, instead it's 256 bytes,
+C The table is not the same as binvert_limb_table, instead it's 256 bytes,
C designed to be indexed by the low byte of the divisor. The divisor is
C always odd, so the relevant data is every second byte in the table. The
C padding lets us use zxt1 instead of extr.u, the latter would cost an extra
diff --git a/mpn/powerpc32/README b/mpn/powerpc32/README
index c7c8a2cb0..43aca466c 100644
--- a/mpn/powerpc32/README
+++ b/mpn/powerpc32/README
@@ -81,9 +81,9 @@ not a problem for the limited GMP assembly usage.)
GLOBAL REFERENCES
Linux non-PIC
- lis 9, __gmp_modlimb_invert_table@ha
+ lis 9, __gmp_binvert_limb_table@ha
rlwinm 11, 5, 31, 25, 31
- la 9, __gmp_modlimb_invert_table@l(9)
+ la 9, __gmp_binvert_limb_table@l(9)
lbzx 11, 9, 11
Linux PIC (FIXME)
@@ -100,15 +100,15 @@ Linux PIC (FIXME)
AIX (always PIC)
LC..0:
- .tc __gmp_modlimb_invert_table[TC],__gmp_modlimb_invert_table[RW]
+ .tc __gmp_binvert_limb_table[TC],__gmp_binvert_limb_table[RW]
lwz 9, LC..0(2)
rlwinm 0, 5, 31, 25, 31
lbzx 0, 9, 0
Darwin (non-PIC)
- lis r2, ha16(___gmp_modlimb_invert_table)
+ lis r2, ha16(___gmp_binvert_limb_table)
rlwinm r9, r5, 31, 25, 31
- la r2, lo16(___gmp_modlimb_invert_table)(r2)
+ la r2, lo16(___gmp_binvert_limb_table)(r2)
lbzx r0, r2, r9
Darwin (PIC)
mflr r0
@@ -116,26 +116,26 @@ Darwin (PIC)
L0001$pb:
mflr r7
mtlr r0
- addis r2, r7, ha16(L___gmp_modlimb_invert_table$non_lazy_ptr-L0001$pb)
+ addis r2, r7, ha16(L___gmp_binvert_limb_table$non_lazy_ptr-L0001$pb)
rlwinm r9, r5, 31, 25, 31
- lwz r2, lo16(L___gmp_modlimb_invert_table$non_lazy_ptr-L0001$pb)(r2)
+ lwz r2, lo16(L___gmp_binvert_limb_table$non_lazy_ptr-L0001$pb)(r2)
lbzx r0, r2, r9
------
.non_lazy_symbol_pointer
-L___gmp_modlimb_invert_table$non_lazy_ptr:
- .indirect_symbol ___gmp_modlimb_invert_table
+L___gmp_binvert_limb_table$non_lazy_ptr:
+ .indirect_symbol ___gmp_binvert_limb_table
.long 0
.subsections_via_symbols
-For GNU/Linux and Darwin, we might want to duplicate __gmp_modlimb_invert_table
+For GNU/Linux and Darwin, we might want to duplicate __gmp_binvert_limb_table
into the text section in this file. We should thus be able to reach it like
this:
blr L0
L0: mflr r2
rlwinm r9, r5, 31, 25, 31
- addi r9, r9, lo16(local_modlimb_table-L0)
+ addi r9, r9, lo16(local_binvert_table-L0)
lbzx r0, r2, r9
diff --git a/mpn/powerpc32/mode1o.asm b/mpn/powerpc32/mode1o.asm
index 038f69c47..ba9a393b0 100644
--- a/mpn/powerpc32/mode1o.asm
+++ b/mpn/powerpc32/mode1o.asm
@@ -36,7 +36,7 @@ C mp_limb_t mpn_modexact_1c_odd (mp_srcptr src, mp_size_t size,
C mp_limb_t divisor, mp_limb_t carry);
C
C For PIC, the inverse is established arithmetically since it measures about
-C 5 cycles faster than the nonsense needed to access modlimb_invert_table in
+C 5 cycles faster than the nonsense needed to access binvert_limb_table in
C SVR4 or Darwin style PIC. AIX might be better, since it avoids bl/mflr to
C get at the GOT/TOC/whatever.
C
@@ -52,7 +52,7 @@ C range above for 750 and 7400.
ASM_START()
-EXTERN(modlimb_invert_table)
+EXTERN(binvert_limb_table)
PROLOGUE(mpn_modexact_1_odd)
li r6, 0
@@ -74,7 +74,7 @@ C Load from our table with PIC is so slow on Linux and Darwin that we avoid it
mullw r7, r7, r8 C i*i*d
sub r4, r4, r7 C inverse, 8 bits
',`
- LEA( r7, modlimb_invert_table)
+ LEA( r7, binvert_limb_table)
rlwinm r4, r5, 31,25,31 C (divisor/2) & 0x7F
lbzx r4, r4,r7 C inverse, 8 bits
')
diff --git a/mpn/powerpc64/mode64/dive_1.asm b/mpn/powerpc64/mode64/dive_1.asm
index 47b518853..a4a06da26 100644
--- a/mpn/powerpc64/mode64/dive_1.asm
+++ b/mpn/powerpc64/mode64/dive_1.asm
@@ -38,7 +38,7 @@ define(`d', `r6')
ASM_START()
-EXTERN(modlimb_invert_table)
+EXTERN(binvert_limb_table)
PROLOGUE(mpn_divexact_1)
addic. n, n, -1
@@ -59,7 +59,7 @@ L(2):
srd d, d, r0
L(7):
mtctr n
- LEA( r5, modlimb_invert_table)
+ LEA( r5, binvert_limb_table)
rldicl r11, d, 63, 57
C cmpdi cr7, r0, 0
lbzx r0, r5, r11
diff --git a/mpn/powerpc64/mode64/mode1o.asm b/mpn/powerpc64/mode64/mode1o.asm
index 92f28d3c7..95aa2870d 100644
--- a/mpn/powerpc64/mode64/mode1o.asm
+++ b/mpn/powerpc64/mode64/mode1o.asm
@@ -37,7 +37,7 @@ define(`cy', `r6')
ASM_START()
-EXTERN(modlimb_invert_table)
+EXTERN(binvert_limb_table)
PROLOGUE(mpn_modexact_1c_odd)
addic. n, n, -1 C set carry as side effect
@@ -59,7 +59,7 @@ L(4): subf r3, r8, r6
subf r3, r8, r3
blr
-L(2): LEA( r7, modlimb_invert_table)
+L(2): LEA( r7, binvert_limb_table)
rldicl r9, d, 63, 57
mtctr n
lbzx r0, r7, r9
diff --git a/mpn/x86/dive_1.asm b/mpn/x86/dive_1.asm
index ea0fc8b04..d2d02f9f7 100644
--- a/mpn/x86/dive_1.asm
+++ b/mpn/x86/dive_1.asm
@@ -68,10 +68,10 @@ L(strip_twos):
andl $127, %eax C d/2, 7 bits
ifdef(`PIC',`
- LEA( modlimb_invert_table, %edx)
- movzbl (%eax,%edx), %eax C inv 8 bits
+ LEA( binvert_limb_table, %edx)
+ movzbl (%eax,%edx), %eax C inv 8 bits
',`
- movzbl modlimb_invert_table(%eax), %eax C inv 8 bits
+ movzbl binvert_limb_table(%eax), %eax C inv 8 bits
')
leal (%eax,%eax), %edx C 2*inv
diff --git a/mpn/x86/k6/mmx/dive_1.asm b/mpn/x86/k6/mmx/dive_1.asm
index 71b5d6b2b..9cc90d88a 100644
--- a/mpn/x86/k6/mmx/dive_1.asm
+++ b/mpn/x86/k6/mmx/dive_1.asm
@@ -86,10 +86,10 @@ L(strip_twos):
andl $127, %eax C d/2, 7 bits
ifdef(`PIC',`
- LEA( modlimb_invert_table, %ebp)
+ LEA( binvert_limb_table, %ebp)
Zdisp( movzbl, 0,(%eax,%ebp), %eax)
',`
- movzbl modlimb_invert_table(%eax), %eax C inv 8 bits
+ movzbl binvert_limb_table(%eax), %eax C inv 8 bits
')
pushl %edi FRAME_pushl()
diff --git a/mpn/x86/k6/mode1o.asm b/mpn/x86/k6/mode1o.asm
index 49c184c43..f29987791 100644
--- a/mpn/x86/k6/mode1o.asm
+++ b/mpn/x86/k6/mode1o.asm
@@ -74,10 +74,10 @@ L(start_1c):
pushl %ebp FRAME_pushl()
ifdef(`PIC',`
- LEA( modlimb_invert_table, %edi)
-Zdisp( movzbl, 0,(%ecx,%edi), %edi) C inv 8 bits
+ LEA( binvert_limb_table, %edi)
+Zdisp( movzbl, 0,(%ecx,%edi), %edi) C inv 8 bits
',`
- movzbl modlimb_invert_table(%ecx), %edi C inv 8 bits
+ movzbl binvert_limb_table(%ecx), %edi C inv 8 bits
')
leal (%edi,%edi), %ecx C 2*inv
diff --git a/mpn/x86/k7/dive_1.asm b/mpn/x86/k7/dive_1.asm
index 35940d82a..c994e0fb0 100644
--- a/mpn/x86/k7/dive_1.asm
+++ b/mpn/x86/k7/dive_1.asm
@@ -76,10 +76,10 @@ L(strip_twos):
andl $127, %eax C d/2, 7 bits
ifdef(`PIC',`
- LEA( modlimb_invert_table, %edx)
- movzbl (%eax,%edx), %eax C inv 8 bits
+ LEA( binvert_limb_table, %edx)
+ movzbl (%eax,%edx), %eax C inv 8 bits
',`
- movzbl modlimb_invert_table(%eax), %eax C inv 8 bits
+ movzbl binvert_limb_table(%eax), %eax C inv 8 bits
')
leal (%eax,%eax), %edx C 2*inv
diff --git a/mpn/x86/k7/mode1o.asm b/mpn/x86/k7/mode1o.asm
index c638035e0..ef858049a 100644
--- a/mpn/x86/k7/mode1o.asm
+++ b/mpn/x86/k7/mode1o.asm
@@ -80,10 +80,10 @@ L(start_1c):
andl $127, %eax
ifdef(`PIC',`
- LEA( modlimb_invert_table, %edi)
- movzbl (%eax,%edi), %edi C inv 8 bits
+ LEA( binvert_limb_table, %edi)
+ movzbl (%eax,%edi), %edi C inv 8 bits
',`
- movzbl modlimb_invert_table(%eax), %edi C inv 8 bits
+ movzbl binvert_limb_table(%eax), %edi C inv 8 bits
')
xorl %edx, %edx C initial extra carry
diff --git a/mpn/x86/p6/dive_1.asm b/mpn/x86/p6/dive_1.asm
index cf0866bd2..e8efc28ea 100644
--- a/mpn/x86/p6/dive_1.asm
+++ b/mpn/x86/p6/dive_1.asm
@@ -75,10 +75,10 @@ deflit(`FRAME',0)
andl $127, %eax
ifdef(`PIC',`
- LEA( modlimb_invert_table, %ebp)
- movzbl (%eax,%ebp), %ebp C inv 8 bits
+ LEA( binvert_limb_table, %ebp)
+ movzbl (%eax,%ebp), %ebp C inv 8 bits
',`
- movzbl modlimb_invert_table(%eax), %ebp C inv 8 bits
+ movzbl binvert_limb_table(%eax), %ebp C inv 8 bits
')
leal (%ebp,%ebp), %eax C 2*inv
diff --git a/mpn/x86/p6/mode1o.asm b/mpn/x86/p6/mode1o.asm
index a3418ce1d..4aff48d7e 100644
--- a/mpn/x86/p6/mode1o.asm
+++ b/mpn/x86/p6/mode1o.asm
@@ -73,10 +73,10 @@ L(start_1c):
andl $127, %eax
ifdef(`PIC',`
- LEA( modlimb_invert_table, %edi)
- movzbl (%eax,%edi), %edi C inv 8 bits
+ LEA( binvert_limb_table, %edi)
+ movzbl (%eax,%edi), %edi C inv 8 bits
',`
- movzbl modlimb_invert_table(%eax), %edi C inv 8 bits
+ movzbl binvert_limb_table(%eax), %edi C inv 8 bits
')
xorl %edx, %edx C initial extra carry
diff --git a/mpn/x86/pentium/dive_1.asm b/mpn/x86/pentium/dive_1.asm
index 65926d498..79885244a 100644
--- a/mpn/x86/pentium/dive_1.asm
+++ b/mpn/x86/pentium/dive_1.asm
@@ -112,13 +112,13 @@ L(here):
addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebp
C AGI
- movl modlimb_invert_table@GOT(%ebp), %ebp
+ movl binvert_limb_table@GOT(%ebp), %ebp
C AGI
movzbl (%eax,%ebp), %eax
',`
dnl non-PIC
- movzbl modlimb_invert_table(%eax), %eax C inv 8 bits
+ movzbl binvert_limb_table(%eax), %eax C inv 8 bits
')
movl %eax, %ebp C inv
diff --git a/mpn/x86/pentium/mode1o.asm b/mpn/x86/pentium/mode1o.asm
index 17ab6c6d4..222f64e5c 100644
--- a/mpn/x86/pentium/mode1o.asm
+++ b/mpn/x86/pentium/mode1o.asm
@@ -83,7 +83,7 @@ L(here):
andl $127, %eax
movl PARAM_SIZE, %ebx
- movl modlimb_invert_table@GOT(%ecx), %ecx
+ movl binvert_limb_table@GOT(%ecx), %ecx
subl $2, %ebx
movb (%eax,%ecx), %cl C inv 8 bits
@@ -100,7 +100,7 @@ dnl non-PIC
subl $2, %ebx
jc L(one_limb)
- movb modlimb_invert_table(%eax), %cl C inv 8 bits
+ movb binvert_limb_table(%eax), %cl C inv 8 bits
')
movl %ecx, %eax
diff --git a/mpn/x86/pentium4/sse2/dive_1.asm b/mpn/x86/pentium4/sse2/dive_1.asm
index 6b875154b..c50ef7d29 100644
--- a/mpn/x86/pentium4/sse2/dive_1.asm
+++ b/mpn/x86/pentium4/sse2/dive_1.asm
@@ -83,10 +83,10 @@ L(two_or_more):
andl $127, %eax C d/2, 7 bits
ifdef(`PIC',`
- LEA( modlimb_invert_table, %ecx)
- movzbl (%eax,%ecx), %eax C inv 8 bits
+ LEA( binvert_limb_table, %ecx)
+ movzbl (%eax,%ecx), %eax C inv 8 bits
',`
- movzbl modlimb_invert_table(%eax), %eax C inv 8 bits
+ movzbl binvert_limb_table(%eax), %eax C inv 8 bits
')
C
diff --git a/mpn/x86/pentium4/sse2/mode1o.asm b/mpn/x86/pentium4/sse2/mode1o.asm
index ac0d6d000..2f0b177a0 100644
--- a/mpn/x86/pentium4/sse2/mode1o.asm
+++ b/mpn/x86/pentium4/sse2/mode1o.asm
@@ -61,10 +61,10 @@ L(start_1c):
andl $127, %eax C d/2, 7 bits
ifdef(`PIC',`
- LEA( modlimb_invert_table, %edx)
- movzbl (%eax,%edx), %eax C inv 8 bits
+ LEA( binvert_limb_table, %edx)
+ movzbl (%eax,%edx), %eax C inv 8 bits
',`
- movzbl modlimb_invert_table(%eax), %eax C inv 8 bits
+ movzbl binvert_limb_table(%eax), %eax C inv 8 bits
')
C
diff --git a/mpn/x86_64/dive_1.asm b/mpn/x86_64/dive_1.asm
index d4a5ab5cc..4889faccb 100644
--- a/mpn/x86_64/dive_1.asm
+++ b/mpn/x86_64/dive_1.asm
@@ -54,9 +54,9 @@ L(odd): movq %rax, %rbx
andl $127, %eax C d/2, 7 bits
ifdef(`PIC',`
- movq modlimb_invert_table@GOTPCREL(%rip), %rdx
+ movq binvert_limb_table@GOTPCREL(%rip), %rdx
',`
- movabsq $modlimb_invert_table, %rdx
+ movabsq $binvert_limb_table, %rdx
')
movzbl (%rax,%rdx), %eax C inv 8 bits
diff --git a/mpn/x86_64/mode1o.asm b/mpn/x86_64/mode1o.asm
index f4fd7581b..c5f2bc799 100644
--- a/mpn/x86_64/mode1o.asm
+++ b/mpn/x86_64/mode1o.asm
@@ -63,7 +63,7 @@ C used.
C
C Enhancements:
C
-C For PIC, we shouldn't really need the GOT fetch for modlimb_invert_table,
+C For PIC, we shouldn't really need the GOT fetch for binvert_limb_table,
C it'll be in rodata or text in libgmp.so and can be accessed directly %rip
C relative. This would be for small model only (something we don't
C presently detect, but which is all that gcc 3.3.3 supports), since 8-byte
@@ -89,9 +89,9 @@ PROLOGUE(mpn_modexact_1c_odd)
movq %rdx, %r8 C d
shrl %edx C d/2
ifdef(`PIC',`
- movq modlimb_invert_table@GOTPCREL(%rip), %r9
+ movq binvert_limb_table@GOTPCREL(%rip), %r9
',`
- movabsq $modlimb_invert_table, %r9
+ movabsq $binvert_limb_table, %r9
')
andl $127, %edx
diff --git a/tune/speed.c b/tune/speed.c
index 659634e5d..47361bbfc 100644
--- a/tune/speed.c
+++ b/tune/speed.c
@@ -329,7 +329,7 @@ const struct routine_t {
{ "mpz_powm", speed_mpz_powm },
{ "mpz_powm_mod", speed_mpz_powm_mod },
{ "mpz_powm_redc", speed_mpz_powm_redc },
- { "mpz_powm_ui", speed_mpz_powm_ui },
+ { "mpz_powm_ui", speed_mpz_powm_ui, FLAG_R_OPTIONAL },
{ "mpz_mod", speed_mpz_mod },
{ "redc", speed_redc },
@@ -359,11 +359,11 @@ const struct routine_t {
{ "MPN_ZERO", speed_MPN_ZERO },
- { "modlimb_invert", speed_modlimb_invert, FLAG_NODATA },
- { "modlimb_invert_mul1", speed_modlimb_invert_mul1, FLAG_NODATA },
- { "modlimb_invert_loop", speed_modlimb_invert_loop, FLAG_NODATA },
- { "modlimb_invert_cond", speed_modlimb_invert_cond, FLAG_NODATA },
- { "modlimb_invert_arith", speed_modlimb_invert_arith, FLAG_NODATA },
+ { "binvert_limb", speed_binvert_limb, FLAG_NODATA },
+ { "binvert_limb_mul1", speed_binvert_limb_mul1, FLAG_NODATA },
+ { "binvert_limb_loop", speed_binvert_limb_loop, FLAG_NODATA },
+ { "binvert_limb_cond", speed_binvert_limb_cond, FLAG_NODATA },
+ { "binvert_limb_arith", speed_binvert_limb_arith, FLAG_NODATA },
{ "malloc_free", speed_malloc_free },
{ "malloc_realloc_free", speed_malloc_realloc_free },