xref: /freebsd/sys/crypto/openssl/powerpc64le/ppccpuid.S (revision 5f4c09dd85bff675e0ca63c55ea3c517e0fddfcc)
1/* Do not modify. This file is auto-generated from ppccpuid.pl. */
2.machine	"any"
3.abiversion	2
4.text
5
6.globl	OPENSSL_fpu_probe
7.type	OPENSSL_fpu_probe,@function
8.align	4
9OPENSSL_fpu_probe:
10.localentry	OPENSSL_fpu_probe,0
11
12	fmr	0,0
13	blr
14.long	0
15.byte	0,12,0x14,0,0,0,0,0
16.size	OPENSSL_fpu_probe,.-OPENSSL_fpu_probe
17.globl	OPENSSL_ppc64_probe
18.type	OPENSSL_ppc64_probe,@function
19.align	4
20OPENSSL_ppc64_probe:
21.localentry	OPENSSL_ppc64_probe,0
22
23	fcfid	1,1
24	rldicl	0,0,32,32
25	blr
26.long	0
27.byte	0,12,0x14,0,0,0,0,0
28.size	OPENSSL_ppc64_probe,.-OPENSSL_ppc64_probe
29
30.globl	OPENSSL_altivec_probe
31.type	OPENSSL_altivec_probe,@function
32.align	4
33OPENSSL_altivec_probe:
34.localentry	OPENSSL_altivec_probe,0
35
36.long	0x10000484
37	blr
38.long	0
39.byte	0,12,0x14,0,0,0,0,0
40.size	OPENSSL_altivec_probe,.-OPENSSL_altivec_probe
41
42.globl	OPENSSL_crypto207_probe
43.type	OPENSSL_crypto207_probe,@function
44.align	4
45OPENSSL_crypto207_probe:
46.localentry	OPENSSL_crypto207_probe,0
47
48	.long	0x7C000E99
49	.long	0x10000508
50	blr
51.long	0
52.byte	0,12,0x14,0,0,0,0,0
53.size	OPENSSL_crypto207_probe,.-OPENSSL_crypto207_probe
54
55.globl	OPENSSL_madd300_probe
56.type	OPENSSL_madd300_probe,@function
57.align	4
58OPENSSL_madd300_probe:
59.localentry	OPENSSL_madd300_probe,0
60
61	xor	0,0,0
62	.long	0x10600033
63	.long	0x10600031
64	blr
65.long	0
66.byte	0,12,0x14,0,0,0,0,0
67
68.globl	OPENSSL_wipe_cpu
69.type	OPENSSL_wipe_cpu,@function
70.align	4
71OPENSSL_wipe_cpu:
72.localentry	OPENSSL_wipe_cpu,0
73
74	xor	0,0,0
75	fmr	0,31
76	fmr	1,31
77	fmr	2,31
78	mr	3,1
79	fmr	3,31
80	xor	4,4,4
81	fmr	4,31
82	xor	5,5,5
83	fmr	5,31
84	xor	6,6,6
85	fmr	6,31
86	xor	7,7,7
87	fmr	7,31
88	xor	8,8,8
89	fmr	8,31
90	xor	9,9,9
91	fmr	9,31
92	xor	10,10,10
93	fmr	10,31
94	xor	11,11,11
95	fmr	11,31
96	xor	12,12,12
97	fmr	12,31
98	fmr	13,31
99	blr
100.long	0
101.byte	0,12,0x14,0,0,0,0,0
102.size	OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
103
104.globl	OPENSSL_atomic_add
105.type	OPENSSL_atomic_add,@function
106.align	4
107OPENSSL_atomic_add:
108.localentry	OPENSSL_atomic_add,0
109
110.Ladd:	lwarx	5,0,3
111	add	0,4,5
112	stwcx.	0,0,3
113	bne-	.Ladd
114	extsw	3,0
115	blr
116.long	0
117.byte	0,12,0x14,0,0,0,2,0
118.long	0
119.size	OPENSSL_atomic_add,.-OPENSSL_atomic_add
120
121.globl	OPENSSL_rdtsc_mftb
122.type	OPENSSL_rdtsc_mftb,@function
123.align	4
124OPENSSL_rdtsc_mftb:
125.localentry	OPENSSL_rdtsc_mftb,0
126
127	mftb	3
128	blr
129.long	0
130.byte	0,12,0x14,0,0,0,0,0
131.size	OPENSSL_rdtsc_mftb,.-OPENSSL_rdtsc_mftb
132
133.globl	OPENSSL_rdtsc_mfspr268
134.type	OPENSSL_rdtsc_mfspr268,@function
135.align	4
136OPENSSL_rdtsc_mfspr268:
137.localentry	OPENSSL_rdtsc_mfspr268,0
138
139	mfspr	3,268
140	blr
141.long	0
142.byte	0,12,0x14,0,0,0,0,0
143.size	OPENSSL_rdtsc_mfspr268,.-OPENSSL_rdtsc_mfspr268
144
145.globl	OPENSSL_cleanse
146.type	OPENSSL_cleanse,@function
147.align	4
148OPENSSL_cleanse:
149.localentry	OPENSSL_cleanse,0
150
151	cmpldi	4,7
152	li	0,0
153	bge	.Lot
154	cmpldi	4,0
155	.long	0x4DC20020
156.Little:	mtctr	4
157	stb	0,0(3)
158	addi	3,3,1
159	bdnz	$-8
160	blr
161.Lot:	andi.	5,3,3
162	beq	.Laligned
163	stb	0,0(3)
164	subi	4,4,1
165	addi	3,3,1
166	b	.Lot
167.Laligned:
168	srdi	5,4,2
169	mtctr	5
170	stw	0,0(3)
171	addi	3,3,4
172	bdnz	$-8
173	andi.	4,4,3
174	bne	.Little
175	blr
176.long	0
177.byte	0,12,0x14,0,0,0,2,0
178.long	0
179.size	OPENSSL_cleanse,.-OPENSSL_cleanse
180
181.globl	CRYPTO_memcmp
182.type	CRYPTO_memcmp,@function
183.align	4
184CRYPTO_memcmp:
185.localentry	CRYPTO_memcmp,0
186
187	cmpldi	5,0
188	li	0,0
189	beq	.Lno_data
190	mtctr	5
191.Loop_cmp:
192	lbz	6,0(3)
193	addi	3,3,1
194	lbz	7,0(4)
195	addi	4,4,1
196	xor	6,6,7
197	or	0,0,6
198	bdnz	.Loop_cmp
199
200.Lno_data:
201	li	3,0
202	sub	3,3,0
203	extrwi	3,3,1,0
204	blr
205.long	0
206.byte	0,12,0x14,0,0,0,3,0
207.long	0
208.size	CRYPTO_memcmp,.-CRYPTO_memcmp
209.globl	OPENSSL_instrument_bus_mftb
210.type	OPENSSL_instrument_bus_mftb,@function
211.align	4
212OPENSSL_instrument_bus_mftb:
213.localentry	OPENSSL_instrument_bus_mftb,0
214
215	mtctr	4
216
217	mftb	7
218	li	8,0
219
220	dcbf	0,3
221	lwarx	6,0,3
222	add	6,6,8
223	stwcx.	6,0,3
224	stwx	6,0,3
225
226.Loop:	mftb	6
227	sub	8,6,7
228	mr	7,6
229	dcbf	0,3
230	lwarx	6,0,3
231	add	6,6,8
232	stwcx.	6,0,3
233	stwx	6,0,3
234	addi	3,3,4
235	bdnz	.Loop
236
237	mr	3,4
238	blr
239.long	0
240.byte	0,12,0x14,0,0,0,2,0
241.long	0
242.size	OPENSSL_instrument_bus_mftb,.-OPENSSL_instrument_bus_mftb
243
244.globl	OPENSSL_instrument_bus2_mftb
245.type	OPENSSL_instrument_bus2_mftb,@function
246.align	4
247OPENSSL_instrument_bus2_mftb:
248.localentry	OPENSSL_instrument_bus2_mftb,0
249
250	mr	0,4
251	slwi	4,4,2
252
253	mftb	7
254	li	8,0
255
256	dcbf	0,3
257	lwarx	6,0,3
258	add	6,6,8
259	stwcx.	6,0,3
260	stwx	6,0,3
261
262	mftb	6
263	sub	8,6,7
264	mr	7,6
265	mr	9,8
266.Loop2:
267	dcbf	0,3
268	lwarx	6,0,3
269	add	6,6,8
270	stwcx.	6,0,3
271	stwx	6,0,3
272
273	addic.	5,5,-1
274	beq	.Ldone2
275
276	mftb	6
277	sub	8,6,7
278	mr	7,6
279	cmplw	7,8,9
280	mr	9,8
281
282	mfcr	6
283	not	6,6
284	rlwinm	6,6,1,29,29
285
286	sub.	4,4,6
287	add	3,3,6
288	bne	.Loop2
289
290.Ldone2:
291	srwi	4,4,2
292	sub	3,0,4
293	blr
294.long	0
295.byte	0,12,0x14,0,0,0,3,0
296.long	0
297.size	OPENSSL_instrument_bus2_mftb,.-OPENSSL_instrument_bus2_mftb
298
299.globl	OPENSSL_instrument_bus_mfspr268
300.type	OPENSSL_instrument_bus_mfspr268,@function
301.align	4
302OPENSSL_instrument_bus_mfspr268:
303.localentry	OPENSSL_instrument_bus_mfspr268,0
304
305	mtctr	4
306
307	mfspr	7,268
308	li	8,0
309
310	dcbf	0,3
311	lwarx	6,0,3
312	add	6,6,8
313	stwcx.	6,0,3
314	stwx	6,0,3
315
316.Loop3:	mfspr	6,268
317	sub	8,6,7
318	mr	7,6
319	dcbf	0,3
320	lwarx	6,0,3
321	add	6,6,8
322	stwcx.	6,0,3
323	stwx	6,0,3
324	addi	3,3,4
325	bdnz	.Loop3
326
327	mr	3,4
328	blr
329.long	0
330.byte	0,12,0x14,0,0,0,2,0
331.long	0
332.size	OPENSSL_instrument_bus_mfspr268,.-OPENSSL_instrument_bus_mfspr268
333
334.globl	OPENSSL_instrument_bus2_mfspr268
335.type	OPENSSL_instrument_bus2_mfspr268,@function
336.align	4
337OPENSSL_instrument_bus2_mfspr268:
338.localentry	OPENSSL_instrument_bus2_mfspr268,0
339
340	mr	0,4
341	slwi	4,4,2
342
343	mfspr	7,268
344	li	8,0
345
346	dcbf	0,3
347	lwarx	6,0,3
348	add	6,6,8
349	stwcx.	6,0,3
350	stwx	6,0,3
351
352	mfspr	6,268
353	sub	8,6,7
354	mr	7,6
355	mr	9,8
356.Loop4:
357	dcbf	0,3
358	lwarx	6,0,3
359	add	6,6,8
360	stwcx.	6,0,3
361	stwx	6,0,3
362
363	addic.	5,5,-1
364	beq	.Ldone4
365
366	mfspr	6,268
367	sub	8,6,7
368	mr	7,6
369	cmplw	7,8,9
370	mr	9,8
371
372	mfcr	6
373	not	6,6
374	rlwinm	6,6,1,29,29
375
376	sub.	4,4,6
377	add	3,3,6
378	bne	.Loop4
379
380.Ldone4:
381	srwi	4,4,2
382	sub	3,0,4
383	blr
384.long	0
385.byte	0,12,0x14,0,0,0,3,0
386.long	0
387.size	OPENSSL_instrument_bus2_mfspr268,.-OPENSSL_instrument_bus2_mfspr268
388