summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/s390xcpuid.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/s390xcpuid.S')
-rw-r--r--src/lib/libcrypto/s390xcpuid.S17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/lib/libcrypto/s390xcpuid.S b/src/lib/libcrypto/s390xcpuid.S
index b053c6a281..06815347e6 100644
--- a/src/lib/libcrypto/s390xcpuid.S
+++ b/src/lib/libcrypto/s390xcpuid.S
@@ -5,10 +5,14 @@
5.align 16 5.align 16
6OPENSSL_s390x_facilities: 6OPENSSL_s390x_facilities:
7 lghi %r0,0 7 lghi %r0,0
8 .long 0xb2b0f010 # stfle 16(%r15) 8 larl %r2,OPENSSL_s390xcap_P
9 lg %r2,16(%r15) 9 stg %r0,8(%r2)
10 larl %r1,OPENSSL_s390xcap_P 10 .long 0xb2b02000 # stfle 0(%r2)
11 stg %r2,0(%r1) 11 brc 8,.Ldone
12 lghi %r0,1
13 .long 0xb2b02000 # stfle 0(%r2)
14.Ldone:
15 lg %r2,0(%r2)
12 br %r14 16 br %r14
13.size OPENSSL_s390x_facilities,.-OPENSSL_s390x_facilities 17.size OPENSSL_s390x_facilities,.-OPENSSL_s390x_facilities
14 18
@@ -58,6 +62,9 @@ OPENSSL_wipe_cpu:
58.type OPENSSL_cleanse,@function 62.type OPENSSL_cleanse,@function
59.align 16 63.align 16
60OPENSSL_cleanse: 64OPENSSL_cleanse:
65#if !defined(__s390x__) && !defined(__s390x)
66 llgfr %r3,%r3
67#endif
61 lghi %r4,15 68 lghi %r4,15
62 lghi %r0,0 69 lghi %r0,0
63 clgr %r3,%r4 70 clgr %r3,%r4
@@ -89,4 +96,4 @@ OPENSSL_cleanse:
89.section .init 96.section .init
90 brasl %r14,OPENSSL_cpuid_setup 97 brasl %r14,OPENSSL_cpuid_setup
91 98
92.comm OPENSSL_s390xcap_P,8,8 99.comm OPENSSL_s390xcap_P,16,8