aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2016-05-30 22:16:31 +0200
committerAndy Polyakov <appro@openssl.org>2016-06-06 11:08:04 +0200
commit0a4c87a90c6cf6628c688868cd5f13e4b9a5f19d (patch)
tree505edc325c5e4f3c06dbc9d713f096a9d0c68961 /crypto
parent78e91586fbeb2c3a54d2a8a28dadeeb1eb0f57a8 (diff)
downloadopenssl-0a4c87a90c6cf6628c688868cd5f13e4b9a5f19d.tar.gz
s390x assembly pack: improve portability.
Some of the instructions used in latest additions are extension ones. There is no real reason to limit ourselves to specific processors, so [re-]adhere to base instruction set. RT#4548 Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto')
-rwxr-xr-xcrypto/chacha/asm/chacha-s390x.pl4
-rw-r--r--crypto/s390xcpuid.S4
2 files changed, 4 insertions, 4 deletions
diff --git a/crypto/chacha/asm/chacha-s390x.pl b/crypto/chacha/asm/chacha-s390x.pl
index c7a26921fe..c31526473d 100755
--- a/crypto/chacha/asm/chacha-s390x.pl
+++ b/crypto/chacha/asm/chacha-s390x.pl
@@ -147,7 +147,8 @@ $code.=<<___;
.type ChaCha20_ctr32,\@function
.align 32
ChaCha20_ctr32:
- cl${g}ije $len,0,.Lno_data # $len==0?
+ lt${g}r $len,$len # $len==0?
+ bzr %r14
a${g}hi $len,-64
l${g}hi %r1,-$frame
stm${g} %r6,%r15,`6*$SIZE_T`($sp)
@@ -279,7 +280,6 @@ $code.=<<___;
stmg %r0,%r3,$stdframe+4*12($sp)
lm${g} %r6,%r15,`$frame+6*$SIZE_T`($sp)
-.Lno_data:
br %r14
.align 16
diff --git a/crypto/s390xcpuid.S b/crypto/s390xcpuid.S
index 61ef0eb2ac..8859e9e64a 100644
--- a/crypto/s390xcpuid.S
+++ b/crypto/s390xcpuid.S
@@ -143,9 +143,9 @@ CRYPTO_memcmp:
je .Lno_data
.Loop_cmp:
- llc %r0,0(%r2)
+ llgc %r0,0(%r2)
la %r2,1(%r2)
- llc %r1,0(%r3)
+ llgc %r1,0(%r3)
la %r3,1(%r3)
xr %r1,%r0
or %r5,%r1