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