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