diff options
Diffstat (limited to 'crypto/openssl/crypto/bn/comba.pl')
-rw-r--r-- | crypto/openssl/crypto/bn/comba.pl | 285 |
1 files changed, 0 insertions, 285 deletions
diff --git a/crypto/openssl/crypto/bn/comba.pl b/crypto/openssl/crypto/bn/comba.pl deleted file mode 100644 index 211a8b45c786..000000000000 --- a/crypto/openssl/crypto/bn/comba.pl +++ /dev/null @@ -1,285 +0,0 @@ -#!/usr/local/bin/perl - -$num=8; -$num2=8/2; - -print <<"EOF"; -/* crypto/bn/bn_comba.c */ -#include <stdio.h> -#include "bn_lcl.h" -/* Auto generated from crypto/bn/comba.pl - */ - -#undef bn_mul_comba8 -#undef bn_mul_comba4 -#undef bn_sqr_comba8 -#undef bn_sqr_comba4 - -#ifdef BN_LLONG -#define mul_add_c(a,b,c0,c1,c2) \\ - t=(BN_ULLONG)a*b; \\ - t1=(BN_ULONG)Lw(t); \\ - t2=(BN_ULONG)Hw(t); \\ - c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \\ - c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++; - -#define mul_add_c2(a,b,c0,c1,c2) \\ - t=(BN_ULLONG)a*b; \\ - tt=(t+t)&BN_MASK; \\ - if (tt < t) c2++; \\ - t1=(BN_ULONG)Lw(tt); \\ - t2=(BN_ULONG)Hw(tt); \\ - c0=(c0+t1)&BN_MASK2; \\ - if ((c0 < t1) && (((++t2)&BN_MASK2) == 0)) c2++; \\ - c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++; - -#define sqr_add_c(a,i,c0,c1,c2) \\ - t=(BN_ULLONG)a[i]*a[i]; \\ - t1=(BN_ULONG)Lw(t); \\ - t2=(BN_ULONG)Hw(t); \\ - c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \\ - c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++; - -#define sqr_add_c2(a,i,j,c0,c1,c2) \\ - mul_add_c2((a)[i],(a)[j],c0,c1,c2) -#else -#define mul_add_c(a,b,c0,c1,c2) \\ - t1=LBITS(a); t2=HBITS(a); \\ - bl=LBITS(b); bh=HBITS(b); \\ - mul64(t1,t2,bl,bh); \\ - c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \\ - c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++; - -#define mul_add_c2(a,b,c0,c1,c2) \\ - t1=LBITS(a); t2=HBITS(a); \\ - bl=LBITS(b); bh=HBITS(b); \\ - mul64(t1,t2,bl,bh); \\ - if (t2 & BN_TBIT) c2++; \\ - t2=(t2+t2)&BN_MASK2; \\ - if (t1 & BN_TBIT) t2++; \\ - t1=(t1+t1)&BN_MASK2; \\ - c0=(c0+t1)&BN_MASK2; \\ - if ((c0 < t1) && (((++t2)&BN_MASK2) == 0)) c2++; \\ - c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++; - -#define sqr_add_c(a,i,c0,c1,c2) \\ - sqr64(t1,t2,(a)[i]); \\ - c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \\ - c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++; - -#define sqr_add_c2(a,i,j,c0,c1,c2) \\ - mul_add_c2((a)[i],(a)[j],c0,c1,c2) -#endif - -void bn_mul_comba${num}(r,a,b) -BN_ULONG *r,*a,*b; - { -#ifdef BN_LLONG - BN_ULLONG t; -#else - BN_ULONG bl,bh; -#endif - BN_ULONG t1,t2; - BN_ULONG c1,c2,c3; - -EOF -$ret=&combas_mul("r","a","b",$num,"c1","c2","c3"); -printf <<"EOF"; - } - -void bn_mul_comba${num2}(r,a,b) -BN_ULONG *r,*a,*b; - { -#ifdef BN_LLONG - BN_ULLONG t; -#else - BN_ULONG bl,bh; -#endif - BN_ULONG t1,t2; - BN_ULONG c1,c2,c3; - -EOF -$ret=&combas_mul("r","a","b",$num2,"c1","c2","c3"); -printf <<"EOF"; - } - -void bn_sqr_comba${num}(r,a) -BN_ULONG *r,*a; - { -#ifdef BN_LLONG - BN_ULLONG t,tt; -#else - BN_ULONG bl,bh; -#endif - BN_ULONG t1,t2; - BN_ULONG c1,c2,c3; - -EOF -$ret=&combas_sqr("r","a",$num,"c1","c2","c3"); -printf <<"EOF"; - } - -void bn_sqr_comba${num2}(r,a) -BN_ULONG *r,*a; - { -#ifdef BN_LLONG - BN_ULLONG t,tt; -#else - BN_ULONG bl,bh; -#endif - BN_ULONG t1,t2; - BN_ULONG c1,c2,c3; - -EOF -$ret=&combas_sqr("r","a",$num2,"c1","c2","c3"); -printf <<"EOF"; - } -EOF - -sub bn_str - { - local($var,$val)=@_; - print "\t$var=$val;\n"; - } - -sub bn_ary - { - local($var,$idx)=@_; - return("${var}[$idx]"); - } - -sub bn_clr - { - local($var)=@_; - - print "\t$var=0;\n"; - } - -sub bn_mad - { - local($a,$b,$c0,$c1,$c2,$num)=@_; - - if ($num == 2) - { printf("\tmul_add_c2($a,$b,$c0,$c1,$c2);\n"); } - else - { printf("\tmul_add_c($a,$b,$c0,$c1,$c2);\n"); } - } - -sub bn_sad - { - local($a,$i,$j,$c0,$c1,$c2,$num)=@_; - - if ($num == 2) - { printf("\tsqr_add_c2($a,$i,$j,$c0,$c1,$c2);\n"); } - else - { printf("\tsqr_add_c($a,$i,$c0,$c1,$c2);\n"); } - } - -sub combas_mul - { - local($r,$a,$b,$num,$c0,$c1,$c2)=@_; - local($i,$as,$ae,$bs,$be,$ai,$bi); - local($tot,$end); - - $as=0; - $ae=0; - $bs=0; - $be=0; - $tot=$num+$num-1; - &bn_clr($c0); - &bn_clr($c1); - for ($i=0; $i<$tot; $i++) - { - $ai=$as; - $bi=$bs; - $end=$be+1; - @numa=@numb=(); - -#print "($as $ae) ($bs $be) $bs -> $end [$i $num]\n"; - for ($j=$bs; $j<$end; $j++) - { - push(@numa,$ai); - push(@numb,$bi); - $ai--; - $bi++; - } - - if ($i & 1) - { - @numa=reverse(@numa); - @numb=reverse(@numb); - } - - &bn_clr($c2); - for ($j=0; $j<=$#numa; $j++) - { - &bn_mad(&bn_ary($a,$numa[$j]), - &bn_ary($b,$numb[$j]),$c0,$c1,$c2,1); - } - &bn_str(&bn_ary($r,$i),$c0); - ($c0,$c1,$c2)=($c1,$c2,$c0); - - $as++ if ($i < ($num-1)); - $ae++ if ($i >= ($num-1)); - - $bs++ if ($i >= ($num-1)); - $be++ if ($i < ($num-1)); - } - &bn_str(&bn_ary($r,$i),$c0); - } - -sub combas_sqr - { - local($r,$a,$num,$c0,$c1,$c2)=@_; - local($i,$as,$ae,$bs,$be,$ai,$bi); - local($b,$tot,$end,$half); - - $b=$a; - $as=0; - $ae=0; - $bs=0; - $be=0; - $tot=$num+$num-1; - &bn_clr($c0); - &bn_clr($c1); - for ($i=0; $i<$tot; $i++) - { - $ai=$as; - $bi=$bs; - $end=$be+1; - @numa=@numb=(); - -#print "($as $ae) ($bs $be) $bs -> $end [$i $num]\n"; - for ($j=$bs; $j<$end; $j++) - { - push(@numa,$ai); - push(@numb,$bi); - $ai--; - $bi++; - last if ($ai < $bi); - } - if (!($i & 1)) - { - @numa=reverse(@numa); - @numb=reverse(@numb); - } - - &bn_clr($c2); - for ($j=0; $j <= $#numa; $j++) - { - if ($numa[$j] == $numb[$j]) - {&bn_sad($a,$numa[$j],$numb[$j],$c0,$c1,$c2,1);} - else - {&bn_sad($a,$numa[$j],$numb[$j],$c0,$c1,$c2,2);} - } - &bn_str(&bn_ary($r,$i),$c0); - ($c0,$c1,$c2)=($c1,$c2,$c0); - - $as++ if ($i < ($num-1)); - $ae++ if ($i >= ($num-1)); - - $bs++ if ($i >= ($num-1)); - $be++ if ($i < ($num-1)); - } - &bn_str(&bn_ary($r,$i),$c0); - } |