s390x assembler update: add support for run-time facility detection [from HEAD].
[openssl.git] / crypto / s390xcpuid.S
index 8500133ad0fa7adf7dcebe2bb86f9cf0ccb93ea1..aa704c033a426021ce4a0b75bc70d476a6c36341 100644 (file)
@@ -1,12 +1,5 @@
 .text
 
 .text
 
-.globl OPENSSL_cpuid_setup
-.type  OPENSSL_cpuid_setup,@function
-.align 16
-OPENSSL_cpuid_setup:
-       br      %r14            # reserved for future
-.size  OPENSSL_cpuid_setup,.-OPENSSL_cpuid_setup
-
 .globl OPENSSL_s390x_facilities
 .type  OPENSSL_s390x_facilities,@function
 .align 16
 .globl OPENSSL_s390x_facilities
 .type  OPENSSL_s390x_facilities,@function
 .align 16
@@ -14,6 +7,8 @@ OPENSSL_s390x_facilities:
        lghi    %r0,0
        .long   0xb2b0f010      # stfle 16(%r15)
        lg      %r2,16(%r15)
        lghi    %r0,0
        .long   0xb2b0f010      # stfle 16(%r15)
        lg      %r2,16(%r15)
+       larl    %r1,OPENSSL_s390xcap_P
+       stg     %r2,0(%r1)
        br      %r14
 .size  OPENSSL_s390x_facilities,.-OPENSSL_s390x_facilities
 
        br      %r14
 .size  OPENSSL_s390x_facilities,.-OPENSSL_s390x_facilities
 
@@ -88,3 +83,8 @@ OPENSSL_cleanse:
        jnz     .Little
        br      %r14
 .size  OPENSSL_cleanse,.-OPENSSL_cleanse
        jnz     .Little
        br      %r14
 .size  OPENSSL_cleanse,.-OPENSSL_cleanse
+
+.section       .init
+       brasl   %r14,OPENSSL_cpuid_setup
+
+.comm  OPENSSL_s390xcap_P,8,8