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