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