提交 02450ec6 编写于 作者: A Andy Polyakov

PA-RISC assembler pack: switch to bve in 64-bit builds.

PR: 3074
上级 8a99cb29
......@@ -1015,7 +1015,8 @@ foreach (split("\n",$code)) {
$SIZE_T==4 ? sprintf("extru%s,%d,8,",$1,31-$2)
: sprintf("extrd,u%s,%d,8,",$1,63-$2)/e;
s/,\*/,/ if ($SIZE_T==4);
s/,\*/,/ if ($SIZE_T==4);
s/\bbv\b(.*\(%r2\))/bve$1/ if ($SIZE_T==8);
print $_,"\n";
}
close STDOUT;
......@@ -40,7 +40,7 @@
# of arithmetic operations, most notably multiplications. It requires
# more memory references, most notably to tp[num], but this doesn't
# seem to exhaust memory port capacity. And indeed, dedicated PA-RISC
# 2.0 code path, provides virtually same performance as pa-risc2[W].s:
# 2.0 code path provides virtually same performance as pa-risc2[W].s:
# it's ~10% better for shortest key length and ~10% worse for longest
# one.
#
......@@ -988,6 +988,8 @@ foreach (split("\n",$code)) {
# assemble 2.0 instructions in 32-bit mode...
s/^\s+([a-z]+)([\S]*)\s+([\S]*)/&assemble($1,$2,$3)/e if ($BN_SZ==4);
s/\bbv\b/bve/gm if ($SIZE_T==8);
print $_,"\n";
}
close STDOUT;
......@@ -724,6 +724,7 @@ foreach (split("\n",$code)) {
s/cmpb,\*/comb,/;
s/,\*/,/;
}
s/\bbv\b/bve/ if ($SIZE_T==8);
print $_,"\n";
}
......
......@@ -97,33 +97,33 @@ OPENSSL_cleanse
.PROC
.CALLINFO NO_CALLS
.ENTRY
cmpib,*= 0,$len,Ldone
cmpib,*= 0,$len,L\$done
nop
cmpib,*>>= 15,$len,Little
cmpib,*>>= 15,$len,L\$ittle
ldi $SIZE_T-1,%r1
Lalign
L\$align
and,*<> $inp,%r1,%r28
b,n Laligned
b,n L\$aligned
stb %r0,0($inp)
ldo -1($len),$len
b Lalign
b L\$align
ldo 1($inp),$inp
Laligned
L\$aligned
andcm $len,%r1,%r28
Lot
L\$ot
$ST %r0,0($inp)
addib,*<> -$SIZE_T,%r28,Lot
addib,*<> -$SIZE_T,%r28,L\$ot
ldo $SIZE_T($inp),$inp
and,*<> $len,%r1,$len
b,n Ldone
Little
b,n L\$done
L\$ittle
stb %r0,0($inp)
addib,*<> -1,$len,Little
addib,*<> -1,$len,L\$ittle
ldo 1($inp),$inp
Ldone
L\$done
bv ($rp)
.EXIT
nop
......@@ -151,7 +151,7 @@ OPENSSL_instrument_bus
ldw 0($out),$tick
add $diff,$tick,$tick
stw $tick,0($out)
Loop
L\$oop
mfctl %cr16,$tick
sub $tick,$lasttick,$diff
copy $tick,$lasttick
......@@ -161,7 +161,7 @@ Loop
add $diff,$tick,$tick
stw $tick,0($out)
addib,<> -1,$cnt,Loop
addib,<> -1,$cnt,L\$oop
addi 4,$out,$out
bv ($rp)
......@@ -190,14 +190,14 @@ OPENSSL_instrument_bus2
mfctl %cr16,$tick
sub $tick,$lasttick,$diff
copy $tick,$lasttick
Loop2
L\$oop2
copy $diff,$lastdiff
fdc 0($out)
ldw 0($out),$tick
add $diff,$tick,$tick
stw $tick,0($out)
addib,= -1,$max,Ldone2
addib,= -1,$max,L\$done2
nop
mfctl %cr16,$tick
......@@ -208,17 +208,18 @@ Loop2
ldi 1,%r1
xor %r1,$tick,$tick
addb,<> $tick,$cnt,Loop2
addb,<> $tick,$cnt,L\$oop2
shladd,l $tick,2,$out,$out
Ldone2
L\$done2
bv ($rp)
.EXIT
add $rv,$cnt,$rv
.PROCEND
___
}
$code =~ s/cmpib,\*/comib,/gm if ($SIZE_T==4);
$code =~ s/,\*/,/gm if ($SIZE_T==4);
$code =~ s/cmpib,\*/comib,/gm if ($SIZE_T==4);
$code =~ s/,\*/,/gm if ($SIZE_T==4);
$code =~ s/\bbv\b/bve/gm if ($SIZE_T==8);
print $code;
close STDOUT;
......@@ -307,7 +307,8 @@ L\$opts
.STRINGZ "RC4 for PA-RISC, CRYPTOGAMS by <appro\@openssl.org>"
___
$code =~ s/\`([^\`]*)\`/eval $1/gem;
$code =~ s/cmpib,\*/comib,/gm if ($SIZE_T==4);
$code =~ s/cmpib,\*/comib,/gm if ($SIZE_T==4);
$code =~ s/\bbv\b/bve/gm if ($SIZE_T==8);
print $code;
close STDOUT;
......@@ -254,6 +254,7 @@ $code.=<<___;
___
$code =~ s/\`([^\`]*)\`/eval $1/gem;
$code =~ s/,\*/,/gm if ($SIZE_T==4);
$code =~ s/,\*/,/gm if ($SIZE_T==4);
$code =~ s/\bbv\b/bve/gm if ($SIZE_T==8);
print $code;
close STDOUT;
......@@ -785,6 +785,8 @@ foreach (split("\n",$code)) {
s/cmpb,\*/comb,/ if ($SIZE_T==4);
s/\bbv\b/bve/ if ($SIZE_T==8);
print $_,"\n";
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册