| OLD | NEW |
| (Empty) |
| 1 .text | |
| 2 | |
| 3 .globl OPENSSL_s390x_facilities | |
| 4 .type OPENSSL_s390x_facilities,@function | |
| 5 .align 16 | |
| 6 OPENSSL_s390x_facilities: | |
| 7 lghi %r0,0 | |
| 8 larl %r2,OPENSSL_s390xcap_P | |
| 9 stg %r0,8(%r2) | |
| 10 .long 0xb2b02000 # stfle 0(%r2) | |
| 11 brc 8,.Ldone | |
| 12 lghi %r0,1 | |
| 13 .long 0xb2b02000 # stfle 0(%r2) | |
| 14 .Ldone: | |
| 15 lg %r2,0(%r2) | |
| 16 br %r14 | |
| 17 .size OPENSSL_s390x_facilities,.-OPENSSL_s390x_facilities | |
| 18 | |
| 19 .globl OPENSSL_rdtsc | |
| 20 .type OPENSSL_rdtsc,@function | |
| 21 .align 16 | |
| 22 OPENSSL_rdtsc: | |
| 23 stck 16(%r15) | |
| 24 lg %r2,16(%r15) | |
| 25 br %r14 | |
| 26 .size OPENSSL_rdtsc,.-OPENSSL_rdtsc | |
| 27 | |
| 28 .globl OPENSSL_atomic_add | |
| 29 .type OPENSSL_atomic_add,@function | |
| 30 .align 16 | |
| 31 OPENSSL_atomic_add: | |
| 32 l %r1,0(%r2) | |
| 33 .Lspin: lr %r0,%r1 | |
| 34 ar %r0,%r3 | |
| 35 cs %r1,%r0,0(%r2) | |
| 36 brc 4,.Lspin | |
| 37 lgfr %r2,%r0 # OpenSSL expects the new value | |
| 38 br %r14 | |
| 39 .size OPENSSL_atomic_add,.-OPENSSL_atomic_add | |
| 40 | |
| 41 .globl OPENSSL_wipe_cpu | |
| 42 .type OPENSSL_wipe_cpu,@function | |
| 43 .align 16 | |
| 44 OPENSSL_wipe_cpu: | |
| 45 xgr %r0,%r0 | |
| 46 xgr %r1,%r1 | |
| 47 lgr %r2,%r15 | |
| 48 xgr %r3,%r3 | |
| 49 xgr %r4,%r4 | |
| 50 lzdr %f0 | |
| 51 lzdr %f1 | |
| 52 lzdr %f2 | |
| 53 lzdr %f3 | |
| 54 lzdr %f4 | |
| 55 lzdr %f5 | |
| 56 lzdr %f6 | |
| 57 lzdr %f7 | |
| 58 br %r14 | |
| 59 .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu | |
| 60 | |
| 61 .globl OPENSSL_cleanse | |
| 62 .type OPENSSL_cleanse,@function | |
| 63 .align 16 | |
| 64 OPENSSL_cleanse: | |
| 65 #if !defined(__s390x__) && !defined(__s390x) | |
| 66 llgfr %r3,%r3 | |
| 67 #endif | |
| 68 lghi %r4,15 | |
| 69 lghi %r0,0 | |
| 70 clgr %r3,%r4 | |
| 71 jh .Lot | |
| 72 clgr %r3,%r0 | |
| 73 bcr 8,%r14 | |
| 74 .Little: | |
| 75 stc %r0,0(%r2) | |
| 76 la %r2,1(%r2) | |
| 77 brctg %r3,.Little | |
| 78 br %r14 | |
| 79 .align 4 | |
| 80 .Lot: tmll %r2,7 | |
| 81 jz .Laligned | |
| 82 stc %r0,0(%r2) | |
| 83 la %r2,1(%r2) | |
| 84 brctg %r3,.Lot | |
| 85 .Laligned: | |
| 86 srlg %r4,%r3,3 | |
| 87 .Loop: stg %r0,0(%r2) | |
| 88 la %r2,8(%r2) | |
| 89 brctg %r4,.Loop | |
| 90 lghi %r4,7 | |
| 91 ngr %r3,%r4 | |
| 92 jnz .Little | |
| 93 br %r14 | |
| 94 .size OPENSSL_cleanse,.-OPENSSL_cleanse | |
| 95 | |
| 96 .section .init | |
| 97 brasl %r14,OPENSSL_cpuid_setup | |
| 98 | |
| 99 .comm OPENSSL_s390xcap_P,16,8 | |
| OLD | NEW |