summaryrefslogtreecommitdiff
path: root/mpn/generic
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gmplib.org>2011-11-13 21:31:57 +0100
committerTorbjorn Granlund <tege@gmplib.org>2011-11-13 21:31:57 +0100
commite037315eefee1b249bbe052bfd84c1a1c01c6f72 (patch)
tree2b35e55f2dd56d23f887d8d0b3e551f5e8628b25 /mpn/generic
parent890e8c8008d6518223533612dfe95b07db2c696d (diff)
downloadgmp-e037315eefee1b249bbe052bfd84c1a1c01c6f72.tar.gz
Add support for POWM_SEC_TABLE table.
Diffstat (limited to 'mpn/generic')
-rw-r--r--mpn/generic/powm_sec.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/mpn/generic/powm_sec.c b/mpn/generic/powm_sec.c
index 3a6f55403..c6358947b 100644
--- a/mpn/generic/powm_sec.c
+++ b/mpn/generic/powm_sec.c
@@ -189,15 +189,27 @@ getbits (const mp_limb_t *p, mp_bitcnt_t bi, int nbits)
}
}
+#ifndef POWM_SEC_TABLE
+#if GMP_NUMB_BITS < 50
+#define POWM_SEC_TABLE 2,33,96,780,2741
+#else
+#define POWM_SEC_TABLE 2,130,524,2578
+#endif
+#endif
+
+#if TUNE_PROGRAM_BUILD
+extern int win_size (mp_bitcnt_t);
+#else
static inline int
win_size (mp_bitcnt_t eb)
{
int k;
- static mp_bitcnt_t x[] = {0,4,27,100,325,1026,2905,7848,20457,51670,~(mp_bitcnt_t)0};
+ static mp_bitcnt_t x[] = {0,POWM_SEC_TABLE,~(mp_bitcnt_t)0};
for (k = 1; eb > x[k]; k++)
;
return k;
}
+#endif
/* Convert U to REDC form, U_r = B^n * U mod M */
static void