Home | History | Annotate | Line # | Download | only in sparc64
sha1-sparcv9.S revision 1.1.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