projects
/
oweals
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make CBC decoding constant time.
[oweals/openssl.git]
/
crypto
/
s390xcpuid.S
diff --git
a/crypto/s390xcpuid.S
b/crypto/s390xcpuid.S
index f411be65957209258e410290c72abea7e6710f86..06815347e6a380bd6229382b49ec3bc014921f04 100644
(file)
--- a/
crypto/s390xcpuid.S
+++ b/
crypto/s390xcpuid.S
@@
-5,8
+5,14
@@
.align 16
OPENSSL_s390x_facilities:
lghi %r0,0
.align 16
OPENSSL_s390x_facilities:
lghi %r0,0
- .long 0xb2b0f010 # stfle 16(%r15)
- lg %r2,16(%r15)
+ larl %r2,OPENSSL_s390xcap_P
+ stg %r0,8(%r2)
+ .long 0xb2b02000 # stfle 0(%r2)
+ brc 8,.Ldone
+ lghi %r0,1
+ .long 0xb2b02000 # stfle 0(%r2)
+.Ldone:
+ lg %r2,0(%r2)
br %r14
.size OPENSSL_s390x_facilities,.-OPENSSL_s390x_facilities
br %r14
.size OPENSSL_s390x_facilities,.-OPENSSL_s390x_facilities
@@
-56,10
+62,15
@@
OPENSSL_wipe_cpu:
.type OPENSSL_cleanse,@function
.align 16
OPENSSL_cleanse:
.type OPENSSL_cleanse,@function
.align 16
OPENSSL_cleanse:
+#if !defined(__s390x__) && !defined(__s390x)
+ llgfr %r3,%r3
+#endif
lghi %r4,15
lghi %r0,0
clgr %r3,%r4
jh .Lot
lghi %r4,15
lghi %r0,0
clgr %r3,%r4
jh .Lot
+ clgr %r3,%r0
+ bcr 8,%r14
.Little:
stc %r0,0(%r2)
la %r2,1(%r2)
.Little:
stc %r0,0(%r2)
la %r2,1(%r2)
@@
-81,3
+92,8
@@
OPENSSL_cleanse:
jnz .Little
br %r14
.size OPENSSL_cleanse,.-OPENSSL_cleanse
jnz .Little
br %r14
.size OPENSSL_cleanse,.-OPENSSL_cleanse
+
+.section .init
+ brasl %r14,OPENSSL_cpuid_setup
+
+.comm OPENSSL_s390xcap_P,16,8