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