perlasm: fix symptom-less bugs, missing semicolons and 'my' declarations.
This commit is contained in:
parent
9474483ab7
commit
f9c5e5d92e
@ -242,7 +242,7 @@ $vertical_spin=0; # shift "verticaly" defaults to 0, because of
|
|||||||
|
|
||||||
sub encvert()
|
sub encvert()
|
||||||
{ my ($te,@s) = @_;
|
{ my ($te,@s) = @_;
|
||||||
my $v0 = $acc, $v1 = $key;
|
my ($v0,$v1) = ($acc,$key);
|
||||||
|
|
||||||
&mov ($v0,$s[3]); # copy s3
|
&mov ($v0,$s[3]); # copy s3
|
||||||
&mov (&DWP(4,"esp"),$s[2]); # save s2
|
&mov (&DWP(4,"esp"),$s[2]); # save s2
|
||||||
@ -299,7 +299,7 @@ sub encvert()
|
|||||||
# Another experimental routine, which features "horizontal spin," but
|
# Another experimental routine, which features "horizontal spin," but
|
||||||
# eliminates one reference to stack. Strangely enough runs slower...
|
# eliminates one reference to stack. Strangely enough runs slower...
|
||||||
sub enchoriz()
|
sub enchoriz()
|
||||||
{ my $v0 = $key, $v1 = $acc;
|
{ my ($v0,$v1) = ($key,$acc);
|
||||||
|
|
||||||
&movz ($v0,&LB($s0)); # 3, 2, 1, 0*
|
&movz ($v0,&LB($s0)); # 3, 2, 1, 0*
|
||||||
&rotr ($s2,8); # 8,11,10, 9
|
&rotr ($s2,8); # 8,11,10, 9
|
||||||
@ -427,7 +427,7 @@ sub sse_encbody()
|
|||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
sub enccompact()
|
sub enccompact()
|
||||||
{ my $Fn = mov;
|
{ my $Fn = \&mov;
|
||||||
while ($#_>5) { pop(@_); $Fn=sub{}; }
|
while ($#_>5) { pop(@_); $Fn=sub{}; }
|
||||||
my ($i,$te,@s)=@_;
|
my ($i,$te,@s)=@_;
|
||||||
my $tmp = $key;
|
my $tmp = $key;
|
||||||
@ -489,7 +489,7 @@ sub enctransform()
|
|||||||
|
|
||||||
&xor ($s[$i],$acc); # r0 ^ r2
|
&xor ($s[$i],$acc); # r0 ^ r2
|
||||||
&rotl ($s[$i],24);
|
&rotl ($s[$i],24);
|
||||||
&xor ($s[$i],$acc) # ROTATE(r2^r0,24) ^ r2
|
&xor ($s[$i],$acc); # ROTATE(r2^r0,24) ^ r2
|
||||||
&rotr ($tmp,16);
|
&rotr ($tmp,16);
|
||||||
&xor ($s[$i],$tmp);
|
&xor ($s[$i],$tmp);
|
||||||
&rotr ($tmp,8);
|
&rotr ($tmp,8);
|
||||||
@ -1222,7 +1222,7 @@ sub enclast()
|
|||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
sub deccompact()
|
sub deccompact()
|
||||||
{ my $Fn = mov;
|
{ my $Fn = \&mov;
|
||||||
while ($#_>5) { pop(@_); $Fn=sub{}; }
|
while ($#_>5) { pop(@_); $Fn=sub{}; }
|
||||||
my ($i,$td,@s)=@_;
|
my ($i,$td,@s)=@_;
|
||||||
my $tmp = $key;
|
my $tmp = $key;
|
||||||
@ -2182,7 +2182,7 @@ my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds
|
|||||||
&xor ("eax","eax");
|
&xor ("eax","eax");
|
||||||
&align (4);
|
&align (4);
|
||||||
&data_word(0xABF3F689); # rep stosd
|
&data_word(0xABF3F689); # rep stosd
|
||||||
&set_label("skip_ezero")
|
&set_label("skip_ezero");
|
||||||
&mov ("esp",$_esp);
|
&mov ("esp",$_esp);
|
||||||
&popf ();
|
&popf ();
|
||||||
&set_label("drop_out");
|
&set_label("drop_out");
|
||||||
@ -2302,7 +2302,7 @@ my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds
|
|||||||
&xor ("eax","eax");
|
&xor ("eax","eax");
|
||||||
&align (4);
|
&align (4);
|
||||||
&data_word(0xABF3F689); # rep stosd
|
&data_word(0xABF3F689); # rep stosd
|
||||||
&set_label("skip_dzero")
|
&set_label("skip_dzero");
|
||||||
&mov ("esp",$_esp);
|
&mov ("esp",$_esp);
|
||||||
&popf ();
|
&popf ();
|
||||||
&function_end_A();
|
&function_end_A();
|
||||||
|
@ -54,8 +54,8 @@ require "x86asm.pl";
|
|||||||
|
|
||||||
&asm_init($ARGV[0],$0);
|
&asm_init($ARGV[0],$0);
|
||||||
|
|
||||||
if ($PREFIX eq "aesni") { $movekey=*movups; }
|
if ($PREFIX eq "aesni") { $movekey=\&movups; }
|
||||||
else { $movekey=*movups; }
|
else { $movekey=\&movups; }
|
||||||
|
|
||||||
$len="eax";
|
$len="eax";
|
||||||
$rounds="ecx";
|
$rounds="ecx";
|
||||||
@ -1816,7 +1816,7 @@ if ($PREFIX eq "aesni") {
|
|||||||
&movups (&QWP(0x10,$out),$inout1);
|
&movups (&QWP(0x10,$out),$inout1);
|
||||||
&lea ($inp,&DWP(0x60,$inp));
|
&lea ($inp,&DWP(0x60,$inp));
|
||||||
&movups (&QWP(0x20,$out),$inout2);
|
&movups (&QWP(0x20,$out),$inout2);
|
||||||
&mov ($rounds,$rounds_) # restore $rounds
|
&mov ($rounds,$rounds_); # restore $rounds
|
||||||
&movups (&QWP(0x30,$out),$inout3);
|
&movups (&QWP(0x30,$out),$inout3);
|
||||||
&mov ($key,$key_); # restore $key
|
&mov ($key,$key_); # restore $key
|
||||||
&movups (&QWP(0x40,$out),$inout4);
|
&movups (&QWP(0x40,$out),$inout4);
|
||||||
@ -2015,7 +2015,7 @@ if ($PREFIX eq "aesni") {
|
|||||||
&set_label("12rounds",16);
|
&set_label("12rounds",16);
|
||||||
&movq ("xmm2",&QWP(16,"eax")); # remaining 1/3 of *userKey
|
&movq ("xmm2",&QWP(16,"eax")); # remaining 1/3 of *userKey
|
||||||
&mov ($rounds,11);
|
&mov ($rounds,11);
|
||||||
&$movekey (&QWP(-16,$key),"xmm0") # round 0
|
&$movekey (&QWP(-16,$key),"xmm0"); # round 0
|
||||||
&aeskeygenassist("xmm1","xmm2",0x01); # round 1,2
|
&aeskeygenassist("xmm1","xmm2",0x01); # round 1,2
|
||||||
&call (&label("key_192a_cold"));
|
&call (&label("key_192a_cold"));
|
||||||
&aeskeygenassist("xmm1","xmm2",0x02); # round 2,3
|
&aeskeygenassist("xmm1","xmm2",0x02); # round 2,3
|
||||||
@ -2152,7 +2152,7 @@ if ($PREFIX eq "aesni") {
|
|||||||
&mov ($key,&wparam(2));
|
&mov ($key,&wparam(2));
|
||||||
&call ("_aesni_set_encrypt_key");
|
&call ("_aesni_set_encrypt_key");
|
||||||
&mov ($key,&wparam(2));
|
&mov ($key,&wparam(2));
|
||||||
&shl ($rounds,4) # rounds-1 after _aesni_set_encrypt_key
|
&shl ($rounds,4); # rounds-1 after _aesni_set_encrypt_key
|
||||||
&test ("eax","eax");
|
&test ("eax","eax");
|
||||||
&jnz (&label("dec_key_ret"));
|
&jnz (&label("dec_key_ret"));
|
||||||
&lea ("eax",&DWP(16,$key,$rounds)); # end of key schedule
|
&lea ("eax",&DWP(16,$key,$rounds)); # end of key schedule
|
||||||
|
@ -71,7 +71,7 @@ my $i=@_[0];
|
|||||||
my $seed=defined(@_[1])?@_[1]:0;
|
my $seed=defined(@_[1])?@_[1]:0;
|
||||||
my $scale=$seed<0?-8:8;
|
my $scale=$seed<0?-8:8;
|
||||||
my $j=($i&1)*2;
|
my $j=($i&1)*2;
|
||||||
my $s0=@S[($j)%4],$s1=@S[($j+1)%4],$s2=@S[($j+2)%4],$s3=@S[($j+3)%4];
|
my ($s0,$s1,$s2,$s3)=(@S[($j)%4],@S[($j+1)%4],@S[($j+2)%4],@S[($j+3)%4]);
|
||||||
|
|
||||||
$code.=<<___;
|
$code.=<<___;
|
||||||
xor $s0,$t0 # t0^=key[0]
|
xor $s0,$t0 # t0^=key[0]
|
||||||
@ -408,7 +408,7 @@ Camellia_Ekeygen:
|
|||||||
push %r15
|
push %r15
|
||||||
.Lkey_prologue:
|
.Lkey_prologue:
|
||||||
|
|
||||||
mov %rdi,$keyend # put away arguments, keyBitLength
|
mov %edi,${keyend}d # put away arguments, keyBitLength
|
||||||
mov %rdx,$out # keyTable
|
mov %rdx,$out # keyTable
|
||||||
|
|
||||||
mov 0(%rsi),@S[0] # load 0-127 bits
|
mov 0(%rsi),@S[0] # load 0-127 bits
|
||||||
|
@ -635,7 +635,7 @@ sub mmx_loop() {
|
|||||||
{ my @lo = ("mm0","mm1","mm2");
|
{ my @lo = ("mm0","mm1","mm2");
|
||||||
my @hi = ("mm3","mm4","mm5");
|
my @hi = ("mm3","mm4","mm5");
|
||||||
my @tmp = ("mm6","mm7");
|
my @tmp = ("mm6","mm7");
|
||||||
my $off1=0,$off2=0,$i;
|
my ($off1,$off2,$i) = (0,0,);
|
||||||
|
|
||||||
&add ($Htbl,128); # optimize for size
|
&add ($Htbl,128); # optimize for size
|
||||||
&lea ("edi",&DWP(16+128,"esp"));
|
&lea ("edi",&DWP(16+128,"esp"));
|
||||||
@ -883,7 +883,7 @@ sub reduction_alg9 { # 17/13 times faster than Intel version
|
|||||||
my ($Xhi,$Xi) = @_;
|
my ($Xhi,$Xi) = @_;
|
||||||
|
|
||||||
# 1st phase
|
# 1st phase
|
||||||
&movdqa ($T1,$Xi) #
|
&movdqa ($T1,$Xi); #
|
||||||
&psllq ($Xi,1);
|
&psllq ($Xi,1);
|
||||||
&pxor ($Xi,$T1); #
|
&pxor ($Xi,$T1); #
|
||||||
&psllq ($Xi,5); #
|
&psllq ($Xi,5); #
|
||||||
@ -1019,7 +1019,7 @@ my ($Xhi,$Xi) = @_;
|
|||||||
&movdqa ($Xhn,$Xn);
|
&movdqa ($Xhn,$Xn);
|
||||||
&pxor ($Xhi,$T1); # "Ii+Xi", consume early
|
&pxor ($Xhi,$T1); # "Ii+Xi", consume early
|
||||||
|
|
||||||
&movdqa ($T1,$Xi) #&reduction_alg9($Xhi,$Xi); 1st phase
|
&movdqa ($T1,$Xi); #&reduction_alg9($Xhi,$Xi); 1st phase
|
||||||
&psllq ($Xi,1);
|
&psllq ($Xi,1);
|
||||||
&pxor ($Xi,$T1); #
|
&pxor ($Xi,$T1); #
|
||||||
&psllq ($Xi,5); #
|
&psllq ($Xi,5); #
|
||||||
|
@ -150,7 +150,7 @@ sub cbc
|
|||||||
&set_label("PIC_point");
|
&set_label("PIC_point");
|
||||||
&blindpop("edx");
|
&blindpop("edx");
|
||||||
&lea("ecx",&DWP(&label("cbc_enc_jmp_table")."-".&label("PIC_point"),"edx"));
|
&lea("ecx",&DWP(&label("cbc_enc_jmp_table")."-".&label("PIC_point"),"edx"));
|
||||||
&mov($count,&DWP(0,"ecx",$count,4))
|
&mov($count,&DWP(0,"ecx",$count,4));
|
||||||
&add($count,"edx");
|
&add($count,"edx");
|
||||||
&xor("ecx","ecx");
|
&xor("ecx","ecx");
|
||||||
&xor("edx","edx");
|
&xor("edx","edx");
|
||||||
|
@ -170,10 +170,9 @@ sub ::data_short{ push(@out,".value\t".join(',',@_)."\n"); }
|
|||||||
sub ::data_word { push(@out,".long\t".join(',',@_)."\n"); }
|
sub ::data_word { push(@out,".long\t".join(',',@_)."\n"); }
|
||||||
|
|
||||||
sub ::align
|
sub ::align
|
||||||
{ my $val=$_[0],$p2,$i;
|
{ my $val=$_[0];
|
||||||
if ($::aout)
|
if ($::aout)
|
||||||
{ for ($p2=0;$val!=0;$val>>=1) { $p2++; }
|
{ $val=int(log($val)/log(2));
|
||||||
$val=$p2-1;
|
|
||||||
$val.=",0x90";
|
$val.=",0x90";
|
||||||
}
|
}
|
||||||
push(@out,".align\t$val\n");
|
push(@out,".align\t$val\n");
|
||||||
|
@ -271,7 +271,8 @@ tmp6=loc13;
|
|||||||
|
|
||||||
___
|
___
|
||||||
|
|
||||||
{ my $i,@V=($A,$B,$C,$D,$E);
|
{ my $i;
|
||||||
|
my @V=($A,$B,$C,$D,$E);
|
||||||
|
|
||||||
for($i=0;$i<16;$i++) { &BODY_00_15(\$code,$i,@V); unshift(@V,pop(@V)); }
|
for($i=0;$i<16;$i++) { &BODY_00_15(\$code,$i,@V); unshift(@V,pop(@V)); }
|
||||||
for(;$i<20;$i++) { &BODY_16_19(\$code,$i,@V); unshift(@V,pop(@V)); }
|
for(;$i<20;$i++) { &BODY_16_19(\$code,$i,@V); unshift(@V,pop(@V)); }
|
||||||
|
@ -549,7 +549,7 @@ ___
|
|||||||
# programmer detect if current CPU is VIS capable at run-time.
|
# programmer detect if current CPU is VIS capable at run-time.
|
||||||
sub unvis {
|
sub unvis {
|
||||||
my ($mnemonic,$rs1,$rs2,$rd)=@_;
|
my ($mnemonic,$rs1,$rs2,$rd)=@_;
|
||||||
my $ref,$opf;
|
my ($ref,$opf);
|
||||||
my %visopf = ( "fmul8ulx16" => 0x037,
|
my %visopf = ( "fmul8ulx16" => 0x037,
|
||||||
"faligndata" => 0x048,
|
"faligndata" => 0x048,
|
||||||
"fpadd32" => 0x052,
|
"fpadd32" => 0x052,
|
||||||
|
@ -142,9 +142,9 @@ sub BODY_00_15_x86 {
|
|||||||
&mov ("edx",$Ehi);
|
&mov ("edx",$Ehi);
|
||||||
&mov ("esi","ecx");
|
&mov ("esi","ecx");
|
||||||
|
|
||||||
&shr ("ecx",9) # lo>>9
|
&shr ("ecx",9); # lo>>9
|
||||||
&mov ("edi","edx");
|
&mov ("edi","edx");
|
||||||
&shr ("edx",9) # hi>>9
|
&shr ("edx",9); # hi>>9
|
||||||
&mov ("ebx","ecx");
|
&mov ("ebx","ecx");
|
||||||
&shl ("esi",14); # lo<<14
|
&shl ("esi",14); # lo<<14
|
||||||
&mov ("eax","edx");
|
&mov ("eax","edx");
|
||||||
@ -207,9 +207,9 @@ sub BODY_00_15_x86 {
|
|||||||
&mov ($Dhi,"ebx");
|
&mov ($Dhi,"ebx");
|
||||||
&mov ("esi","ecx");
|
&mov ("esi","ecx");
|
||||||
|
|
||||||
&shr ("ecx",2) # lo>>2
|
&shr ("ecx",2); # lo>>2
|
||||||
&mov ("edi","edx");
|
&mov ("edi","edx");
|
||||||
&shr ("edx",2) # hi>>2
|
&shr ("edx",2); # hi>>2
|
||||||
&mov ("ebx","ecx");
|
&mov ("ebx","ecx");
|
||||||
&shl ("esi",4); # lo<<4
|
&shl ("esi",4); # lo<<4
|
||||||
&mov ("eax","edx");
|
&mov ("eax","edx");
|
||||||
@ -452,9 +452,9 @@ if ($sse2) {
|
|||||||
&mov ("edx",&DWP(8*(9+15+16-1)+4,"esp"));
|
&mov ("edx",&DWP(8*(9+15+16-1)+4,"esp"));
|
||||||
&mov ("esi","ecx");
|
&mov ("esi","ecx");
|
||||||
|
|
||||||
&shr ("ecx",1) # lo>>1
|
&shr ("ecx",1); # lo>>1
|
||||||
&mov ("edi","edx");
|
&mov ("edi","edx");
|
||||||
&shr ("edx",1) # hi>>1
|
&shr ("edx",1); # hi>>1
|
||||||
&mov ("eax","ecx");
|
&mov ("eax","ecx");
|
||||||
&shl ("esi",24); # lo<<24
|
&shl ("esi",24); # lo<<24
|
||||||
&mov ("ebx","edx");
|
&mov ("ebx","edx");
|
||||||
@ -488,9 +488,9 @@ if ($sse2) {
|
|||||||
&mov ("edx",&DWP(8*(9+15+16-14)+4,"esp"));
|
&mov ("edx",&DWP(8*(9+15+16-14)+4,"esp"));
|
||||||
&mov ("esi","ecx");
|
&mov ("esi","ecx");
|
||||||
|
|
||||||
&shr ("ecx",6) # lo>>6
|
&shr ("ecx",6); # lo>>6
|
||||||
&mov ("edi","edx");
|
&mov ("edi","edx");
|
||||||
&shr ("edx",6) # hi>>6
|
&shr ("edx",6); # hi>>6
|
||||||
&mov ("eax","ecx");
|
&mov ("eax","ecx");
|
||||||
&shl ("esi",3); # lo<<3
|
&shl ("esi",3); # lo<<3
|
||||||
&mov ("ebx","edx");
|
&mov ("ebx","edx");
|
||||||
|
@ -119,7 +119,7 @@ $tbl="ebp";
|
|||||||
&mov ("eax",&DWP(0,"esp"));
|
&mov ("eax",&DWP(0,"esp"));
|
||||||
&mov ("ebx",&DWP(4,"esp"));
|
&mov ("ebx",&DWP(4,"esp"));
|
||||||
for($i=0;$i<8;$i++) {
|
for($i=0;$i<8;$i++) {
|
||||||
my $func = ($i==0)? movq : pxor;
|
my $func = ($i==0)? \&movq : \&pxor;
|
||||||
&movb (&LB("ecx"),&LB("eax"));
|
&movb (&LB("ecx"),&LB("eax"));
|
||||||
&movb (&LB("edx"),&HB("eax"));
|
&movb (&LB("edx"),&HB("eax"));
|
||||||
&scale ("esi","ecx");
|
&scale ("esi","ecx");
|
||||||
|
@ -165,7 +165,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
|
|||||||
&jnz (&label("nohalt")); # not enough privileges
|
&jnz (&label("nohalt")); # not enough privileges
|
||||||
|
|
||||||
&pushf ();
|
&pushf ();
|
||||||
&pop ("eax")
|
&pop ("eax");
|
||||||
&bt ("eax",9);
|
&bt ("eax",9);
|
||||||
&jnc (&label("nohalt")); # interrupts are disabled
|
&jnc (&label("nohalt")); # interrupts are disabled
|
||||||
|
|
||||||
@ -196,7 +196,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
|
|||||||
|
|
||||||
&function_begin_B("OPENSSL_far_spin");
|
&function_begin_B("OPENSSL_far_spin");
|
||||||
&pushf ();
|
&pushf ();
|
||||||
&pop ("eax")
|
&pop ("eax");
|
||||||
&bt ("eax",9);
|
&bt ("eax",9);
|
||||||
&jnc (&label("nospin")); # interrupts are disabled
|
&jnc (&label("nospin")); # interrupts are disabled
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
|
|||||||
# arguments is 1 or 2!
|
# arguments is 1 or 2!
|
||||||
&function_begin_B("OPENSSL_indirect_call");
|
&function_begin_B("OPENSSL_indirect_call");
|
||||||
{
|
{
|
||||||
my $i,$max=7; # $max has to be chosen as 4*n-1
|
my ($max,$i)=(7,); # $max has to be chosen as 4*n-1
|
||||||
# in order to preserve eventual
|
# in order to preserve eventual
|
||||||
# stack alignment
|
# stack alignment
|
||||||
&push ("ebp");
|
&push ("ebp");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user