1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
Index: mpi-1.8.6/mpi.c
===================================================================
--- mpi-1.8.6.orig/mpi.c 2011-12-10 19:43:20.000000000 -0800
+++ mpi-1.8.6/mpi.c 2011-12-12 21:55:28.000000000 -0800
@@ -3255,7 +3255,7 @@
unless absolutely necessary.
*/
max = USED(a);
- w = dp[max - 1] * d;
+ w = dp[max - 1] * (mp_word) d;
if(CARRYOUT(w) != 0) {
if((res = s_mp_pad(a, max + 1)) != MP_OKAY)
return res;
@@ -3263,7 +3263,7 @@
}
for(ix = 0; ix < max; ix++) {
- w = (dp[ix] * d) + k;
+ w = (dp[ix] * (mp_word) d) + k;
dp[ix] = ACCUM(w);
k = CARRYOUT(w);
}
@@ -3480,7 +3480,7 @@
pa = DIGITS(a);
for(jx = 0; jx < ua; ++jx, ++pa) {
pt = pbt + ix + jx;
- w = *pb * *pa + k + *pt;
+ w = *pb * (mp_word) *pa + k + *pt;
*pt = ACCUM(w);
k = CARRYOUT(w);
}
@@ -3562,7 +3562,7 @@
if(*pa1 == 0)
continue;
- w = DIGIT(&tmp, ix + ix) + (*pa1 * *pa1);
+ w = DIGIT(&tmp, ix + ix) + (*pa1 * (mp_word) *pa1);
pbt[ix + ix] = ACCUM(w);
k = CARRYOUT(w);
@@ -3584,7 +3584,7 @@
pt = pbt + ix + jx;
/* Compute the multiplicative step */
- w = *pa1 * *pa2;
+ w = *pa1 * (mp_word) *pa2;
/* If w is more than half MP_WORD_MAX, the doubling will
overflow, and we need to record a carry out into the next
@@ -3628,7 +3628,7 @@
*/
kx = 1;
while(k) {
- k = pbt[ix + jx + kx] + 1;
+ k = (mp_word) pbt[ix + jx + kx] + 1;
pbt[ix + jx + kx] = ACCUM(k);
k = CARRYOUT(k);
++kx;
|