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