summaryrefslogtreecommitdiffstats
path: root/crypto/arm64cpuid.S
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2014-06-01 17:21:06 +0200
committerAndy Polyakov <appro@openssl.org>2014-06-10 23:20:55 +0200
commitdabfbea7d91619b286e5d32ffc68ec7e5bd7e9bf (patch)
tree8818defbbd319f9bd338ffcf2ae17754233d4c7a /crypto/arm64cpuid.S
parent56d973709c02a1936ae35c40de56cff478713c45 (diff)
Add linux-aarch64 taget.
armcap.c is shared between 32- and 64-bit builds and features link-time detection of getauxval. Submitted by: Ard Biesheuvel. (cherry picked from commit e8d93e342b4b7d43c73e955e81e227c514d389d9)
Diffstat (limited to 'crypto/arm64cpuid.S')
-rw-r--r--crypto/arm64cpuid.S46
1 files changed, 46 insertions, 0 deletions
diff --git a/crypto/arm64cpuid.S b/crypto/arm64cpuid.S
new file mode 100644
index 0000000000..4778ac1dea
--- /dev/null
+++ b/crypto/arm64cpuid.S
@@ -0,0 +1,46 @@
+#include "arm_arch.h"
+
+.text
+.arch armv8-a+crypto
+
+.align 5
+.global _armv7_neon_probe
+.type _armv7_neon_probe,%function
+_armv7_neon_probe:
+ orr v15.16b, v15.16b, v15.16b
+ ret
+.size _armv7_neon_probe,.-_armv7_neon_probe
+
+.global _armv7_tick
+.type _armv7_tick,%function
+_armv7_tick:
+ mrs x0, CNTVCT_EL0
+ ret
+.size _armv7_tick,.-_armv7_tick
+
+.global _armv8_aes_probe
+.type _armv8_aes_probe,%function
+_armv8_aes_probe:
+ aese v0.16b, v0.16b
+ ret
+.size _armv8_aes_probe,.-_armv8_aes_probe
+
+.global _armv8_sha1_probe
+.type _armv8_sha1_probe,%function
+_armv8_sha1_probe:
+ sha1h s0, s0
+ ret
+.size _armv8_sha1_probe,.-_armv8_sha1_probe
+
+.global _armv8_sha256_probe
+.type _armv8_sha256_probe,%function
+_armv8_sha256_probe:
+ sha256su0 v0.4s, v0.4s
+ ret
+.size _armv8_sha256_probe,.-_armv8_sha256_probe
+.global _armv8_pmull_probe
+.type _armv8_pmull_probe,%function
+_armv8_pmull_probe:
+ pmull v0.1q, v0.1d, v0.1d
+ ret
+.size _armv8_pmull_probe,.-_armv8_pmull_probe