123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- .text
- .globl OPENSSL_s390x_facilities
- .type OPENSSL_s390x_facilities,@function
- .align 16
- OPENSSL_s390x_facilities:
- lghi %r0,0
- 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
- .globl OPENSSL_rdtsc
- .type OPENSSL_rdtsc,@function
- .align 16
- OPENSSL_rdtsc:
- stck 16(%r15)
- lg %r2,16(%r15)
- br %r14
- .size OPENSSL_rdtsc,.-OPENSSL_rdtsc
- .globl OPENSSL_atomic_add
- .type OPENSSL_atomic_add,@function
- .align 16
- OPENSSL_atomic_add:
- l %r1,0(%r2)
- .Lspin: lr %r0,%r1
- ar %r0,%r3
- cs %r1,%r0,0(%r2)
- brc 4,.Lspin
- lgfr %r2,%r0 # OpenSSL expects the new value
- br %r14
- .size OPENSSL_atomic_add,.-OPENSSL_atomic_add
- .globl OPENSSL_wipe_cpu
- .type OPENSSL_wipe_cpu,@function
- .align 16
- OPENSSL_wipe_cpu:
- xgr %r0,%r0
- xgr %r1,%r1
- lgr %r2,%r15
- xgr %r3,%r3
- xgr %r4,%r4
- lzdr %f0
- lzdr %f1
- lzdr %f2
- lzdr %f3
- lzdr %f4
- lzdr %f5
- lzdr %f6
- lzdr %f7
- br %r14
- .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
- .globl 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
- clgr %r3,%r0
- bcr 8,%r14
- .Little:
- stc %r0,0(%r2)
- la %r2,1(%r2)
- brctg %r3,.Little
- br %r14
- .align 4
- .Lot: tmll %r2,7
- jz .Laligned
- stc %r0,0(%r2)
- la %r2,1(%r2)
- brctg %r3,.Lot
- .Laligned:
- srlg %r4,%r3,3
- .Loop: stg %r0,0(%r2)
- la %r2,8(%r2)
- brctg %r4,.Loop
- lghi %r4,7
- ngr %r3,%r4
- jnz .Little
- br %r14
- .size OPENSSL_cleanse,.-OPENSSL_cleanse
- .globl OPENSSL_instrument_bus
- .type OPENSSL_instrument_bus,@function
- .align 16
- OPENSSL_instrument_bus:
- lghi %r2,0
- br %r14
- .size OPENSSL_instrument_bus,.-OPENSSL_instrument_bus
- .globl OPENSSL_instrument_bus2
- .type OPENSSL_instrument_bus2,@function
- .align 16
- OPENSSL_instrument_bus2:
- lghi %r2,0
- br %r14
- .size OPENSSL_instrument_bus2,.-OPENSSL_instrument_bus2
- .section .init
- brasl %r14,OPENSSL_cpuid_setup
- .comm OPENSSL_s390xcap_P,16,8
|