xref: /netbsd-src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc64/ppccpuid.S (revision 9616dacfef448e70e3fbbd865bddf60d54b656c5)
1.machine	"any"
2.text
3
4.globl	OPENSSL_ppc64_probe
5.type	OPENSSL_ppc64_probe,@function
6.section	".opd","aw"
7.align	3
8OPENSSL_ppc64_probe:
9.quad	.OPENSSL_ppc64_probe,.TOC.@tocbase,0
10.previous
11
12.align	4
13.OPENSSL_ppc64_probe:
14	fcfid	1,1
15	rldicl	0,0,32,32
16	blr
17.long	0
18.byte	0,12,0x14,0,0,0,0,0
19
20
21.globl	OPENSSL_altivec_probe
22.type	OPENSSL_altivec_probe,@function
23.section	".opd","aw"
24.align	3
25OPENSSL_altivec_probe:
26.quad	.OPENSSL_altivec_probe,.TOC.@tocbase,0
27.previous
28
29.align	4
30.OPENSSL_altivec_probe:
31.long	0x10000484
32	blr
33.long	0
34.byte	0,12,0x14,0,0,0,0,0
35
36
37.globl	OPENSSL_crypto207_probe
38.type	OPENSSL_crypto207_probe,@function
39.section	".opd","aw"
40.align	3
41OPENSSL_crypto207_probe:
42.quad	.OPENSSL_crypto207_probe,.TOC.@tocbase,0
43.previous
44
45.align	4
46.OPENSSL_crypto207_probe:
47.long	0x7C000E99
48.long	0x10000508
49	blr
50.long	0
51.byte	0,12,0x14,0,0,0,0,0
52
53
54.globl	OPENSSL_wipe_cpu
55.type	OPENSSL_wipe_cpu,@function
56.section	".opd","aw"
57.align	3
58OPENSSL_wipe_cpu:
59.quad	.OPENSSL_wipe_cpu,.TOC.@tocbase,0
60.previous
61
62.align	4
63.OPENSSL_wipe_cpu:
64	xor	0,0,0
65	fmr	0,31
66	fmr	1,31
67	fmr	2,31
68	mr	3,1
69	fmr	3,31
70	xor	4,4,4
71	fmr	4,31
72	xor	5,5,5
73	fmr	5,31
74	xor	6,6,6
75	fmr	6,31
76	xor	7,7,7
77	fmr	7,31
78	xor	8,8,8
79	fmr	8,31
80	xor	9,9,9
81	fmr	9,31
82	xor	10,10,10
83	fmr	10,31
84	xor	11,11,11
85	fmr	11,31
86	xor	12,12,12
87	fmr	12,31
88	fmr	13,31
89	blr
90.long	0
91.byte	0,12,0x14,0,0,0,0,0
92
93
94.globl	OPENSSL_atomic_add
95.type	OPENSSL_atomic_add,@function
96.section	".opd","aw"
97.align	3
98OPENSSL_atomic_add:
99.quad	.OPENSSL_atomic_add,.TOC.@tocbase,0
100.previous
101
102.align	4
103.OPENSSL_atomic_add:
104.Ladd:	lwarx	5,0,3
105	add	0,4,5
106	stwcx.	0,0,3
107	bne-	.Ladd
108	extsw	3,0
109	blr
110.long	0
111.byte	0,12,0x14,0,0,0,2,0
112.long	0
113
114
115.globl	OPENSSL_rdtsc
116.type	OPENSSL_rdtsc,@function
117.section	".opd","aw"
118.align	3
119OPENSSL_rdtsc:
120.quad	.OPENSSL_rdtsc,.TOC.@tocbase,0
121.previous
122
123.align	4
124.OPENSSL_rdtsc:
125.Lrdtsc:
126	mftb	5
127	mftbu	4
128	mftb	3
129	cmplw	0,3,5
130	bne	.Lrdtsc
131	blr
132.long	0
133.byte	0,12,0x14,0,0,0,0,0
134
135
136.globl	OPENSSL_cleanse
137.type	OPENSSL_cleanse,@function
138.section	".opd","aw"
139.align	3
140OPENSSL_cleanse:
141.quad	.OPENSSL_cleanse,.TOC.@tocbase,0
142.previous
143
144.align	4
145.OPENSSL_cleanse:
146	cmpldi	4,7
147	li	0,0
148	bge	.Lot
149	cmpldi	4,0
150	beqlr
151.Little:	mtctr	4
152	stb	0,0(3)
153	addi	3,3,1
154	bc	16,0,$-8
155	blr
156.Lot:	andi.	5,3,3
157	beq	.Laligned
158	stb	0,0(3)
159	subi	4,4,1
160	addi	3,3,1
161	b	.Lot
162.Laligned:
163	srdi	5,4,2
164	mtctr	5
165	stw	0,0(3)
166	addi	3,3,4
167	bc	16,0,$-8
168	andi.	4,4,3
169	bne	.Little
170	blr
171.long	0
172.byte	0,12,0x14,0,0,0,2,0
173.long	0
174
175