ppccpuid.S revision 1.2 1 .machine "any"
2 .text
3
4 .globl OPENSSL_fpu_probe
5 .type OPENSSL_fpu_probe,@function
6 .section ".opd","aw"
7 .align 3
8 OPENSSL_fpu_probe:
9 .quad .OPENSSL_fpu_probe,.TOC.@tocbase,0
10 .previous
11 .align 4
12 .OPENSSL_fpu_probe:
13 fmr 0,0
14 blr
15 .long 0
16 .byte 0,12,0x14,0,0,0,0,0
17
18 .globl OPENSSL_ppc64_probe
19 .type OPENSSL_ppc64_probe,@function
20 .section ".opd","aw"
21 .align 3
22 OPENSSL_ppc64_probe:
23 .quad .OPENSSL_ppc64_probe,.TOC.@tocbase,0
24 .previous
25 .align 4
26 .OPENSSL_ppc64_probe:
27 fcfid 1,1
28 rldicl 0,0,32,32
29 blr
30 .long 0
31 .byte 0,12,0x14,0,0,0,0,0
32
33
34 .globl OPENSSL_altivec_probe
35 .type OPENSSL_altivec_probe,@function
36 .section ".opd","aw"
37 .align 3
38 OPENSSL_altivec_probe:
39 .quad .OPENSSL_altivec_probe,.TOC.@tocbase,0
40 .previous
41 .align 4
42 .OPENSSL_altivec_probe:
43 .long 0x10000484
44 blr
45 .long 0
46 .byte 0,12,0x14,0,0,0,0,0
47
48
49 .globl OPENSSL_crypto207_probe
50 .type OPENSSL_crypto207_probe,@function
51 .section ".opd","aw"
52 .align 3
53 OPENSSL_crypto207_probe:
54 .quad .OPENSSL_crypto207_probe,.TOC.@tocbase,0
55 .previous
56 .align 4
57 .OPENSSL_crypto207_probe:
58 .long 0x7C000E99
59 .long 0x10000508
60 blr
61 .long 0
62 .byte 0,12,0x14,0,0,0,0,0
63
64
65 .globl OPENSSL_madd300_probe
66 .type OPENSSL_madd300_probe,@function
67 .section ".opd","aw"
68 .align 3
69 OPENSSL_madd300_probe:
70 .quad .OPENSSL_madd300_probe,.TOC.@tocbase,0
71 .previous
72 .align 4
73 .OPENSSL_madd300_probe:
74 xor 0,0,0
75 .long 0x10600033
76 .long 0x10600031
77 blr
78 .long 0
79 .byte 0,12,0x14,0,0,0,0,0
80
81 .globl OPENSSL_brd31_probe
82 .type OPENSSL_brd31_probe,@function
83 .section ".opd","aw"
84 .align 3
85 OPENSSL_brd31_probe:
86 .quad .OPENSSL_brd31_probe,.TOC.@tocbase,0
87 .previous
88 .align 4
89 .OPENSSL_brd31_probe:
90 xor 0,0,0
91 .long 0x7C030176
92 blr
93 .long 0
94 .byte 0,12,0x14,0,0,0,0,0
95
96
97
98 .globl OPENSSL_wipe_cpu
99 .type OPENSSL_wipe_cpu,@function
100 .section ".opd","aw"
101 .align 3
102 OPENSSL_wipe_cpu:
103 .quad .OPENSSL_wipe_cpu,.TOC.@tocbase,0
104 .previous
105 .align 4
106 .OPENSSL_wipe_cpu:
107 xor 0,0,0
108 fmr 0,31
109 fmr 1,31
110 fmr 2,31
111 mr 3,1
112 fmr 3,31
113 xor 4,4,4
114 fmr 4,31
115 xor 5,5,5
116 fmr 5,31
117 xor 6,6,6
118 fmr 6,31
119 xor 7,7,7
120 fmr 7,31
121 xor 8,8,8
122 fmr 8,31
123 xor 9,9,9
124 fmr 9,31
125 xor 10,10,10
126 fmr 10,31
127 xor 11,11,11
128 fmr 11,31
129 xor 12,12,12
130 fmr 12,31
131 fmr 13,31
132 blr
133 .long 0
134 .byte 0,12,0x14,0,0,0,0,0
135
136
137 .globl OPENSSL_atomic_add
138 .type OPENSSL_atomic_add,@function
139 .section ".opd","aw"
140 .align 3
141 OPENSSL_atomic_add:
142 .quad .OPENSSL_atomic_add,.TOC.@tocbase,0
143 .previous
144 .align 4
145 .OPENSSL_atomic_add:
146 .Ladd: lwarx 5,0,3
147 add 0,4,5
148 stwcx. 0,0,3
149 bne- .Ladd
150 extsw 3,0
151 blr
152 .long 0
153 .byte 0,12,0x14,0,0,0,2,0
154 .long 0
155
156
157 .globl OPENSSL_rdtsc_mftb
158 .type OPENSSL_rdtsc_mftb,@function
159 .section ".opd","aw"
160 .align 3
161 OPENSSL_rdtsc_mftb:
162 .quad .OPENSSL_rdtsc_mftb,.TOC.@tocbase,0
163 .previous
164 .align 4
165 .OPENSSL_rdtsc_mftb:
166 mftb 3
167 blr
168 .long 0
169 .byte 0,12,0x14,0,0,0,0,0
170
171
172 .globl OPENSSL_rdtsc_mfspr268
173 .type OPENSSL_rdtsc_mfspr268,@function
174 .section ".opd","aw"
175 .align 3
176 OPENSSL_rdtsc_mfspr268:
177 .quad .OPENSSL_rdtsc_mfspr268,.TOC.@tocbase,0
178 .previous
179 .align 4
180 .OPENSSL_rdtsc_mfspr268:
181 mfspr 3,268
182 blr
183 .long 0
184 .byte 0,12,0x14,0,0,0,0,0
185
186
187 .globl OPENSSL_cleanse
188 .type OPENSSL_cleanse,@function
189 .section ".opd","aw"
190 .align 3
191 OPENSSL_cleanse:
192 .quad .OPENSSL_cleanse,.TOC.@tocbase,0
193 .previous
194 .align 4
195 .OPENSSL_cleanse:
196 cmpldi 4,7
197 li 0,0
198 bge .Lot
199 cmpldi 4,0
200 beqlr
201 .Little: mtctr 4
202 stb 0,0(3)
203 addi 3,3,1
204 bc 16,0,$-8
205 blr
206 .Lot: andi. 5,3,3
207 beq .Laligned
208 stb 0,0(3)
209 subi 4,4,1
210 addi 3,3,1
211 b .Lot
212 .Laligned:
213 srdi 5,4,2
214 mtctr 5
215 stw 0,0(3)
216 addi 3,3,4
217 bc 16,0,$-8
218 andi. 4,4,3
219 bne .Little
220 blr
221 .long 0
222 .byte 0,12,0x14,0,0,0,2,0
223 .long 0
224
225
226 .globl CRYPTO_memcmp
227 .type CRYPTO_memcmp,@function
228 .section ".opd","aw"
229 .align 3
230 CRYPTO_memcmp:
231 .quad .CRYPTO_memcmp,.TOC.@tocbase,0
232 .previous
233 .align 4
234 .CRYPTO_memcmp:
235 cmpldi 5,0
236 li 0,0
237 beq .Lno_data
238 mtctr 5
239 .Loop_cmp:
240 lbz 6,0(3)
241 addi 3,3,1
242 lbz 7,0(4)
243 addi 4,4,1
244 xor 6,6,7
245 or 0,0,6
246 bc 16,0,.Loop_cmp
247
248 .Lno_data:
249 li 3,0
250 sub 3,3,0
251 extrwi 3,3,1,0
252 blr
253 .long 0
254 .byte 0,12,0x14,0,0,0,3,0
255 .long 0
256
257 .globl OPENSSL_instrument_bus_mftb
258 .type OPENSSL_instrument_bus_mftb,@function
259 .section ".opd","aw"
260 .align 3
261 OPENSSL_instrument_bus_mftb:
262 .quad .OPENSSL_instrument_bus_mftb,.TOC.@tocbase,0
263 .previous
264 .align 4
265 .OPENSSL_instrument_bus_mftb:
266 mtctr 4
267
268 mftb 7
269 li 8,0
270
271 dcbf 0,3
272 lwarx 6,0,3
273 add 6,6,8
274 stwcx. 6,0,3
275 stwx 6,0,3
276
277 .Loop: mftb 6
278 sub 8,6,7
279 mr 7,6
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 addi 3,3,4
286 bc 16,0,.Loop
287
288 mr 3,4
289 blr
290 .long 0
291 .byte 0,12,0x14,0,0,0,2,0
292 .long 0
293
294
295 .globl OPENSSL_instrument_bus2_mftb
296 .type OPENSSL_instrument_bus2_mftb,@function
297 .section ".opd","aw"
298 .align 3
299 OPENSSL_instrument_bus2_mftb:
300 .quad .OPENSSL_instrument_bus2_mftb,.TOC.@tocbase,0
301 .previous
302 .align 4
303 .OPENSSL_instrument_bus2_mftb:
304 mr 0,4
305 slwi 4,4,2
306
307 mftb 7
308 li 8,0
309
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 mftb 6
317 sub 8,6,7
318 mr 7,6
319 mr 9,8
320 .Loop2:
321 dcbf 0,3
322 lwarx 6,0,3
323 add 6,6,8
324 stwcx. 6,0,3
325 stwx 6,0,3
326
327 addic. 5,5,-1
328 beq .Ldone2
329
330 mftb 6
331 sub 8,6,7
332 mr 7,6
333 cmplw 7,8,9
334 mr 9,8
335
336 mfcr 6
337 not 6,6
338 rlwinm 6,6,1,29,29
339
340 sub. 4,4,6
341 add 3,3,6
342 bne .Loop2
343
344 .Ldone2:
345 srwi 4,4,2
346 sub 3,0,4
347 blr
348 .long 0
349 .byte 0,12,0x14,0,0,0,3,0
350 .long 0
351
352
353 .globl OPENSSL_instrument_bus_mfspr268
354 .type OPENSSL_instrument_bus_mfspr268,@function
355 .section ".opd","aw"
356 .align 3
357 OPENSSL_instrument_bus_mfspr268:
358 .quad .OPENSSL_instrument_bus_mfspr268,.TOC.@tocbase,0
359 .previous
360 .align 4
361 .OPENSSL_instrument_bus_mfspr268:
362 mtctr 4
363
364 mfspr 7,268
365 li 8,0
366
367 dcbf 0,3
368 lwarx 6,0,3
369 add 6,6,8
370 stwcx. 6,0,3
371 stwx 6,0,3
372
373 .Loop3: mfspr 6,268
374 sub 8,6,7
375 mr 7,6
376 dcbf 0,3
377 lwarx 6,0,3
378 add 6,6,8
379 stwcx. 6,0,3
380 stwx 6,0,3
381 addi 3,3,4
382 bc 16,0,.Loop3
383
384 mr 3,4
385 blr
386 .long 0
387 .byte 0,12,0x14,0,0,0,2,0
388 .long 0
389
390
391 .globl OPENSSL_instrument_bus2_mfspr268
392 .type OPENSSL_instrument_bus2_mfspr268,@function
393 .section ".opd","aw"
394 .align 3
395 OPENSSL_instrument_bus2_mfspr268:
396 .quad .OPENSSL_instrument_bus2_mfspr268,.TOC.@tocbase,0
397 .previous
398 .align 4
399 .OPENSSL_instrument_bus2_mfspr268:
400 mr 0,4
401 slwi 4,4,2
402
403 mfspr 7,268
404 li 8,0
405
406 dcbf 0,3
407 lwarx 6,0,3
408 add 6,6,8
409 stwcx. 6,0,3
410 stwx 6,0,3
411
412 mfspr 6,268
413 sub 8,6,7
414 mr 7,6
415 mr 9,8
416 .Loop4:
417 dcbf 0,3
418 lwarx 6,0,3
419 add 6,6,8
420 stwcx. 6,0,3
421 stwx 6,0,3
422
423 addic. 5,5,-1
424 beq .Ldone4
425
426 mfspr 6,268
427 sub 8,6,7
428 mr 7,6
429 cmplw 7,8,9
430 mr 9,8
431
432 mfcr 6
433 not 6,6
434 rlwinm 6,6,1,29,29
435
436 sub. 4,4,6
437 add 3,3,6
438 bne .Loop4
439
440 .Ldone4:
441 srwi 4,4,2
442 sub 3,0,4
443 blr
444 .long 0
445 .byte 0,12,0x14,0,0,0,3,0
446 .long 0
447
448