xref: /openbsd/lib/libcrypto/arch/arm/armv4cpuid.S (revision e9c09c27)
1*d45a68f6Stb#include "arm_arch.h"
2*d45a68f6Stb
3*d45a68f6Stb.text
4*d45a68f6Stb#if defined(__thumb2__) && !defined(__APPLE__)
5*d45a68f6Stb.syntax	unified
6*d45a68f6Stb.thumb
7*d45a68f6Stb#else
8*d45a68f6Stb.code	32
9*d45a68f6Stb#undef	__thumb2__
10*d45a68f6Stb#endif
11*d45a68f6Stb
12*d45a68f6Stb#if __ARM_ARCH__>=7
13*d45a68f6Stb.arch	armv7-a
14*d45a68f6Stb.fpu	neon
15*d45a68f6Stb
16*d45a68f6Stb.align	5
17*d45a68f6Stb.globl	_armv7_neon_probe
18*d45a68f6Stb.type	_armv7_neon_probe,%function
19*d45a68f6Stb_armv7_neon_probe:
20*d45a68f6Stb	vorr	q0,q0,q0
21*d45a68f6Stb	bx	lr
22*d45a68f6Stb.size	_armv7_neon_probe,.-_armv7_neon_probe
23*d45a68f6Stb
24*d45a68f6Stb.globl	_armv8_aes_probe
25*d45a68f6Stb.type	_armv8_aes_probe,%function
26*d45a68f6Stb_armv8_aes_probe:
27*d45a68f6Stb#if defined(__thumb2__) && !defined(__APPLE__)
28*d45a68f6Stb.byte	0xb0,0xff,0x00,0x03	@ aese.8	q0,q0
29*d45a68f6Stb#else
30*d45a68f6Stb.byte	0x00,0x03,0xb0,0xf3	@ aese.8	q0,q0
31*d45a68f6Stb#endif
32*d45a68f6Stb	bx	lr
33*d45a68f6Stb.size	_armv8_aes_probe,.-_armv8_aes_probe
34*d45a68f6Stb
35*d45a68f6Stb.globl	_armv8_sha1_probe
36*d45a68f6Stb.type	_armv8_sha1_probe,%function
37*d45a68f6Stb_armv8_sha1_probe:
38*d45a68f6Stb#if defined(__thumb2__) && !defined(__APPLE__)
39*d45a68f6Stb.byte	0x00,0xef,0x40,0x0c	@ sha1c.32	q0,q0,q0
40*d45a68f6Stb#else
41*d45a68f6Stb.byte	0x40,0x0c,0x00,0xf2	@ sha1c.32	q0,q0,q0
42*d45a68f6Stb#endif
43*d45a68f6Stb	bx	lr
44*d45a68f6Stb.size	_armv8_sha1_probe,.-_armv8_sha1_probe
45*d45a68f6Stb
46*d45a68f6Stb.globl	_armv8_sha256_probe
47*d45a68f6Stb.type	_armv8_sha256_probe,%function
48*d45a68f6Stb_armv8_sha256_probe:
49*d45a68f6Stb#if defined(__thumb2__) && !defined(__APPLE__)
50*d45a68f6Stb.byte	0x00,0xff,0x40,0x0c	@ sha256h.32	q0,q0,q0
51*d45a68f6Stb#else
52*d45a68f6Stb.byte	0x40,0x0c,0x00,0xf3	@ sha256h.32	q0,q0,q0
53*d45a68f6Stb#endif
54*d45a68f6Stb	bx	lr
55*d45a68f6Stb.size	_armv8_sha256_probe,.-_armv8_sha256_probe
56*d45a68f6Stb.globl	_armv8_pmull_probe
57*d45a68f6Stb.type	_armv8_pmull_probe,%function
58*d45a68f6Stb_armv8_pmull_probe:
59*d45a68f6Stb#if defined(__thumb2__) && !defined(__APPLE__)
60*d45a68f6Stb.byte	0xa0,0xef,0x00,0x0e	@ vmull.p64	q0,d0,d0
61*d45a68f6Stb#else
62*d45a68f6Stb.byte	0x00,0x0e,0xa0,0xf2	@ vmull.p64	q0,d0,d0
63*d45a68f6Stb#endif
64*d45a68f6Stb	bx	lr
65*d45a68f6Stb.size	_armv8_pmull_probe,.-_armv8_pmull_probe
66*d45a68f6Stb#endif
67*d45a68f6Stb
68*d45a68f6Stb.comm	OPENSSL_armcap_P,4,4
69*d45a68f6Stb.hidden	OPENSSL_armcap_P
70