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