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