projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update sha512-parisc.pl and add make rules.
[openssl.git]
/
crypto
/
sha
/
asm
/
sha512-parisc.pl
diff --git
a/crypto/sha/asm/sha512-parisc.pl
b/crypto/sha/asm/sha512-parisc.pl
index da1282a0769008dd66b11a76bfcfc6f4fdebd595..9ccbdaaf82bc5f2cef71e06cf4a8c77354547db1 100755
(executable)
--- a/
crypto/sha/asm/sha512-parisc.pl
+++ b/
crypto/sha/asm/sha512-parisc.pl
@@
-391,7
+391,7
@@
$code.=<<___;
shd $elo,$ehi,$Sigma1[0],$t1
addc $Xhi,$hhi,$hhi ; h += X[i]
shd $ehi,$elo,$Sigma1[1],$t2
shd $elo,$ehi,$Sigma1[0],$t1
addc $Xhi,$hhi,$hhi ; h += X[i]
shd $ehi,$elo,$Sigma1[1],$t2
- ldw
,ma
8($Tbl),$Xhi
+ ldw
m
8($Tbl),$Xhi
shd $elo,$ehi,$Sigma1[1],$t3
ldw -4($Tbl),$Xlo ; load K[i]
xor $t2,$t0,$t0
shd $elo,$ehi,$Sigma1[1],$t3
ldw -4($Tbl),$Xlo ; load K[i]
xor $t2,$t0,$t0
@@
-694,9
+694,10
@@
my $ldd = sub {
my ($mod,$args) = @_;
my $orig = "ldd$mod\t$args";
my ($mod,$args) = @_;
my $orig = "ldd$mod\t$args";
- if ($args =~ /([0-9]+)\(%r([0-9]+)\),%r([0-9]+)/) # format 3 suffices
- { my $opcode=(0x14<<26)|($2<<21)|($3<<16)|($1<<1);
- $opcode|=0x8 if ($mod eq ",ma");
+ if ($args =~ /(\-[0-9]+)\(%r([0-9]+)\),%r([0-9]+)/) # format 3 suffices
+ { my $opcode=(0x14<<26)|($2<<21)|($3<<16)|(($1&0x1FF8)<<1)|(($1>>13)&1);
+ $opcode|=(1<<3) if ($mod =~ /^,m/);
+ $opcode|=(1<<2) if ($mod =~ /^,mb/);
sprintf "\t.WORD\t0x%08x\t; %s",$opcode,$orig;
}
else { "\t".$orig; }
sprintf "\t.WORD\t0x%08x\t; %s",$opcode,$orig;
}
else { "\t".$orig; }
@@
-706,9
+707,9
@@
my $std = sub {
my ($mod,$args) = @_;
my $orig = "std$mod\t$args";
my ($mod,$args) = @_;
my $orig = "std$mod\t$args";
- if ($args =~ /%r([0-9]+),(
[0-9]+)\(%r([0-9]+)\)/)
# format 3 suffices
- {
sprintf "\t.WORD\t0x%08x\t; %s",
-
(0x1c<<26)|($3<<21)|($1<<16)|($2<<1)
,$orig;
+ if ($args =~ /%r([0-9]+),(
\-[0-9]+)\(%r([0-9]+)\)/)
# format 3 suffices
+ {
my $opcode=(0x1c<<26)|($3<<21)|($1<<16)|(($2&0x1FF8)<<1)|(($2>>13)&1);
+
sprintf "\t.WORD\t0x%08x\t; %s",$opcode
,$orig;
}
else { "\t".$orig; }
};
}
else { "\t".$orig; }
};