diff options
author | Andy Polyakov <appro@openssl.org> | 2016-03-11 16:47:02 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2016-03-14 13:52:34 +0100 |
commit | 8d51db86f7bbade81c6d6eb3357bc12ddeb12de1 (patch) | |
tree | 34c419fecb30f3eea8f1a2aa065398ba98a45c7d /crypto/poly1305 | |
parent | 6bfb7db35a426e5f070e744b56c913c739a40634 (diff) | |
download | openssl-8d51db86f7bbade81c6d6eb3357bc12ddeb12de1.zip openssl-8d51db86f7bbade81c6d6eb3357bc12ddeb12de1.tar.gz openssl-8d51db86f7bbade81c6d6eb3357bc12ddeb12de1.tar.bz2 |
s390x assembly pack: 32-bit fixups.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'crypto/poly1305')
-rwxr-xr-x | crypto/poly1305/asm/poly1305-s390x.pl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/crypto/poly1305/asm/poly1305-s390x.pl b/crypto/poly1305/asm/poly1305-s390x.pl index ce6a85f..49b3f79 100755 --- a/crypto/poly1305/asm/poly1305-s390x.pl +++ b/crypto/poly1305/asm/poly1305-s390x.pl @@ -78,13 +78,15 @@ $code.=<<___; .type poly1305_blocks,\@function .align 16 poly1305_blocks: - srl${g} $len,$len,4 + srl${g} $len,4 # fixed-up in 64-bit build lghi %r0,0 cl${g}r $len,%r0 je .Lno_data stm${g} %r6,%r14,`6*$SIZE_T`($sp) + llgfr $padbit,$padbit # clear upper half, much needed with + # non-64-bit ABI lg $r0,32($ctx) # load key lg $r1,40($ctx) @@ -211,6 +213,7 @@ ___ } $code =~ s/\`([^\`]*)\`/eval $1/gem; +$code =~ s/\b(srlg\s+)(%r[0-9]+\s*,)\s*([0-9]+)/$1$2$2$3/gm; print $code; close STDOUT; |