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