.. if avalable. STCK has an artificial delay to ensure uniqueness
which can result in a performance penalty if used heavily
concurrently.
Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com>
Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5284)
.type OPENSSL_rdtsc,\@function
.align 16
OPENSSL_rdtsc:
+ larl %r4,OPENSSL_s390xcap_P
+ tm S390X_STFLE+3(%r4),0x40 # check for store-clock-fast facility
+ jz .Lstck
+
+ .long 0xb27cf010 # stckf 16($sp)
+ lg %r2,16($sp)
+ br $ra
+.Lstck:
stck 16($sp)
lg %r2,16($sp)
br $ra