projects
/
oweals
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some crypto applications are now being built on Unix, so they should on VMS as well...
[oweals/openssl.git]
/
crypto
/
bn
/
bn_asm.c
diff --git
a/crypto/bn/bn_asm.c
b/crypto/bn/bn_asm.c
index c9eb0e9d0545b6a0fa129a49cd81befc48e969e0..4d3da16a0c9ae173a07be3bb0eb2f1c6f6415df6 100644
(file)
--- a/
crypto/bn/bn_asm.c
+++ b/
crypto/bn/bn_asm.c
@@
-62,10
+62,7
@@
#ifdef BN_LLONG
#ifdef BN_LLONG
-BN_ULONG bn_mul_add_words(rp,ap,num,w)
-BN_ULONG *rp,*ap;
-int num;
-BN_ULONG w;
+BN_ULONG bn_mul_add_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
{
BN_ULONG c1=0;
{
BN_ULONG c1=0;
@@
-89,17
+86,15
@@
BN_ULONG w;
return(c1);
}
return(c1);
}
-BN_ULONG bn_mul_words(rp,ap,num,w)
-BN_ULONG *rp,*ap;
-int num;
-BN_ULONG w;
+BN_ULONG bn_mul_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
{
BN_ULONG c1=0;
bn_check_num(num);
if (num <= 0) return(c1);
{
BN_ULONG c1=0;
bn_check_num(num);
if (num <= 0) return(c1);
- for (;;)
+ /* for (;;) */
+ while (1) /* circumvent egcs-1.1.2 bug */
{
mul(rp[0],ap[0],w,c1);
if (--num == 0) break;
{
mul(rp[0],ap[0],w,c1);
if (--num == 0) break;
@@
-115,9
+110,7
@@
BN_ULONG w;
return(c1);
}
return(c1);
}
-void bn_sqr_words(r,a,n)
-BN_ULONG *r,*a;
-int n;
+void bn_sqr_words(BN_ULONG *r, BN_ULONG *a, int n)
{
bn_check_num(n);
if (n <= 0) return;
{
bn_check_num(n);
if (n <= 0) return;
@@
-148,10
+141,7
@@
int n;
#else
#else
-BN_ULONG bn_mul_add_words(rp,ap,num,w)
-BN_ULONG *rp,*ap;
-int num;
-BN_ULONG w;
+BN_ULONG bn_mul_add_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
{
BN_ULONG c=0;
BN_ULONG bl,bh;
{
BN_ULONG c=0;
BN_ULONG bl,bh;
@@
-178,10
+168,7
@@
BN_ULONG w;
return(c);
}
return(c);
}
-BN_ULONG bn_mul_words(rp,ap,num,w)
-BN_ULONG *rp,*ap;
-int num;
-BN_ULONG w;
+BN_ULONG bn_mul_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
{
BN_ULONG carry=0;
BN_ULONG bl,bh;
{
BN_ULONG carry=0;
BN_ULONG bl,bh;
@@
-208,9
+195,7
@@
BN_ULONG w;
return(carry);
}
return(carry);
}
-void bn_sqr_words(r,a,n)
-BN_ULONG *r,*a;
-int n;
+void bn_sqr_words(BN_ULONG *r, BN_ULONG *a, int n)
{
bn_check_num(n);
if (n <= 0) return;
{
bn_check_num(n);
if (n <= 0) return;
@@
-237,8
+222,7
@@
int n;
#if defined(BN_LLONG) && defined(BN_DIV2W)
#if defined(BN_LLONG) && defined(BN_DIV2W)
-BN_ULONG bn_div_words(h,l,d)
-BN_ULONG h,l,d;
+BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
{
return((BN_ULONG)(((((BN_ULLONG)h)<<BN_BITS2)|l)/(BN_ULLONG)d));
}
{
return((BN_ULONG)(((((BN_ULLONG)h)<<BN_BITS2)|l)/(BN_ULLONG)d));
}
@@
-247,8
+231,7
@@
BN_ULONG h,l,d;
/* Divide h-l by d and return the result. */
/* I need to test this some more :-( */
/* Divide h-l by d and return the result. */
/* I need to test this some more :-( */
-BN_ULONG bn_div_words(h,l,d)
-BN_ULONG h,l,d;
+BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
{
BN_ULONG dh,dl,q,ret=0,th,tl,t;
int i,count=2;
{
BN_ULONG dh,dl,q,ret=0,th,tl,t;
int i,count=2;
@@
-281,18
+264,20
@@
BN_ULONG h,l,d;
else
q=h/dh;
else
q=h/dh;
+ th=q*dh;
+ tl=dl*q;
for (;;)
{
for (;;)
{
- t=
(h-q*dh)
;
+ t=
h-th
;
if ((t&BN_MASK2h) ||
if ((t&BN_MASK2h) ||
- ((
dl*q
) <= (
- (t<<BN_BITS4)
+
+ ((
tl
) <= (
+ (t<<BN_BITS4)
|
((l&BN_MASK2h)>>BN_BITS4))))
break;
q--;
((l&BN_MASK2h)>>BN_BITS4))))
break;
q--;
+ th-=dh;
+ tl-=dl;
}
}
- th=q*dh;
- tl=q*dl;
t=(tl>>BN_BITS4);
tl=(tl<<BN_BITS4)&BN_MASK2h;
th+=t;
t=(tl>>BN_BITS4);
tl=(tl<<BN_BITS4)&BN_MASK2h;
th+=t;
@@
-318,9
+303,7
@@
BN_ULONG h,l,d;
#endif
#ifdef BN_LLONG
#endif
#ifdef BN_LLONG
-BN_ULONG bn_add_words(r,a,b,n)
-BN_ULONG *r,*a,*b;
-int n;
+BN_ULONG bn_add_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
{
BN_ULLONG ll=0;
{
BN_ULLONG ll=0;
@@
-356,9
+339,7
@@
int n;
return((BN_ULONG)ll);
}
#else
return((BN_ULONG)ll);
}
#else
-BN_ULONG bn_add_words(r,a,b,n)
-BN_ULONG *r,*a,*b;
-int n;
+BN_ULONG bn_add_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
{
BN_ULONG c,l,t;
{
BN_ULONG c,l,t;
@@
-408,9
+389,7
@@
int n;
}
#endif
}
#endif
-BN_ULONG bn_sub_words(r,a,b,n)
-BN_ULONG *r,*a,*b;
-int n;
+BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
{
BN_ULONG t1,t2;
int c=0;
{
BN_ULONG t1,t2;
int c=0;
@@
-447,7
+426,7
@@
int n;
return(c);
}
return(c);
}
-#ifdef BN_COMBA
+#ifdef BN_
MUL_
COMBA
#undef bn_mul_comba8
#undef bn_mul_comba4
#undef bn_mul_comba8
#undef bn_mul_comba4
@@
-510,8
+489,7
@@
int n;
mul_add_c2((a)[i],(a)[j],c0,c1,c2)
#endif
mul_add_c2((a)[i],(a)[j],c0,c1,c2)
#endif
-void bn_mul_comba8(r,a,b)
-BN_ULONG *r,*a,*b;
+void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
{
#ifdef BN_LLONG
BN_ULLONG t;
{
#ifdef BN_LLONG
BN_ULLONG t;
@@
-620,8
+598,7
@@
BN_ULONG *r,*a,*b;
r[15]=c1;
}
r[15]=c1;
}
-void bn_mul_comba4(r,a,b)
-BN_ULONG *r,*a,*b;
+void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
{
#ifdef BN_LLONG
BN_ULLONG t;
{
#ifdef BN_LLONG
BN_ULLONG t;
@@
-666,8
+643,7
@@
BN_ULONG *r,*a,*b;
r[7]=c2;
}
r[7]=c2;
}
-void bn_sqr_comba8(r,a)
-BN_ULONG *r,*a;
+void bn_sqr_comba8(BN_ULONG *r, BN_ULONG *a)
{
#ifdef BN_LLONG
BN_ULLONG t,tt;
{
#ifdef BN_LLONG
BN_ULLONG t,tt;
@@
-748,8
+724,7
@@
BN_ULONG *r,*a;
r[15]=c1;
}
r[15]=c1;
}
-void bn_sqr_comba4(r,a)
-BN_ULONG *r,*a;
+void bn_sqr_comba4(BN_ULONG *r, BN_ULONG *a)
{
#ifdef BN_LLONG
BN_ULLONG t,tt;
{
#ifdef BN_LLONG
BN_ULLONG t,tt;
@@
-790,22
+765,21
@@
BN_ULONG *r,*a;
#else
/* hmm... is it faster just to do a multiply? */
#else
/* hmm... is it faster just to do a multiply? */
-void bn_sqr_comba4(r,a)
-BN_ULONG *r,*a;
+#undef bn_sqr_comba4
+void bn_sqr_comba4(BN_ULONG *r, BN_ULONG *a)
{
BN_ULONG t[8];
bn_sqr_normal(r,a,4,t);
}
{
BN_ULONG t[8];
bn_sqr_normal(r,a,4,t);
}
-void bn_sqr_comba8(r,a)
-BN_ULONG *r,*a;
+#undef bn_sqr_comba8
+void bn_sqr_comba8(BN_ULONG *r, BN_ULONG *a)
{
BN_ULONG t[16];
bn_sqr_normal(r,a,8,t);
}
{
BN_ULONG t[16];
bn_sqr_normal(r,a,8,t);
}
-void bn_mul_comba4(r,a,b)
-BN_ULONG *r,*a,*b;
+void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
{
r[4]=bn_mul_words( &(r[0]),a,4,b[0]);
r[5]=bn_mul_add_words(&(r[1]),a,4,b[1]);
{
r[4]=bn_mul_words( &(r[0]),a,4,b[0]);
r[5]=bn_mul_add_words(&(r[1]),a,4,b[1]);
@@
-813,8
+787,7
@@
BN_ULONG *r,*a,*b;
r[7]=bn_mul_add_words(&(r[3]),a,4,b[3]);
}
r[7]=bn_mul_add_words(&(r[3]),a,4,b[3]);
}
-void bn_mul_comba8(r,a,b)
-BN_ULONG *r,*a,*b;
+void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
{
r[ 8]=bn_mul_words( &(r[0]),a,8,b[0]);
r[ 9]=bn_mul_add_words(&(r[1]),a,8,b[1]);
{
r[ 8]=bn_mul_words( &(r[0]),a,8,b[0]);
r[ 9]=bn_mul_add_words(&(r[1]),a,8,b[1]);