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.align 64 11K256: 12.type K256,#object 13 .long 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5 14 .long 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5 15 .long 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3 16 .long 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174 17 .long 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc 18 .long 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da 19 .long 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7 20 .long 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967 21 .long 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13 22 .long 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85 23 .long 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3 24 .long 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070 25 .long 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5 26 .long 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3 27 .long 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208 28 .long 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 29.size K256,.-K256 30 31#ifdef __PIC__ 32SPARC_PIC_THUNK(%g1) 33#endif 34 35.globl sha256_block_data_order 36.align 32 37sha256_block_data_order: 38 SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) 39 ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] 40 41 andcc %g1, CFR_SHA256, %g0 42 be .Lsoftware 43 nop 44 ld [%o0 + 0x00], %f0 45 ld [%o0 + 0x04], %f1 46 ld [%o0 + 0x08], %f2 47 ld [%o0 + 0x0c], %f3 48 ld [%o0 + 0x10], %f4 49 ld [%o0 + 0x14], %f5 50 andcc %o1, 0x7, %g0 51 ld [%o0 + 0x18], %f6 52 bne,pn %icc, .Lhwunaligned 53 ld [%o0 + 0x1c], %f7 54 55.Lhwloop: 56 ldd [%o1 + 0x00], %f8 57 ldd [%o1 + 0x08], %f10 58 ldd [%o1 + 0x10], %f12 59 ldd [%o1 + 0x18], %f14 60 ldd [%o1 + 0x20], %f16 61 ldd [%o1 + 0x28], %f18 62 ldd [%o1 + 0x30], %f20 63 subcc %o2, 1, %o2 ! done yet? 64 ldd [%o1 + 0x38], %f22 65 add %o1, 0x40, %o1 66 prefetch [%o1 + 63], 20 67 68 .word 0x81b02840 ! SHA256 69 70 bne,pt SIZE_T_CC, .Lhwloop 71 nop 72 73.Lhwfinish: 74 st %f0, [%o0 + 0x00] ! store context 75 st %f1, [%o0 + 0x04] 76 st %f2, [%o0 + 0x08] 77 st %f3, [%o0 + 0x0c] 78 st %f4, [%o0 + 0x10] 79 st %f5, [%o0 + 0x14] 80 st %f6, [%o0 + 0x18] 81 retl 82 st %f7, [%o0 + 0x1c] 83 84.align 8 85.Lhwunaligned: 86 .word 0x93b24300 !alignaddr %o1,%g0,%o1 87 88 ldd [%o1 + 0x00], %f10 89.Lhwunaligned_loop: 90 ldd [%o1 + 0x08], %f12 91 ldd [%o1 + 0x10], %f14 92 ldd [%o1 + 0x18], %f16 93 ldd [%o1 + 0x20], %f18 94 ldd [%o1 + 0x28], %f20 95 ldd [%o1 + 0x30], %f22 96 ldd [%o1 + 0x38], %f24 97 subcc %o2, 1, %o2 ! done yet? 98 ldd [%o1 + 0x40], %f26 99 add %o1, 0x40, %o1 100 prefetch [%o1 + 63], 20 101 102 .word 0x91b2890c !faligndata %f10,%f12,%f8 103 .word 0x95b3090e !faligndata %f12,%f14,%f10 104 .word 0x99b38910 !faligndata %f14,%f16,%f12 105 .word 0x9db40912 !faligndata %f16,%f18,%f14 106 .word 0xa1b48914 !faligndata %f18,%f20,%f16 107 .word 0xa5b50916 !faligndata %f20,%f22,%f18 108 .word 0xa9b58918 !faligndata %f22,%f24,%f20 109 .word 0xadb6091a !faligndata %f24,%f26,%f22 110 111 .word 0x81b02840 ! SHA256 112 113 bne,pt SIZE_T_CC, .Lhwunaligned_loop 114 .word 0x95b68f9a !for %f26,%f26,%f10 ! %f10=%f26 115 116 ba .Lhwfinish 117 nop 118.align 16 119.Lsoftware: 120 save %sp,-STACK_FRAME-0,%sp 121 and %i1,7,%i4 122 sllx %i2,6,%i2 123 andn %i1,7,%i1 124 sll %i4,3,%i4 125 add %i1,%i2,%i2 126.Lpic: call .+8 127 add %o7,K256-.Lpic,%i3 128 129 ld [%i0+0],%l0 130 ld [%i0+4],%l1 131 ld [%i0+8],%l2 132 ld [%i0+12],%l3 133 ld [%i0+16],%l4 134 ld [%i0+20],%l5 135 ld [%i0+24],%l6 136 ld [%i0+28],%l7 137 138.Lloop: 139 ldx [%i1+0],%o0 140 ldx [%i1+16],%o2 141 ldx [%i1+32],%o4 142 ldx [%i1+48],%g1 143 ldx [%i1+8],%o1 144 ldx [%i1+24],%o3 145 subcc %g0,%i4,%i5 ! should be 64-%i4, but -%i4 works too 146 ldx [%i1+40],%o5 147 bz,pt %icc,.Laligned 148 ldx [%i1+56],%o7 149 150 sllx %o0,%i4,%o0 151 ldx [%i1+64],%g2 152 srlx %o1,%i5,%g4 153 sllx %o1,%i4,%o1 154 or %g4,%o0,%o0 155 srlx %o2,%i5,%g4 156 sllx %o2,%i4,%o2 157 or %g4,%o1,%o1 158 srlx %o3,%i5,%g4 159 sllx %o3,%i4,%o3 160 or %g4,%o2,%o2 161 srlx %o4,%i5,%g4 162 sllx %o4,%i4,%o4 163 or %g4,%o3,%o3 164 srlx %o5,%i5,%g4 165 sllx %o5,%i4,%o5 166 or %g4,%o4,%o4 167 srlx %g1,%i5,%g4 168 sllx %g1,%i4,%g1 169 or %g4,%o5,%o5 170 srlx %o7,%i5,%g4 171 sllx %o7,%i4,%o7 172 or %g4,%g1,%g1 173 srlx %g2,%i5,%g2 174 or %g2,%o7,%o7 175.Laligned: 176 srlx %o0,32,%g2 177 add %l7,%g2,%g2 178 srl %l4,6,%l7 !! 0 179 xor %l5,%l6,%g5 180 sll %l4,7,%g4 181 and %l4,%g5,%g5 182 srl %l4,11,%g3 183 xor %g4,%l7,%l7 184 sll %l4,21,%g4 185 xor %g3,%l7,%l7 186 srl %l4,25,%g3 187 xor %g4,%l7,%l7 188 sll %l4,26,%g4 189 xor %g3,%l7,%l7 190 xor %l6,%g5,%g5 ! Ch(e,f,g) 191 xor %g4,%l7,%g3 ! Sigma1(e) 192 193 srl %l0,2,%l7 194 add %g5,%g2,%g2 195 ld [%i3+0],%g5 ! K[0] 196 sll %l0,10,%g4 197 add %g3,%g2,%g2 198 srl %l0,13,%g3 199 xor %g4,%l7,%l7 200 sll %l0,19,%g4 201 xor %g3,%l7,%l7 202 srl %l0,22,%g3 203 xor %g4,%l7,%l7 204 sll %l0,30,%g4 205 xor %g3,%l7,%l7 206 xor %g4,%l7,%l7 ! Sigma0(a) 207 208 or %l0,%l1,%g3 209 and %l0,%l1,%g4 210 and %l2,%g3,%g3 211 or %g3,%g4,%g4 ! Maj(a,b,c) 212 add %g5,%g2,%g2 ! +=K[0] 213 add %g4,%l7,%l7 214 215 add %g2,%l3,%l3 216 add %g2,%l7,%l7 217 add %o0,%l6,%g2 218 srl %l3,6,%l6 !! 1 219 xor %l4,%l5,%g5 220 sll %l3,7,%g4 221 and %l3,%g5,%g5 222 srl %l3,11,%g3 223 xor %g4,%l6,%l6 224 sll %l3,21,%g4 225 xor %g3,%l6,%l6 226 srl %l3,25,%g3 227 xor %g4,%l6,%l6 228 sll %l3,26,%g4 229 xor %g3,%l6,%l6 230 xor %l5,%g5,%g5 ! Ch(e,f,g) 231 xor %g4,%l6,%g3 ! Sigma1(e) 232 233 srl %l7,2,%l6 234 add %g5,%g2,%g2 235 ld [%i3+4],%g5 ! K[1] 236 sll %l7,10,%g4 237 add %g3,%g2,%g2 238 srl %l7,13,%g3 239 xor %g4,%l6,%l6 240 sll %l7,19,%g4 241 xor %g3,%l6,%l6 242 srl %l7,22,%g3 243 xor %g4,%l6,%l6 244 sll %l7,30,%g4 245 xor %g3,%l6,%l6 246 xor %g4,%l6,%l6 ! Sigma0(a) 247 248 or %l7,%l0,%g3 249 and %l7,%l0,%g4 250 and %l1,%g3,%g3 251 or %g3,%g4,%g4 ! Maj(a,b,c) 252 add %g5,%g2,%g2 ! +=K[1] 253 add %g4,%l6,%l6 254 255 add %g2,%l2,%l2 256 add %g2,%l6,%l6 257 srlx %o1,32,%g2 258 add %l5,%g2,%g2 259 srl %l2,6,%l5 !! 2 260 xor %l3,%l4,%g5 261 sll %l2,7,%g4 262 and %l2,%g5,%g5 263 srl %l2,11,%g3 264 xor %g4,%l5,%l5 265 sll %l2,21,%g4 266 xor %g3,%l5,%l5 267 srl %l2,25,%g3 268 xor %g4,%l5,%l5 269 sll %l2,26,%g4 270 xor %g3,%l5,%l5 271 xor %l4,%g5,%g5 ! Ch(e,f,g) 272 xor %g4,%l5,%g3 ! Sigma1(e) 273 274 srl %l6,2,%l5 275 add %g5,%g2,%g2 276 ld [%i3+8],%g5 ! K[2] 277 sll %l6,10,%g4 278 add %g3,%g2,%g2 279 srl %l6,13,%g3 280 xor %g4,%l5,%l5 281 sll %l6,19,%g4 282 xor %g3,%l5,%l5 283 srl %l6,22,%g3 284 xor %g4,%l5,%l5 285 sll %l6,30,%g4 286 xor %g3,%l5,%l5 287 xor %g4,%l5,%l5 ! Sigma0(a) 288 289 or %l6,%l7,%g3 290 and %l6,%l7,%g4 291 and %l0,%g3,%g3 292 or %g3,%g4,%g4 ! Maj(a,b,c) 293 add %g5,%g2,%g2 ! +=K[2] 294 add %g4,%l5,%l5 295 296 add %g2,%l1,%l1 297 add %g2,%l5,%l5 298 add %o1,%l4,%g2 299 srl %l1,6,%l4 !! 3 300 xor %l2,%l3,%g5 301 sll %l1,7,%g4 302 and %l1,%g5,%g5 303 srl %l1,11,%g3 304 xor %g4,%l4,%l4 305 sll %l1,21,%g4 306 xor %g3,%l4,%l4 307 srl %l1,25,%g3 308 xor %g4,%l4,%l4 309 sll %l1,26,%g4 310 xor %g3,%l4,%l4 311 xor %l3,%g5,%g5 ! Ch(e,f,g) 312 xor %g4,%l4,%g3 ! Sigma1(e) 313 314 srl %l5,2,%l4 315 add %g5,%g2,%g2 316 ld [%i3+12],%g5 ! K[3] 317 sll %l5,10,%g4 318 add %g3,%g2,%g2 319 srl %l5,13,%g3 320 xor %g4,%l4,%l4 321 sll %l5,19,%g4 322 xor %g3,%l4,%l4 323 srl %l5,22,%g3 324 xor %g4,%l4,%l4 325 sll %l5,30,%g4 326 xor %g3,%l4,%l4 327 xor %g4,%l4,%l4 ! Sigma0(a) 328 329 or %l5,%l6,%g3 330 and %l5,%l6,%g4 331 and %l7,%g3,%g3 332 or %g3,%g4,%g4 ! Maj(a,b,c) 333 add %g5,%g2,%g2 ! +=K[3] 334 add %g4,%l4,%l4 335 336 add %g2,%l0,%l0 337 add %g2,%l4,%l4 338 srlx %o2,32,%g2 339 add %l3,%g2,%g2 340 srl %l0,6,%l3 !! 4 341 xor %l1,%l2,%g5 342 sll %l0,7,%g4 343 and %l0,%g5,%g5 344 srl %l0,11,%g3 345 xor %g4,%l3,%l3 346 sll %l0,21,%g4 347 xor %g3,%l3,%l3 348 srl %l0,25,%g3 349 xor %g4,%l3,%l3 350 sll %l0,26,%g4 351 xor %g3,%l3,%l3 352 xor %l2,%g5,%g5 ! Ch(e,f,g) 353 xor %g4,%l3,%g3 ! Sigma1(e) 354 355 srl %l4,2,%l3 356 add %g5,%g2,%g2 357 ld [%i3+16],%g5 ! K[4] 358 sll %l4,10,%g4 359 add %g3,%g2,%g2 360 srl %l4,13,%g3 361 xor %g4,%l3,%l3 362 sll %l4,19,%g4 363 xor %g3,%l3,%l3 364 srl %l4,22,%g3 365 xor %g4,%l3,%l3 366 sll %l4,30,%g4 367 xor %g3,%l3,%l3 368 xor %g4,%l3,%l3 ! Sigma0(a) 369 370 or %l4,%l5,%g3 371 and %l4,%l5,%g4 372 and %l6,%g3,%g3 373 or %g3,%g4,%g4 ! Maj(a,b,c) 374 add %g5,%g2,%g2 ! +=K[4] 375 add %g4,%l3,%l3 376 377 add %g2,%l7,%l7 378 add %g2,%l3,%l3 379 add %o2,%l2,%g2 380 srl %l7,6,%l2 !! 5 381 xor %l0,%l1,%g5 382 sll %l7,7,%g4 383 and %l7,%g5,%g5 384 srl %l7,11,%g3 385 xor %g4,%l2,%l2 386 sll %l7,21,%g4 387 xor %g3,%l2,%l2 388 srl %l7,25,%g3 389 xor %g4,%l2,%l2 390 sll %l7,26,%g4 391 xor %g3,%l2,%l2 392 xor %l1,%g5,%g5 ! Ch(e,f,g) 393 xor %g4,%l2,%g3 ! Sigma1(e) 394 395 srl %l3,2,%l2 396 add %g5,%g2,%g2 397 ld [%i3+20],%g5 ! K[5] 398 sll %l3,10,%g4 399 add %g3,%g2,%g2 400 srl %l3,13,%g3 401 xor %g4,%l2,%l2 402 sll %l3,19,%g4 403 xor %g3,%l2,%l2 404 srl %l3,22,%g3 405 xor %g4,%l2,%l2 406 sll %l3,30,%g4 407 xor %g3,%l2,%l2 408 xor %g4,%l2,%l2 ! Sigma0(a) 409 410 or %l3,%l4,%g3 411 and %l3,%l4,%g4 412 and %l5,%g3,%g3 413 or %g3,%g4,%g4 ! Maj(a,b,c) 414 add %g5,%g2,%g2 ! +=K[5] 415 add %g4,%l2,%l2 416 417 add %g2,%l6,%l6 418 add %g2,%l2,%l2 419 srlx %o3,32,%g2 420 add %l1,%g2,%g2 421 srl %l6,6,%l1 !! 6 422 xor %l7,%l0,%g5 423 sll %l6,7,%g4 424 and %l6,%g5,%g5 425 srl %l6,11,%g3 426 xor %g4,%l1,%l1 427 sll %l6,21,%g4 428 xor %g3,%l1,%l1 429 srl %l6,25,%g3 430 xor %g4,%l1,%l1 431 sll %l6,26,%g4 432 xor %g3,%l1,%l1 433 xor %l0,%g5,%g5 ! Ch(e,f,g) 434 xor %g4,%l1,%g3 ! Sigma1(e) 435 436 srl %l2,2,%l1 437 add %g5,%g2,%g2 438 ld [%i3+24],%g5 ! K[6] 439 sll %l2,10,%g4 440 add %g3,%g2,%g2 441 srl %l2,13,%g3 442 xor %g4,%l1,%l1 443 sll %l2,19,%g4 444 xor %g3,%l1,%l1 445 srl %l2,22,%g3 446 xor %g4,%l1,%l1 447 sll %l2,30,%g4 448 xor %g3,%l1,%l1 449 xor %g4,%l1,%l1 ! Sigma0(a) 450 451 or %l2,%l3,%g3 452 and %l2,%l3,%g4 453 and %l4,%g3,%g3 454 or %g3,%g4,%g4 ! Maj(a,b,c) 455 add %g5,%g2,%g2 ! +=K[6] 456 add %g4,%l1,%l1 457 458 add %g2,%l5,%l5 459 add %g2,%l1,%l1 460 add %o3,%l0,%g2 461 srl %l5,6,%l0 !! 7 462 xor %l6,%l7,%g5 463 sll %l5,7,%g4 464 and %l5,%g5,%g5 465 srl %l5,11,%g3 466 xor %g4,%l0,%l0 467 sll %l5,21,%g4 468 xor %g3,%l0,%l0 469 srl %l5,25,%g3 470 xor %g4,%l0,%l0 471 sll %l5,26,%g4 472 xor %g3,%l0,%l0 473 xor %l7,%g5,%g5 ! Ch(e,f,g) 474 xor %g4,%l0,%g3 ! Sigma1(e) 475 476 srl %l1,2,%l0 477 add %g5,%g2,%g2 478 ld [%i3+28],%g5 ! K[7] 479 sll %l1,10,%g4 480 add %g3,%g2,%g2 481 srl %l1,13,%g3 482 xor %g4,%l0,%l0 483 sll %l1,19,%g4 484 xor %g3,%l0,%l0 485 srl %l1,22,%g3 486 xor %g4,%l0,%l0 487 sll %l1,30,%g4 488 xor %g3,%l0,%l0 489 xor %g4,%l0,%l0 ! Sigma0(a) 490 491 or %l1,%l2,%g3 492 and %l1,%l2,%g4 493 and %l3,%g3,%g3 494 or %g3,%g4,%g4 ! Maj(a,b,c) 495 add %g5,%g2,%g2 ! +=K[7] 496 add %g4,%l0,%l0 497 498 add %g2,%l4,%l4 499 add %g2,%l0,%l0 500 srlx %o4,32,%g2 501 add %l7,%g2,%g2 502 srl %l4,6,%l7 !! 8 503 xor %l5,%l6,%g5 504 sll %l4,7,%g4 505 and %l4,%g5,%g5 506 srl %l4,11,%g3 507 xor %g4,%l7,%l7 508 sll %l4,21,%g4 509 xor %g3,%l7,%l7 510 srl %l4,25,%g3 511 xor %g4,%l7,%l7 512 sll %l4,26,%g4 513 xor %g3,%l7,%l7 514 xor %l6,%g5,%g5 ! Ch(e,f,g) 515 xor %g4,%l7,%g3 ! Sigma1(e) 516 517 srl %l0,2,%l7 518 add %g5,%g2,%g2 519 ld [%i3+32],%g5 ! K[8] 520 sll %l0,10,%g4 521 add %g3,%g2,%g2 522 srl %l0,13,%g3 523 xor %g4,%l7,%l7 524 sll %l0,19,%g4 525 xor %g3,%l7,%l7 526 srl %l0,22,%g3 527 xor %g4,%l7,%l7 528 sll %l0,30,%g4 529 xor %g3,%l7,%l7 530 xor %g4,%l7,%l7 ! Sigma0(a) 531 532 or %l0,%l1,%g3 533 and %l0,%l1,%g4 534 and %l2,%g3,%g3 535 or %g3,%g4,%g4 ! Maj(a,b,c) 536 add %g5,%g2,%g2 ! +=K[8] 537 add %g4,%l7,%l7 538 539 add %g2,%l3,%l3 540 add %g2,%l7,%l7 541 add %o4,%l6,%g2 542 srl %l3,6,%l6 !! 9 543 xor %l4,%l5,%g5 544 sll %l3,7,%g4 545 and %l3,%g5,%g5 546 srl %l3,11,%g3 547 xor %g4,%l6,%l6 548 sll %l3,21,%g4 549 xor %g3,%l6,%l6 550 srl %l3,25,%g3 551 xor %g4,%l6,%l6 552 sll %l3,26,%g4 553 xor %g3,%l6,%l6 554 xor %l5,%g5,%g5 ! Ch(e,f,g) 555 xor %g4,%l6,%g3 ! Sigma1(e) 556 557 srl %l7,2,%l6 558 add %g5,%g2,%g2 559 ld [%i3+36],%g5 ! K[9] 560 sll %l7,10,%g4 561 add %g3,%g2,%g2 562 srl %l7,13,%g3 563 xor %g4,%l6,%l6 564 sll %l7,19,%g4 565 xor %g3,%l6,%l6 566 srl %l7,22,%g3 567 xor %g4,%l6,%l6 568 sll %l7,30,%g4 569 xor %g3,%l6,%l6 570 xor %g4,%l6,%l6 ! Sigma0(a) 571 572 or %l7,%l0,%g3 573 and %l7,%l0,%g4 574 and %l1,%g3,%g3 575 or %g3,%g4,%g4 ! Maj(a,b,c) 576 add %g5,%g2,%g2 ! +=K[9] 577 add %g4,%l6,%l6 578 579 add %g2,%l2,%l2 580 add %g2,%l6,%l6 581 srlx %o5,32,%g2 582 add %l5,%g2,%g2 583 srl %l2,6,%l5 !! 10 584 xor %l3,%l4,%g5 585 sll %l2,7,%g4 586 and %l2,%g5,%g5 587 srl %l2,11,%g3 588 xor %g4,%l5,%l5 589 sll %l2,21,%g4 590 xor %g3,%l5,%l5 591 srl %l2,25,%g3 592 xor %g4,%l5,%l5 593 sll %l2,26,%g4 594 xor %g3,%l5,%l5 595 xor %l4,%g5,%g5 ! Ch(e,f,g) 596 xor %g4,%l5,%g3 ! Sigma1(e) 597 598 srl %l6,2,%l5 599 add %g5,%g2,%g2 600 ld [%i3+40],%g5 ! K[10] 601 sll %l6,10,%g4 602 add %g3,%g2,%g2 603 srl %l6,13,%g3 604 xor %g4,%l5,%l5 605 sll %l6,19,%g4 606 xor %g3,%l5,%l5 607 srl %l6,22,%g3 608 xor %g4,%l5,%l5 609 sll %l6,30,%g4 610 xor %g3,%l5,%l5 611 xor %g4,%l5,%l5 ! Sigma0(a) 612 613 or %l6,%l7,%g3 614 and %l6,%l7,%g4 615 and %l0,%g3,%g3 616 or %g3,%g4,%g4 ! Maj(a,b,c) 617 add %g5,%g2,%g2 ! +=K[10] 618 add %g4,%l5,%l5 619 620 add %g2,%l1,%l1 621 add %g2,%l5,%l5 622 add %o5,%l4,%g2 623 srl %l1,6,%l4 !! 11 624 xor %l2,%l3,%g5 625 sll %l1,7,%g4 626 and %l1,%g5,%g5 627 srl %l1,11,%g3 628 xor %g4,%l4,%l4 629 sll %l1,21,%g4 630 xor %g3,%l4,%l4 631 srl %l1,25,%g3 632 xor %g4,%l4,%l4 633 sll %l1,26,%g4 634 xor %g3,%l4,%l4 635 xor %l3,%g5,%g5 ! Ch(e,f,g) 636 xor %g4,%l4,%g3 ! Sigma1(e) 637 638 srl %l5,2,%l4 639 add %g5,%g2,%g2 640 ld [%i3+44],%g5 ! K[11] 641 sll %l5,10,%g4 642 add %g3,%g2,%g2 643 srl %l5,13,%g3 644 xor %g4,%l4,%l4 645 sll %l5,19,%g4 646 xor %g3,%l4,%l4 647 srl %l5,22,%g3 648 xor %g4,%l4,%l4 649 sll %l5,30,%g4 650 xor %g3,%l4,%l4 651 xor %g4,%l4,%l4 ! Sigma0(a) 652 653 or %l5,%l6,%g3 654 and %l5,%l6,%g4 655 and %l7,%g3,%g3 656 or %g3,%g4,%g4 ! Maj(a,b,c) 657 add %g5,%g2,%g2 ! +=K[11] 658 add %g4,%l4,%l4 659 660 add %g2,%l0,%l0 661 add %g2,%l4,%l4 662 srlx %g1,32,%g2 663 add %l3,%g2,%g2 664 srl %l0,6,%l3 !! 12 665 xor %l1,%l2,%g5 666 sll %l0,7,%g4 667 and %l0,%g5,%g5 668 srl %l0,11,%g3 669 xor %g4,%l3,%l3 670 sll %l0,21,%g4 671 xor %g3,%l3,%l3 672 srl %l0,25,%g3 673 xor %g4,%l3,%l3 674 sll %l0,26,%g4 675 xor %g3,%l3,%l3 676 xor %l2,%g5,%g5 ! Ch(e,f,g) 677 xor %g4,%l3,%g3 ! Sigma1(e) 678 679 srl %l4,2,%l3 680 add %g5,%g2,%g2 681 ld [%i3+48],%g5 ! K[12] 682 sll %l4,10,%g4 683 add %g3,%g2,%g2 684 srl %l4,13,%g3 685 xor %g4,%l3,%l3 686 sll %l4,19,%g4 687 xor %g3,%l3,%l3 688 srl %l4,22,%g3 689 xor %g4,%l3,%l3 690 sll %l4,30,%g4 691 xor %g3,%l3,%l3 692 xor %g4,%l3,%l3 ! Sigma0(a) 693 694 or %l4,%l5,%g3 695 and %l4,%l5,%g4 696 and %l6,%g3,%g3 697 or %g3,%g4,%g4 ! Maj(a,b,c) 698 add %g5,%g2,%g2 ! +=K[12] 699 add %g4,%l3,%l3 700 701 add %g2,%l7,%l7 702 add %g2,%l3,%l3 703 add %g1,%l2,%g2 704 srl %l7,6,%l2 !! 13 705 xor %l0,%l1,%g5 706 sll %l7,7,%g4 707 and %l7,%g5,%g5 708 srl %l7,11,%g3 709 xor %g4,%l2,%l2 710 sll %l7,21,%g4 711 xor %g3,%l2,%l2 712 srl %l7,25,%g3 713 xor %g4,%l2,%l2 714 sll %l7,26,%g4 715 xor %g3,%l2,%l2 716 xor %l1,%g5,%g5 ! Ch(e,f,g) 717 xor %g4,%l2,%g3 ! Sigma1(e) 718 719 srl %l3,2,%l2 720 add %g5,%g2,%g2 721 ld [%i3+52],%g5 ! K[13] 722 sll %l3,10,%g4 723 add %g3,%g2,%g2 724 srl %l3,13,%g3 725 xor %g4,%l2,%l2 726 sll %l3,19,%g4 727 xor %g3,%l2,%l2 728 srl %l3,22,%g3 729 xor %g4,%l2,%l2 730 sll %l3,30,%g4 731 xor %g3,%l2,%l2 732 xor %g4,%l2,%l2 ! Sigma0(a) 733 734 or %l3,%l4,%g3 735 and %l3,%l4,%g4 736 and %l5,%g3,%g3 737 or %g3,%g4,%g4 ! Maj(a,b,c) 738 add %g5,%g2,%g2 ! +=K[13] 739 add %g4,%l2,%l2 740 741 add %g2,%l6,%l6 742 add %g2,%l2,%l2 743 srlx %o7,32,%g2 744 add %l1,%g2,%g2 745 srl %l6,6,%l1 !! 14 746 xor %l7,%l0,%g5 747 sll %l6,7,%g4 748 and %l6,%g5,%g5 749 srl %l6,11,%g3 750 xor %g4,%l1,%l1 751 sll %l6,21,%g4 752 xor %g3,%l1,%l1 753 srl %l6,25,%g3 754 xor %g4,%l1,%l1 755 sll %l6,26,%g4 756 xor %g3,%l1,%l1 757 xor %l0,%g5,%g5 ! Ch(e,f,g) 758 xor %g4,%l1,%g3 ! Sigma1(e) 759 760 srl %l2,2,%l1 761 add %g5,%g2,%g2 762 ld [%i3+56],%g5 ! K[14] 763 sll %l2,10,%g4 764 add %g3,%g2,%g2 765 srl %l2,13,%g3 766 xor %g4,%l1,%l1 767 sll %l2,19,%g4 768 xor %g3,%l1,%l1 769 srl %l2,22,%g3 770 xor %g4,%l1,%l1 771 sll %l2,30,%g4 772 xor %g3,%l1,%l1 773 xor %g4,%l1,%l1 ! Sigma0(a) 774 775 or %l2,%l3,%g3 776 and %l2,%l3,%g4 777 and %l4,%g3,%g3 778 or %g3,%g4,%g4 ! Maj(a,b,c) 779 add %g5,%g2,%g2 ! +=K[14] 780 add %g4,%l1,%l1 781 782 add %g2,%l5,%l5 783 add %g2,%l1,%l1 784 add %o7,%l0,%g2 785 srl %l5,6,%l0 !! 15 786 xor %l6,%l7,%g5 787 sll %l5,7,%g4 788 and %l5,%g5,%g5 789 srl %l5,11,%g3 790 xor %g4,%l0,%l0 791 sll %l5,21,%g4 792 xor %g3,%l0,%l0 793 srl %l5,25,%g3 794 xor %g4,%l0,%l0 795 sll %l5,26,%g4 796 xor %g3,%l0,%l0 797 xor %l7,%g5,%g5 ! Ch(e,f,g) 798 xor %g4,%l0,%g3 ! Sigma1(e) 799 800 srl %l1,2,%l0 801 add %g5,%g2,%g2 802 ld [%i3+60],%g5 ! K[15] 803 sll %l1,10,%g4 804 add %g3,%g2,%g2 805 srl %l1,13,%g3 806 xor %g4,%l0,%l0 807 sll %l1,19,%g4 808 xor %g3,%l0,%l0 809 srl %l1,22,%g3 810 xor %g4,%l0,%l0 811 sll %l1,30,%g4 812 xor %g3,%l0,%l0 813 xor %g4,%l0,%l0 ! Sigma0(a) 814 815 or %l1,%l2,%g3 816 and %l1,%l2,%g4 817 and %l3,%g3,%g3 818 or %g3,%g4,%g4 ! Maj(a,b,c) 819 add %g5,%g2,%g2 ! +=K[15] 820 add %g4,%l0,%l0 821 822 add %g2,%l4,%l4 823 add %g2,%l0,%l0 824.L16_xx: 825 srl %o0,3,%g2 !! Xupdate(16) 826 sll %o0,14,%g4 827 srl %o0,7,%g3 828 xor %g4,%g2,%g2 829 sll %g4,11,%g4 830 xor %g3,%g2,%g2 831 srl %o0,18,%g3 832 xor %g4,%g2,%g2 833 srlx %o7,32,%i5 834 srl %i5,10,%g5 835 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 836 sll %i5,13,%g4 837 srl %i5,17,%g3 838 xor %g4,%g5,%g5 839 sll %g4,2,%g4 840 xor %g3,%g5,%g5 841 srl %i5,19,%g3 842 xor %g4,%g5,%g5 843 srlx %o0,32,%g4 ! X[i] 844 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 845 add %o4,%g2,%g2 ! +=X[i+9] 846 add %g5,%g4,%g4 847 srl %o0,0,%o0 848 add %g4,%g2,%g2 849 850 sllx %g2,32,%g3 851 or %g3,%o0,%o0 852 add %l7,%g2,%g2 853 srl %l4,6,%l7 !! 16 854 xor %l5,%l6,%g5 855 sll %l4,7,%g4 856 and %l4,%g5,%g5 857 srl %l4,11,%g3 858 xor %g4,%l7,%l7 859 sll %l4,21,%g4 860 xor %g3,%l7,%l7 861 srl %l4,25,%g3 862 xor %g4,%l7,%l7 863 sll %l4,26,%g4 864 xor %g3,%l7,%l7 865 xor %l6,%g5,%g5 ! Ch(e,f,g) 866 xor %g4,%l7,%g3 ! Sigma1(e) 867 868 srl %l0,2,%l7 869 add %g5,%g2,%g2 870 ld [%i3+64],%g5 ! K[16] 871 sll %l0,10,%g4 872 add %g3,%g2,%g2 873 srl %l0,13,%g3 874 xor %g4,%l7,%l7 875 sll %l0,19,%g4 876 xor %g3,%l7,%l7 877 srl %l0,22,%g3 878 xor %g4,%l7,%l7 879 sll %l0,30,%g4 880 xor %g3,%l7,%l7 881 xor %g4,%l7,%l7 ! Sigma0(a) 882 883 or %l0,%l1,%g3 884 and %l0,%l1,%g4 885 and %l2,%g3,%g3 886 or %g3,%g4,%g4 ! Maj(a,b,c) 887 add %g5,%g2,%g2 ! +=K[16] 888 add %g4,%l7,%l7 889 890 add %g2,%l3,%l3 891 add %g2,%l7,%l7 892 srlx %o1,32,%i5 893 srl %i5,3,%g2 !! Xupdate(17) 894 sll %i5,14,%g4 895 srl %i5,7,%g3 896 xor %g4,%g2,%g2 897 sll %g4,11,%g4 898 xor %g3,%g2,%g2 899 srl %i5,18,%g3 900 xor %g4,%g2,%g2 901 srl %o7,10,%g5 902 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 903 sll %o7,13,%g4 904 srl %o7,17,%g3 905 xor %g4,%g5,%g5 906 sll %g4,2,%g4 907 xor %g3,%g5,%g5 908 srl %o7,19,%g3 909 xor %g4,%g5,%g5 910 srlx %o5,32,%g4 ! X[i+9] 911 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 912 srl %o0,0,%g3 913 add %g5,%g4,%g4 914 add %o0,%g2,%g2 ! +=X[i] 915 xor %g3,%o0,%o0 916 add %g4,%g2,%g2 917 918 srl %g2,0,%g2 919 or %g2,%o0,%o0 920 add %l6,%g2,%g2 921 srl %l3,6,%l6 !! 17 922 xor %l4,%l5,%g5 923 sll %l3,7,%g4 924 and %l3,%g5,%g5 925 srl %l3,11,%g3 926 xor %g4,%l6,%l6 927 sll %l3,21,%g4 928 xor %g3,%l6,%l6 929 srl %l3,25,%g3 930 xor %g4,%l6,%l6 931 sll %l3,26,%g4 932 xor %g3,%l6,%l6 933 xor %l5,%g5,%g5 ! Ch(e,f,g) 934 xor %g4,%l6,%g3 ! Sigma1(e) 935 936 srl %l7,2,%l6 937 add %g5,%g2,%g2 938 ld [%i3+68],%g5 ! K[17] 939 sll %l7,10,%g4 940 add %g3,%g2,%g2 941 srl %l7,13,%g3 942 xor %g4,%l6,%l6 943 sll %l7,19,%g4 944 xor %g3,%l6,%l6 945 srl %l7,22,%g3 946 xor %g4,%l6,%l6 947 sll %l7,30,%g4 948 xor %g3,%l6,%l6 949 xor %g4,%l6,%l6 ! Sigma0(a) 950 951 or %l7,%l0,%g3 952 and %l7,%l0,%g4 953 and %l1,%g3,%g3 954 or %g3,%g4,%g4 ! Maj(a,b,c) 955 add %g5,%g2,%g2 ! +=K[17] 956 add %g4,%l6,%l6 957 958 add %g2,%l2,%l2 959 add %g2,%l6,%l6 960 srl %o1,3,%g2 !! Xupdate(18) 961 sll %o1,14,%g4 962 srl %o1,7,%g3 963 xor %g4,%g2,%g2 964 sll %g4,11,%g4 965 xor %g3,%g2,%g2 966 srl %o1,18,%g3 967 xor %g4,%g2,%g2 968 srlx %o0,32,%i5 969 srl %i5,10,%g5 970 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 971 sll %i5,13,%g4 972 srl %i5,17,%g3 973 xor %g4,%g5,%g5 974 sll %g4,2,%g4 975 xor %g3,%g5,%g5 976 srl %i5,19,%g3 977 xor %g4,%g5,%g5 978 srlx %o1,32,%g4 ! X[i] 979 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 980 add %o5,%g2,%g2 ! +=X[i+9] 981 add %g5,%g4,%g4 982 srl %o1,0,%o1 983 add %g4,%g2,%g2 984 985 sllx %g2,32,%g3 986 or %g3,%o1,%o1 987 add %l5,%g2,%g2 988 srl %l2,6,%l5 !! 18 989 xor %l3,%l4,%g5 990 sll %l2,7,%g4 991 and %l2,%g5,%g5 992 srl %l2,11,%g3 993 xor %g4,%l5,%l5 994 sll %l2,21,%g4 995 xor %g3,%l5,%l5 996 srl %l2,25,%g3 997 xor %g4,%l5,%l5 998 sll %l2,26,%g4 999 xor %g3,%l5,%l5 1000 xor %l4,%g5,%g5 ! Ch(e,f,g) 1001 xor %g4,%l5,%g3 ! Sigma1(e) 1002 1003 srl %l6,2,%l5 1004 add %g5,%g2,%g2 1005 ld [%i3+72],%g5 ! K[18] 1006 sll %l6,10,%g4 1007 add %g3,%g2,%g2 1008 srl %l6,13,%g3 1009 xor %g4,%l5,%l5 1010 sll %l6,19,%g4 1011 xor %g3,%l5,%l5 1012 srl %l6,22,%g3 1013 xor %g4,%l5,%l5 1014 sll %l6,30,%g4 1015 xor %g3,%l5,%l5 1016 xor %g4,%l5,%l5 ! Sigma0(a) 1017 1018 or %l6,%l7,%g3 1019 and %l6,%l7,%g4 1020 and %l0,%g3,%g3 1021 or %g3,%g4,%g4 ! Maj(a,b,c) 1022 add %g5,%g2,%g2 ! +=K[18] 1023 add %g4,%l5,%l5 1024 1025 add %g2,%l1,%l1 1026 add %g2,%l5,%l5 1027 srlx %o2,32,%i5 1028 srl %i5,3,%g2 !! Xupdate(19) 1029 sll %i5,14,%g4 1030 srl %i5,7,%g3 1031 xor %g4,%g2,%g2 1032 sll %g4,11,%g4 1033 xor %g3,%g2,%g2 1034 srl %i5,18,%g3 1035 xor %g4,%g2,%g2 1036 srl %o0,10,%g5 1037 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1038 sll %o0,13,%g4 1039 srl %o0,17,%g3 1040 xor %g4,%g5,%g5 1041 sll %g4,2,%g4 1042 xor %g3,%g5,%g5 1043 srl %o0,19,%g3 1044 xor %g4,%g5,%g5 1045 srlx %g1,32,%g4 ! X[i+9] 1046 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1047 srl %o1,0,%g3 1048 add %g5,%g4,%g4 1049 add %o1,%g2,%g2 ! +=X[i] 1050 xor %g3,%o1,%o1 1051 add %g4,%g2,%g2 1052 1053 srl %g2,0,%g2 1054 or %g2,%o1,%o1 1055 add %l4,%g2,%g2 1056 srl %l1,6,%l4 !! 19 1057 xor %l2,%l3,%g5 1058 sll %l1,7,%g4 1059 and %l1,%g5,%g5 1060 srl %l1,11,%g3 1061 xor %g4,%l4,%l4 1062 sll %l1,21,%g4 1063 xor %g3,%l4,%l4 1064 srl %l1,25,%g3 1065 xor %g4,%l4,%l4 1066 sll %l1,26,%g4 1067 xor %g3,%l4,%l4 1068 xor %l3,%g5,%g5 ! Ch(e,f,g) 1069 xor %g4,%l4,%g3 ! Sigma1(e) 1070 1071 srl %l5,2,%l4 1072 add %g5,%g2,%g2 1073 ld [%i3+76],%g5 ! K[19] 1074 sll %l5,10,%g4 1075 add %g3,%g2,%g2 1076 srl %l5,13,%g3 1077 xor %g4,%l4,%l4 1078 sll %l5,19,%g4 1079 xor %g3,%l4,%l4 1080 srl %l5,22,%g3 1081 xor %g4,%l4,%l4 1082 sll %l5,30,%g4 1083 xor %g3,%l4,%l4 1084 xor %g4,%l4,%l4 ! Sigma0(a) 1085 1086 or %l5,%l6,%g3 1087 and %l5,%l6,%g4 1088 and %l7,%g3,%g3 1089 or %g3,%g4,%g4 ! Maj(a,b,c) 1090 add %g5,%g2,%g2 ! +=K[19] 1091 add %g4,%l4,%l4 1092 1093 add %g2,%l0,%l0 1094 add %g2,%l4,%l4 1095 srl %o2,3,%g2 !! Xupdate(20) 1096 sll %o2,14,%g4 1097 srl %o2,7,%g3 1098 xor %g4,%g2,%g2 1099 sll %g4,11,%g4 1100 xor %g3,%g2,%g2 1101 srl %o2,18,%g3 1102 xor %g4,%g2,%g2 1103 srlx %o1,32,%i5 1104 srl %i5,10,%g5 1105 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1106 sll %i5,13,%g4 1107 srl %i5,17,%g3 1108 xor %g4,%g5,%g5 1109 sll %g4,2,%g4 1110 xor %g3,%g5,%g5 1111 srl %i5,19,%g3 1112 xor %g4,%g5,%g5 1113 srlx %o2,32,%g4 ! X[i] 1114 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1115 add %g1,%g2,%g2 ! +=X[i+9] 1116 add %g5,%g4,%g4 1117 srl %o2,0,%o2 1118 add %g4,%g2,%g2 1119 1120 sllx %g2,32,%g3 1121 or %g3,%o2,%o2 1122 add %l3,%g2,%g2 1123 srl %l0,6,%l3 !! 20 1124 xor %l1,%l2,%g5 1125 sll %l0,7,%g4 1126 and %l0,%g5,%g5 1127 srl %l0,11,%g3 1128 xor %g4,%l3,%l3 1129 sll %l0,21,%g4 1130 xor %g3,%l3,%l3 1131 srl %l0,25,%g3 1132 xor %g4,%l3,%l3 1133 sll %l0,26,%g4 1134 xor %g3,%l3,%l3 1135 xor %l2,%g5,%g5 ! Ch(e,f,g) 1136 xor %g4,%l3,%g3 ! Sigma1(e) 1137 1138 srl %l4,2,%l3 1139 add %g5,%g2,%g2 1140 ld [%i3+80],%g5 ! K[20] 1141 sll %l4,10,%g4 1142 add %g3,%g2,%g2 1143 srl %l4,13,%g3 1144 xor %g4,%l3,%l3 1145 sll %l4,19,%g4 1146 xor %g3,%l3,%l3 1147 srl %l4,22,%g3 1148 xor %g4,%l3,%l3 1149 sll %l4,30,%g4 1150 xor %g3,%l3,%l3 1151 xor %g4,%l3,%l3 ! Sigma0(a) 1152 1153 or %l4,%l5,%g3 1154 and %l4,%l5,%g4 1155 and %l6,%g3,%g3 1156 or %g3,%g4,%g4 ! Maj(a,b,c) 1157 add %g5,%g2,%g2 ! +=K[20] 1158 add %g4,%l3,%l3 1159 1160 add %g2,%l7,%l7 1161 add %g2,%l3,%l3 1162 srlx %o3,32,%i5 1163 srl %i5,3,%g2 !! Xupdate(21) 1164 sll %i5,14,%g4 1165 srl %i5,7,%g3 1166 xor %g4,%g2,%g2 1167 sll %g4,11,%g4 1168 xor %g3,%g2,%g2 1169 srl %i5,18,%g3 1170 xor %g4,%g2,%g2 1171 srl %o1,10,%g5 1172 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1173 sll %o1,13,%g4 1174 srl %o1,17,%g3 1175 xor %g4,%g5,%g5 1176 sll %g4,2,%g4 1177 xor %g3,%g5,%g5 1178 srl %o1,19,%g3 1179 xor %g4,%g5,%g5 1180 srlx %o7,32,%g4 ! X[i+9] 1181 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1182 srl %o2,0,%g3 1183 add %g5,%g4,%g4 1184 add %o2,%g2,%g2 ! +=X[i] 1185 xor %g3,%o2,%o2 1186 add %g4,%g2,%g2 1187 1188 srl %g2,0,%g2 1189 or %g2,%o2,%o2 1190 add %l2,%g2,%g2 1191 srl %l7,6,%l2 !! 21 1192 xor %l0,%l1,%g5 1193 sll %l7,7,%g4 1194 and %l7,%g5,%g5 1195 srl %l7,11,%g3 1196 xor %g4,%l2,%l2 1197 sll %l7,21,%g4 1198 xor %g3,%l2,%l2 1199 srl %l7,25,%g3 1200 xor %g4,%l2,%l2 1201 sll %l7,26,%g4 1202 xor %g3,%l2,%l2 1203 xor %l1,%g5,%g5 ! Ch(e,f,g) 1204 xor %g4,%l2,%g3 ! Sigma1(e) 1205 1206 srl %l3,2,%l2 1207 add %g5,%g2,%g2 1208 ld [%i3+84],%g5 ! K[21] 1209 sll %l3,10,%g4 1210 add %g3,%g2,%g2 1211 srl %l3,13,%g3 1212 xor %g4,%l2,%l2 1213 sll %l3,19,%g4 1214 xor %g3,%l2,%l2 1215 srl %l3,22,%g3 1216 xor %g4,%l2,%l2 1217 sll %l3,30,%g4 1218 xor %g3,%l2,%l2 1219 xor %g4,%l2,%l2 ! Sigma0(a) 1220 1221 or %l3,%l4,%g3 1222 and %l3,%l4,%g4 1223 and %l5,%g3,%g3 1224 or %g3,%g4,%g4 ! Maj(a,b,c) 1225 add %g5,%g2,%g2 ! +=K[21] 1226 add %g4,%l2,%l2 1227 1228 add %g2,%l6,%l6 1229 add %g2,%l2,%l2 1230 srl %o3,3,%g2 !! Xupdate(22) 1231 sll %o3,14,%g4 1232 srl %o3,7,%g3 1233 xor %g4,%g2,%g2 1234 sll %g4,11,%g4 1235 xor %g3,%g2,%g2 1236 srl %o3,18,%g3 1237 xor %g4,%g2,%g2 1238 srlx %o2,32,%i5 1239 srl %i5,10,%g5 1240 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1241 sll %i5,13,%g4 1242 srl %i5,17,%g3 1243 xor %g4,%g5,%g5 1244 sll %g4,2,%g4 1245 xor %g3,%g5,%g5 1246 srl %i5,19,%g3 1247 xor %g4,%g5,%g5 1248 srlx %o3,32,%g4 ! X[i] 1249 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1250 add %o7,%g2,%g2 ! +=X[i+9] 1251 add %g5,%g4,%g4 1252 srl %o3,0,%o3 1253 add %g4,%g2,%g2 1254 1255 sllx %g2,32,%g3 1256 or %g3,%o3,%o3 1257 add %l1,%g2,%g2 1258 srl %l6,6,%l1 !! 22 1259 xor %l7,%l0,%g5 1260 sll %l6,7,%g4 1261 and %l6,%g5,%g5 1262 srl %l6,11,%g3 1263 xor %g4,%l1,%l1 1264 sll %l6,21,%g4 1265 xor %g3,%l1,%l1 1266 srl %l6,25,%g3 1267 xor %g4,%l1,%l1 1268 sll %l6,26,%g4 1269 xor %g3,%l1,%l1 1270 xor %l0,%g5,%g5 ! Ch(e,f,g) 1271 xor %g4,%l1,%g3 ! Sigma1(e) 1272 1273 srl %l2,2,%l1 1274 add %g5,%g2,%g2 1275 ld [%i3+88],%g5 ! K[22] 1276 sll %l2,10,%g4 1277 add %g3,%g2,%g2 1278 srl %l2,13,%g3 1279 xor %g4,%l1,%l1 1280 sll %l2,19,%g4 1281 xor %g3,%l1,%l1 1282 srl %l2,22,%g3 1283 xor %g4,%l1,%l1 1284 sll %l2,30,%g4 1285 xor %g3,%l1,%l1 1286 xor %g4,%l1,%l1 ! Sigma0(a) 1287 1288 or %l2,%l3,%g3 1289 and %l2,%l3,%g4 1290 and %l4,%g3,%g3 1291 or %g3,%g4,%g4 ! Maj(a,b,c) 1292 add %g5,%g2,%g2 ! +=K[22] 1293 add %g4,%l1,%l1 1294 1295 add %g2,%l5,%l5 1296 add %g2,%l1,%l1 1297 srlx %o4,32,%i5 1298 srl %i5,3,%g2 !! Xupdate(23) 1299 sll %i5,14,%g4 1300 srl %i5,7,%g3 1301 xor %g4,%g2,%g2 1302 sll %g4,11,%g4 1303 xor %g3,%g2,%g2 1304 srl %i5,18,%g3 1305 xor %g4,%g2,%g2 1306 srl %o2,10,%g5 1307 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1308 sll %o2,13,%g4 1309 srl %o2,17,%g3 1310 xor %g4,%g5,%g5 1311 sll %g4,2,%g4 1312 xor %g3,%g5,%g5 1313 srl %o2,19,%g3 1314 xor %g4,%g5,%g5 1315 srlx %o0,32,%g4 ! X[i+9] 1316 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1317 srl %o3,0,%g3 1318 add %g5,%g4,%g4 1319 add %o3,%g2,%g2 ! +=X[i] 1320 xor %g3,%o3,%o3 1321 add %g4,%g2,%g2 1322 1323 srl %g2,0,%g2 1324 or %g2,%o3,%o3 1325 add %l0,%g2,%g2 1326 srl %l5,6,%l0 !! 23 1327 xor %l6,%l7,%g5 1328 sll %l5,7,%g4 1329 and %l5,%g5,%g5 1330 srl %l5,11,%g3 1331 xor %g4,%l0,%l0 1332 sll %l5,21,%g4 1333 xor %g3,%l0,%l0 1334 srl %l5,25,%g3 1335 xor %g4,%l0,%l0 1336 sll %l5,26,%g4 1337 xor %g3,%l0,%l0 1338 xor %l7,%g5,%g5 ! Ch(e,f,g) 1339 xor %g4,%l0,%g3 ! Sigma1(e) 1340 1341 srl %l1,2,%l0 1342 add %g5,%g2,%g2 1343 ld [%i3+92],%g5 ! K[23] 1344 sll %l1,10,%g4 1345 add %g3,%g2,%g2 1346 srl %l1,13,%g3 1347 xor %g4,%l0,%l0 1348 sll %l1,19,%g4 1349 xor %g3,%l0,%l0 1350 srl %l1,22,%g3 1351 xor %g4,%l0,%l0 1352 sll %l1,30,%g4 1353 xor %g3,%l0,%l0 1354 xor %g4,%l0,%l0 ! Sigma0(a) 1355 1356 or %l1,%l2,%g3 1357 and %l1,%l2,%g4 1358 and %l3,%g3,%g3 1359 or %g3,%g4,%g4 ! Maj(a,b,c) 1360 add %g5,%g2,%g2 ! +=K[23] 1361 add %g4,%l0,%l0 1362 1363 add %g2,%l4,%l4 1364 add %g2,%l0,%l0 1365 srl %o4,3,%g2 !! Xupdate(24) 1366 sll %o4,14,%g4 1367 srl %o4,7,%g3 1368 xor %g4,%g2,%g2 1369 sll %g4,11,%g4 1370 xor %g3,%g2,%g2 1371 srl %o4,18,%g3 1372 xor %g4,%g2,%g2 1373 srlx %o3,32,%i5 1374 srl %i5,10,%g5 1375 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1376 sll %i5,13,%g4 1377 srl %i5,17,%g3 1378 xor %g4,%g5,%g5 1379 sll %g4,2,%g4 1380 xor %g3,%g5,%g5 1381 srl %i5,19,%g3 1382 xor %g4,%g5,%g5 1383 srlx %o4,32,%g4 ! X[i] 1384 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1385 add %o0,%g2,%g2 ! +=X[i+9] 1386 add %g5,%g4,%g4 1387 srl %o4,0,%o4 1388 add %g4,%g2,%g2 1389 1390 sllx %g2,32,%g3 1391 or %g3,%o4,%o4 1392 add %l7,%g2,%g2 1393 srl %l4,6,%l7 !! 24 1394 xor %l5,%l6,%g5 1395 sll %l4,7,%g4 1396 and %l4,%g5,%g5 1397 srl %l4,11,%g3 1398 xor %g4,%l7,%l7 1399 sll %l4,21,%g4 1400 xor %g3,%l7,%l7 1401 srl %l4,25,%g3 1402 xor %g4,%l7,%l7 1403 sll %l4,26,%g4 1404 xor %g3,%l7,%l7 1405 xor %l6,%g5,%g5 ! Ch(e,f,g) 1406 xor %g4,%l7,%g3 ! Sigma1(e) 1407 1408 srl %l0,2,%l7 1409 add %g5,%g2,%g2 1410 ld [%i3+96],%g5 ! K[24] 1411 sll %l0,10,%g4 1412 add %g3,%g2,%g2 1413 srl %l0,13,%g3 1414 xor %g4,%l7,%l7 1415 sll %l0,19,%g4 1416 xor %g3,%l7,%l7 1417 srl %l0,22,%g3 1418 xor %g4,%l7,%l7 1419 sll %l0,30,%g4 1420 xor %g3,%l7,%l7 1421 xor %g4,%l7,%l7 ! Sigma0(a) 1422 1423 or %l0,%l1,%g3 1424 and %l0,%l1,%g4 1425 and %l2,%g3,%g3 1426 or %g3,%g4,%g4 ! Maj(a,b,c) 1427 add %g5,%g2,%g2 ! +=K[24] 1428 add %g4,%l7,%l7 1429 1430 add %g2,%l3,%l3 1431 add %g2,%l7,%l7 1432 srlx %o5,32,%i5 1433 srl %i5,3,%g2 !! Xupdate(25) 1434 sll %i5,14,%g4 1435 srl %i5,7,%g3 1436 xor %g4,%g2,%g2 1437 sll %g4,11,%g4 1438 xor %g3,%g2,%g2 1439 srl %i5,18,%g3 1440 xor %g4,%g2,%g2 1441 srl %o3,10,%g5 1442 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1443 sll %o3,13,%g4 1444 srl %o3,17,%g3 1445 xor %g4,%g5,%g5 1446 sll %g4,2,%g4 1447 xor %g3,%g5,%g5 1448 srl %o3,19,%g3 1449 xor %g4,%g5,%g5 1450 srlx %o1,32,%g4 ! X[i+9] 1451 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1452 srl %o4,0,%g3 1453 add %g5,%g4,%g4 1454 add %o4,%g2,%g2 ! +=X[i] 1455 xor %g3,%o4,%o4 1456 add %g4,%g2,%g2 1457 1458 srl %g2,0,%g2 1459 or %g2,%o4,%o4 1460 add %l6,%g2,%g2 1461 srl %l3,6,%l6 !! 25 1462 xor %l4,%l5,%g5 1463 sll %l3,7,%g4 1464 and %l3,%g5,%g5 1465 srl %l3,11,%g3 1466 xor %g4,%l6,%l6 1467 sll %l3,21,%g4 1468 xor %g3,%l6,%l6 1469 srl %l3,25,%g3 1470 xor %g4,%l6,%l6 1471 sll %l3,26,%g4 1472 xor %g3,%l6,%l6 1473 xor %l5,%g5,%g5 ! Ch(e,f,g) 1474 xor %g4,%l6,%g3 ! Sigma1(e) 1475 1476 srl %l7,2,%l6 1477 add %g5,%g2,%g2 1478 ld [%i3+100],%g5 ! K[25] 1479 sll %l7,10,%g4 1480 add %g3,%g2,%g2 1481 srl %l7,13,%g3 1482 xor %g4,%l6,%l6 1483 sll %l7,19,%g4 1484 xor %g3,%l6,%l6 1485 srl %l7,22,%g3 1486 xor %g4,%l6,%l6 1487 sll %l7,30,%g4 1488 xor %g3,%l6,%l6 1489 xor %g4,%l6,%l6 ! Sigma0(a) 1490 1491 or %l7,%l0,%g3 1492 and %l7,%l0,%g4 1493 and %l1,%g3,%g3 1494 or %g3,%g4,%g4 ! Maj(a,b,c) 1495 add %g5,%g2,%g2 ! +=K[25] 1496 add %g4,%l6,%l6 1497 1498 add %g2,%l2,%l2 1499 add %g2,%l6,%l6 1500 srl %o5,3,%g2 !! Xupdate(26) 1501 sll %o5,14,%g4 1502 srl %o5,7,%g3 1503 xor %g4,%g2,%g2 1504 sll %g4,11,%g4 1505 xor %g3,%g2,%g2 1506 srl %o5,18,%g3 1507 xor %g4,%g2,%g2 1508 srlx %o4,32,%i5 1509 srl %i5,10,%g5 1510 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1511 sll %i5,13,%g4 1512 srl %i5,17,%g3 1513 xor %g4,%g5,%g5 1514 sll %g4,2,%g4 1515 xor %g3,%g5,%g5 1516 srl %i5,19,%g3 1517 xor %g4,%g5,%g5 1518 srlx %o5,32,%g4 ! X[i] 1519 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1520 add %o1,%g2,%g2 ! +=X[i+9] 1521 add %g5,%g4,%g4 1522 srl %o5,0,%o5 1523 add %g4,%g2,%g2 1524 1525 sllx %g2,32,%g3 1526 or %g3,%o5,%o5 1527 add %l5,%g2,%g2 1528 srl %l2,6,%l5 !! 26 1529 xor %l3,%l4,%g5 1530 sll %l2,7,%g4 1531 and %l2,%g5,%g5 1532 srl %l2,11,%g3 1533 xor %g4,%l5,%l5 1534 sll %l2,21,%g4 1535 xor %g3,%l5,%l5 1536 srl %l2,25,%g3 1537 xor %g4,%l5,%l5 1538 sll %l2,26,%g4 1539 xor %g3,%l5,%l5 1540 xor %l4,%g5,%g5 ! Ch(e,f,g) 1541 xor %g4,%l5,%g3 ! Sigma1(e) 1542 1543 srl %l6,2,%l5 1544 add %g5,%g2,%g2 1545 ld [%i3+104],%g5 ! K[26] 1546 sll %l6,10,%g4 1547 add %g3,%g2,%g2 1548 srl %l6,13,%g3 1549 xor %g4,%l5,%l5 1550 sll %l6,19,%g4 1551 xor %g3,%l5,%l5 1552 srl %l6,22,%g3 1553 xor %g4,%l5,%l5 1554 sll %l6,30,%g4 1555 xor %g3,%l5,%l5 1556 xor %g4,%l5,%l5 ! Sigma0(a) 1557 1558 or %l6,%l7,%g3 1559 and %l6,%l7,%g4 1560 and %l0,%g3,%g3 1561 or %g3,%g4,%g4 ! Maj(a,b,c) 1562 add %g5,%g2,%g2 ! +=K[26] 1563 add %g4,%l5,%l5 1564 1565 add %g2,%l1,%l1 1566 add %g2,%l5,%l5 1567 srlx %g1,32,%i5 1568 srl %i5,3,%g2 !! Xupdate(27) 1569 sll %i5,14,%g4 1570 srl %i5,7,%g3 1571 xor %g4,%g2,%g2 1572 sll %g4,11,%g4 1573 xor %g3,%g2,%g2 1574 srl %i5,18,%g3 1575 xor %g4,%g2,%g2 1576 srl %o4,10,%g5 1577 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1578 sll %o4,13,%g4 1579 srl %o4,17,%g3 1580 xor %g4,%g5,%g5 1581 sll %g4,2,%g4 1582 xor %g3,%g5,%g5 1583 srl %o4,19,%g3 1584 xor %g4,%g5,%g5 1585 srlx %o2,32,%g4 ! X[i+9] 1586 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1587 srl %o5,0,%g3 1588 add %g5,%g4,%g4 1589 add %o5,%g2,%g2 ! +=X[i] 1590 xor %g3,%o5,%o5 1591 add %g4,%g2,%g2 1592 1593 srl %g2,0,%g2 1594 or %g2,%o5,%o5 1595 add %l4,%g2,%g2 1596 srl %l1,6,%l4 !! 27 1597 xor %l2,%l3,%g5 1598 sll %l1,7,%g4 1599 and %l1,%g5,%g5 1600 srl %l1,11,%g3 1601 xor %g4,%l4,%l4 1602 sll %l1,21,%g4 1603 xor %g3,%l4,%l4 1604 srl %l1,25,%g3 1605 xor %g4,%l4,%l4 1606 sll %l1,26,%g4 1607 xor %g3,%l4,%l4 1608 xor %l3,%g5,%g5 ! Ch(e,f,g) 1609 xor %g4,%l4,%g3 ! Sigma1(e) 1610 1611 srl %l5,2,%l4 1612 add %g5,%g2,%g2 1613 ld [%i3+108],%g5 ! K[27] 1614 sll %l5,10,%g4 1615 add %g3,%g2,%g2 1616 srl %l5,13,%g3 1617 xor %g4,%l4,%l4 1618 sll %l5,19,%g4 1619 xor %g3,%l4,%l4 1620 srl %l5,22,%g3 1621 xor %g4,%l4,%l4 1622 sll %l5,30,%g4 1623 xor %g3,%l4,%l4 1624 xor %g4,%l4,%l4 ! Sigma0(a) 1625 1626 or %l5,%l6,%g3 1627 and %l5,%l6,%g4 1628 and %l7,%g3,%g3 1629 or %g3,%g4,%g4 ! Maj(a,b,c) 1630 add %g5,%g2,%g2 ! +=K[27] 1631 add %g4,%l4,%l4 1632 1633 add %g2,%l0,%l0 1634 add %g2,%l4,%l4 1635 srl %g1,3,%g2 !! Xupdate(28) 1636 sll %g1,14,%g4 1637 srl %g1,7,%g3 1638 xor %g4,%g2,%g2 1639 sll %g4,11,%g4 1640 xor %g3,%g2,%g2 1641 srl %g1,18,%g3 1642 xor %g4,%g2,%g2 1643 srlx %o5,32,%i5 1644 srl %i5,10,%g5 1645 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1646 sll %i5,13,%g4 1647 srl %i5,17,%g3 1648 xor %g4,%g5,%g5 1649 sll %g4,2,%g4 1650 xor %g3,%g5,%g5 1651 srl %i5,19,%g3 1652 xor %g4,%g5,%g5 1653 srlx %g1,32,%g4 ! X[i] 1654 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1655 add %o2,%g2,%g2 ! +=X[i+9] 1656 add %g5,%g4,%g4 1657 srl %g1,0,%g1 1658 add %g4,%g2,%g2 1659 1660 sllx %g2,32,%g3 1661 or %g3,%g1,%g1 1662 add %l3,%g2,%g2 1663 srl %l0,6,%l3 !! 28 1664 xor %l1,%l2,%g5 1665 sll %l0,7,%g4 1666 and %l0,%g5,%g5 1667 srl %l0,11,%g3 1668 xor %g4,%l3,%l3 1669 sll %l0,21,%g4 1670 xor %g3,%l3,%l3 1671 srl %l0,25,%g3 1672 xor %g4,%l3,%l3 1673 sll %l0,26,%g4 1674 xor %g3,%l3,%l3 1675 xor %l2,%g5,%g5 ! Ch(e,f,g) 1676 xor %g4,%l3,%g3 ! Sigma1(e) 1677 1678 srl %l4,2,%l3 1679 add %g5,%g2,%g2 1680 ld [%i3+112],%g5 ! K[28] 1681 sll %l4,10,%g4 1682 add %g3,%g2,%g2 1683 srl %l4,13,%g3 1684 xor %g4,%l3,%l3 1685 sll %l4,19,%g4 1686 xor %g3,%l3,%l3 1687 srl %l4,22,%g3 1688 xor %g4,%l3,%l3 1689 sll %l4,30,%g4 1690 xor %g3,%l3,%l3 1691 xor %g4,%l3,%l3 ! Sigma0(a) 1692 1693 or %l4,%l5,%g3 1694 and %l4,%l5,%g4 1695 and %l6,%g3,%g3 1696 or %g3,%g4,%g4 ! Maj(a,b,c) 1697 add %g5,%g2,%g2 ! +=K[28] 1698 add %g4,%l3,%l3 1699 1700 add %g2,%l7,%l7 1701 add %g2,%l3,%l3 1702 srlx %o7,32,%i5 1703 srl %i5,3,%g2 !! Xupdate(29) 1704 sll %i5,14,%g4 1705 srl %i5,7,%g3 1706 xor %g4,%g2,%g2 1707 sll %g4,11,%g4 1708 xor %g3,%g2,%g2 1709 srl %i5,18,%g3 1710 xor %g4,%g2,%g2 1711 srl %o5,10,%g5 1712 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1713 sll %o5,13,%g4 1714 srl %o5,17,%g3 1715 xor %g4,%g5,%g5 1716 sll %g4,2,%g4 1717 xor %g3,%g5,%g5 1718 srl %o5,19,%g3 1719 xor %g4,%g5,%g5 1720 srlx %o3,32,%g4 ! X[i+9] 1721 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1722 srl %g1,0,%g3 1723 add %g5,%g4,%g4 1724 add %g1,%g2,%g2 ! +=X[i] 1725 xor %g3,%g1,%g1 1726 add %g4,%g2,%g2 1727 1728 srl %g2,0,%g2 1729 or %g2,%g1,%g1 1730 add %l2,%g2,%g2 1731 srl %l7,6,%l2 !! 29 1732 xor %l0,%l1,%g5 1733 sll %l7,7,%g4 1734 and %l7,%g5,%g5 1735 srl %l7,11,%g3 1736 xor %g4,%l2,%l2 1737 sll %l7,21,%g4 1738 xor %g3,%l2,%l2 1739 srl %l7,25,%g3 1740 xor %g4,%l2,%l2 1741 sll %l7,26,%g4 1742 xor %g3,%l2,%l2 1743 xor %l1,%g5,%g5 ! Ch(e,f,g) 1744 xor %g4,%l2,%g3 ! Sigma1(e) 1745 1746 srl %l3,2,%l2 1747 add %g5,%g2,%g2 1748 ld [%i3+116],%g5 ! K[29] 1749 sll %l3,10,%g4 1750 add %g3,%g2,%g2 1751 srl %l3,13,%g3 1752 xor %g4,%l2,%l2 1753 sll %l3,19,%g4 1754 xor %g3,%l2,%l2 1755 srl %l3,22,%g3 1756 xor %g4,%l2,%l2 1757 sll %l3,30,%g4 1758 xor %g3,%l2,%l2 1759 xor %g4,%l2,%l2 ! Sigma0(a) 1760 1761 or %l3,%l4,%g3 1762 and %l3,%l4,%g4 1763 and %l5,%g3,%g3 1764 or %g3,%g4,%g4 ! Maj(a,b,c) 1765 add %g5,%g2,%g2 ! +=K[29] 1766 add %g4,%l2,%l2 1767 1768 add %g2,%l6,%l6 1769 add %g2,%l2,%l2 1770 srl %o7,3,%g2 !! Xupdate(30) 1771 sll %o7,14,%g4 1772 srl %o7,7,%g3 1773 xor %g4,%g2,%g2 1774 sll %g4,11,%g4 1775 xor %g3,%g2,%g2 1776 srl %o7,18,%g3 1777 xor %g4,%g2,%g2 1778 srlx %g1,32,%i5 1779 srl %i5,10,%g5 1780 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1781 sll %i5,13,%g4 1782 srl %i5,17,%g3 1783 xor %g4,%g5,%g5 1784 sll %g4,2,%g4 1785 xor %g3,%g5,%g5 1786 srl %i5,19,%g3 1787 xor %g4,%g5,%g5 1788 srlx %o7,32,%g4 ! X[i] 1789 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1790 add %o3,%g2,%g2 ! +=X[i+9] 1791 add %g5,%g4,%g4 1792 srl %o7,0,%o7 1793 add %g4,%g2,%g2 1794 1795 sllx %g2,32,%g3 1796 or %g3,%o7,%o7 1797 add %l1,%g2,%g2 1798 srl %l6,6,%l1 !! 30 1799 xor %l7,%l0,%g5 1800 sll %l6,7,%g4 1801 and %l6,%g5,%g5 1802 srl %l6,11,%g3 1803 xor %g4,%l1,%l1 1804 sll %l6,21,%g4 1805 xor %g3,%l1,%l1 1806 srl %l6,25,%g3 1807 xor %g4,%l1,%l1 1808 sll %l6,26,%g4 1809 xor %g3,%l1,%l1 1810 xor %l0,%g5,%g5 ! Ch(e,f,g) 1811 xor %g4,%l1,%g3 ! Sigma1(e) 1812 1813 srl %l2,2,%l1 1814 add %g5,%g2,%g2 1815 ld [%i3+120],%g5 ! K[30] 1816 sll %l2,10,%g4 1817 add %g3,%g2,%g2 1818 srl %l2,13,%g3 1819 xor %g4,%l1,%l1 1820 sll %l2,19,%g4 1821 xor %g3,%l1,%l1 1822 srl %l2,22,%g3 1823 xor %g4,%l1,%l1 1824 sll %l2,30,%g4 1825 xor %g3,%l1,%l1 1826 xor %g4,%l1,%l1 ! Sigma0(a) 1827 1828 or %l2,%l3,%g3 1829 and %l2,%l3,%g4 1830 and %l4,%g3,%g3 1831 or %g3,%g4,%g4 ! Maj(a,b,c) 1832 add %g5,%g2,%g2 ! +=K[30] 1833 add %g4,%l1,%l1 1834 1835 add %g2,%l5,%l5 1836 add %g2,%l1,%l1 1837 srlx %o0,32,%i5 1838 srl %i5,3,%g2 !! Xupdate(31) 1839 sll %i5,14,%g4 1840 srl %i5,7,%g3 1841 xor %g4,%g2,%g2 1842 sll %g4,11,%g4 1843 xor %g3,%g2,%g2 1844 srl %i5,18,%g3 1845 xor %g4,%g2,%g2 1846 srl %g1,10,%g5 1847 xor %g3,%g2,%g2 ! T1=sigma0(X[i+1]) 1848 sll %g1,13,%g4 1849 srl %g1,17,%g3 1850 xor %g4,%g5,%g5 1851 sll %g4,2,%g4 1852 xor %g3,%g5,%g5 1853 srl %g1,19,%g3 1854 xor %g4,%g5,%g5 1855 srlx %o4,32,%g4 ! X[i+9] 1856 xor %g3,%g5,%g5 ! sigma1(X[i+14]) 1857 srl %o7,0,%g3 1858 add %g5,%g4,%g4 1859 add %o7,%g2,%g2 ! +=X[i] 1860 xor %g3,%o7,%o7 1861 add %g4,%g2,%g2 1862 1863 srl %g2,0,%g2 1864 or %g2,%o7,%o7 1865 add %l0,%g2,%g2 1866 srl %l5,6,%l0 !! 31 1867 xor %l6,%l7,%g5 1868 sll %l5,7,%g4 1869 and %l5,%g5,%g5 1870 srl %l5,11,%g3 1871 xor %g4,%l0,%l0 1872 sll %l5,21,%g4 1873 xor %g3,%l0,%l0 1874 srl %l5,25,%g3 1875 xor %g4,%l0,%l0 1876 sll %l5,26,%g4 1877 xor %g3,%l0,%l0 1878 xor %l7,%g5,%g5 ! Ch(e,f,g) 1879 xor %g4,%l0,%g3 ! Sigma1(e) 1880 1881 srl %l1,2,%l0 1882 add %g5,%g2,%g2 1883 ld [%i3+124],%g5 ! K[31] 1884 sll %l1,10,%g4 1885 add %g3,%g2,%g2 1886 srl %l1,13,%g3 1887 xor %g4,%l0,%l0 1888 sll %l1,19,%g4 1889 xor %g3,%l0,%l0 1890 srl %l1,22,%g3 1891 xor %g4,%l0,%l0 1892 sll %l1,30,%g4 1893 xor %g3,%l0,%l0 1894 xor %g4,%l0,%l0 ! Sigma0(a) 1895 1896 or %l1,%l2,%g3 1897 and %l1,%l2,%g4 1898 and %l3,%g3,%g3 1899 or %g3,%g4,%g4 ! Maj(a,b,c) 1900 add %g5,%g2,%g2 ! +=K[31] 1901 add %g4,%l0,%l0 1902 1903 add %g2,%l4,%l4 1904 add %g2,%l0,%l0 1905 and %g5,0xfff,%g5 1906 cmp %g5,2290 1907 bne .L16_xx 1908 add %i3,64,%i3 ! Ktbl+=16 1909 1910 ld [%i0+0],%o0 1911 ld [%i0+4],%o1 1912 ld [%i0+8],%o2 1913 ld [%i0+12],%o3 1914 ld [%i0+16],%o4 1915 ld [%i0+20],%o5 1916 ld [%i0+24],%g1 1917 ld [%i0+28],%o7 1918 1919 add %l0,%o0,%l0 1920 st %l0,[%i0+0] 1921 add %l1,%o1,%l1 1922 st %l1,[%i0+4] 1923 add %l2,%o2,%l2 1924 st %l2,[%i0+8] 1925 add %l3,%o3,%l3 1926 st %l3,[%i0+12] 1927 add %l4,%o4,%l4 1928 st %l4,[%i0+16] 1929 add %l5,%o5,%l5 1930 st %l5,[%i0+20] 1931 add %l6,%g1,%l6 1932 st %l6,[%i0+24] 1933 add %l7,%o7,%l7 1934 st %l7,[%i0+28] 1935 add %i1,64,%i1 ! advance inp 1936 cmp %i1,%i2 1937 bne SIZE_T_CC,.Lloop 1938 sub %i3,192,%i3 ! rewind Ktbl 1939 1940 ret 1941 restore 1942.type sha256_block_data_order,#function 1943.size sha256_block_data_order,(.-sha256_block_data_order) 1944.asciz "SHA256 block transform for SPARCv9, CRYPTOGAMS by <appro@openssl.org>" 1945.align 4 1946