1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26#pragma ident "%Z%%M% %I% %E% SMI" 27 28#include <sys/asm_linkage.h> 29#include <sys/stack.h> 30 31#ifdef _KERNEL 32 33#include <sys/privregs.h> 34#include <sys/regset.h> 35#include <sys/vis.h> 36#include <sys/machthread.h> 37 38#endif /* _KERNEL */ 39 40#if defined(lint) 41 42#ifdef _KERNEL 43 44/* ARGSUSED */ 45int 46sha1_savefp(kfpu_t *fpu, int svfp_ok) 47{ return(0); } 48 49/* ARGSUSED */ 50void 51sha1_restorefp(kfpu_t *fpu) 52{} 53 54#endif /* _KERNEL */ 55 56/* ARGSUSED */ 57void 58SHA1TransformVIS(uint64_t *X0, uint64_t *blk, uint32_t *cstate, uint64_t *VIS) 59{} 60 61#else /* defined(lint) */ 62 63#ifdef _KERNEL 64 65#define FZERO \ 66 fzero %f0 ;\ 67 fzero %f2 ;\ 68 faddd %f0, %f2, %f4 ;\ 69 fmuld %f0, %f2, %f6 ;\ 70 faddd %f0, %f2, %f8 ;\ 71 fmuld %f0, %f2, %f10 ;\ 72 faddd %f0, %f2, %f12 ;\ 73 fmuld %f0, %f2, %f14 ;\ 74 faddd %f0, %f2, %f16 ;\ 75 fmuld %f0, %f2, %f18 ;\ 76 faddd %f0, %f2, %f20 ;\ 77 fmuld %f0, %f2, %f22 ;\ 78 faddd %f0, %f2, %f24 ;\ 79 fmuld %f0, %f2, %f26 ;\ 80 faddd %f0, %f2, %f28 ;\ 81 fmuld %f0, %f2, %f30 ;\ 82 faddd %f0, %f2, %f32 ;\ 83 fmuld %f0, %f2, %f34 ;\ 84 faddd %f0, %f2, %f36 ;\ 85 fmuld %f0, %f2, %f38 ;\ 86 faddd %f0, %f2, %f40 ;\ 87 fmuld %f0, %f2, %f42 ;\ 88 faddd %f0, %f2, %f44 ;\ 89 fmuld %f0, %f2, %f46 ;\ 90 faddd %f0, %f2, %f48 ;\ 91 fmuld %f0, %f2, %f50 ;\ 92 faddd %f0, %f2, %f52 ;\ 93 fmuld %f0, %f2, %f54 ;\ 94 faddd %f0, %f2, %f56 ;\ 95 fmuld %f0, %f2, %f58 ;\ 96 faddd %f0, %f2, %f60 ;\ 97 fmuld %f0, %f2, %f62 98 99#include "assym.h" 100 101 ENTRY(sha1_savefp) 102 rd %fprs, %o2 103 st %o2, [%o0 + FPU_FPRS] 104 andcc %o2, FPRS_FEF, %g0 105 bz,a,pt %icc, 1f 106 wr %g0, FPRS_FEF, %fprs 107 brz,pt %o1, 2f 108 nop 109 rd %gsr, %o3 110 stx %o3, [%o0 + FPU_GSR] 111 stx %fsr, [%o0 + FPU_FSR] 112 BSTORE_FPREGS(%o0, %o4) 1131: 114 retl 115 or %g0, 1, %o0 1162: 117 retl 118 clr %o0 119 SET_SIZE(sha1_savefp) 120 121 ENTRY(sha1_restorefp) 122 ld [%o0 + FPU_FPRS], %o1 123 andcc %o1, FPRS_FEF, %g0 124 bz,pt %icc, 1f 125 nop 126 BLOAD_FPREGS(%o0, %o2) 127 wr %o1, 0, %fprs 128 ldx [%o0 + FPU_FSR], %fsr 129 ldx [%o0 + FPU_GSR], %o3 130 retl 131 wr %o3, 0, %gsr 1321: 133 FZERO 134 retl 135 wr %o1, 0, %fprs 136 SET_SIZE(sha1_restorefp) 137 138#endif /* _KERNEL */ 139 140 ENTRY(SHA1TransformVIS) 141 save %sp, -SA(MINFRAME), %sp 142 143 ld [%i2 + 0], %o0 144 mov 5, %g1 145 146 ld [%i2 + 4], %o1 147 alignaddr %g0, %g1, %g0 148 149 ld [%i2 + 8], %o2 150 151 ld [%i2 + 12], %o3 152 153 ld [%i2 + 16], %o4 154 155 ld [%i3 + 0 + 16], %g1 156 157! Starting round 0 158 sll %o0, 5, %l0 159 and %o1, %o2, %l1 160 ld [%i1 + (0 * 4)], %l2 161 162 srl %o0, 27, %l3 163 andn %o3, %o1, %l4 164 ld [%i1 + 0], %f16 165 166 sll %o1, 30, %l5 167 xor %l1, %l4, %l1 168 ld [%i1 + 4], %f17 169 170 srl %o1, 2, %l7 171 or %l0, %l3, %l0 172 ld [%i1 + 8], %f30 173 174 add %l0, %l1, %l0 175 add %o4, %g1, %l1 176 ld [%i1 + 12], %f31 177 178 or %l5, %l7, %o1 179 add %l0, %l1, %l0 180 ld [%i1 + 16], %f28 181 182 add %l0, %l2, %o5 183 ld [%i1 + 20], %f29 184 185! Starting round 1 186 sll %o5, 5, %l0 187 and %o0, %o1, %l1 188 ld [%i1 + (1 * 4)], %l2 189 190 srl %o5, 27, %l3 191 andn %o2, %o0, %l4 192 ld [%i1 + 24], %f26 193 194 sll %o0, 30, %l5 195 xor %l1, %l4, %l1 196 ld [%i1 + 28], %f27 197 fzero %f52 198 199 srl %o0, 2, %l7 200 or %l0, %l3, %l0 201 ld [%i1 + 32], %f24 202 203 add %l0, %l1, %l0 204 add %o3, %g1, %l1 205 ld [%i1 + 36], %f25 206 207 or %l5, %l7, %o0 208 add %l0, %l1, %l0 209 ld [%i1 + 40], %f22 210 211 add %l0, %l2, %o4 212 ld [%i1 + 44], %f23 213 214! Starting round 2 215 sll %o4, 5, %l0 216 and %o5, %o0, %l1 217 ld [%i1 + (2 * 4)], %l2 218 219 srl %o4, 27, %l3 220 andn %o1, %o5, %l4 221 ld [%i1 + 48], %f20 222 223 sll %o5, 30, %l5 224 xor %l1, %l4, %l1 225 ld [%i1 + 52], %f21 226 227 srl %o5, 2, %l7 228 or %l0, %l3, %l0 229 fxor %f16, %f30, %f38 230 ld [%i1 + 56], %f18 231 232 add %l0, %l1, %l0 233 add %o2, %g1, %l1 234 fxor %f28, %f30, %f14 235 ld [%i1 + 60], %f19 236 237 or %l5, %l7, %o5 238 add %l0, %l1, %l0 239 ld [%i1 + 52], %f0 240 241 add %l0, %l2, %o3 242 243! Starting round 3 244 sll %o3, 5, %l0 245 and %o4, %o5, %l1 246 ld [%i1 + (3 * 4)], %l2 247 248 srl %o3, 27, %l3 249 andn %o0, %o4, %l4 250 ld [%i1 + 56], %f1 251 252 sll %o4, 30, %l5 253 xor %l1, %l4, %l1 254 ldd [%i3 + 8], %f54 255 fxor %f38, %f24, %f38 256 257 srl %o4, 2, %l7 258 or %l0, %l3, %l0 259 ldd [%i3 + 0], %f50 260 fxor %f14, %f22, %f14 261 262 add %l0, %l1, %l0 263 add %o1, %g1, %l1 264 ld [%i1 + 60], %f8 265 266 or %l5, %l7, %o4 267 add %l0, %l1, %l0 268 269 add %l0, %l2, %o2 270 271! Starting round 4 272 and %o3, %o4, %l1 273 sll %o2, 5, %l0 274 ld [%i1 + (4 * 4)], %l2 275 fxor %f38, %f0, %f36 276 277 srl %o2, 27, %l3 278 andn %o5, %o3, %l4 279 fxors %f14, %f8, %f12 280 281 sll %o3, 30, %l5 282 xor %l1, %l4, %l1 283 fxor %f28, %f30, %f14 284 285 srl %o3, 2, %l7 286 or %l0, %l3, %l0 287 fand %f50, %f36, %f2 288 289 add %l0, %l1, %l0 290 add %o0, %g1, %l1 291 fand %f50, %f12, %f10 292 293 or %l5, %l7, %o3 294 add %l0, %l1, %l0 295 fpadd32 %f36, %f36, %f4 296 297 add %l0, %l2, %o1 298! Starting round 5 299 and %o2, %o3, %l1 300 sll %o1, 5, %l0 301 ld [%i1 + (5 * 4)], %l2 302 faligndata %f52, %f2, %f2 303 304 srl %o1, 27, %l3 305 andn %o4, %o2, %l4 306 faligndata %f52, %f10, %f10 307 308 sll %o2, 30, %l5 309 xor %l1, %l4, %l1 310 fpadd32s %f12, %f12, %f12 311 312 srl %o2, 2, %l7 313 or %l0, %l3, %l0 314 fxor %f26, %f28, %f38 315 fmul8x16 %f2, %f54, %f6 316 317 add %l0, %l1, %l0 318 add %o5, %g1, %l1 319 fxor %f14, %f22, %f14 320 fmul8x16 %f3, %f54, %f2 321 322 or %l5, %l7, %o2 323 add %l0, %l1, %l0 324 fmul8x16 %f10, %f54, %f10 325 326 add %l0, %l2, %o0 327 328! Starting round 6 329 and %o1, %o2, %l1 330 sll %o0, 5, %l0 331 ld [%i1 + (6 * 4)], %l2 332 fxor %f38, %f20, %f38 333 334 srl %o0, 27, %l3 335 andn %o3, %o1, %l4 336 fors %f4, %f7, %f8 337 st %f8, [%i0 + (16*4) + (0)] 338 339 sll %o1, 30, %l5 340 xor %l1, %l4, %l1 341 fors %f5, %f3, %f0 342 st %f0, [%i0 + (16*4) + (4)] 343 344 srl %o1, 2, %l7 345 or %l0, %l3, %l0 346 fors %f12, %f11, %f1 347 st %f1, [%i0 + (16*4) + (8)] 348 349 add %l0, %l1, %l0 350 add %o4, %g1, %l1 351 fors %f4, %f7, %f16 352 353 or %l5, %l7, %o1 354 add %l0, %l1, %l0 355 fors %f5, %f3, %f17 356 357 add %l0, %l2, %o5 358 fors %f12, %f11, %f9 359 360! Starting round 7 361 and %o0, %o1, %l1 362 sll %o5, 5, %l0 363 ld [%i1 + (7 * 4)], %l2 364 fxor %f38, %f0, %f36 365 366 srl %o5, 27, %l3 367 andn %o2, %o0, %l4 368 fxors %f15, %f8, %f12 369 370 sll %o0, 30, %l5 371 xor %l1, %l4, %l1 372 fxor %f24, %f26, %f38 373 374 srl %o0, 2, %l7 375 or %l0, %l3, %l0 376 fand %f50, %f36, %f2 377 378 add %l0, %l1, %l0 379 add %o3, %g1, %l1 380 fand %f50, %f12, %f10 381 382 or %l5, %l7, %o0 383 add %l0, %l1, %l0 384 fpadd32 %f36, %f36, %f4 385 386 add %l0, %l2, %o4 387! Starting round 8 388 and %o5, %o0, %l1 389 sll %o4, 5, %l0 390 ld [%i1 + (8 * 4)], %l2 391 faligndata %f52, %f2, %f2 392 393 srl %o4, 27, %l3 394 andn %o1, %o5, %l4 395 faligndata %f52, %f10, %f10 396 397 sll %o5, 30, %l5 398 xor %l1, %l4, %l1 399 fpadd32s %f12, %f12, %f12 400 401 srl %o5, 2, %l7 402 or %l0, %l3, %l0 403 fxor %f22, %f24, %f14 404 fmul8x16 %f2, %f54, %f6 405 406 add %l0, %l1, %l0 407 add %o2, %g1, %l1 408 fxor %f38, %f18, %f38 409 fmul8x16 %f3, %f54, %f2 410 411 or %l5, %l7, %o5 412 add %l0, %l1, %l0 413 fmovs %f9, %f30 414 fmul8x16 %f10, %f54, %f10 415 416 add %l0, %l2, %o3 417 418! Starting round 9 419 and %o4, %o5, %l1 420 sll %o3, 5, %l0 421 ld [%i1 + (9 * 4)], %l2 422 fxor %f14, %f16, %f14 423 424 srl %o3, 27, %l3 425 andn %o0, %o4, %l4 426 fors %f4, %f7, %f1 427 st %f1, [%i0 + (19*4) + (4)] 428 429 sll %o4, 30, %l5 430 xor %l1, %l4, %l1 431 fors %f5, %f3, %f8 432 st %f8, [%i0 + (19*4) + (8)] 433 434 srl %o4, 2, %l7 435 or %l0, %l3, %l0 436 fors %f12, %f11, %f0 437 st %f0, [%i0 + (19*4) + (0)] 438 439 add %l0, %l1, %l0 440 add %o1, %g1, %l1 441 fors %f4, %f7, %f28 442 443 or %l5, %l7, %o4 444 add %l0, %l1, %l0 445 fors %f5, %f3, %f29 446 447 add %l0, %l2, %o2 448 fors %f12, %f11, %f31 449 450! Starting round 10 451 and %o3, %o4, %l1 452 sll %o2, 5, %l0 453 ld [%i1 + (10 * 4)], %l2 454 fxor %f38, %f0, %f36 455 456 srl %o2, 27, %l3 457 andn %o5, %o3, %l4 458 fxors %f14, %f8, %f12 459 460 sll %o3, 30, %l5 461 xor %l1, %l4, %l1 462 fxor %f22, %f24, %f14 463 464 srl %o3, 2, %l7 465 or %l0, %l3, %l0 466 fand %f50, %f36, %f2 467 468 add %l0, %l1, %l0 469 add %o0, %g1, %l1 470 fand %f50, %f12, %f10 471 472 or %l5, %l7, %o3 473 add %l0, %l1, %l0 474 fpadd32 %f36, %f36, %f4 475 476 add %l0, %l2, %o1 477 478! Starting round 11 479 and %o2, %o3, %l1 480 sll %o1, 5, %l0 481 ld [%i1 + (11 * 4)], %l2 482 faligndata %f52, %f2, %f2 483 484 srl %o1, 27, %l3 485 andn %o4, %o2, %l4 486 faligndata %f52, %f10, %f10 487 488 sll %o2, 30, %l5 489 xor %l1, %l4, %l1 490 fpadd32s %f12, %f12, %f12 491 492 srl %o2, 2, %l7 493 or %l0, %l3, %l0 494 fxor %f20, %f22, %f38 495 fmul8x16 %f2, %f54, %f6 496 497 add %l0, %l1, %l0 498 add %o5, %g1, %l1 499 fxor %f14, %f16, %f14 500 fmul8x16 %f3, %f54, %f2 501 502 or %l5, %l7, %o2 503 add %l0, %l1, %l0 504 fmul8x16 %f10, %f54, %f10 505 506 add %l0, %l2, %o0 507 508! Starting round 12 509 and %o1, %o2, %l1 510 sll %o0, 5, %l0 511 ld [%i1 + (12 * 4)], %l2 512 fxor %f38, %f30, %f38 513 514 srl %o0, 27, %l3 515 andn %o3, %o1, %l4 516 fors %f4, %f7, %f8 517 st %f8, [%i0 + (22*4) + (0)] 518 519 sll %o1, 30, %l5 520 xor %l1, %l4, %l1 521 fors %f5, %f3, %f0 522 st %f0, [%i0 + (22*4) + (4)] 523 524 srl %o1, 2, %l7 525 or %l0, %l3, %l0 526 fors %f12, %f11, %f1 527 st %f1, [%i0 + (22*4) + (8)] 528 529 add %l0, %l1, %l0 530 add %o4, %g1, %l1 531 fors %f4, %f7, %f26 532 533 or %l5, %l7, %o1 534 add %l0, %l1, %l0 535 fors %f5, %f3, %f27 536 537 add %l0, %l2, %o5 538 fors %f12, %f11, %f9 539 540! Starting round 13 541 and %o0, %o1, %l1 542 sll %o5, 5, %l0 543 ld [%i1 + (13 * 4)], %l2 544 fxor %f38, %f0, %f36 545 546 srl %o5, 27, %l3 547 andn %o2, %o0, %l4 548 fxors %f15, %f8, %f12 549 550 sll %o0, 30, %l5 551 xor %l1, %l4, %l1 552 fxor %f18, %f20, %f38 553 554 srl %o0, 2, %l7 555 or %l0, %l3, %l0 556 fand %f50, %f36, %f2 557 558 add %l0, %l1, %l0 559 add %o3, %g1, %l1 560 fand %f50, %f12, %f10 561 562 or %l5, %l7, %o0 563 add %l0, %l1, %l0 564 fpadd32 %f36, %f36, %f4 565 566 add %l0, %l2, %o4 567! Starting round 14 568 and %o5, %o0, %l1 569 sll %o4, 5, %l0 570 ld [%i1 + (14 * 4)], %l2 571 faligndata %f52, %f2, %f2 572 573 srl %o4, 27, %l3 574 andn %o1, %o5, %l4 575 faligndata %f52, %f10, %f10 576 577 sll %o5, 30, %l5 578 xor %l1, %l4, %l1 579 fpadd32s %f12, %f12, %f12 580 581 srl %o5, 2, %l7 582 or %l0, %l3, %l0 583 fxor %f16, %f18, %f14 584 fmul8x16 %f2, %f54, %f6 585 586 add %l0, %l1, %l0 587 add %o2, %g1, %l1 588 fxor %f38, %f28, %f38 589 fmul8x16 %f3, %f54, %f2 590 591 or %l5, %l7, %o5 592 add %l0, %l1, %l0 593 fmovs %f9, %f24 594 fmul8x16 %f10, %f54, %f10 595 596 add %l0, %l2, %o3 597 598! Starting round 15 599 and %o4, %o5, %l1 600 sll %o3, 5, %l0 601 ld [%i1 + (15 * 4)], %l2 602 fxor %f14, %f26, %f14 603 604 srl %o3, 27, %l3 605 andn %o0, %o4, %l4 606 fors %f4, %f7, %f1 607 st %f1, [%i0 + (25*4) + (4)] 608 609 sll %o4, 30, %l5 610 xor %l1, %l4, %l1 611 fors %f5, %f3, %f8 612 st %f8, [%i0 + (25*4) + (8)] 613 614 srl %o4, 2, %l7 615 or %l0, %l3, %l0 616 fors %f12, %f11, %f0 617 st %f0, [%i0 + (25*4) + (0)] 618 619 add %l0, %l1, %l0 620 add %o1, %g1, %l1 621 fors %f4, %f7, %f22 622 623 or %l5, %l7, %o4 624 add %l0, %l1, %l0 625 fors %f5, %f3, %f23 626 627 add %l0, %l2, %o2 628 fors %f12, %f11, %f25 629 630! Starting round 16 631 and %o3, %o4, %l1 632 sll %o2, 5, %l0 633 ld [%i0 + (16 * 4)], %l2 634 fxor %f38, %f0, %f36 635 636 srl %o2, 27, %l3 637 andn %o5, %o3, %l4 638 fxors %f14, %f8, %f12 639 640 sll %o3, 30, %l5 641 xor %l1, %l4, %l1 642 fxor %f16, %f18, %f14 643 644 srl %o3, 2, %l7 645 or %l0, %l3, %l0 646 fand %f50, %f36, %f2 647 648 add %l0, %l1, %l0 649 add %o0, %g1, %l1 650 fand %f50, %f12, %f10 651 652 or %l5, %l7, %o3 653 add %l0, %l1, %l0 654 fpadd32 %f36, %f36, %f4 655 656 add %l0, %l2, %o1 657 658! Starting round 17 659 and %o2, %o3, %l1 660 sll %o1, 5, %l0 661 ld [%i0 + (17 * 4)], %l2 662 faligndata %f52, %f2, %f2 663 664 srl %o1, 27, %l3 665 andn %o4, %o2, %l4 666 faligndata %f52, %f10, %f10 667 668 sll %o2, 30, %l5 669 xor %l1, %l4, %l1 670 fpadd32s %f12, %f12, %f12 671 672 srl %o2, 2, %l7 673 or %l0, %l3, %l0 674 fxor %f30, %f16, %f38 675 fmul8x16 %f2, %f54, %f6 676 677 add %l0, %l1, %l0 678 add %o5, %g1, %l1 679 fxor %f14, %f26, %f14 680 fmul8x16 %f3, %f54, %f2 681 682 or %l5, %l7, %o2 683 add %l0, %l1, %l0 684 fmul8x16 %f10, %f54, %f10 685 686 add %l0, %l2, %o0 687 688! Starting round 18 689 and %o1, %o2, %l1 690 sll %o0, 5, %l0 691 ld [%i0 + (18 * 4)], %l2 692 fxor %f38, %f24, %f38 693 694 srl %o0, 27, %l3 695 andn %o3, %o1, %l4 696 fors %f4, %f7, %f8 697 st %f8, [%i0 + (28*4) + (0)] 698 699 sll %o1, 30, %l5 700 xor %l1, %l4, %l1 701 fors %f5, %f3, %f0 702 st %f0, [%i0 + (28*4) + (4)] 703 704 srl %o1, 2, %l7 705 or %l0, %l3, %l0 706 fors %f12, %f11, %f1 707 st %f1, [%i0 + (28*4) + (8)] 708 709 add %l0, %l1, %l0 710 add %o4, %g1, %l1 711 fors %f4, %f7, %f20 712 713 or %l5, %l7, %o1 714 add %l0, %l1, %l0 715 fors %f5, %f3, %f21 716 717 add %l0, %l2, %o5 718 fors %f12, %f11, %f9 719 720! Starting round 19 721 and %o0, %o1, %l1 722 sll %o5, 5, %l0 723 ld [%i0 + (19 * 4)], %l2 724 fxor %f38, %f0, %f36 725 726 srl %o5, 27, %l3 727 andn %o2, %o0, %l4 728 fxors %f15, %f8, %f12 729 730 sll %o0, 30, %l5 731 xor %l1, %l4, %l1 732 fxor %f28, %f30, %f38 733 734 srl %o0, 2, %l7 735 or %l0, %l3, %l0 736 fand %f50, %f36, %f2 737 738 add %l0, %l1, %l0 739 add %o3, %g1, %l1 740 fand %f50, %f12, %f10 741 742 or %l5, %l7, %o0 743 add %l0, %l1, %l0 744 fpadd32 %f36, %f36, %f4 745 746 add %l0, %l2, %o4 747 748 ld [%i3 + 4 + 16], %g1 749 750! Starting round 20 751 sll %o4, 5, %l0 752 xor %o5, %o0, %l1 753 ld [%i0 + (20 * 4)], %l2 754 faligndata %f52, %f2, %f2 755 756 srl %o4, 27, %l3 757 xor %l1, %o1, %l1 758 faligndata %f52, %f10, %f10 759 760 sll %o5, 30, %l5 761 or %l0, %l3, %l0 762 fpadd32s %f12, %f12, %f12 763 764 add %o2, %g1, %l4 765 add %l0, %l1, %l0 766 fxor %f26, %f28, %f14 767 fmul8x16 %f2, %f54, %f6 768 769 srl %o5, 2, %l7 770 add %l0, %l4, %l0 771 fxor %f38, %f22, %f38 772 fmul8x16 %f3, %f54, %f2 773 774 or %l5, %l7, %o5 775 add %l0, %l2, %o3 776 fmovs %f9, %f18 777 fmul8x16 %f10, %f54, %f10 778 779! Starting round 21 780 sll %o3, 5, %l0 781 xor %o4, %o5, %l1 782 ld [%i0 + (21 * 4)], %l2 783 784 fxor %f14, %f20, %f14 785 srl %o3, 27, %l3 786 xor %l1, %o0, %l1 787 fors %f4, %f7, %f1 788 st %f1, [%i0 + (31*4) + (4)] 789 790 sll %o4, 30, %l5 791 or %l0, %l3, %l0 792 fors %f5, %f3, %f8 793 st %f8, [%i0 + (31*4) + (8)] 794 795 add %o1, %g1, %l4 796 add %l0, %l1, %l0 797 fors %f12, %f11, %f0 798 st %f0, [%i0 + (31*4) + (0)] 799 800 srl %o4, 2, %l7 801 add %l0, %l4, %l0 802 fors %f4, %f7, %f16 803 804 or %l5, %l7, %o4 805 add %l0, %l2, %o2 806 fors %f5, %f3, %f17 807 808 fors %f12, %f11, %f19 809 810! Starting round 22 811 sll %o2, 5, %l0 812 xor %o3, %o4, %l1 813 ld [%i0 + (22 * 4)], %l2 814 fxor %f38, %f0, %f36 815 816 srl %o2, 27, %l3 817 xor %l1, %o5, %l1 818 fxors %f14, %f8, %f12 819 820 sll %o3, 30, %l5 821 or %l0, %l3, %l0 822 fxor %f26, %f28, %f14 823 824 add %o0, %g1, %l4 825 add %l0, %l1, %l0 826 fand %f50, %f36, %f2 827 828 srl %o3, 2, %l7 829 add %l0, %l4, %l0 830 fand %f50, %f12, %f10 831 832 or %l5, %l7, %o3 833 add %l0, %l2, %o1 834 835 fpadd32 %f36, %f36, %f4 836 837! Starting round 23 838 sll %o1, 5, %l0 839 xor %o2, %o3, %l1 840 ld [%i0 + (23 * 4)], %l2 841 faligndata %f52, %f2, %f2 842 843 srl %o1, 27, %l3 844 xor %l1, %o4, %l1 845 846 faligndata %f52, %f10, %f10 847 848 sll %o2, 30, %l5 849 or %l0, %l3, %l0 850 fpadd32s %f12, %f12, %f12 851 852 add %o5, %g1, %l4 853 add %l0, %l1, %l0 854 fxor %f24, %f26, %f38 855 fmul8x16 %f2, %f54, %f6 856 857 srl %o2, 2, %l7 858 add %l0, %l4, %l0 859 fxor %f14, %f20, %f14 860 fmul8x16 %f3, %f54, %f2 861 862 or %l5, %l7, %o2 863 add %l0, %l2, %o0 864 fmul8x16 %f10, %f54, %f10 865 866! Starting round 24 867 sll %o0, 5, %l0 868 xor %o1, %o2, %l1 869 ld [%i0 + (24 * 4)], %l2 870 871 fxor %f38, %f18, %f38 872 srl %o0, 27, %l3 873 xor %l1, %o3, %l1 874 fors %f4, %f7, %f8 875 st %f8, [%i0 + (34*4) + (0)] 876 877 sll %o1, 30, %l5 878 or %l0, %l3, %l0 879 fors %f5, %f3, %f0 880 st %f0, [%i0 + (34*4) + (4)] 881 882 add %o4, %g1, %l4 883 add %l0, %l1, %l0 884 fors %f12, %f11, %f1 885 st %f1, [%i0 + (34*4) + (8)] 886 887 srl %o1, 2, %l7 888 add %l0, %l4, %l0 889 fors %f4, %f7, %f30 890 891 or %l5, %l7, %o1 892 add %l0, %l2, %o5 893 fors %f5, %f3, %f31 894 895 fors %f12, %f11, %f9 896 897! Starting round 25 898 sll %o5, 5, %l0 899 xor %o0, %o1, %l1 900 ld [%i0 + (25 * 4)], %l2 901 fxor %f38, %f0, %f36 902 903 srl %o5, 27, %l3 904 xor %l1, %o2, %l1 905 fxors %f15, %f8, %f12 906 907 sll %o0, 30, %l5 908 or %l0, %l3, %l0 909 fxor %f22, %f24, %f38 910 911 add %o3, %g1, %l4 912 add %l0, %l1, %l0 913 fand %f50, %f36, %f2 914 915 srl %o0, 2, %l7 916 add %l0, %l4, %l0 917 fand %f50, %f12, %f10 918 919 or %l5, %l7, %o0 920 add %l0, %l2, %o4 921 922 fpadd32 %f36, %f36, %f4 923 924! Starting round 26 925 sll %o4, 5, %l0 926 xor %o5, %o0, %l1 927 ld [%i0 + (26 * 4)], %l2 928 faligndata %f52, %f2, %f2 929 930 srl %o4, 27, %l3 931 xor %l1, %o1, %l1 932 933 faligndata %f52, %f10, %f10 934 935 sll %o5, 30, %l5 936 or %l0, %l3, %l0 937 fpadd32s %f12, %f12, %f12 938 939 add %o2, %g1, %l4 940 add %l0, %l1, %l0 941 fxor %f20, %f22, %f14 942 fmul8x16 %f2, %f54, %f6 943 944 srl %o5, 2, %l7 945 add %l0, %l4, %l0 946 fxor %f38, %f16, %f38 947 fmul8x16 %f3, %f54, %f2 948 949 or %l5, %l7, %o5 950 add %l0, %l2, %o3 951 fmovs %f9, %f28 952 fmul8x16 %f10, %f54, %f10 953 954! Starting round 27 955 sll %o3, 5, %l0 956 xor %o4, %o5, %l1 957 ld [%i0 + (27 * 4)], %l2 958 959 fxor %f14, %f30, %f14 960 srl %o3, 27, %l3 961 xor %l1, %o0, %l1 962 fors %f4, %f7, %f1 963 st %f1, [%i0 + (37*4) + (4)] 964 965 sll %o4, 30, %l5 966 or %l0, %l3, %l0 967 fors %f5, %f3, %f8 968 st %f8, [%i0 + (37*4) + (8)] 969 970 add %o1, %g1, %l4 971 add %l0, %l1, %l0 972 fors %f12, %f11, %f0 973 st %f0, [%i0 + (37*4) + (0)] 974 975 srl %o4, 2, %l7 976 add %l0, %l4, %l0 977 fors %f4, %f7, %f26 978 979 or %l5, %l7, %o4 980 add %l0, %l2, %o2 981 fors %f5, %f3, %f27 982 983 fors %f12, %f11, %f29 984 985! Starting round 28 986 sll %o2, 5, %l0 987 xor %o3, %o4, %l1 988 ld [%i0 + (28 * 4)], %l2 989 fxor %f38, %f0, %f36 990 991 srl %o2, 27, %l3 992 xor %l1, %o5, %l1 993 fxors %f14, %f8, %f12 994 995 sll %o3, 30, %l5 996 or %l0, %l3, %l0 997 fxor %f20, %f22, %f14 998 999 add %o0, %g1, %l4 1000 add %l0, %l1, %l0 1001 fand %f50, %f36, %f2 1002 1003 srl %o3, 2, %l7 1004 add %l0, %l4, %l0 1005 fand %f50, %f12, %f10 1006 1007 or %l5, %l7, %o3 1008 add %l0, %l2, %o1 1009 1010 fpadd32 %f36, %f36, %f4 1011 1012! Starting round 29 1013 sll %o1, 5, %l0 1014 xor %o2, %o3, %l1 1015 ld [%i0 + (29 * 4)], %l2 1016 faligndata %f52, %f2, %f2 1017 1018 srl %o1, 27, %l3 1019 xor %l1, %o4, %l1 1020 1021 faligndata %f52, %f10, %f10 1022 1023 sll %o2, 30, %l5 1024 or %l0, %l3, %l0 1025 fpadd32s %f12, %f12, %f12 1026 1027 add %o5, %g1, %l4 1028 add %l0, %l1, %l0 1029 fxor %f18, %f20, %f38 1030 fmul8x16 %f2, %f54, %f6 1031 1032 srl %o2, 2, %l7 1033 add %l0, %l4, %l0 1034 fxor %f14, %f30, %f14 1035 fmul8x16 %f3, %f54, %f2 1036 1037 or %l5, %l7, %o2 1038 add %l0, %l2, %o0 1039 fmul8x16 %f10, %f54, %f10 1040 1041! Starting round 30 1042 sll %o0, 5, %l0 1043 xor %o1, %o2, %l1 1044 ld [%i0 + (30 * 4)], %l2 1045 1046 fxor %f38, %f28, %f38 1047 srl %o0, 27, %l3 1048 xor %l1, %o3, %l1 1049 fors %f4, %f7, %f8 1050 st %f8, [%i0 + (40*4) + (0)] 1051 1052 sll %o1, 30, %l5 1053 or %l0, %l3, %l0 1054 fors %f5, %f3, %f0 1055 st %f0, [%i0 + (40*4) + (4)] 1056 1057 add %o4, %g1, %l4 1058 add %l0, %l1, %l0 1059 fors %f12, %f11, %f1 1060 st %f1, [%i0 + (40*4) + (8)] 1061 1062 srl %o1, 2, %l7 1063 add %l0, %l4, %l0 1064 fors %f4, %f7, %f24 1065 1066 or %l5, %l7, %o1 1067 add %l0, %l2, %o5 1068 fors %f5, %f3, %f25 1069 1070 fors %f12, %f11, %f9 1071 1072! Starting round 31 1073 sll %o5, 5, %l0 1074 xor %o0, %o1, %l1 1075 ld [%i0 + (31 * 4)], %l2 1076 fxor %f38, %f0, %f36 1077 1078 srl %o5, 27, %l3 1079 xor %l1, %o2, %l1 1080 fxors %f15, %f8, %f12 1081 1082 sll %o0, 30, %l5 1083 or %l0, %l3, %l0 1084 fxor %f16, %f18, %f38 1085 1086 add %o3, %g1, %l4 1087 add %l0, %l1, %l0 1088 fand %f50, %f36, %f2 1089 1090 srl %o0, 2, %l7 1091 add %l0, %l4, %l0 1092 fand %f50, %f12, %f10 1093 1094 or %l5, %l7, %o0 1095 add %l0, %l2, %o4 1096 fpadd32 %f36, %f36, %f4 1097 1098! Starting round 32 1099 sll %o4, 5, %l0 1100 xor %o5, %o0, %l1 1101 ld [%i0 + (32 * 4)], %l2 1102 faligndata %f52, %f2, %f2 1103 1104 srl %o4, 27, %l3 1105 xor %l1, %o1, %l1 1106 faligndata %f52, %f10, %f10 1107 1108 sll %o5, 30, %l5 1109 or %l0, %l3, %l0 1110 fpadd32s %f12, %f12, %f12 1111 1112 add %o2, %g1, %l4 1113 add %l0, %l1, %l0 1114 fxor %f30, %f16, %f14 1115 fmul8x16 %f2, %f54, %f6 1116 1117 srl %o5, 2, %l7 1118 add %l0, %l4, %l0 1119 fxor %f38, %f26, %f38 1120 fmul8x16 %f3, %f54, %f2 1121 1122 or %l5, %l7, %o5 1123 add %l0, %l2, %o3 1124 fmovs %f9, %f22 1125 fmul8x16 %f10, %f54, %f10 1126 1127! Starting round 33 1128 sll %o3, 5, %l0 1129 xor %o4, %o5, %l1 1130 ld [%i0 + (33 * 4)], %l2 1131 fxor %f14, %f24, %f14 1132 1133 srl %o3, 27, %l3 1134 xor %l1, %o0, %l1 1135 fors %f4, %f7, %f1 1136 st %f1, [%i0 + (43*4) + (4)] 1137 1138 sll %o4, 30, %l5 1139 or %l0, %l3, %l0 1140 fors %f5, %f3, %f8 1141 st %f8, [%i0 + (43*4) + (8)] 1142 1143 add %o1, %g1, %l4 1144 add %l0, %l1, %l0 1145 fors %f12, %f11, %f0 1146 st %f0, [%i0 + (43*4) + (0)] 1147 1148 srl %o4, 2, %l7 1149 add %l0, %l4, %l0 1150 fors %f4, %f7, %f20 1151 1152 or %l5, %l7, %o4 1153 add %l0, %l2, %o2 1154 fors %f5, %f3, %f21 1155 1156 fors %f12, %f11, %f23 1157 1158! Starting round 34 1159 sll %o2, 5, %l0 1160 xor %o3, %o4, %l1 1161 ld [%i0 + (34 * 4)], %l2 1162 fxor %f38, %f0, %f36 1163 1164 srl %o2, 27, %l3 1165 xor %l1, %o5, %l1 1166 fxors %f14, %f8, %f12 1167 1168 sll %o3, 30, %l5 1169 or %l0, %l3, %l0 1170 fxor %f30, %f16, %f14 1171 1172 add %o0, %g1, %l4 1173 add %l0, %l1, %l0 1174 fand %f50, %f36, %f2 1175 1176 srl %o3, 2, %l7 1177 add %l0, %l4, %l0 1178 fand %f50, %f12, %f10 1179 1180 or %l5, %l7, %o3 1181 add %l0, %l2, %o1 1182 fpadd32 %f36, %f36, %f4 1183 1184! Starting round 35 1185 sll %o1, 5, %l0 1186 xor %o2, %o3, %l1 1187 ld [%i0 + (35 * 4)], %l2 1188 faligndata %f52, %f2, %f2 1189 1190 srl %o1, 27, %l3 1191 xor %l1, %o4, %l1 1192 faligndata %f52, %f10, %f10 1193 1194 sll %o2, 30, %l5 1195 or %l0, %l3, %l0 1196 fpadd32s %f12, %f12, %f12 1197 1198 add %o5, %g1, %l4 1199 add %l0, %l1, %l0 1200 fxor %f28, %f30, %f38 1201 fmul8x16 %f2, %f54, %f6 1202 1203 srl %o2, 2, %l7 1204 add %l0, %l4, %l0 1205 fxor %f14, %f24, %f14 1206 fmul8x16 %f3, %f54, %f2 1207 1208 or %l5, %l7, %o2 1209 add %l0, %l2, %o0 1210 fmul8x16 %f10, %f54, %f10 1211 1212! Starting round 36 1213 sll %o0, 5, %l0 1214 xor %o1, %o2, %l1 1215 ld [%i0 + (36 * 4)], %l2 1216 fxor %f38, %f22, %f38 1217 1218 srl %o0, 27, %l3 1219 xor %l1, %o3, %l1 1220 fors %f4, %f7, %f8 1221 st %f8, [%i0 + (46*4) + (0)] 1222 1223 sll %o1, 30, %l5 1224 or %l0, %l3, %l0 1225 fors %f5, %f3, %f0 1226 st %f0, [%i0 + (46*4) + (4)] 1227 1228 add %o4, %g1, %l4 1229 add %l0, %l1, %l0 1230 fors %f12, %f11, %f1 1231 st %f1, [%i0 + (46*4) + (8)] 1232 1233 srl %o1, 2, %l7 1234 add %l0, %l4, %l0 1235 fors %f4, %f7, %f18 1236 1237 or %l5, %l7, %o1 1238 add %l0, %l2, %o5 1239 fors %f5, %f3, %f19 1240 1241 fors %f12, %f11, %f9 1242 1243! Starting round 37 1244 sll %o5, 5, %l0 1245 xor %o0, %o1, %l1 1246 ld [%i0 + (37 * 4)], %l2 1247 fxor %f38, %f0, %f36 1248 1249 srl %o5, 27, %l3 1250 xor %l1, %o2, %l1 1251 fxors %f15, %f8, %f12 1252 1253 sll %o0, 30, %l5 1254 or %l0, %l3, %l0 1255 fxor %f26, %f28, %f38 1256 1257 add %o3, %g1, %l4 1258 add %l0, %l1, %l0 1259 fand %f50, %f36, %f2 1260 1261 srl %o0, 2, %l7 1262 add %l0, %l4, %l0 1263 fand %f50, %f12, %f10 1264 1265 or %l5, %l7, %o0 1266 add %l0, %l2, %o4 1267 fpadd32 %f36, %f36, %f4 1268 1269! Starting round 38 1270 sll %o4, 5, %l0 1271 xor %o5, %o0, %l1 1272 ld [%i0 + (38 * 4)], %l2 1273 faligndata %f52, %f2, %f2 1274 1275 srl %o4, 27, %l3 1276 xor %l1, %o1, %l1 1277 faligndata %f52, %f10, %f10 1278 1279 sll %o5, 30, %l5 1280 or %l0, %l3, %l0 1281 fpadd32s %f12, %f12, %f12 1282 1283 add %o2, %g1, %l4 1284 add %l0, %l1, %l0 1285 fxor %f24, %f26, %f14 1286 fmul8x16 %f2, %f54, %f6 1287 1288 srl %o5, 2, %l7 1289 add %l0, %l4, %l0 1290 fxor %f38, %f20, %f38 1291 fmul8x16 %f3, %f54, %f2 1292 1293 or %l5, %l7, %o5 1294 add %l0, %l2, %o3 1295 fmovs %f9, %f16 1296 fmul8x16 %f10, %f54, %f10 1297 1298! Starting round 39 1299 sll %o3, 5, %l0 1300 xor %o4, %o5, %l1 1301 ld [%i0 + (39 * 4)], %l2 1302 fxor %f14, %f18, %f14 1303 1304 srl %o3, 27, %l3 1305 xor %l1, %o0, %l1 1306 fors %f4, %f7, %f1 1307 st %f1, [%i0 + (49*4) + (4)] 1308 1309 sll %o4, 30, %l5 1310 or %l0, %l3, %l0 1311 fors %f5, %f3, %f8 1312 st %f8, [%i0 + (49*4) + (8)] 1313 1314 add %o1, %g1, %l4 1315 add %l0, %l1, %l0 1316 fors %f12, %f11, %f0 1317 st %f0, [%i0 + (49*4) + (0)] 1318 1319 srl %o4, 2, %l7 1320 add %l0, %l4, %l0 1321 fors %f4, %f7, %f30 1322 1323 or %l5, %l7, %o4 1324 add %l0, %l2, %o2 1325 fors %f5, %f3, %f31 1326 1327 fors %f12, %f11, %f17 1328 ld [%i3 + 8 + 16], %g1 1329 1330! Starting round 40 1331 sll %o2, 5, %l0 1332 and %o3, %o4, %l1 1333 ld [%i0 + (40 * 4)], %l2 1334 fxor %f38, %f0, %f36 1335 1336 srl %o2, 27, %l3 1337 or %o3, %o4, %l4 1338 fxors %f14, %f8, %f12 1339 1340 sll %o3, 30, %l5 1341 and %l4, %o5, %l4 1342 fxor %f24, %f26, %f14 1343 1344 add %o0, %g1, %l6 1345 or %l1, %l4, %l1 1346 fand %f50, %f36, %f2 1347 1348 or %l0, %l3, %l0 1349 add %l6, %l1, %l1 1350 fand %f50, %f12, %f10 1351 1352 srl %o3, 2, %l7 1353 add %l0, %l1, %l0 1354 fpadd32 %f36, %f36, %f4 1355 1356 or %l5, %l7, %o3 1357 add %l0, %l2, %o1 1358 1359! Starting round 41 1360 sll %o1, 5, %l0 1361 and %o2, %o3, %l1 1362 ld [%i0 + (41 * 4)], %l2 1363 faligndata %f52, %f2, %f2 1364 1365 srl %o1, 27, %l3 1366 or %o2, %o3, %l4 1367 faligndata %f52, %f10, %f10 1368 1369 sll %o2, 30, %l5 1370 and %l4, %o4, %l4 1371 fpadd32s %f12, %f12, %f12 1372 1373 add %o5, %g1, %l6 1374 or %l1, %l4, %l1 1375 fxor %f22, %f24, %f38 1376 fmul8x16 %f2, %f54, %f6 1377 1378 or %l0, %l3, %l0 1379 add %l6, %l1, %l1 1380 fxor %f14, %f18, %f14 1381 fmul8x16 %f3, %f54, %f2 1382 1383 srl %o2, 2, %l7 1384 add %l0, %l1, %l0 1385 fmul8x16 %f10, %f54, %f10 1386 1387 or %l5, %l7, %o2 1388 add %l0, %l2, %o0 1389 1390! Starting round 42 1391 sll %o0, 5, %l0 1392 and %o1, %o2, %l1 1393 ld [%i0 + (42 * 4)], %l2 1394 fxor %f38, %f16, %f38 1395 1396 srl %o0, 27, %l3 1397 or %o1, %o2, %l4 1398 fors %f4, %f7, %f8 1399 st %f8, [%i0 + (52*4) +(0)] 1400 1401 sll %o1, 30, %l5 1402 and %l4, %o3, %l4 1403 fors %f5, %f3, %f0 1404 st %f0, [%i0 + (52*4) + (4)] 1405 1406 add %o4, %g1, %l6 1407 or %l1, %l4, %l1 1408 fors %f12, %f11, %f1 1409 st %f1, [%i0 + (52*4) + (8)] 1410 1411 or %l0, %l3, %l0 1412 add %l6, %l1, %l1 1413 fors %f4, %f7, %f28 1414 1415 srl %o1, 2, %l7 1416 add %l0, %l1, %l0 1417 fors %f5, %f3, %f29 1418 1419 or %l5, %l7, %o1 1420 add %l0, %l2, %o5 1421 fors %f12, %f11, %f9 1422 1423! Starting round 43 1424 sll %o5, 5, %l0 1425 and %o0, %o1, %l1 1426 ld [%i0 + (43 * 4)], %l2 1427 fxor %f38, %f0, %f36 1428 1429 srl %o5, 27, %l3 1430 or %o0, %o1, %l4 1431 fxors %f15, %f8, %f12 1432 1433 sll %o0, 30, %l5 1434 and %l4, %o2, %l4 1435 fxor %f20, %f22, %f38 1436 1437 add %o3, %g1, %l6 1438 or %l1, %l4, %l1 1439 fand %f50, %f36, %f2 1440 1441 or %l0, %l3, %l0 1442 add %l6, %l1, %l1 1443 fand %f50, %f12, %f10 1444 1445 srl %o0, 2, %l7 1446 add %l0, %l1, %l0 1447 fpadd32 %f36, %f36, %f4 1448 1449 or %l5, %l7, %o0 1450 add %l0, %l2, %o4 1451 1452! Starting round 44 1453 sll %o4, 5, %l0 1454 and %o5, %o0, %l1 1455 ld [%i0 + (44 * 4)], %l2 1456 faligndata %f52, %f2, %f2 1457 1458 srl %o4, 27, %l3 1459 or %o5, %o0, %l4 1460 faligndata %f52, %f10, %f10 1461 1462 sll %o5, 30, %l5 1463 and %l4, %o1, %l4 1464 fpadd32s %f12, %f12, %f12 1465 1466 add %o2, %g1, %l6 1467 or %l1, %l4, %l1 1468 fxor %f18, %f20, %f14 1469 fmul8x16 %f2, %f54, %f6 1470 1471 or %l0, %l3, %l0 1472 add %l6, %l1, %l1 1473 fxor %f38, %f30, %f38 1474 fmul8x16 %f3, %f54, %f2 1475 1476 srl %o5, 2, %l7 1477 add %l0, %l1, %l0 1478 fmovs %f9, %f26 1479 fmul8x16 %f10, %f54, %f10 1480 1481 or %l5, %l7, %o5 1482 add %l0, %l2, %o3 1483 1484! Starting round 45 1485 sll %o3, 5, %l0 1486 and %o4, %o5, %l1 1487 ld [%i0 + (45 * 4)], %l2 1488 fxor %f14, %f28, %f14 1489 1490 srl %o3, 27, %l3 1491 or %o4, %o5, %l4 1492 fors %f4, %f7, %f1 1493 st %f1, [%i0 + (55*4) +(4)] 1494 1495 sll %o4, 30, %l5 1496 and %l4, %o0, %l4 1497 fors %f5, %f3, %f8 1498 st %f8, [%i0 + (55*4) + (8)] 1499 1500 add %o1, %g1, %l6 1501 or %l1, %l4, %l1 1502 fors %f12, %f11, %f0 1503 st %f0, [%i0 + (55*4) + (0)] 1504 1505 or %l0, %l3, %l0 1506 add %l6, %l1, %l1 1507 fors %f4, %f7, %f24 1508 1509 srl %o4, 2, %l7 1510 add %l0, %l1, %l0 1511 fors %f5, %f3, %f25 1512 1513 or %l5, %l7, %o4 1514 add %l0, %l2, %o2 1515 fors %f12, %f11, %f27 1516 1517! Starting round 46 1518 sll %o2, 5, %l0 1519 and %o3, %o4, %l1 1520 ld [%i0 + (46 * 4)], %l2 1521 fxor %f38, %f0, %f36 1522 1523 srl %o2, 27, %l3 1524 or %o3, %o4, %l4 1525 fxors %f14, %f8, %f12 1526 1527 sll %o3, 30, %l5 1528 and %l4, %o5, %l4 1529 fxor %f18, %f20, %f14 1530 1531 add %o0, %g1, %l6 1532 or %l1, %l4, %l1 1533 fand %f50, %f36, %f2 1534 1535 or %l0, %l3, %l0 1536 add %l6, %l1, %l1 1537 fand %f50, %f12, %f10 1538 1539 srl %o3, 2, %l7 1540 add %l0, %l1, %l0 1541 fpadd32 %f36, %f36, %f4 1542 1543 or %l5, %l7, %o3 1544 add %l0, %l2, %o1 1545 1546! Starting round 47 1547 sll %o1, 5, %l0 1548 and %o2, %o3, %l1 1549 ld [%i0 + (47 * 4)], %l2 1550 faligndata %f52, %f2, %f2 1551 1552 srl %o1, 27, %l3 1553 or %o2, %o3, %l4 1554 faligndata %f52, %f10, %f10 1555 1556 sll %o2, 30, %l5 1557 and %l4, %o4, %l4 1558 fpadd32s %f12, %f12, %f12 1559 1560 add %o5, %g1, %l6 1561 or %l1, %l4, %l1 1562 fxor %f16, %f18, %f38 1563 fmul8x16 %f2, %f54, %f6 1564 1565 or %l0, %l3, %l0 1566 add %l6, %l1, %l1 1567 fxor %f14, %f28, %f14 1568 fmul8x16 %f3, %f54, %f2 1569 1570 srl %o2, 2, %l7 1571 add %l0, %l1, %l0 1572 fmul8x16 %f10, %f54, %f10 1573 1574 or %l5, %l7, %o2 1575 add %l0, %l2, %o0 1576 1577! Starting round 48 1578 sll %o0, 5, %l0 1579 and %o1, %o2, %l1 1580 ld [%i0 + (48 * 4)], %l2 1581 fxor %f38, %f26, %f38 1582 1583 srl %o0, 27, %l3 1584 or %o1, %o2, %l4 1585 fors %f4, %f7, %f8 1586 st %f8, [%i0 + (58*4) +(0)] 1587 1588 sll %o1, 30, %l5 1589 and %l4, %o3, %l4 1590 fors %f5, %f3, %f0 1591 st %f0, [%i0 + (58*4) + (4)] 1592 1593 add %o4, %g1, %l6 1594 or %l1, %l4, %l1 1595 fors %f12, %f11, %f1 1596 st %f1, [%i0 + (58*4) + (8)] 1597 1598 or %l0, %l3, %l0 1599 add %l6, %l1, %l1 1600 fors %f4, %f7, %f22 1601 1602 srl %o1, 2, %l7 1603 add %l0, %l1, %l0 1604 fors %f5, %f3, %f23 1605 1606 or %l5, %l7, %o1 1607 add %l0, %l2, %o5 1608 fors %f12, %f11, %f9 1609 1610! Starting round 49 1611 sll %o5, 5, %l0 1612 and %o0, %o1, %l1 1613 ld [%i0 + (49 * 4)], %l2 1614 fxor %f38, %f0, %f36 1615 1616 srl %o5, 27, %l3 1617 or %o0, %o1, %l4 1618 fxors %f15, %f8, %f12 1619 1620 sll %o0, 30, %l5 1621 and %l4, %o2, %l4 1622 fxor %f30, %f16, %f38 1623 1624 add %o3, %g1, %l6 1625 or %l1, %l4, %l1 1626 fand %f50, %f36, %f2 1627 1628 or %l0, %l3, %l0 1629 add %l6, %l1, %l1 1630 fand %f50, %f12, %f10 1631 1632 srl %o0, 2, %l7 1633 add %l0, %l1, %l0 1634 fpadd32 %f36, %f36, %f4 1635 1636 or %l5, %l7, %o0 1637 add %l0, %l2, %o4 1638 1639! Starting round 50 1640 sll %o4, 5, %l0 1641 and %o5, %o0, %l1 1642 ld [%i0 + (50 * 4)], %l2 1643 faligndata %f52, %f2, %f2 1644 1645 srl %o4, 27, %l3 1646 or %o5, %o0, %l4 1647 faligndata %f52, %f10, %f10 1648 1649 sll %o5, 30, %l5 1650 and %l4, %o1, %l4 1651 fpadd32s %f12, %f12, %f12 1652 1653 add %o2, %g1, %l6 1654 or %l1, %l4, %l1 1655 fxor %f28, %f30, %f14 1656 fmul8x16 %f2, %f54, %f6 1657 1658 or %l0, %l3, %l0 1659 add %l6, %l1, %l1 1660 fxor %f38, %f24, %f38 1661 fmul8x16 %f3, %f54, %f2 1662 1663 srl %o5, 2, %l7 1664 add %l0, %l1, %l0 1665 fmovs %f9, %f20 1666 fmul8x16 %f10, %f54, %f10 1667 1668 or %l5, %l7, %o5 1669 add %l0, %l2, %o3 1670 1671! Starting round 51 1672 sll %o3, 5, %l0 1673 and %o4, %o5, %l1 1674 ld [%i0 + (51 * 4)], %l2 1675 fxor %f14, %f22, %f14 1676 1677 srl %o3, 27, %l3 1678 or %o4, %o5, %l4 1679 fors %f4, %f7, %f1 1680 st %f1, [%i0 + (61*4) +(4)] 1681 1682 sll %o4, 30, %l5 1683 and %l4, %o0, %l4 1684 fors %f5, %f3, %f8 1685 st %f8, [%i0 + (61*4) + (8)] 1686 1687 add %o1, %g1, %l6 1688 or %l1, %l4, %l1 1689 fors %f12, %f11, %f0 1690 st %f0, [%i0 + (61*4) + (0)] 1691 1692 or %l0, %l3, %l0 1693 add %l6, %l1, %l1 1694 fors %f4, %f7, %f18 1695 1696 srl %o4, 2, %l7 1697 add %l0, %l1, %l0 1698 fors %f5, %f3, %f19 1699 1700 or %l5, %l7, %o4 1701 add %l0, %l2, %o2 1702 fors %f12, %f11, %f21 1703 1704! Starting round 52 1705 sll %o2, 5, %l0 1706 and %o3, %o4, %l1 1707 ld [%i0 + (52 * 4)], %l2 1708 fxor %f38, %f0, %f36 1709 1710 srl %o2, 27, %l3 1711 or %o3, %o4, %l4 1712 fxors %f14, %f8, %f12 1713 1714 sll %o3, 30, %l5 1715 and %l4, %o5, %l4 1716 fxor %f28, %f30, %f14 1717 1718 add %o0, %g1, %l6 1719 or %l1, %l4, %l1 1720 fand %f50, %f36, %f2 1721 1722 or %l0, %l3, %l0 1723 add %l6, %l1, %l1 1724 fand %f50, %f12, %f10 1725 1726 srl %o3, 2, %l7 1727 add %l0, %l1, %l0 1728 fpadd32 %f36, %f36, %f4 1729 1730 or %l5, %l7, %o3 1731 add %l0, %l2, %o1 1732 1733! Starting round 53 1734 sll %o1, 5, %l0 1735 and %o2, %o3, %l1 1736 ld [%i0 + (53 * 4)], %l2 1737 faligndata %f52, %f2, %f2 1738 1739 srl %o1, 27, %l3 1740 or %o2, %o3, %l4 1741 faligndata %f52, %f10, %f10 1742 1743 sll %o2, 30, %l5 1744 and %l4, %o4, %l4 1745 fpadd32s %f12, %f12, %f12 1746 1747 add %o5, %g1, %l6 1748 or %l1, %l4, %l1 1749 fxor %f26, %f28, %f38 1750 fmul8x16 %f2, %f54, %f6 1751 1752 or %l0, %l3, %l0 1753 add %l6, %l1, %l1 1754 fxor %f14, %f22, %f14 1755 fmul8x16 %f3, %f54, %f2 1756 1757 srl %o2, 2, %l7 1758 add %l0, %l1, %l0 1759 fmul8x16 %f10, %f54, %f10 1760 1761 or %l5, %l7, %o2 1762 add %l0, %l2, %o0 1763 1764! Starting round 54 1765 sll %o0, 5, %l0 1766 and %o1, %o2, %l1 1767 ld [%i0 + (54 * 4)], %l2 1768 fxor %f38, %f20, %f38 1769 1770 srl %o0, 27, %l3 1771 or %o1, %o2, %l4 1772 fors %f4, %f7, %f8 1773 st %f8, [%i0 + (64*4) +(0)] 1774 1775 sll %o1, 30, %l5 1776 and %l4, %o3, %l4 1777 fors %f5, %f3, %f0 1778 st %f0, [%i0 + (64*4) + (4)] 1779 1780 add %o4, %g1, %l6 1781 or %l1, %l4, %l1 1782 fors %f12, %f11, %f1 1783 st %f1, [%i0 + (64*4) + (8)] 1784 1785 or %l0, %l3, %l0 1786 add %l6, %l1, %l1 1787 fors %f4, %f7, %f16 1788 1789 srl %o1, 2, %l7 1790 add %l0, %l1, %l0 1791 fors %f5, %f3, %f17 1792 1793 or %l5, %l7, %o1 1794 add %l0, %l2, %o5 1795 fors %f12, %f11, %f9 1796 1797! Starting round 55 1798 sll %o5, 5, %l0 1799 and %o0, %o1, %l1 1800 ld [%i0 + (55 * 4)], %l2 1801 fxor %f38, %f0, %f36 1802 1803 srl %o5, 27, %l3 1804 or %o0, %o1, %l4 1805 fxors %f15, %f8, %f12 1806 1807 sll %o0, 30, %l5 1808 and %l4, %o2, %l4 1809 fxor %f24, %f26, %f38 1810 1811 add %o3, %g1, %l6 1812 or %l1, %l4, %l1 1813 fand %f50, %f36, %f2 1814 1815 or %l0, %l3, %l0 1816 add %l6, %l1, %l1 1817 fand %f50, %f12, %f10 1818 1819 srl %o0, 2, %l7 1820 add %l0, %l1, %l0 1821 fpadd32 %f36, %f36, %f4 1822 1823 or %l5, %l7, %o0 1824 add %l0, %l2, %o4 1825 1826! Starting round 56 1827 sll %o4, 5, %l0 1828 and %o5, %o0, %l1 1829 ld [%i0 + (56 * 4)], %l2 1830 faligndata %f52, %f2, %f2 1831 1832 srl %o4, 27, %l3 1833 or %o5, %o0, %l4 1834 faligndata %f52, %f10, %f10 1835 1836 sll %o5, 30, %l5 1837 and %l4, %o1, %l4 1838 fpadd32s %f12, %f12, %f12 1839 1840 add %o2, %g1, %l6 1841 or %l1, %l4, %l1 1842 fxor %f22, %f24, %f14 1843 fmul8x16 %f2, %f54, %f6 1844 1845 or %l0, %l3, %l0 1846 add %l6, %l1, %l1 1847 fxor %f38, %f18, %f38 1848 fmul8x16 %f3, %f54, %f2 1849 1850 srl %o5, 2, %l7 1851 add %l0, %l1, %l0 1852 fmovs %f9, %f30 1853 fmul8x16 %f10, %f54, %f10 1854 1855 or %l5, %l7, %o5 1856 add %l0, %l2, %o3 1857 1858! Starting round 57 1859 sll %o3, 5, %l0 1860 and %o4, %o5, %l1 1861 ld [%i0 + (57 * 4)], %l2 1862 fxor %f14, %f16, %f14 1863 1864 srl %o3, 27, %l3 1865 or %o4, %o5, %l4 1866 fors %f4, %f7, %f1 1867 st %f1, [%i0 + (67*4) +(4)] 1868 1869 sll %o4, 30, %l5 1870 and %l4, %o0, %l4 1871 fors %f5, %f3, %f8 1872 st %f8, [%i0 + (67*4) + (8)] 1873 1874 add %o1, %g1, %l6 1875 or %l1, %l4, %l1 1876 fors %f12, %f11, %f0 1877 st %f0, [%i0 + (67*4) + (0)] 1878 1879 or %l0, %l3, %l0 1880 add %l6, %l1, %l1 1881 fors %f4, %f7, %f28 1882 1883 srl %o4, 2, %l7 1884 add %l0, %l1, %l0 1885 fors %f5, %f3, %f29 1886 1887 or %l5, %l7, %o4 1888 add %l0, %l2, %o2 1889 fors %f12, %f11, %f31 1890 1891! Starting round 58 1892 sll %o2, 5, %l0 1893 and %o3, %o4, %l1 1894 ld [%i0 + (58 * 4)], %l2 1895 fxor %f38, %f0, %f36 1896 1897 srl %o2, 27, %l3 1898 or %o3, %o4, %l4 1899 fxors %f14, %f8, %f12 1900 1901 sll %o3, 30, %l5 1902 and %l4, %o5, %l4 1903 fxor %f22, %f24, %f14 1904 1905 add %o0, %g1, %l6 1906 or %l1, %l4, %l1 1907 fand %f50, %f36, %f2 1908 1909 or %l0, %l3, %l0 1910 add %l6, %l1, %l1 1911 fand %f50, %f12, %f10 1912 1913 srl %o3, 2, %l7 1914 add %l0, %l1, %l0 1915 fpadd32 %f36, %f36, %f4 1916 1917 or %l5, %l7, %o3 1918 add %l0, %l2, %o1 1919 1920! Starting round 59 1921 sll %o1, 5, %l0 1922 and %o2, %o3, %l1 1923 ld [%i0 + (59 * 4)], %l2 1924 faligndata %f52, %f2, %f2 1925 1926 srl %o1, 27, %l3 1927 or %o2, %o3, %l4 1928 faligndata %f52, %f10, %f10 1929 1930 sll %o2, 30, %l5 1931 and %l4, %o4, %l4 1932 fpadd32s %f12, %f12, %f12 1933 1934 add %o5, %g1, %l6 1935 or %l1, %l4, %l1 1936 fxor %f20, %f22, %f38 1937 fmul8x16 %f2, %f54, %f6 1938 1939 or %l0, %l3, %l0 1940 add %l6, %l1, %l1 1941 fxor %f14, %f16, %f14 1942 fmul8x16 %f3, %f54, %f2 1943 1944 srl %o2, 2, %l7 1945 add %l0, %l1, %l0 1946 fmul8x16 %f10, %f54, %f10 1947 1948 or %l5, %l7, %o2 1949 add %l0, %l2, %o0 1950 ld [%i3 + 12 + 16], %g1 1951 1952! Starting round 60 1953 sll %o0, 5, %l0 1954 xor %o1, %o2, %l1 1955 ld [%i0 + (60 * 4)], %l2 1956 1957 fxor %f38, %f30, %f38 1958 srl %o0, 27, %l3 1959 xor %l1, %o3, %l1 1960 fors %f4, %f7, %f8 1961 st %f8, [%i0 + (70*4) + (0)] 1962 1963 sll %o1, 30, %l5 1964 or %l0, %l3, %l0 1965 fors %f5, %f3, %f0 1966 st %f0, [%i0 + (70*4) + (4)] 1967 1968 add %o4, %g1, %l4 1969 add %l0, %l1, %l0 1970 fors %f12, %f11, %f1 1971 st %f1, [%i0 + (70*4) + (8)] 1972 1973 srl %o1, 2, %l7 1974 add %l0, %l4, %l0 1975 fors %f4, %f7, %f26 1976 1977 or %l5, %l7, %o1 1978 add %l0, %l2, %o5 1979 fors %f5, %f3, %f27 1980 1981 fors %f12, %f11, %f9 1982 1983! Starting round 61 1984 sll %o5, 5, %l0 1985 xor %o0, %o1, %l1 1986 ld [%i0 + (61 * 4)], %l2 1987 fxor %f38, %f0, %f36 1988 1989 srl %o5, 27, %l3 1990 xor %l1, %o2, %l1 1991 fxors %f15, %f8, %f12 1992 1993 sll %o0, 30, %l5 1994 or %l0, %l3, %l0 1995 fxor %f18, %f20, %f38 1996 1997 add %o3, %g1, %l4 1998 add %l0, %l1, %l0 1999 fand %f50, %f36, %f2 2000 2001 srl %o0, 2, %l7 2002 add %l0, %l4, %l0 2003 fand %f50, %f12, %f10 2004 2005 or %l5, %l7, %o0 2006 add %l0, %l2, %o4 2007 fpadd32 %f36, %f36, %f4 2008 2009! Starting round 62 2010 sll %o4, 5, %l0 2011 xor %o5, %o0, %l1 2012 ld [%i0 + (62 * 4)], %l2 2013 faligndata %f52, %f2, %f2 2014 2015 srl %o4, 27, %l3 2016 xor %l1, %o1, %l1 2017 faligndata %f52, %f10, %f10 2018 2019 sll %o5, 30, %l5 2020 or %l0, %l3, %l0 2021 fpadd32s %f12, %f12, %f12 2022 2023 add %o2, %g1, %l4 2024 add %l0, %l1, %l0 2025 fxor %f16, %f18, %f14 2026 fmul8x16 %f2, %f54, %f6 2027 2028 srl %o5, 2, %l7 2029 add %l0, %l4, %l0 2030 fxor %f38, %f28, %f38 2031 fmul8x16 %f3, %f54, %f2 2032 2033 or %l5, %l7, %o5 2034 add %l0, %l2, %o3 2035 fmovs %f9, %f24 2036 fmul8x16 %f10, %f54, %f10 2037 2038! Starting round 63 2039 sll %o3, 5, %l0 2040 xor %o4, %o5, %l1 2041 ld [%i0 + (63 * 4)], %l2 2042 fxor %f14, %f26, %f14 2043 2044 srl %o3, 27, %l3 2045 xor %l1, %o0, %l1 2046 fors %f4, %f7, %f1 2047 st %f1, [%i0 + (73*4) + (4)] 2048 2049 sll %o4, 30, %l5 2050 or %l0, %l3, %l0 2051 fors %f5, %f3, %f8 2052 st %f8, [%i0 + (73*4) + (8)] 2053 2054 add %o1, %g1, %l4 2055 add %l0, %l1, %l0 2056 fors %f12, %f11, %f0 2057 st %f0, [%i0 + (73*4) + (0)] 2058 2059 srl %o4, 2, %l7 2060 add %l0, %l4, %l0 2061 fors %f4, %f7, %f22 2062 2063 or %l5, %l7, %o4 2064 add %l0, %l2, %o2 2065 fors %f5, %f3, %f23 2066 2067 fors %f12, %f11, %f25 2068 2069! Starting round 64 2070 sll %o2, 5, %l0 2071 xor %o3, %o4, %l1 2072 ld [%i0 + (64 * 4)], %l2 2073 fxor %f38, %f0, %f36 2074 2075 srl %o2, 27, %l3 2076 xor %l1, %o5, %l1 2077 fxors %f14, %f8, %f12 2078 2079 sll %o3, 30, %l5 2080 or %l0, %l3, %l0 2081 fxor %f16, %f18, %f14 2082 2083 add %o0, %g1, %l4 2084 add %l0, %l1, %l0 2085 fand %f50, %f36, %f2 2086 2087 srl %o3, 2, %l7 2088 add %l0, %l4, %l0 2089 fand %f50, %f12, %f10 2090 2091 or %l5, %l7, %o3 2092 add %l0, %l2, %o1 2093 fpadd32 %f36, %f36, %f4 2094 2095! Starting round 65 2096 sll %o1, 5, %l0 2097 xor %o2, %o3, %l1 2098 ld [%i0 + (65 * 4)], %l2 2099 faligndata %f52, %f2, %f2 2100 2101 srl %o1, 27, %l3 2102 xor %l1, %o4, %l1 2103 faligndata %f52, %f10, %f10 2104 2105 sll %o2, 30, %l5 2106 or %l0, %l3, %l0 2107 fpadd32s %f12, %f12, %f12 2108 2109 add %o5, %g1, %l4 2110 add %l0, %l1, %l0 2111 fxor %f30, %f16, %f38 2112 fmul8x16 %f2, %f54, %f6 2113 2114 srl %o2, 2, %l7 2115 add %l0, %l4, %l0 2116 fxor %f14, %f26, %f14 2117 fmul8x16 %f3, %f54, %f2 2118 2119 or %l5, %l7, %o2 2120 add %l0, %l2, %o0 2121 fmul8x16 %f10, %f54, %f10 2122 2123! Starting round 66 2124 sll %o0, 5, %l0 2125 xor %o1, %o2, %l1 2126 ld [%i0 + (66 * 4)], %l2 2127 fxor %f38, %f24, %f38 2128 2129 srl %o0, 27, %l3 2130 xor %l1, %o3, %l1 2131 fors %f4, %f7, %f8 2132 st %f8, [%i0 + (76*4) + (0)] 2133 2134 sll %o1, 30, %l5 2135 or %l0, %l3, %l0 2136 fors %f5, %f3, %f0 2137 st %f0, [%i0 + (76*4) + (4)] 2138 2139 add %o4, %g1, %l4 2140 add %l0, %l1, %l0 2141 fors %f12, %f11, %f1 2142 st %f1, [%i0 + (76*4) + (8)] 2143 2144 srl %o1, 2, %l7 2145 add %l0, %l4, %l0 2146 fors %f4, %f7, %f20 2147 2148 or %l5, %l7, %o1 2149 add %l0, %l2, %o5 2150 fors %f5, %f3, %f21 2151 2152 fors %f12, %f11, %f9 2153 2154! Starting round 67 2155 sll %o5, 5, %l0 2156 xor %o0, %o1, %l1 2157 ld [%i0 + (67 * 4)], %l2 2158 fxor %f38, %f0, %f36 2159 2160 srl %o5, 27, %l3 2161 xor %l1, %o2, %l1 2162 fxors %f15, %f8, %f12 2163 2164 sll %o0, 30, %l5 2165 or %l0, %l3, %l0 2166 fxor %f28, %f30, %f38 2167 2168 add %o3, %g1, %l4 2169 add %l0, %l1, %l0 2170 fand %f50, %f36, %f2 2171 2172 srl %o0, 2, %l7 2173 add %l0, %l4, %l0 2174 fand %f50, %f12, %f10 2175 2176 or %l5, %l7, %o0 2177 add %l0, %l2, %o4 2178 fpadd32 %f36, %f36, %f4 2179 2180! Starting round 68 2181 sll %o4, 5, %l0 2182 xor %o5, %o0, %l1 2183 ld [%i0 + (68 * 4)], %l2 2184 faligndata %f52, %f2, %f2 2185 2186 srl %o4, 27, %l3 2187 xor %l1, %o1, %l1 2188 faligndata %f52, %f10, %f10 2189 2190 sll %o5, 30, %l5 2191 or %l0, %l3, %l0 2192 fpadd32s %f12, %f12, %f12 2193 2194 add %o2, %g1, %l4 2195 add %l0, %l1, %l0 2196 fxor %f26, %f28, %f14 2197 fmul8x16 %f2, %f54, %f6 2198 2199 srl %o5, 2, %l7 2200 add %l0, %l4, %l0 2201 fxor %f38, %f22, %f38 2202 fmul8x16 %f3, %f54, %f2 2203 2204 or %l5, %l7, %o5 2205 add %l0, %l2, %o3 2206 fmovs %f9, %f18 2207 fmul8x16 %f10, %f54, %f10 2208 2209! Starting round 69 2210 sll %o3, 5, %l0 2211 xor %o4, %o5, %l1 2212 ld [%i0 + (69 * 4)], %l2 2213 2214 fxor %f14, %f20, %f14 2215 srl %o3, 27, %l3 2216 xor %l1, %o0, %l1 2217 2218 sll %o4, 30, %l5 2219 or %l0, %l3, %l0 2220 2221 add %o1, %g1, %l4 2222 add %l0, %l1, %l0 2223 fors %f12, %f11, %f0 2224 st %f0, [%i0 + (79*4) + (0)] 2225 2226 srl %o4, 2, %l7 2227 add %l0, %l4, %l0 2228 2229 or %l5, %l7, %o4 2230 add %l0, %l2, %o2 2231 2232! Starting round 70 2233 sll %o2, 5, %l0 2234 xor %o3, %o4, %l1 2235 ld [%i0 + (70 * 4)], %l2 2236 2237 srl %o2, 27, %l3 2238 xor %l1, %o5, %l1 2239 2240 sll %o3, 30, %l5 2241 or %l0, %l3, %l0 2242 2243 srl %o3, 2, %l7 2244 add %l0, %l1, %l0 2245 2246 add %o0, %g1, %l1 2247 add %l0, %l2, %l0 2248 2249 add %l0, %l1, %o1 2250 or %l5, %l7, %o3 2251 2252! Starting round 71 2253 sll %o1, 5, %l0 2254 xor %o2, %o3, %l1 2255 ld [%i0 + (71 * 4)], %l2 2256 2257 srl %o1, 27, %l3 2258 xor %l1, %o4, %l1 2259 2260 sll %o2, 30, %l5 2261 or %l0, %l3, %l0 2262 2263 srl %o2, 2, %l7 2264 add %l0, %l1, %l0 2265 2266 add %o5, %g1, %l1 2267 add %l0, %l2, %l0 2268 2269 add %l0, %l1, %o0 2270 or %l5, %l7, %o2 2271 2272! Starting round 72 2273 sll %o0, 5, %l0 2274 xor %o1, %o2, %l1 2275 ld [%i0 + (72 * 4)], %l2 2276 2277 srl %o0, 27, %l3 2278 xor %l1, %o3, %l1 2279 2280 sll %o1, 30, %l5 2281 or %l0, %l3, %l0 2282 2283 srl %o1, 2, %l7 2284 add %l0, %l1, %l0 2285 2286 add %o4, %g1, %l1 2287 add %l0, %l2, %l0 2288 2289 add %l0, %l1, %o5 2290 or %l5, %l7, %o1 2291 2292! Starting round 73 2293 sll %o5, 5, %l0 2294 xor %o0, %o1, %l1 2295 ld [%i0 + (73 * 4)], %l2 2296 2297 srl %o5, 27, %l3 2298 xor %l1, %o2, %l1 2299 2300 sll %o0, 30, %l5 2301 or %l0, %l3, %l0 2302 2303 srl %o0, 2, %l7 2304 add %l0, %l1, %l0 2305 2306 add %o3, %g1, %l1 2307 add %l0, %l2, %l0 2308 2309 add %l0, %l1, %o4 2310 or %l5, %l7, %o0 2311 2312! Starting round 74 2313 sll %o4, 5, %l0 2314 xor %o5, %o0, %l1 2315 ld [%i0 + (74 * 4)], %l2 2316 2317 srl %o4, 27, %l3 2318 xor %l1, %o1, %l1 2319 2320 sll %o5, 30, %l5 2321 or %l0, %l3, %l0 2322 2323 srl %o5, 2, %l7 2324 add %l0, %l1, %l0 2325 2326 add %o2, %g1, %l1 2327 add %l0, %l2, %l0 2328 2329 add %l0, %l1, %o3 2330 or %l5, %l7, %o5 2331 2332! Starting round 75 2333 sll %o3, 5, %l0 2334 xor %o4, %o5, %l1 2335 ld [%i0 + (75 * 4)], %l2 2336 2337 srl %o3, 27, %l3 2338 xor %l1, %o0, %l1 2339 2340 sll %o4, 30, %l5 2341 or %l0, %l3, %l0 2342 2343 srl %o4, 2, %l7 2344 add %l0, %l1, %l0 2345 2346 add %o1, %g1, %l1 2347 add %l0, %l2, %l0 2348 2349 add %l0, %l1, %o2 2350 or %l5, %l7, %o4 2351 2352! Starting round 76 2353 sll %o2, 5, %l0 2354 xor %o3, %o4, %l1 2355 ld [%i0 + (76 * 4)], %l2 2356 2357 srl %o2, 27, %l3 2358 xor %l1, %o5, %l1 2359 2360 sll %o3, 30, %l5 2361 or %l0, %l3, %l0 2362 2363 srl %o3, 2, %l7 2364 add %l0, %l1, %l0 2365 2366 add %o0, %g1, %l1 2367 add %l0, %l2, %l0 2368 2369 add %l0, %l1, %o1 2370 or %l5, %l7, %o3 2371 2372! Starting round 77 2373 sll %o1, 5, %l0 2374 xor %o2, %o3, %l1 2375 ld [%i0 + (77 * 4)], %l2 2376 2377 srl %o1, 27, %l3 2378 xor %l1, %o4, %l1 2379 2380 sll %o2, 30, %l5 2381 or %l0, %l3, %l0 2382 2383 srl %o2, 2, %l7 2384 add %l0, %l1, %l0 2385 2386 add %o5, %g1, %l1 2387 add %l0, %l2, %l0 2388 2389 add %l0, %l1, %o0 2390 or %l5, %l7, %o2 2391 2392! Starting round 78 2393 sll %o0, 5, %l0 2394 xor %o1, %o2, %l1 2395 ld [%i0 + (78 * 4)], %l2 2396 2397 srl %o0, 27, %l3 2398 xor %l1, %o3, %l1 2399 2400 sll %o1, 30, %l5 2401 or %l0, %l3, %l0 2402 2403 srl %o1, 2, %l7 2404 add %l0, %l1, %l0 2405 2406 add %o4, %g1, %l1 2407 add %l0, %l2, %l0 2408 2409 add %l0, %l1, %o5 2410 or %l5, %l7, %o1 2411 2412! Starting round 79 2413 sll %o5, 5, %l0 2414 xor %o0, %o1, %l1 2415 ld [%i0 + (79 * 4)], %l2 2416 2417 srl %o5, 27, %l3 2418 xor %l1, %o2, %l1 2419 ld [%i2 + 0], %i0 2420 2421 sll %o0, 30, %l5 2422 or %l0, %l3, %l0 2423 ld [%i2 + 4], %i1 2424 2425 srl %o0, 2, %l7 2426 add %l0, %l1, %l0 2427 ld [%i2 + 8], %i3 2428 2429 add %o3, %g1, %l1 2430 add %l0, %l2, %l0 2431 ld [%i2 + 12], %i4 2432 2433 add %l0, %l1, %o4 2434 or %l5, %l7, %o0 2435 ld [%i2 + 16], %i5 2436 2437! Compute final hash values for this block and store back to SHA1_CTX 2438 add %i0, %o4, %o4 2439 st %o4, [%i2 + 0] 2440 2441 add %i1, %o5, %o5 2442 st %o5, [%i2 + 4] 2443 2444 add %i3, %o0, %o0 2445 st %o0, [%i2 + 8] 2446 2447 add %i4, %o1, %o1 2448 st %o1, [%i2 + 12] 2449 2450 add %i5, %o2, %o2 2451 st %o2, [%i2 + 16] 2452 2453 ret 2454 restore 2455 SET_SIZE(SHA1TransformVIS) 2456 2457#endif /* defined(lint) */ 2458