summaryrefslogtreecommitdiff
path: root/crypto/chacha
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2016-04-23 19:16:56 +0200
committerAndy Polyakov <appro@openssl.org>2016-04-25 11:48:44 +0200
commita82a9f71ad0149380a680cae4c0cc693e6324679 (patch)
treebe06df8b1f446f26a17dae53b93986d6be431c24 /crypto/chacha
parentacde647fb0347f64af8f8678b73ce41f2f499c02 (diff)
downloadopenssl-new-a82a9f71ad0149380a680cae4c0cc693e6324679.tar.gz
chacha/asm/chacha-ppc.pl: get misalignment corner case right on big-endian.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'crypto/chacha')
-rwxr-xr-xcrypto/chacha/asm/chacha-ppc.pl4
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/chacha/asm/chacha-ppc.pl b/crypto/chacha/asm/chacha-ppc.pl
index 2bb3fce8ed..4c5d2d1aec 100755
--- a/crypto/chacha/asm/chacha-ppc.pl
+++ b/crypto/chacha/asm/chacha-ppc.pl
@@ -527,9 +527,11 @@ $code.=<<___;
?lvsl $outperm,0,$out # prepare for unaligned store
?vperm $outmask,$outmask,$T0,$outperm
+ be?lvsl $T0,0,@x[0] # 0x00..0f
be?vspltisb $T1,3 # 0x03..03
- be?vxor $inpperm,$inpperm,$T1 # swap bytes within words
+ be?vxor $T0,$T0,$T1 # swap bytes within words
be?vxor $outperm,$outperm,$T1
+ be?vperm $inpperm,$inpperm,$inpperm,$T0
b Loop_outer_vmx