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