]> git.ipfire.org Git - thirdparty/openssl.git/blobdiff - crypto/s390xcpuid.pl
s390x assembly pack: add OPENSSL_s390xcap environment variable.
[thirdparty/openssl.git] / crypto / s390xcpuid.pl
index ec700a47d98e9277b1a00d93e42d99644d4b030b..5e18aef904ead6d514e11338d694ffa8eedbc6a2 100755 (executable)
@@ -38,7 +38,26 @@ OPENSSL_s390x_facilities:
        stg     %r0,S390X_STFLE+8(%r4)  # wipe capability vectors
        stg     %r0,S390X_STFLE+16(%r4)
        stg     %r0,S390X_STFLE+24(%r4)
-       stg     %r0,S390X_KIMD(%r4)
+
+       .long   0xb2b04000              # stfle 0(%r4)
+       brc     8,.Ldone
+       lghi    %r0,1
+       .long   0xb2b04000              # stfle 0(%r4)
+       brc     8,.Ldone
+       lghi    %r0,2
+       .long   0xb2b04000              # stfle 0(%r4)
+.Ldone:
+       br      $ra
+.size  OPENSSL_s390x_facilities,.-OPENSSL_s390x_facilities
+
+.globl OPENSSL_s390x_functions
+.type  OPENSSL_s390x_functions,\@function
+.align 16
+OPENSSL_s390x_functions:
+       lghi    %r0,0
+       larl    %r4,OPENSSL_s390xcap_P
+
+       stg     %r0,S390X_KIMD(%r4)     # wipe capability vectors
        stg     %r0,S390X_KIMD+8(%r4)
        stg     %r0,S390X_KLMD(%r4)
        stg     %r0,S390X_KLMD+8(%r4)
@@ -59,14 +78,6 @@ OPENSSL_s390x_facilities:
        stg     %r0,S390X_KMA(%r4)
        stg     %r0,S390X_KMA+8(%r4)
 
-       .long   0xb2b04000              # stfle 0(%r4)
-       brc     8,.Ldone
-       lghi    %r0,1
-       .long   0xb2b04000              # stfle 0(%r4)
-       brc     8,.Ldone
-       lghi    %r0,2
-       .long   0xb2b04000              # stfle 0(%r4)
-.Ldone:
        lmg     %r2,%r3,S390X_STFLE(%r4)
        tmhl    %r2,0x4000              # check for message-security-assist
        jz      .Lret
@@ -123,7 +134,7 @@ OPENSSL_s390x_facilities:
 
 .Lret:
        br      $ra
-.size  OPENSSL_s390x_facilities,.-OPENSSL_s390x_facilities
+.size  OPENSSL_s390x_functions,.-OPENSSL_s390x_functions
 
 .globl OPENSSL_rdtsc
 .type  OPENSSL_rdtsc,\@function