diff options
Diffstat (limited to 'src/lib/libcrypto/s390xcpuid.S')
-rw-r--r-- | src/lib/libcrypto/s390xcpuid.S | 17 |
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 |
6 | OPENSSL_s390x_facilities: | 6 | OPENSSL_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 |
60 | OPENSSL_cleanse: | 64 | OPENSSL_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 |