sha1-sparcv9.S revision 1.2
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__ 11SPARC_PIC_THUNK(%g1) 12#endif 13 14.align 32 15.globl sha1_block_data_order 16sha1_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@openssl.org>" 1599.align 4 1600