sha1-sparcv9.S revision 1.1 1 #include "sparc_arch.h"
2
3 #ifdef __arch64__
4 .register %g2,#scratch
5 .register %g3,#scratch
6 #endif
7
8 .section ".text",#alloc,#execinstr
9
10 #ifdef __PIC__
11 SPARC_PIC_THUNK(%g1)
12 #endif
13
14 .align 32
15 .globl sha1_block_data_order
16 sha1_block_data_order:
17 SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5)
18 ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1]
19
20 andcc %g1, CFR_SHA1, %g0
21 be .Lsoftware
22 nop
23
24 ld [%o0 + 0x00], %f0 ! load context
25 ld [%o0 + 0x04], %f1
26 ld [%o0 + 0x08], %f2
27 andcc %o1, 0x7, %g0
28 ld [%o0 + 0x0c], %f3
29 bne,pn %icc, .Lhwunaligned
30 ld [%o0 + 0x10], %f4
31
32 .Lhw_loop:
33 ldd [%o1 + 0x00], %f8
34 ldd [%o1 + 0x08], %f10
35 ldd [%o1 + 0x10], %f12
36 ldd [%o1 + 0x18], %f14
37 ldd [%o1 + 0x20], %f16
38 ldd [%o1 + 0x28], %f18
39 ldd [%o1 + 0x30], %f20
40 subcc %o2, 1, %o2 ! done yet?
41 ldd [%o1 + 0x38], %f22
42 add %o1, 0x40, %o1
43 prefetch [%o1 + 63], 20
44
45 .word 0x81b02820 ! SHA1
46
47 bne,pt SIZE_T_CC, .Lhw_loop
48 nop
49
50 .Lhwfinish:
51 st %f0, [%o0 + 0x00] ! store context
52 st %f1, [%o0 + 0x04]
53 st %f2, [%o0 + 0x08]
54 st %f3, [%o0 + 0x0c]
55 retl
56 st %f4, [%o0 + 0x10]
57
58 .align 8
59 .Lhwunaligned:
60 .word 0x93b24300 !alignaddr %o1,%g0,%o1
61
62 ldd [%o1 + 0x00], %f10
63 .Lhwunaligned_loop:
64 ldd [%o1 + 0x08], %f12
65 ldd [%o1 + 0x10], %f14
66 ldd [%o1 + 0x18], %f16
67 ldd [%o1 + 0x20], %f18
68 ldd [%o1 + 0x28], %f20
69 ldd [%o1 + 0x30], %f22
70 ldd [%o1 + 0x38], %f24
71 subcc %o2, 1, %o2 ! done yet?
72 ldd [%o1 + 0x40], %f26
73 add %o1, 0x40, %o1
74 prefetch [%o1 + 63], 20
75
76 .word 0x91b2890c !faligndata %f10,%f12,%f8
77 .word 0x95b3090e !faligndata %f12,%f14,%f10
78 .word 0x99b38910 !faligndata %f14,%f16,%f12
79 .word 0x9db40912 !faligndata %f16,%f18,%f14
80 .word 0xa1b48914 !faligndata %f18,%f20,%f16
81 .word 0xa5b50916 !faligndata %f20,%f22,%f18
82 .word 0xa9b58918 !faligndata %f22,%f24,%f20
83 .word 0xadb6091a !faligndata %f24,%f26,%f22
84
85 .word 0x81b02820 ! SHA1
86
87 bne,pt SIZE_T_CC, .Lhwunaligned_loop
88 .word 0x95b68f9a !for %f26,%f26,%f10 ! %f10=%f26
89
90 ba .Lhwfinish
91 nop
92
93 .align 16
94 .Lsoftware:
95 save %sp,-STACK_FRAME,%sp
96 sllx %i2,6,%i2
97 add %i1,%i2,%i2
98
99 or %g0,1,%g2
100 sllx %g2,32,%g2
101 or %g2,1,%g2
102
103 ld [%i0+0],%l0
104 ld [%i0+4],%l1
105 ld [%i0+8],%l2
106 ld [%i0+12],%l3
107 ld [%i0+16],%l4
108 andn %i1,7,%i3
109
110 sethi %hi(0x5a827999),%l5
111 or %l5,%lo(0x5a827999),%l5
112 sethi %hi(0x6ed9eba1),%l6
113 or %l6,%lo(0x6ed9eba1),%l6
114 sethi %hi(0x8f1bbcdc),%l7
115 or %l7,%lo(0x8f1bbcdc),%l7
116 sethi %hi(0xca62c1d6),%g5
117 or %g5,%lo(0xca62c1d6),%g5
118
119 .Lloop:
120 ldx [%i3+0],%o0
121 ldx [%i3+16],%o2
122 ldx [%i3+32],%o4
123 ldx [%i3+48],%g1
124 and %i1,7,%i4
125 ldx [%i3+8],%o1
126 sll %i4,3,%i4
127 ldx [%i3+24],%o3
128 subcc %g0,%i4,%i5 ! should be 64-%i4, but -%i4 works too
129 ldx [%i3+40],%o5
130 bz,pt %icc,.Laligned
131 ldx [%i3+56],%o7
132
133 sllx %o0,%i4,%o0
134 ldx [%i3+64],%g3
135 srlx %o1,%i5,%g4
136 sllx %o1,%i4,%o1
137 or %g4,%o0,%o0
138 srlx %o2,%i5,%g4
139 sllx %o2,%i4,%o2
140 or %g4,%o1,%o1
141 srlx %o3,%i5,%g4
142 sllx %o3,%i4,%o3
143 or %g4,%o2,%o2
144 srlx %o4,%i5,%g4
145 sllx %o4,%i4,%o4
146 or %g4,%o3,%o3
147 srlx %o5,%i5,%g4
148 sllx %o5,%i4,%o5
149 or %g4,%o4,%o4
150 srlx %g1,%i5,%g4
151 sllx %g1,%i4,%g1
152 or %g4,%o5,%o5
153 srlx %o7,%i5,%g4
154 sllx %o7,%i4,%o7
155 or %g4,%g1,%g1
156 srlx %g3,%i5,%g3
157 or %g3,%o7,%o7
158 .Laligned:
159 srlx %o0,32,%g4
160 sll %l0,5,%i3 !! 0
161 add %l5,%l4,%l4
162 srl %l0,27,%i4
163 add %i3,%l4,%l4
164 and %l2,%l1,%i3
165 add %i4,%l4,%l4
166 sll %l1,30,%i5
167 andn %l3,%l1,%i4
168 srl %l1,2,%l1
169 or %i4,%i3,%i4
170 or %i5,%l1,%l1
171 add %g4,%l4,%l4
172 add %i4,%l4,%l4
173 sll %l4,5,%i3 !! 1
174 add %l5,%l3,%l3
175 srl %l4,27,%i4
176 add %i3,%l3,%l3
177 and %l1,%l0,%i3
178 add %i4,%l3,%l3
179 sll %l0,30,%i5
180 andn %l2,%l0,%i4
181 srl %l0,2,%l0
182 or %i4,%i3,%i4
183 or %i5,%l0,%l0
184 add %o0,%l3,%l3
185 srlx %o1,32,%g4
186 add %i4,%l3,%l3
187 sll %l3,5,%i3 !! 2
188 add %l5,%l2,%l2
189 srl %l3,27,%i4
190 add %i3,%l2,%l2
191 and %l0,%l4,%i3
192 add %i4,%l2,%l2
193 sll %l4,30,%i5
194 andn %l1,%l4,%i4
195 srl %l4,2,%l4
196 or %i4,%i3,%i4
197 or %i5,%l4,%l4
198 add %g4,%l2,%l2
199 add %i4,%l2,%l2
200 sll %l2,5,%i3 !! 3
201 add %l5,%l1,%l1
202 srl %l2,27,%i4
203 add %i3,%l1,%l1
204 and %l4,%l3,%i3
205 add %i4,%l1,%l1
206 sll %l3,30,%i5
207 andn %l0,%l3,%i4
208 srl %l3,2,%l3
209 or %i4,%i3,%i4
210 or %i5,%l3,%l3
211 add %o1,%l1,%l1
212 srlx %o2,32,%g4
213 add %i4,%l1,%l1
214 sll %l1,5,%i3 !! 4
215 add %l5,%l0,%l0
216 srl %l1,27,%i4
217 add %i3,%l0,%l0
218 and %l3,%l2,%i3
219 add %i4,%l0,%l0
220 sll %l2,30,%i5
221 andn %l4,%l2,%i4
222 srl %l2,2,%l2
223 or %i4,%i3,%i4
224 or %i5,%l2,%l2
225 add %g4,%l0,%l0
226 add %i4,%l0,%l0
227 sll %l0,5,%i3 !! 5
228 add %l5,%l4,%l4
229 srl %l0,27,%i4
230 add %i3,%l4,%l4
231 and %l2,%l1,%i3
232 add %i4,%l4,%l4
233 sll %l1,30,%i5
234 andn %l3,%l1,%i4
235 srl %l1,2,%l1
236 or %i4,%i3,%i4
237 or %i5,%l1,%l1
238 add %o2,%l4,%l4
239 srlx %o3,32,%g4
240 add %i4,%l4,%l4
241 sll %l4,5,%i3 !! 6
242 add %l5,%l3,%l3
243 srl %l4,27,%i4
244 add %i3,%l3,%l3
245 and %l1,%l0,%i3
246 add %i4,%l3,%l3
247 sll %l0,30,%i5
248 andn %l2,%l0,%i4
249 srl %l0,2,%l0
250 or %i4,%i3,%i4
251 or %i5,%l0,%l0
252 add %g4,%l3,%l3
253 add %i4,%l3,%l3
254 sll %l3,5,%i3 !! 7
255 add %l5,%l2,%l2
256 srl %l3,27,%i4
257 add %i3,%l2,%l2
258 and %l0,%l4,%i3
259 add %i4,%l2,%l2
260 sll %l4,30,%i5
261 andn %l1,%l4,%i4
262 srl %l4,2,%l4
263 or %i4,%i3,%i4
264 or %i5,%l4,%l4
265 add %o3,%l2,%l2
266 srlx %o4,32,%g4
267 add %i4,%l2,%l2
268 sll %l2,5,%i3 !! 8
269 add %l5,%l1,%l1
270 srl %l2,27,%i4
271 add %i3,%l1,%l1
272 and %l4,%l3,%i3
273 add %i4,%l1,%l1
274 sll %l3,30,%i5
275 andn %l0,%l3,%i4
276 srl %l3,2,%l3
277 or %i4,%i3,%i4
278 or %i5,%l3,%l3
279 add %g4,%l1,%l1
280 add %i4,%l1,%l1
281 sll %l1,5,%i3 !! 9
282 add %l5,%l0,%l0
283 srl %l1,27,%i4
284 add %i3,%l0,%l0
285 and %l3,%l2,%i3
286 add %i4,%l0,%l0
287 sll %l2,30,%i5
288 andn %l4,%l2,%i4
289 srl %l2,2,%l2
290 or %i4,%i3,%i4
291 or %i5,%l2,%l2
292 add %o4,%l0,%l0
293 srlx %o5,32,%g4
294 add %i4,%l0,%l0
295 sll %l0,5,%i3 !! 10
296 add %l5,%l4,%l4
297 srl %l0,27,%i4
298 add %i3,%l4,%l4
299 and %l2,%l1,%i3
300 add %i4,%l4,%l4
301 sll %l1,30,%i5
302 andn %l3,%l1,%i4
303 srl %l1,2,%l1
304 or %i4,%i3,%i4
305 or %i5,%l1,%l1
306 add %g4,%l4,%l4
307 add %i4,%l4,%l4
308 sll %l4,5,%i3 !! 11
309 add %l5,%l3,%l3
310 srl %l4,27,%i4
311 add %i3,%l3,%l3
312 and %l1,%l0,%i3
313 add %i4,%l3,%l3
314 sll %l0,30,%i5
315 andn %l2,%l0,%i4
316 srl %l0,2,%l0
317 or %i4,%i3,%i4
318 or %i5,%l0,%l0
319 add %o5,%l3,%l3
320 srlx %g1,32,%g4
321 add %i4,%l3,%l3
322 sll %l3,5,%i3 !! 12
323 add %l5,%l2,%l2
324 srl %l3,27,%i4
325 add %i3,%l2,%l2
326 and %l0,%l4,%i3
327 add %i4,%l2,%l2
328 sll %l4,30,%i5
329 andn %l1,%l4,%i4
330 srl %l4,2,%l4
331 or %i4,%i3,%i4
332 or %i5,%l4,%l4
333 add %g4,%l2,%l2
334 add %i4,%l2,%l2
335 sll %l2,5,%i3 !! 13
336 add %l5,%l1,%l1
337 srl %l2,27,%i4
338 add %i3,%l1,%l1
339 and %l4,%l3,%i3
340 add %i4,%l1,%l1
341 sll %l3,30,%i5
342 andn %l0,%l3,%i4
343 srl %l3,2,%l3
344 or %i4,%i3,%i4
345 or %i5,%l3,%l3
346 add %g1,%l1,%l1
347 srlx %o7,32,%g4
348 add %i4,%l1,%l1
349 sll %l1,5,%i3 !! 14
350 add %l5,%l0,%l0
351 srl %l1,27,%i4
352 add %i3,%l0,%l0
353 and %l3,%l2,%i3
354 add %i4,%l0,%l0
355 sll %l2,30,%i5
356 andn %l4,%l2,%i4
357 srl %l2,2,%l2
358 or %i4,%i3,%i4
359 or %i5,%l2,%l2
360 add %g4,%l0,%l0
361 add %i4,%l0,%l0
362 sll %l0,5,%i3 !! 15
363 add %l5,%l4,%l4
364 srl %l0,27,%i4
365 add %i3,%l4,%l4
366 and %l2,%l1,%i3
367 add %i4,%l4,%l4
368 sll %l1,30,%i5
369 andn %l3,%l1,%i4
370 srl %l1,2,%l1
371 or %i4,%i3,%i4
372 or %i5,%l1,%l1
373 add %o7,%l4,%l4
374 add %i4,%l4,%l4
375 sllx %g1,32,%g4 ! Xupdate(16)
376 xor %o1,%o0,%o0
377 srlx %o7,32,%i4
378 xor %o4,%o0,%o0
379 sll %l4,5,%i3 !! 16
380 or %i4,%g4,%g4
381 add %l5,%l3,%l3 !!
382 xor %g4,%o0,%o0
383 srlx %o0,31,%g4
384 add %o0,%o0,%o0
385 and %g4,%g2,%g4
386 andn %o0,%g2,%o0
387 srl %l4,27,%i4 !!
388 or %g4,%o0,%o0
389 srlx %o0,32,%g4
390 add %i3,%l3,%l3 !!
391 and %l1,%l0,%i3
392 add %i4,%l3,%l3
393 sll %l0,30,%i5
394 add %g4,%l3,%l3
395 andn %l2,%l0,%i4
396 srl %l0,2,%l0
397 or %i4,%i3,%i4
398 or %i5,%l0,%l0
399 add %i4,%l3,%l3
400 sll %l3,5,%i3 !! 17
401 add %l5,%l2,%l2
402 srl %l3,27,%i4
403 add %i3,%l2,%l2 !!
404 and %l0,%l4,%i3
405 add %i4,%l2,%l2
406 sll %l4,30,%i5
407 add %o0,%l2,%l2
408 andn %l1,%l4,%i4
409 srl %l4,2,%l4
410 or %i4,%i3,%i4
411 or %i5,%l4,%l4
412 add %i4,%l2,%l2
413 sllx %o7,32,%g4 ! Xupdate(18)
414 xor %o2,%o1,%o1
415 srlx %o0,32,%i4
416 xor %o5,%o1,%o1
417 sll %l2,5,%i3 !! 18
418 or %i4,%g4,%g4
419 add %l5,%l1,%l1 !!
420 xor %g4,%o1,%o1
421 srlx %o1,31,%g4
422 add %o1,%o1,%o1
423 and %g4,%g2,%g4
424 andn %o1,%g2,%o1
425 srl %l2,27,%i4 !!
426 or %g4,%o1,%o1
427 srlx %o1,32,%g4
428 add %i3,%l1,%l1 !!
429 and %l4,%l3,%i3
430 add %i4,%l1,%l1
431 sll %l3,30,%i5
432 add %g4,%l1,%l1
433 andn %l0,%l3,%i4
434 srl %l3,2,%l3
435 or %i4,%i3,%i4
436 or %i5,%l3,%l3
437 add %i4,%l1,%l1
438 sll %l1,5,%i3 !! 19
439 add %l5,%l0,%l0
440 srl %l1,27,%i4
441 add %i3,%l0,%l0 !!
442 and %l3,%l2,%i3
443 add %i4,%l0,%l0
444 sll %l2,30,%i5
445 add %o1,%l0,%l0
446 andn %l4,%l2,%i4
447 srl %l2,2,%l2
448 or %i4,%i3,%i4
449 or %i5,%l2,%l2
450 add %i4,%l0,%l0
451 sllx %o0,32,%g4 ! Xupdate(20)
452 xor %o3,%o2,%o2
453 srlx %o1,32,%i4
454 xor %g1,%o2,%o2
455 sll %l0,5,%i3 !! 20
456 or %i4,%g4,%g4
457 add %l6,%l4,%l4 !!
458 xor %g4,%o2,%o2
459 srlx %o2,31,%g4
460 add %o2,%o2,%o2
461 and %g4,%g2,%g4
462 andn %o2,%g2,%o2
463 srl %l0,27,%i4 !!
464 or %g4,%o2,%o2
465 srlx %o2,32,%g4
466 add %i3,%l4,%l4 !!
467 xor %l2,%l1,%i3
468 add %i4,%l4,%l4
469 sll %l1,30,%i5
470 xor %l3,%i3,%i4
471 srl %l1,2,%l1
472 add %i4,%l4,%l4
473 or %i5,%l1,%l1
474 add %g4,%l4,%l4
475 sll %l4,5,%i3 !! 21
476 add %l6,%l3,%l3
477 srl %l4,27,%i4
478 add %i3,%l3,%l3 !!
479 xor %l1,%l0,%i3
480 add %i4,%l3,%l3
481 sll %l0,30,%i5
482 xor %l2,%i3,%i4
483 srl %l0,2,%l0
484 add %i4,%l3,%l3
485 or %i5,%l0,%l0
486 add %o2,%l3,%l3
487 sllx %o1,32,%g4 ! Xupdate(22)
488 xor %o4,%o3,%o3
489 srlx %o2,32,%i4
490 xor %o7,%o3,%o3
491 sll %l3,5,%i3 !! 22
492 or %i4,%g4,%g4
493 add %l6,%l2,%l2 !!
494 xor %g4,%o3,%o3
495 srlx %o3,31,%g4
496 add %o3,%o3,%o3
497 and %g4,%g2,%g4
498 andn %o3,%g2,%o3
499 srl %l3,27,%i4 !!
500 or %g4,%o3,%o3
501 srlx %o3,32,%g4
502 add %i3,%l2,%l2 !!
503 xor %l0,%l4,%i3
504 add %i4,%l2,%l2
505 sll %l4,30,%i5
506 xor %l1,%i3,%i4
507 srl %l4,2,%l4
508 add %i4,%l2,%l2
509 or %i5,%l4,%l4
510 add %g4,%l2,%l2
511 sll %l2,5,%i3 !! 23
512 add %l6,%l1,%l1
513 srl %l2,27,%i4
514 add %i3,%l1,%l1 !!
515 xor %l4,%l3,%i3
516 add %i4,%l1,%l1
517 sll %l3,30,%i5
518 xor %l0,%i3,%i4
519 srl %l3,2,%l3
520 add %i4,%l1,%l1
521 or %i5,%l3,%l3
522 add %o3,%l1,%l1
523 sllx %o2,32,%g4 ! Xupdate(24)
524 xor %o5,%o4,%o4
525 srlx %o3,32,%i4
526 xor %o0,%o4,%o4
527 sll %l1,5,%i3 !! 24
528 or %i4,%g4,%g4
529 add %l6,%l0,%l0 !!
530 xor %g4,%o4,%o4
531 srlx %o4,31,%g4
532 add %o4,%o4,%o4
533 and %g4,%g2,%g4
534 andn %o4,%g2,%o4
535 srl %l1,27,%i4 !!
536 or %g4,%o4,%o4
537 srlx %o4,32,%g4
538 add %i3,%l0,%l0 !!
539 xor %l3,%l2,%i3
540 add %i4,%l0,%l0
541 sll %l2,30,%i5
542 xor %l4,%i3,%i4
543 srl %l2,2,%l2
544 add %i4,%l0,%l0
545 or %i5,%l2,%l2
546 add %g4,%l0,%l0
547 sll %l0,5,%i3 !! 25
548 add %l6,%l4,%l4
549 srl %l0,27,%i4
550 add %i3,%l4,%l4 !!
551 xor %l2,%l1,%i3
552 add %i4,%l4,%l4
553 sll %l1,30,%i5
554 xor %l3,%i3,%i4
555 srl %l1,2,%l1
556 add %i4,%l4,%l4
557 or %i5,%l1,%l1
558 add %o4,%l4,%l4
559 sllx %o3,32,%g4 ! Xupdate(26)
560 xor %g1,%o5,%o5
561 srlx %o4,32,%i4
562 xor %o1,%o5,%o5
563 sll %l4,5,%i3 !! 26
564 or %i4,%g4,%g4
565 add %l6,%l3,%l3 !!
566 xor %g4,%o5,%o5
567 srlx %o5,31,%g4
568 add %o5,%o5,%o5
569 and %g4,%g2,%g4
570 andn %o5,%g2,%o5
571 srl %l4,27,%i4 !!
572 or %g4,%o5,%o5
573 srlx %o5,32,%g4
574 add %i3,%l3,%l3 !!
575 xor %l1,%l0,%i3
576 add %i4,%l3,%l3
577 sll %l0,30,%i5
578 xor %l2,%i3,%i4
579 srl %l0,2,%l0
580 add %i4,%l3,%l3
581 or %i5,%l0,%l0
582 add %g4,%l3,%l3
583 sll %l3,5,%i3 !! 27
584 add %l6,%l2,%l2
585 srl %l3,27,%i4
586 add %i3,%l2,%l2 !!
587 xor %l0,%l4,%i3
588 add %i4,%l2,%l2
589 sll %l4,30,%i5
590 xor %l1,%i3,%i4
591 srl %l4,2,%l4
592 add %i4,%l2,%l2
593 or %i5,%l4,%l4
594 add %o5,%l2,%l2
595 sllx %o4,32,%g4 ! Xupdate(28)
596 xor %o7,%g1,%g1
597 srlx %o5,32,%i4
598 xor %o2,%g1,%g1
599 sll %l2,5,%i3 !! 28
600 or %i4,%g4,%g4
601 add %l6,%l1,%l1 !!
602 xor %g4,%g1,%g1
603 srlx %g1,31,%g4
604 add %g1,%g1,%g1
605 and %g4,%g2,%g4
606 andn %g1,%g2,%g1
607 srl %l2,27,%i4 !!
608 or %g4,%g1,%g1
609 srlx %g1,32,%g4
610 add %i3,%l1,%l1 !!
611 xor %l4,%l3,%i3
612 add %i4,%l1,%l1
613 sll %l3,30,%i5
614 xor %l0,%i3,%i4
615 srl %l3,2,%l3
616 add %i4,%l1,%l1
617 or %i5,%l3,%l3
618 add %g4,%l1,%l1
619 sll %l1,5,%i3 !! 29
620 add %l6,%l0,%l0
621 srl %l1,27,%i4
622 add %i3,%l0,%l0 !!
623 xor %l3,%l2,%i3
624 add %i4,%l0,%l0
625 sll %l2,30,%i5
626 xor %l4,%i3,%i4
627 srl %l2,2,%l2
628 add %i4,%l0,%l0
629 or %i5,%l2,%l2
630 add %g1,%l0,%l0
631 sllx %o5,32,%g4 ! Xupdate(30)
632 xor %o0,%o7,%o7
633 srlx %g1,32,%i4
634 xor %o3,%o7,%o7
635 sll %l0,5,%i3 !! 30
636 or %i4,%g4,%g4
637 add %l6,%l4,%l4 !!
638 xor %g4,%o7,%o7
639 srlx %o7,31,%g4
640 add %o7,%o7,%o7
641 and %g4,%g2,%g4
642 andn %o7,%g2,%o7
643 srl %l0,27,%i4 !!
644 or %g4,%o7,%o7
645 srlx %o7,32,%g4
646 add %i3,%l4,%l4 !!
647 xor %l2,%l1,%i3
648 add %i4,%l4,%l4
649 sll %l1,30,%i5
650 xor %l3,%i3,%i4
651 srl %l1,2,%l1
652 add %i4,%l4,%l4
653 or %i5,%l1,%l1
654 add %g4,%l4,%l4
655 sll %l4,5,%i3 !! 31
656 add %l6,%l3,%l3
657 srl %l4,27,%i4
658 add %i3,%l3,%l3 !!
659 xor %l1,%l0,%i3
660 add %i4,%l3,%l3
661 sll %l0,30,%i5
662 xor %l2,%i3,%i4
663 srl %l0,2,%l0
664 add %i4,%l3,%l3
665 or %i5,%l0,%l0
666 add %o7,%l3,%l3
667 sllx %g1,32,%g4 ! Xupdate(32)
668 xor %o1,%o0,%o0
669 srlx %o7,32,%i4
670 xor %o4,%o0,%o0
671 sll %l3,5,%i3 !! 32
672 or %i4,%g4,%g4
673 add %l6,%l2,%l2 !!
674 xor %g4,%o0,%o0
675 srlx %o0,31,%g4
676 add %o0,%o0,%o0
677 and %g4,%g2,%g4
678 andn %o0,%g2,%o0
679 srl %l3,27,%i4 !!
680 or %g4,%o0,%o0
681 srlx %o0,32,%g4
682 add %i3,%l2,%l2 !!
683 xor %l0,%l4,%i3
684 add %i4,%l2,%l2
685 sll %l4,30,%i5
686 xor %l1,%i3,%i4
687 srl %l4,2,%l4
688 add %i4,%l2,%l2
689 or %i5,%l4,%l4
690 add %g4,%l2,%l2
691 sll %l2,5,%i3 !! 33
692 add %l6,%l1,%l1
693 srl %l2,27,%i4
694 add %i3,%l1,%l1 !!
695 xor %l4,%l3,%i3
696 add %i4,%l1,%l1
697 sll %l3,30,%i5
698 xor %l0,%i3,%i4
699 srl %l3,2,%l3
700 add %i4,%l1,%l1
701 or %i5,%l3,%l3
702 add %o0,%l1,%l1
703 sllx %o7,32,%g4 ! Xupdate(34)
704 xor %o2,%o1,%o1
705 srlx %o0,32,%i4
706 xor %o5,%o1,%o1
707 sll %l1,5,%i3 !! 34
708 or %i4,%g4,%g4
709 add %l6,%l0,%l0 !!
710 xor %g4,%o1,%o1
711 srlx %o1,31,%g4
712 add %o1,%o1,%o1
713 and %g4,%g2,%g4
714 andn %o1,%g2,%o1
715 srl %l1,27,%i4 !!
716 or %g4,%o1,%o1
717 srlx %o1,32,%g4
718 add %i3,%l0,%l0 !!
719 xor %l3,%l2,%i3
720 add %i4,%l0,%l0
721 sll %l2,30,%i5
722 xor %l4,%i3,%i4
723 srl %l2,2,%l2
724 add %i4,%l0,%l0
725 or %i5,%l2,%l2
726 add %g4,%l0,%l0
727 sll %l0,5,%i3 !! 35
728 add %l6,%l4,%l4
729 srl %l0,27,%i4
730 add %i3,%l4,%l4 !!
731 xor %l2,%l1,%i3
732 add %i4,%l4,%l4
733 sll %l1,30,%i5
734 xor %l3,%i3,%i4
735 srl %l1,2,%l1
736 add %i4,%l4,%l4
737 or %i5,%l1,%l1
738 add %o1,%l4,%l4
739 sllx %o0,32,%g4 ! Xupdate(36)
740 xor %o3,%o2,%o2
741 srlx %o1,32,%i4
742 xor %g1,%o2,%o2
743 sll %l4,5,%i3 !! 36
744 or %i4,%g4,%g4
745 add %l6,%l3,%l3 !!
746 xor %g4,%o2,%o2
747 srlx %o2,31,%g4
748 add %o2,%o2,%o2
749 and %g4,%g2,%g4
750 andn %o2,%g2,%o2
751 srl %l4,27,%i4 !!
752 or %g4,%o2,%o2
753 srlx %o2,32,%g4
754 add %i3,%l3,%l3 !!
755 xor %l1,%l0,%i3
756 add %i4,%l3,%l3
757 sll %l0,30,%i5
758 xor %l2,%i3,%i4
759 srl %l0,2,%l0
760 add %i4,%l3,%l3
761 or %i5,%l0,%l0
762 add %g4,%l3,%l3
763 sll %l3,5,%i3 !! 37
764 add %l6,%l2,%l2
765 srl %l3,27,%i4
766 add %i3,%l2,%l2 !!
767 xor %l0,%l4,%i3
768 add %i4,%l2,%l2
769 sll %l4,30,%i5
770 xor %l1,%i3,%i4
771 srl %l4,2,%l4
772 add %i4,%l2,%l2
773 or %i5,%l4,%l4
774 add %o2,%l2,%l2
775 sllx %o1,32,%g4 ! Xupdate(38)
776 xor %o4,%o3,%o3
777 srlx %o2,32,%i4
778 xor %o7,%o3,%o3
779 sll %l2,5,%i3 !! 38
780 or %i4,%g4,%g4
781 add %l6,%l1,%l1 !!
782 xor %g4,%o3,%o3
783 srlx %o3,31,%g4
784 add %o3,%o3,%o3
785 and %g4,%g2,%g4
786 andn %o3,%g2,%o3
787 srl %l2,27,%i4 !!
788 or %g4,%o3,%o3
789 srlx %o3,32,%g4
790 add %i3,%l1,%l1 !!
791 xor %l4,%l3,%i3
792 add %i4,%l1,%l1
793 sll %l3,30,%i5
794 xor %l0,%i3,%i4
795 srl %l3,2,%l3
796 add %i4,%l1,%l1
797 or %i5,%l3,%l3
798 add %g4,%l1,%l1
799 sll %l1,5,%i3 !! 39
800 add %l6,%l0,%l0
801 srl %l1,27,%i4
802 add %i3,%l0,%l0 !!
803 xor %l3,%l2,%i3
804 add %i4,%l0,%l0
805 sll %l2,30,%i5
806 xor %l4,%i3,%i4
807 srl %l2,2,%l2
808 add %i4,%l0,%l0
809 or %i5,%l2,%l2
810 add %o3,%l0,%l0
811 sllx %o2,32,%g4 ! Xupdate(40)
812 xor %o5,%o4,%o4
813 srlx %o3,32,%i4
814 xor %o0,%o4,%o4
815 sll %l0,5,%i3 !! 40
816 or %i4,%g4,%g4
817 add %l7,%l4,%l4 !!
818 xor %g4,%o4,%o4
819 srlx %o4,31,%g4
820 add %o4,%o4,%o4
821 and %g4,%g2,%g4
822 andn %o4,%g2,%o4
823 srl %l0,27,%i4 !!
824 or %g4,%o4,%o4
825 srlx %o4,32,%g4
826 add %i3,%l4,%l4 !!
827 and %l2,%l1,%i3
828 add %i4,%l4,%l4
829 sll %l1,30,%i5
830 or %l2,%l1,%i4
831 srl %l1,2,%l1
832 and %l3,%i4,%i4
833 add %g4,%l4,%l4
834 or %i4,%i3,%i4
835 or %i5,%l1,%l1
836 add %i4,%l4,%l4
837 sll %l4,5,%i3 !! 41
838 add %l7,%l3,%l3
839 srl %l4,27,%i4
840 add %i3,%l3,%l3 !!
841 and %l1,%l0,%i3
842 add %i4,%l3,%l3
843 sll %l0,30,%i5
844 or %l1,%l0,%i4
845 srl %l0,2,%l0
846 and %l2,%i4,%i4
847 add %o4,%l3,%l3
848 or %i4,%i3,%i4
849 or %i5,%l0,%l0
850 add %i4,%l3,%l3
851 sllx %o3,32,%g4 ! Xupdate(42)
852 xor %g1,%o5,%o5
853 srlx %o4,32,%i4
854 xor %o1,%o5,%o5
855 sll %l3,5,%i3 !! 42
856 or %i4,%g4,%g4
857 add %l7,%l2,%l2 !!
858 xor %g4,%o5,%o5
859 srlx %o5,31,%g4
860 add %o5,%o5,%o5
861 and %g4,%g2,%g4
862 andn %o5,%g2,%o5
863 srl %l3,27,%i4 !!
864 or %g4,%o5,%o5
865 srlx %o5,32,%g4
866 add %i3,%l2,%l2 !!
867 and %l0,%l4,%i3
868 add %i4,%l2,%l2
869 sll %l4,30,%i5
870 or %l0,%l4,%i4
871 srl %l4,2,%l4
872 and %l1,%i4,%i4
873 add %g4,%l2,%l2
874 or %i4,%i3,%i4
875 or %i5,%l4,%l4
876 add %i4,%l2,%l2
877 sll %l2,5,%i3 !! 43
878 add %l7,%l1,%l1
879 srl %l2,27,%i4
880 add %i3,%l1,%l1 !!
881 and %l4,%l3,%i3
882 add %i4,%l1,%l1
883 sll %l3,30,%i5
884 or %l4,%l3,%i4
885 srl %l3,2,%l3
886 and %l0,%i4,%i4
887 add %o5,%l1,%l1
888 or %i4,%i3,%i4
889 or %i5,%l3,%l3
890 add %i4,%l1,%l1
891 sllx %o4,32,%g4 ! Xupdate(44)
892 xor %o7,%g1,%g1
893 srlx %o5,32,%i4
894 xor %o2,%g1,%g1
895 sll %l1,5,%i3 !! 44
896 or %i4,%g4,%g4
897 add %l7,%l0,%l0 !!
898 xor %g4,%g1,%g1
899 srlx %g1,31,%g4
900 add %g1,%g1,%g1
901 and %g4,%g2,%g4
902 andn %g1,%g2,%g1
903 srl %l1,27,%i4 !!
904 or %g4,%g1,%g1
905 srlx %g1,32,%g4
906 add %i3,%l0,%l0 !!
907 and %l3,%l2,%i3
908 add %i4,%l0,%l0
909 sll %l2,30,%i5
910 or %l3,%l2,%i4
911 srl %l2,2,%l2
912 and %l4,%i4,%i4
913 add %g4,%l0,%l0
914 or %i4,%i3,%i4
915 or %i5,%l2,%l2
916 add %i4,%l0,%l0
917 sll %l0,5,%i3 !! 45
918 add %l7,%l4,%l4
919 srl %l0,27,%i4
920 add %i3,%l4,%l4 !!
921 and %l2,%l1,%i3
922 add %i4,%l4,%l4
923 sll %l1,30,%i5
924 or %l2,%l1,%i4
925 srl %l1,2,%l1
926 and %l3,%i4,%i4
927 add %g1,%l4,%l4
928 or %i4,%i3,%i4
929 or %i5,%l1,%l1
930 add %i4,%l4,%l4
931 sllx %o5,32,%g4 ! Xupdate(46)
932 xor %o0,%o7,%o7
933 srlx %g1,32,%i4
934 xor %o3,%o7,%o7
935 sll %l4,5,%i3 !! 46
936 or %i4,%g4,%g4
937 add %l7,%l3,%l3 !!
938 xor %g4,%o7,%o7
939 srlx %o7,31,%g4
940 add %o7,%o7,%o7
941 and %g4,%g2,%g4
942 andn %o7,%g2,%o7
943 srl %l4,27,%i4 !!
944 or %g4,%o7,%o7
945 srlx %o7,32,%g4
946 add %i3,%l3,%l3 !!
947 and %l1,%l0,%i3
948 add %i4,%l3,%l3
949 sll %l0,30,%i5
950 or %l1,%l0,%i4
951 srl %l0,2,%l0
952 and %l2,%i4,%i4
953 add %g4,%l3,%l3
954 or %i4,%i3,%i4
955 or %i5,%l0,%l0
956 add %i4,%l3,%l3
957 sll %l3,5,%i3 !! 47
958 add %l7,%l2,%l2
959 srl %l3,27,%i4
960 add %i3,%l2,%l2 !!
961 and %l0,%l4,%i3
962 add %i4,%l2,%l2
963 sll %l4,30,%i5
964 or %l0,%l4,%i4
965 srl %l4,2,%l4
966 and %l1,%i4,%i4
967 add %o7,%l2,%l2
968 or %i4,%i3,%i4
969 or %i5,%l4,%l4
970 add %i4,%l2,%l2
971 sllx %g1,32,%g4 ! Xupdate(48)
972 xor %o1,%o0,%o0
973 srlx %o7,32,%i4
974 xor %o4,%o0,%o0
975 sll %l2,5,%i3 !! 48
976 or %i4,%g4,%g4
977 add %l7,%l1,%l1 !!
978 xor %g4,%o0,%o0
979 srlx %o0,31,%g4
980 add %o0,%o0,%o0
981 and %g4,%g2,%g4
982 andn %o0,%g2,%o0
983 srl %l2,27,%i4 !!
984 or %g4,%o0,%o0
985 srlx %o0,32,%g4
986 add %i3,%l1,%l1 !!
987 and %l4,%l3,%i3
988 add %i4,%l1,%l1
989 sll %l3,30,%i5
990 or %l4,%l3,%i4
991 srl %l3,2,%l3
992 and %l0,%i4,%i4
993 add %g4,%l1,%l1
994 or %i4,%i3,%i4
995 or %i5,%l3,%l3
996 add %i4,%l1,%l1
997 sll %l1,5,%i3 !! 49
998 add %l7,%l0,%l0
999 srl %l1,27,%i4
1000 add %i3,%l0,%l0 !!
1001 and %l3,%l2,%i3
1002 add %i4,%l0,%l0
1003 sll %l2,30,%i5
1004 or %l3,%l2,%i4
1005 srl %l2,2,%l2
1006 and %l4,%i4,%i4
1007 add %o0,%l0,%l0
1008 or %i4,%i3,%i4
1009 or %i5,%l2,%l2
1010 add %i4,%l0,%l0
1011 sllx %o7,32,%g4 ! Xupdate(50)
1012 xor %o2,%o1,%o1
1013 srlx %o0,32,%i4
1014 xor %o5,%o1,%o1
1015 sll %l0,5,%i3 !! 50
1016 or %i4,%g4,%g4
1017 add %l7,%l4,%l4 !!
1018 xor %g4,%o1,%o1
1019 srlx %o1,31,%g4
1020 add %o1,%o1,%o1
1021 and %g4,%g2,%g4
1022 andn %o1,%g2,%o1
1023 srl %l0,27,%i4 !!
1024 or %g4,%o1,%o1
1025 srlx %o1,32,%g4
1026 add %i3,%l4,%l4 !!
1027 and %l2,%l1,%i3
1028 add %i4,%l4,%l4
1029 sll %l1,30,%i5
1030 or %l2,%l1,%i4
1031 srl %l1,2,%l1
1032 and %l3,%i4,%i4
1033 add %g4,%l4,%l4
1034 or %i4,%i3,%i4
1035 or %i5,%l1,%l1
1036 add %i4,%l4,%l4
1037 sll %l4,5,%i3 !! 51
1038 add %l7,%l3,%l3
1039 srl %l4,27,%i4
1040 add %i3,%l3,%l3 !!
1041 and %l1,%l0,%i3
1042 add %i4,%l3,%l3
1043 sll %l0,30,%i5
1044 or %l1,%l0,%i4
1045 srl %l0,2,%l0
1046 and %l2,%i4,%i4
1047 add %o1,%l3,%l3
1048 or %i4,%i3,%i4
1049 or %i5,%l0,%l0
1050 add %i4,%l3,%l3
1051 sllx %o0,32,%g4 ! Xupdate(52)
1052 xor %o3,%o2,%o2
1053 srlx %o1,32,%i4
1054 xor %g1,%o2,%o2
1055 sll %l3,5,%i3 !! 52
1056 or %i4,%g4,%g4
1057 add %l7,%l2,%l2 !!
1058 xor %g4,%o2,%o2
1059 srlx %o2,31,%g4
1060 add %o2,%o2,%o2
1061 and %g4,%g2,%g4
1062 andn %o2,%g2,%o2
1063 srl %l3,27,%i4 !!
1064 or %g4,%o2,%o2
1065 srlx %o2,32,%g4
1066 add %i3,%l2,%l2 !!
1067 and %l0,%l4,%i3
1068 add %i4,%l2,%l2
1069 sll %l4,30,%i5
1070 or %l0,%l4,%i4
1071 srl %l4,2,%l4
1072 and %l1,%i4,%i4
1073 add %g4,%l2,%l2
1074 or %i4,%i3,%i4
1075 or %i5,%l4,%l4
1076 add %i4,%l2,%l2
1077 sll %l2,5,%i3 !! 53
1078 add %l7,%l1,%l1
1079 srl %l2,27,%i4
1080 add %i3,%l1,%l1 !!
1081 and %l4,%l3,%i3
1082 add %i4,%l1,%l1
1083 sll %l3,30,%i5
1084 or %l4,%l3,%i4
1085 srl %l3,2,%l3
1086 and %l0,%i4,%i4
1087 add %o2,%l1,%l1
1088 or %i4,%i3,%i4
1089 or %i5,%l3,%l3
1090 add %i4,%l1,%l1
1091 sllx %o1,32,%g4 ! Xupdate(54)
1092 xor %o4,%o3,%o3
1093 srlx %o2,32,%i4
1094 xor %o7,%o3,%o3
1095 sll %l1,5,%i3 !! 54
1096 or %i4,%g4,%g4
1097 add %l7,%l0,%l0 !!
1098 xor %g4,%o3,%o3
1099 srlx %o3,31,%g4
1100 add %o3,%o3,%o3
1101 and %g4,%g2,%g4
1102 andn %o3,%g2,%o3
1103 srl %l1,27,%i4 !!
1104 or %g4,%o3,%o3
1105 srlx %o3,32,%g4
1106 add %i3,%l0,%l0 !!
1107 and %l3,%l2,%i3
1108 add %i4,%l0,%l0
1109 sll %l2,30,%i5
1110 or %l3,%l2,%i4
1111 srl %l2,2,%l2
1112 and %l4,%i4,%i4
1113 add %g4,%l0,%l0
1114 or %i4,%i3,%i4
1115 or %i5,%l2,%l2
1116 add %i4,%l0,%l0
1117 sll %l0,5,%i3 !! 55
1118 add %l7,%l4,%l4
1119 srl %l0,27,%i4
1120 add %i3,%l4,%l4 !!
1121 and %l2,%l1,%i3
1122 add %i4,%l4,%l4
1123 sll %l1,30,%i5
1124 or %l2,%l1,%i4
1125 srl %l1,2,%l1
1126 and %l3,%i4,%i4
1127 add %o3,%l4,%l4
1128 or %i4,%i3,%i4
1129 or %i5,%l1,%l1
1130 add %i4,%l4,%l4
1131 sllx %o2,32,%g4 ! Xupdate(56)
1132 xor %o5,%o4,%o4
1133 srlx %o3,32,%i4
1134 xor %o0,%o4,%o4
1135 sll %l4,5,%i3 !! 56
1136 or %i4,%g4,%g4
1137 add %l7,%l3,%l3 !!
1138 xor %g4,%o4,%o4
1139 srlx %o4,31,%g4
1140 add %o4,%o4,%o4
1141 and %g4,%g2,%g4
1142 andn %o4,%g2,%o4
1143 srl %l4,27,%i4 !!
1144 or %g4,%o4,%o4
1145 srlx %o4,32,%g4
1146 add %i3,%l3,%l3 !!
1147 and %l1,%l0,%i3
1148 add %i4,%l3,%l3
1149 sll %l0,30,%i5
1150 or %l1,%l0,%i4
1151 srl %l0,2,%l0
1152 and %l2,%i4,%i4
1153 add %g4,%l3,%l3
1154 or %i4,%i3,%i4
1155 or %i5,%l0,%l0
1156 add %i4,%l3,%l3
1157 sll %l3,5,%i3 !! 57
1158 add %l7,%l2,%l2
1159 srl %l3,27,%i4
1160 add %i3,%l2,%l2 !!
1161 and %l0,%l4,%i3
1162 add %i4,%l2,%l2
1163 sll %l4,30,%i5
1164 or %l0,%l4,%i4
1165 srl %l4,2,%l4
1166 and %l1,%i4,%i4
1167 add %o4,%l2,%l2
1168 or %i4,%i3,%i4
1169 or %i5,%l4,%l4
1170 add %i4,%l2,%l2
1171 sllx %o3,32,%g4 ! Xupdate(58)
1172 xor %g1,%o5,%o5
1173 srlx %o4,32,%i4
1174 xor %o1,%o5,%o5
1175 sll %l2,5,%i3 !! 58
1176 or %i4,%g4,%g4
1177 add %l7,%l1,%l1 !!
1178 xor %g4,%o5,%o5
1179 srlx %o5,31,%g4
1180 add %o5,%o5,%o5
1181 and %g4,%g2,%g4
1182 andn %o5,%g2,%o5
1183 srl %l2,27,%i4 !!
1184 or %g4,%o5,%o5
1185 srlx %o5,32,%g4
1186 add %i3,%l1,%l1 !!
1187 and %l4,%l3,%i3
1188 add %i4,%l1,%l1
1189 sll %l3,30,%i5
1190 or %l4,%l3,%i4
1191 srl %l3,2,%l3
1192 and %l0,%i4,%i4
1193 add %g4,%l1,%l1
1194 or %i4,%i3,%i4
1195 or %i5,%l3,%l3
1196 add %i4,%l1,%l1
1197 sll %l1,5,%i3 !! 59
1198 add %l7,%l0,%l0
1199 srl %l1,27,%i4
1200 add %i3,%l0,%l0 !!
1201 and %l3,%l2,%i3
1202 add %i4,%l0,%l0
1203 sll %l2,30,%i5
1204 or %l3,%l2,%i4
1205 srl %l2,2,%l2
1206 and %l4,%i4,%i4
1207 add %o5,%l0,%l0
1208 or %i4,%i3,%i4
1209 or %i5,%l2,%l2
1210 add %i4,%l0,%l0
1211 sllx %o4,32,%g4 ! Xupdate(60)
1212 xor %o7,%g1,%g1
1213 srlx %o5,32,%i4
1214 xor %o2,%g1,%g1
1215 sll %l0,5,%i3 !! 60
1216 or %i4,%g4,%g4
1217 add %g5,%l4,%l4 !!
1218 xor %g4,%g1,%g1
1219 srlx %g1,31,%g4
1220 add %g1,%g1,%g1
1221 and %g4,%g2,%g4
1222 andn %g1,%g2,%g1
1223 srl %l0,27,%i4 !!
1224 or %g4,%g1,%g1
1225 srlx %g1,32,%g4
1226 add %i3,%l4,%l4 !!
1227 xor %l2,%l1,%i3
1228 add %i4,%l4,%l4
1229 sll %l1,30,%i5
1230 xor %l3,%i3,%i4
1231 srl %l1,2,%l1
1232 add %i4,%l4,%l4
1233 or %i5,%l1,%l1
1234 add %g4,%l4,%l4
1235 sll %l4,5,%i3 !! 61
1236 add %g5,%l3,%l3
1237 srl %l4,27,%i4
1238 add %i3,%l3,%l3 !!
1239 xor %l1,%l0,%i3
1240 add %i4,%l3,%l3
1241 sll %l0,30,%i5
1242 xor %l2,%i3,%i4
1243 srl %l0,2,%l0
1244 add %i4,%l3,%l3
1245 or %i5,%l0,%l0
1246 add %g1,%l3,%l3
1247 sllx %o5,32,%g4 ! Xupdate(62)
1248 xor %o0,%o7,%o7
1249 srlx %g1,32,%i4
1250 xor %o3,%o7,%o7
1251 sll %l3,5,%i3 !! 62
1252 or %i4,%g4,%g4
1253 add %g5,%l2,%l2 !!
1254 xor %g4,%o7,%o7
1255 srlx %o7,31,%g4
1256 add %o7,%o7,%o7
1257 and %g4,%g2,%g4
1258 andn %o7,%g2,%o7
1259 srl %l3,27,%i4 !!
1260 or %g4,%o7,%o7
1261 srlx %o7,32,%g4
1262 add %i3,%l2,%l2 !!
1263 xor %l0,%l4,%i3
1264 add %i4,%l2,%l2
1265 sll %l4,30,%i5
1266 xor %l1,%i3,%i4
1267 srl %l4,2,%l4
1268 add %i4,%l2,%l2
1269 or %i5,%l4,%l4
1270 add %g4,%l2,%l2
1271 sll %l2,5,%i3 !! 63
1272 add %g5,%l1,%l1
1273 srl %l2,27,%i4
1274 add %i3,%l1,%l1 !!
1275 xor %l4,%l3,%i3
1276 add %i4,%l1,%l1
1277 sll %l3,30,%i5
1278 xor %l0,%i3,%i4
1279 srl %l3,2,%l3
1280 add %i4,%l1,%l1
1281 or %i5,%l3,%l3
1282 add %o7,%l1,%l1
1283 sllx %g1,32,%g4 ! Xupdate(64)
1284 xor %o1,%o0,%o0
1285 srlx %o7,32,%i4
1286 xor %o4,%o0,%o0
1287 sll %l1,5,%i3 !! 64
1288 or %i4,%g4,%g4
1289 add %g5,%l0,%l0 !!
1290 xor %g4,%o0,%o0
1291 srlx %o0,31,%g4
1292 add %o0,%o0,%o0
1293 and %g4,%g2,%g4
1294 andn %o0,%g2,%o0
1295 srl %l1,27,%i4 !!
1296 or %g4,%o0,%o0
1297 srlx %o0,32,%g4
1298 add %i3,%l0,%l0 !!
1299 xor %l3,%l2,%i3
1300 add %i4,%l0,%l0
1301 sll %l2,30,%i5
1302 xor %l4,%i3,%i4
1303 srl %l2,2,%l2
1304 add %i4,%l0,%l0
1305 or %i5,%l2,%l2
1306 add %g4,%l0,%l0
1307 sll %l0,5,%i3 !! 65
1308 add %g5,%l4,%l4
1309 srl %l0,27,%i4
1310 add %i3,%l4,%l4 !!
1311 xor %l2,%l1,%i3
1312 add %i4,%l4,%l4
1313 sll %l1,30,%i5
1314 xor %l3,%i3,%i4
1315 srl %l1,2,%l1
1316 add %i4,%l4,%l4
1317 or %i5,%l1,%l1
1318 add %o0,%l4,%l4
1319 sllx %o7,32,%g4 ! Xupdate(66)
1320 xor %o2,%o1,%o1
1321 srlx %o0,32,%i4
1322 xor %o5,%o1,%o1
1323 sll %l4,5,%i3 !! 66
1324 or %i4,%g4,%g4
1325 add %g5,%l3,%l3 !!
1326 xor %g4,%o1,%o1
1327 srlx %o1,31,%g4
1328 add %o1,%o1,%o1
1329 and %g4,%g2,%g4
1330 andn %o1,%g2,%o1
1331 srl %l4,27,%i4 !!
1332 or %g4,%o1,%o1
1333 srlx %o1,32,%g4
1334 add %i3,%l3,%l3 !!
1335 xor %l1,%l0,%i3
1336 add %i4,%l3,%l3
1337 sll %l0,30,%i5
1338 xor %l2,%i3,%i4
1339 srl %l0,2,%l0
1340 add %i4,%l3,%l3
1341 or %i5,%l0,%l0
1342 add %g4,%l3,%l3
1343 sll %l3,5,%i3 !! 67
1344 add %g5,%l2,%l2
1345 srl %l3,27,%i4
1346 add %i3,%l2,%l2 !!
1347 xor %l0,%l4,%i3
1348 add %i4,%l2,%l2
1349 sll %l4,30,%i5
1350 xor %l1,%i3,%i4
1351 srl %l4,2,%l4
1352 add %i4,%l2,%l2
1353 or %i5,%l4,%l4
1354 add %o1,%l2,%l2
1355 sllx %o0,32,%g4 ! Xupdate(68)
1356 xor %o3,%o2,%o2
1357 srlx %o1,32,%i4
1358 xor %g1,%o2,%o2
1359 sll %l2,5,%i3 !! 68
1360 or %i4,%g4,%g4
1361 add %g5,%l1,%l1 !!
1362 xor %g4,%o2,%o2
1363 srlx %o2,31,%g4
1364 add %o2,%o2,%o2
1365 and %g4,%g2,%g4
1366 andn %o2,%g2,%o2
1367 srl %l2,27,%i4 !!
1368 or %g4,%o2,%o2
1369 srlx %o2,32,%g4
1370 add %i3,%l1,%l1 !!
1371 xor %l4,%l3,%i3
1372 add %i4,%l1,%l1
1373 sll %l3,30,%i5
1374 xor %l0,%i3,%i4
1375 srl %l3,2,%l3
1376 add %i4,%l1,%l1
1377 or %i5,%l3,%l3
1378 add %g4,%l1,%l1
1379 sll %l1,5,%i3 !! 69
1380 add %g5,%l0,%l0
1381 srl %l1,27,%i4
1382 add %i3,%l0,%l0 !!
1383 xor %l3,%l2,%i3
1384 add %i4,%l0,%l0
1385 sll %l2,30,%i5
1386 xor %l4,%i3,%i4
1387 srl %l2,2,%l2
1388 add %i4,%l0,%l0
1389 or %i5,%l2,%l2
1390 add %o2,%l0,%l0
1391 sllx %o1,32,%g4 ! Xupdate(70)
1392 xor %o4,%o3,%o3
1393 srlx %o2,32,%i4
1394 xor %o7,%o3,%o3
1395 sll %l0,5,%i3 !! 70
1396 or %i4,%g4,%g4
1397 add %g5,%l4,%l4 !!
1398 xor %g4,%o3,%o3
1399 srlx %o3,31,%g4
1400 add %o3,%o3,%o3
1401 and %g4,%g2,%g4
1402 andn %o3,%g2,%o3
1403 srl %l0,27,%i4 !!
1404 or %g4,%o3,%o3
1405 srlx %o3,32,%g4
1406 add %i3,%l4,%l4 !!
1407 xor %l2,%l1,%i3
1408 add %i4,%l4,%l4
1409 sll %l1,30,%i5
1410 xor %l3,%i3,%i4
1411 srl %l1,2,%l1
1412 add %i4,%l4,%l4
1413 or %i5,%l1,%l1
1414 add %g4,%l4,%l4
1415 sll %l4,5,%i3 !! 71
1416 add %g5,%l3,%l3
1417 srl %l4,27,%i4
1418 add %i3,%l3,%l3 !!
1419 xor %l1,%l0,%i3
1420 add %i4,%l3,%l3
1421 sll %l0,30,%i5
1422 xor %l2,%i3,%i4
1423 srl %l0,2,%l0
1424 add %i4,%l3,%l3
1425 or %i5,%l0,%l0
1426 add %o3,%l3,%l3
1427 sllx %o2,32,%g4 ! Xupdate(72)
1428 xor %o5,%o4,%o4
1429 srlx %o3,32,%i4
1430 xor %o0,%o4,%o4
1431 sll %l3,5,%i3 !! 72
1432 or %i4,%g4,%g4
1433 add %g5,%l2,%l2 !!
1434 xor %g4,%o4,%o4
1435 srlx %o4,31,%g4
1436 add %o4,%o4,%o4
1437 and %g4,%g2,%g4
1438 andn %o4,%g2,%o4
1439 srl %l3,27,%i4 !!
1440 or %g4,%o4,%o4
1441 srlx %o4,32,%g4
1442 add %i3,%l2,%l2 !!
1443 xor %l0,%l4,%i3
1444 add %i4,%l2,%l2
1445 sll %l4,30,%i5
1446 xor %l1,%i3,%i4
1447 srl %l4,2,%l4
1448 add %i4,%l2,%l2
1449 or %i5,%l4,%l4
1450 add %g4,%l2,%l2
1451 sll %l2,5,%i3 !! 73
1452 add %g5,%l1,%l1
1453 srl %l2,27,%i4
1454 add %i3,%l1,%l1 !!
1455 xor %l4,%l3,%i3
1456 add %i4,%l1,%l1
1457 sll %l3,30,%i5
1458 xor %l0,%i3,%i4
1459 srl %l3,2,%l3
1460 add %i4,%l1,%l1
1461 or %i5,%l3,%l3
1462 add %o4,%l1,%l1
1463 sllx %o3,32,%g4 ! Xupdate(74)
1464 xor %g1,%o5,%o5
1465 srlx %o4,32,%i4
1466 xor %o1,%o5,%o5
1467 sll %l1,5,%i3 !! 74
1468 or %i4,%g4,%g4
1469 add %g5,%l0,%l0 !!
1470 xor %g4,%o5,%o5
1471 srlx %o5,31,%g4
1472 add %o5,%o5,%o5
1473 and %g4,%g2,%g4
1474 andn %o5,%g2,%o5
1475 srl %l1,27,%i4 !!
1476 or %g4,%o5,%o5
1477 srlx %o5,32,%g4
1478 add %i3,%l0,%l0 !!
1479 xor %l3,%l2,%i3
1480 add %i4,%l0,%l0
1481 sll %l2,30,%i5
1482 xor %l4,%i3,%i4
1483 srl %l2,2,%l2
1484 add %i4,%l0,%l0
1485 or %i5,%l2,%l2
1486 add %g4,%l0,%l0
1487 sll %l0,5,%i3 !! 75
1488 add %g5,%l4,%l4
1489 srl %l0,27,%i4
1490 add %i3,%l4,%l4 !!
1491 xor %l2,%l1,%i3
1492 add %i4,%l4,%l4
1493 sll %l1,30,%i5
1494 xor %l3,%i3,%i4
1495 srl %l1,2,%l1
1496 add %i4,%l4,%l4
1497 or %i5,%l1,%l1
1498 add %o5,%l4,%l4
1499 sllx %o4,32,%g4 ! Xupdate(76)
1500 xor %o7,%g1,%g1
1501 srlx %o5,32,%i4
1502 xor %o2,%g1,%g1
1503 sll %l4,5,%i3 !! 76
1504 or %i4,%g4,%g4
1505 add %g5,%l3,%l3 !!
1506 xor %g4,%g1,%g1
1507 srlx %g1,31,%g4
1508 add %g1,%g1,%g1
1509 and %g4,%g2,%g4
1510 andn %g1,%g2,%g1
1511 srl %l4,27,%i4 !!
1512 or %g4,%g1,%g1
1513 srlx %g1,32,%g4
1514 add %i3,%l3,%l3 !!
1515 xor %l1,%l0,%i3
1516 add %i4,%l3,%l3
1517 sll %l0,30,%i5
1518 xor %l2,%i3,%i4
1519 srl %l0,2,%l0
1520 add %i4,%l3,%l3
1521 or %i5,%l0,%l0
1522 add %g4,%l3,%l3
1523 sll %l3,5,%i3 !! 77
1524 add %g5,%l2,%l2
1525 srl %l3,27,%i4
1526 add %i3,%l2,%l2 !!
1527 xor %l0,%l4,%i3
1528 add %i4,%l2,%l2
1529 sll %l4,30,%i5
1530 xor %l1,%i3,%i4
1531 srl %l4,2,%l4
1532 add %i4,%l2,%l2
1533 or %i5,%l4,%l4
1534 add %g1,%l2,%l2
1535 sllx %o5,32,%g4 ! Xupdate(78)
1536 xor %o0,%o7,%o7
1537 srlx %g1,32,%i4
1538 xor %o3,%o7,%o7
1539 sll %l2,5,%i3 !! 78
1540 or %i4,%g4,%g4
1541 add %g5,%l1,%l1 !!
1542 xor %g4,%o7,%o7
1543 srlx %o7,31,%g4
1544 add %o7,%o7,%o7
1545 and %g4,%g2,%g4
1546 andn %o7,%g2,%o7
1547 srl %l2,27,%i4 !!
1548 or %g4,%o7,%o7
1549 srlx %o7,32,%g4
1550 add %i3,%l1,%l1 !!
1551 xor %l4,%l3,%i3
1552 add %i4,%l1,%l1
1553 sll %l3,30,%i5
1554 xor %l0,%i3,%i4
1555 srl %l3,2,%l3
1556 add %i4,%l1,%l1
1557 or %i5,%l3,%l3
1558 add %g4,%l1,%l1
1559 sll %l1,5,%i3 !! 79
1560 add %g5,%l0,%l0
1561 srl %l1,27,%i4
1562 add %i3,%l0,%l0 !!
1563 xor %l3,%l2,%i3
1564 add %i4,%l0,%l0
1565 sll %l2,30,%i5
1566 xor %l4,%i3,%i4
1567 srl %l2,2,%l2
1568 add %i4,%l0,%l0
1569 or %i5,%l2,%l2
1570 add %o7,%l0,%l0
1571
1572 ld [%i0+0],%o0
1573 ld [%i0+4],%o1
1574 ld [%i0+8],%o2
1575 ld [%i0+12],%o3
1576 add %i1,64,%i1
1577 ld [%i0+16],%o4
1578 cmp %i1,%i2
1579
1580 add %l0,%o0,%l0
1581 st %l0,[%i0+0]
1582 add %l1,%o1,%l1
1583 st %l1,[%i0+4]
1584 add %l2,%o2,%l2
1585 st %l2,[%i0+8]
1586 add %l3,%o3,%l3
1587 st %l3,[%i0+12]
1588 add %l4,%o4,%l4
1589 st %l4,[%i0+16]
1590
1591 bne SIZE_T_CC,.Lloop
1592 andn %i1,7,%i3
1593
1594 ret
1595 restore
1596 .type sha1_block_data_order,#function
1597 .size sha1_block_data_order,(.-sha1_block_data_order)
1598 .asciz "SHA1 block transform for SPARCv9, CRYPTOGAMS by <appro (at) openssl.org>"
1599 .align 4
1600