1# Copyright (c) 2011-2016, Andy Polyakov <appro@openssl.org> 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# 8# * Redistributions of source code must retain copyright notices, 9# this list of conditions and the following disclaimer. 10# 11# * Redistributions in binary form must reproduce the above 12# copyright notice, this list of conditions and the following 13# disclaimer in the documentation and/or other materials 14# provided with the distribution. 15# 16# * Neither the name of the Andy Polyakov nor the names of its 17# copyright holder and contributors may be used to endorse or 18# promote products derived from this software without specific 19# prior written permission. 20# 21# ALTERNATIVELY, provided that this notice is retained in full, this 22# product may be distributed under the terms of the GNU General Public 23# License (GPL), in which case the provisions of the GPL apply INSTEAD OF 24# those given above. 25# 26# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS 27# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 29# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 30# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 31# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 32# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37# 38# *** This file is auto-generated *** 39# 40# 1 "lib/accelerated/aarch64/macosx/sha1-armv8.s.tmp.S" 41# 1 "<built-in>" 42# 1 "<command-line>" 43# 1 "lib/accelerated/aarch64/macosx/sha1-armv8.s.tmp.S" 44# 1 "lib/accelerated/aarch64/aarch64-common.h" 1 45# 2 "lib/accelerated/aarch64/macosx/sha1-armv8.s.tmp.S" 2 46 47.text 48 49 50.globl _sha1_block_data_order 51 52.align 6 53_sha1_block_data_order: 54 55 56 57 ldr x16,L_gnutls_arm_cpuid_s 58 59 adr x17,L_gnutls_arm_cpuid_s 60 add x16,x16,x17 61 ldr w16,[x16] 62 tst w16,#(1<<3) 63 b.ne Lv8_entry 64 65 stp x29,x30,[sp,#-96]! 66 add x29,sp,#0 67 stp x19,x20,[sp,#16] 68 stp x21,x22,[sp,#32] 69 stp x23,x24,[sp,#48] 70 stp x25,x26,[sp,#64] 71 stp x27,x28,[sp,#80] 72 73 ldp w20,w21,[x0] 74 ldp w22,w23,[x0,#8] 75 ldr w24,[x0,#16] 76 77Loop: 78 ldr x3,[x1],#64 79 movz w28,#0x7999 80 sub x2,x2,#1 81 movk w28,#0x5a82,lsl#16 82 83 84 85 rev32 x3,x3 86 87 add w24,w24,w28 88 add w24,w24,w3 89 lsr x4,x3,#32 90 ldr x5,[x1,#-56] 91 bic w25,w23,w21 92 and w26,w22,w21 93 ror w27,w20,#27 94 add w23,w23,w28 95 orr w25,w25,w26 96 add w24,w24,w27 97 ror w21,w21,#2 98 add w23,w23,w4 99 add w24,w24,w25 100 101 102 103 rev32 x5,x5 104 105 bic w25,w22,w20 106 and w26,w21,w20 107 ror w27,w24,#27 108 add w22,w22,w28 109 orr w25,w25,w26 110 add w23,w23,w27 111 ror w20,w20,#2 112 add w22,w22,w5 113 add w23,w23,w25 114 lsr x6,x5,#32 115 ldr x7,[x1,#-48] 116 bic w25,w21,w24 117 and w26,w20,w24 118 ror w27,w23,#27 119 add w21,w21,w28 120 orr w25,w25,w26 121 add w22,w22,w27 122 ror w24,w24,#2 123 add w21,w21,w6 124 add w22,w22,w25 125 126 127 128 rev32 x7,x7 129 130 bic w25,w20,w23 131 and w26,w24,w23 132 ror w27,w22,#27 133 add w20,w20,w28 134 orr w25,w25,w26 135 add w21,w21,w27 136 ror w23,w23,#2 137 add w20,w20,w7 138 add w21,w21,w25 139 lsr x8,x7,#32 140 ldr x9,[x1,#-40] 141 bic w25,w24,w22 142 and w26,w23,w22 143 ror w27,w21,#27 144 add w24,w24,w28 145 orr w25,w25,w26 146 add w20,w20,w27 147 ror w22,w22,#2 148 add w24,w24,w8 149 add w20,w20,w25 150 151 152 153 rev32 x9,x9 154 155 bic w25,w23,w21 156 and w26,w22,w21 157 ror w27,w20,#27 158 add w23,w23,w28 159 orr w25,w25,w26 160 add w24,w24,w27 161 ror w21,w21,#2 162 add w23,w23,w9 163 add w24,w24,w25 164 lsr x10,x9,#32 165 ldr x11,[x1,#-32] 166 bic w25,w22,w20 167 and w26,w21,w20 168 ror w27,w24,#27 169 add w22,w22,w28 170 orr w25,w25,w26 171 add w23,w23,w27 172 ror w20,w20,#2 173 add w22,w22,w10 174 add w23,w23,w25 175 176 177 178 rev32 x11,x11 179 180 bic w25,w21,w24 181 and w26,w20,w24 182 ror w27,w23,#27 183 add w21,w21,w28 184 orr w25,w25,w26 185 add w22,w22,w27 186 ror w24,w24,#2 187 add w21,w21,w11 188 add w22,w22,w25 189 lsr x12,x11,#32 190 ldr x13,[x1,#-24] 191 bic w25,w20,w23 192 and w26,w24,w23 193 ror w27,w22,#27 194 add w20,w20,w28 195 orr w25,w25,w26 196 add w21,w21,w27 197 ror w23,w23,#2 198 add w20,w20,w12 199 add w21,w21,w25 200 201 202 203 rev32 x13,x13 204 205 bic w25,w24,w22 206 and w26,w23,w22 207 ror w27,w21,#27 208 add w24,w24,w28 209 orr w25,w25,w26 210 add w20,w20,w27 211 ror w22,w22,#2 212 add w24,w24,w13 213 add w20,w20,w25 214 lsr x14,x13,#32 215 ldr x15,[x1,#-16] 216 bic w25,w23,w21 217 and w26,w22,w21 218 ror w27,w20,#27 219 add w23,w23,w28 220 orr w25,w25,w26 221 add w24,w24,w27 222 ror w21,w21,#2 223 add w23,w23,w14 224 add w24,w24,w25 225 226 227 228 rev32 x15,x15 229 230 bic w25,w22,w20 231 and w26,w21,w20 232 ror w27,w24,#27 233 add w22,w22,w28 234 orr w25,w25,w26 235 add w23,w23,w27 236 ror w20,w20,#2 237 add w22,w22,w15 238 add w23,w23,w25 239 lsr x16,x15,#32 240 ldr x17,[x1,#-8] 241 bic w25,w21,w24 242 and w26,w20,w24 243 ror w27,w23,#27 244 add w21,w21,w28 245 orr w25,w25,w26 246 add w22,w22,w27 247 ror w24,w24,#2 248 add w21,w21,w16 249 add w22,w22,w25 250 251 252 253 rev32 x17,x17 254 255 bic w25,w20,w23 256 and w26,w24,w23 257 ror w27,w22,#27 258 add w20,w20,w28 259 orr w25,w25,w26 260 add w21,w21,w27 261 ror w23,w23,#2 262 add w20,w20,w17 263 add w21,w21,w25 264 lsr x19,x17,#32 265 eor w3,w3,w5 266 bic w25,w24,w22 267 and w26,w23,w22 268 ror w27,w21,#27 269 eor w3,w3,w11 270 add w24,w24,w28 271 orr w25,w25,w26 272 add w20,w20,w27 273 eor w3,w3,w16 274 ror w22,w22,#2 275 add w24,w24,w19 276 add w20,w20,w25 277 ror w3,w3,#31 278 eor w4,w4,w6 279 bic w25,w23,w21 280 and w26,w22,w21 281 ror w27,w20,#27 282 eor w4,w4,w12 283 add w23,w23,w28 284 orr w25,w25,w26 285 add w24,w24,w27 286 eor w4,w4,w17 287 ror w21,w21,#2 288 add w23,w23,w3 289 add w24,w24,w25 290 ror w4,w4,#31 291 eor w5,w5,w7 292 bic w25,w22,w20 293 and w26,w21,w20 294 ror w27,w24,#27 295 eor w5,w5,w13 296 add w22,w22,w28 297 orr w25,w25,w26 298 add w23,w23,w27 299 eor w5,w5,w19 300 ror w20,w20,#2 301 add w22,w22,w4 302 add w23,w23,w25 303 ror w5,w5,#31 304 eor w6,w6,w8 305 bic w25,w21,w24 306 and w26,w20,w24 307 ror w27,w23,#27 308 eor w6,w6,w14 309 add w21,w21,w28 310 orr w25,w25,w26 311 add w22,w22,w27 312 eor w6,w6,w3 313 ror w24,w24,#2 314 add w21,w21,w5 315 add w22,w22,w25 316 ror w6,w6,#31 317 eor w7,w7,w9 318 bic w25,w20,w23 319 and w26,w24,w23 320 ror w27,w22,#27 321 eor w7,w7,w15 322 add w20,w20,w28 323 orr w25,w25,w26 324 add w21,w21,w27 325 eor w7,w7,w4 326 ror w23,w23,#2 327 add w20,w20,w6 328 add w21,w21,w25 329 ror w7,w7,#31 330 movz w28,#0xeba1 331 movk w28,#0x6ed9,lsl#16 332 eor w8,w8,w10 333 bic w25,w24,w22 334 and w26,w23,w22 335 ror w27,w21,#27 336 eor w8,w8,w16 337 add w24,w24,w28 338 orr w25,w25,w26 339 add w20,w20,w27 340 eor w8,w8,w5 341 ror w22,w22,#2 342 add w24,w24,w7 343 add w20,w20,w25 344 ror w8,w8,#31 345 eor w9,w9,w11 346 eor w25,w23,w21 347 ror w27,w20,#27 348 add w23,w23,w28 349 eor w9,w9,w17 350 eor w25,w25,w22 351 add w24,w24,w27 352 ror w21,w21,#2 353 eor w9,w9,w6 354 add w23,w23,w8 355 add w24,w24,w25 356 ror w9,w9,#31 357 eor w10,w10,w12 358 eor w25,w22,w20 359 ror w27,w24,#27 360 add w22,w22,w28 361 eor w10,w10,w19 362 eor w25,w25,w21 363 add w23,w23,w27 364 ror w20,w20,#2 365 eor w10,w10,w7 366 add w22,w22,w9 367 add w23,w23,w25 368 ror w10,w10,#31 369 eor w11,w11,w13 370 eor w25,w21,w24 371 ror w27,w23,#27 372 add w21,w21,w28 373 eor w11,w11,w3 374 eor w25,w25,w20 375 add w22,w22,w27 376 ror w24,w24,#2 377 eor w11,w11,w8 378 add w21,w21,w10 379 add w22,w22,w25 380 ror w11,w11,#31 381 eor w12,w12,w14 382 eor w25,w20,w23 383 ror w27,w22,#27 384 add w20,w20,w28 385 eor w12,w12,w4 386 eor w25,w25,w24 387 add w21,w21,w27 388 ror w23,w23,#2 389 eor w12,w12,w9 390 add w20,w20,w11 391 add w21,w21,w25 392 ror w12,w12,#31 393 eor w13,w13,w15 394 eor w25,w24,w22 395 ror w27,w21,#27 396 add w24,w24,w28 397 eor w13,w13,w5 398 eor w25,w25,w23 399 add w20,w20,w27 400 ror w22,w22,#2 401 eor w13,w13,w10 402 add w24,w24,w12 403 add w20,w20,w25 404 ror w13,w13,#31 405 eor w14,w14,w16 406 eor w25,w23,w21 407 ror w27,w20,#27 408 add w23,w23,w28 409 eor w14,w14,w6 410 eor w25,w25,w22 411 add w24,w24,w27 412 ror w21,w21,#2 413 eor w14,w14,w11 414 add w23,w23,w13 415 add w24,w24,w25 416 ror w14,w14,#31 417 eor w15,w15,w17 418 eor w25,w22,w20 419 ror w27,w24,#27 420 add w22,w22,w28 421 eor w15,w15,w7 422 eor w25,w25,w21 423 add w23,w23,w27 424 ror w20,w20,#2 425 eor w15,w15,w12 426 add w22,w22,w14 427 add w23,w23,w25 428 ror w15,w15,#31 429 eor w16,w16,w19 430 eor w25,w21,w24 431 ror w27,w23,#27 432 add w21,w21,w28 433 eor w16,w16,w8 434 eor w25,w25,w20 435 add w22,w22,w27 436 ror w24,w24,#2 437 eor w16,w16,w13 438 add w21,w21,w15 439 add w22,w22,w25 440 ror w16,w16,#31 441 eor w17,w17,w3 442 eor w25,w20,w23 443 ror w27,w22,#27 444 add w20,w20,w28 445 eor w17,w17,w9 446 eor w25,w25,w24 447 add w21,w21,w27 448 ror w23,w23,#2 449 eor w17,w17,w14 450 add w20,w20,w16 451 add w21,w21,w25 452 ror w17,w17,#31 453 eor w19,w19,w4 454 eor w25,w24,w22 455 ror w27,w21,#27 456 add w24,w24,w28 457 eor w19,w19,w10 458 eor w25,w25,w23 459 add w20,w20,w27 460 ror w22,w22,#2 461 eor w19,w19,w15 462 add w24,w24,w17 463 add w20,w20,w25 464 ror w19,w19,#31 465 eor w3,w3,w5 466 eor w25,w23,w21 467 ror w27,w20,#27 468 add w23,w23,w28 469 eor w3,w3,w11 470 eor w25,w25,w22 471 add w24,w24,w27 472 ror w21,w21,#2 473 eor w3,w3,w16 474 add w23,w23,w19 475 add w24,w24,w25 476 ror w3,w3,#31 477 eor w4,w4,w6 478 eor w25,w22,w20 479 ror w27,w24,#27 480 add w22,w22,w28 481 eor w4,w4,w12 482 eor w25,w25,w21 483 add w23,w23,w27 484 ror w20,w20,#2 485 eor w4,w4,w17 486 add w22,w22,w3 487 add w23,w23,w25 488 ror w4,w4,#31 489 eor w5,w5,w7 490 eor w25,w21,w24 491 ror w27,w23,#27 492 add w21,w21,w28 493 eor w5,w5,w13 494 eor w25,w25,w20 495 add w22,w22,w27 496 ror w24,w24,#2 497 eor w5,w5,w19 498 add w21,w21,w4 499 add w22,w22,w25 500 ror w5,w5,#31 501 eor w6,w6,w8 502 eor w25,w20,w23 503 ror w27,w22,#27 504 add w20,w20,w28 505 eor w6,w6,w14 506 eor w25,w25,w24 507 add w21,w21,w27 508 ror w23,w23,#2 509 eor w6,w6,w3 510 add w20,w20,w5 511 add w21,w21,w25 512 ror w6,w6,#31 513 eor w7,w7,w9 514 eor w25,w24,w22 515 ror w27,w21,#27 516 add w24,w24,w28 517 eor w7,w7,w15 518 eor w25,w25,w23 519 add w20,w20,w27 520 ror w22,w22,#2 521 eor w7,w7,w4 522 add w24,w24,w6 523 add w20,w20,w25 524 ror w7,w7,#31 525 eor w8,w8,w10 526 eor w25,w23,w21 527 ror w27,w20,#27 528 add w23,w23,w28 529 eor w8,w8,w16 530 eor w25,w25,w22 531 add w24,w24,w27 532 ror w21,w21,#2 533 eor w8,w8,w5 534 add w23,w23,w7 535 add w24,w24,w25 536 ror w8,w8,#31 537 eor w9,w9,w11 538 eor w25,w22,w20 539 ror w27,w24,#27 540 add w22,w22,w28 541 eor w9,w9,w17 542 eor w25,w25,w21 543 add w23,w23,w27 544 ror w20,w20,#2 545 eor w9,w9,w6 546 add w22,w22,w8 547 add w23,w23,w25 548 ror w9,w9,#31 549 eor w10,w10,w12 550 eor w25,w21,w24 551 ror w27,w23,#27 552 add w21,w21,w28 553 eor w10,w10,w19 554 eor w25,w25,w20 555 add w22,w22,w27 556 ror w24,w24,#2 557 eor w10,w10,w7 558 add w21,w21,w9 559 add w22,w22,w25 560 ror w10,w10,#31 561 eor w11,w11,w13 562 eor w25,w20,w23 563 ror w27,w22,#27 564 add w20,w20,w28 565 eor w11,w11,w3 566 eor w25,w25,w24 567 add w21,w21,w27 568 ror w23,w23,#2 569 eor w11,w11,w8 570 add w20,w20,w10 571 add w21,w21,w25 572 ror w11,w11,#31 573 movz w28,#0xbcdc 574 movk w28,#0x8f1b,lsl#16 575 eor w12,w12,w14 576 eor w25,w24,w22 577 ror w27,w21,#27 578 add w24,w24,w28 579 eor w12,w12,w4 580 eor w25,w25,w23 581 add w20,w20,w27 582 ror w22,w22,#2 583 eor w12,w12,w9 584 add w24,w24,w11 585 add w20,w20,w25 586 ror w12,w12,#31 587 orr w25,w21,w22 588 and w26,w21,w22 589 eor w13,w13,w15 590 ror w27,w20,#27 591 and w25,w25,w23 592 add w23,w23,w28 593 eor w13,w13,w5 594 add w24,w24,w27 595 orr w25,w25,w26 596 ror w21,w21,#2 597 eor w13,w13,w10 598 add w23,w23,w12 599 add w24,w24,w25 600 ror w13,w13,#31 601 orr w25,w20,w21 602 and w26,w20,w21 603 eor w14,w14,w16 604 ror w27,w24,#27 605 and w25,w25,w22 606 add w22,w22,w28 607 eor w14,w14,w6 608 add w23,w23,w27 609 orr w25,w25,w26 610 ror w20,w20,#2 611 eor w14,w14,w11 612 add w22,w22,w13 613 add w23,w23,w25 614 ror w14,w14,#31 615 orr w25,w24,w20 616 and w26,w24,w20 617 eor w15,w15,w17 618 ror w27,w23,#27 619 and w25,w25,w21 620 add w21,w21,w28 621 eor w15,w15,w7 622 add w22,w22,w27 623 orr w25,w25,w26 624 ror w24,w24,#2 625 eor w15,w15,w12 626 add w21,w21,w14 627 add w22,w22,w25 628 ror w15,w15,#31 629 orr w25,w23,w24 630 and w26,w23,w24 631 eor w16,w16,w19 632 ror w27,w22,#27 633 and w25,w25,w20 634 add w20,w20,w28 635 eor w16,w16,w8 636 add w21,w21,w27 637 orr w25,w25,w26 638 ror w23,w23,#2 639 eor w16,w16,w13 640 add w20,w20,w15 641 add w21,w21,w25 642 ror w16,w16,#31 643 orr w25,w22,w23 644 and w26,w22,w23 645 eor w17,w17,w3 646 ror w27,w21,#27 647 and w25,w25,w24 648 add w24,w24,w28 649 eor w17,w17,w9 650 add w20,w20,w27 651 orr w25,w25,w26 652 ror w22,w22,#2 653 eor w17,w17,w14 654 add w24,w24,w16 655 add w20,w20,w25 656 ror w17,w17,#31 657 orr w25,w21,w22 658 and w26,w21,w22 659 eor w19,w19,w4 660 ror w27,w20,#27 661 and w25,w25,w23 662 add w23,w23,w28 663 eor w19,w19,w10 664 add w24,w24,w27 665 orr w25,w25,w26 666 ror w21,w21,#2 667 eor w19,w19,w15 668 add w23,w23,w17 669 add w24,w24,w25 670 ror w19,w19,#31 671 orr w25,w20,w21 672 and w26,w20,w21 673 eor w3,w3,w5 674 ror w27,w24,#27 675 and w25,w25,w22 676 add w22,w22,w28 677 eor w3,w3,w11 678 add w23,w23,w27 679 orr w25,w25,w26 680 ror w20,w20,#2 681 eor w3,w3,w16 682 add w22,w22,w19 683 add w23,w23,w25 684 ror w3,w3,#31 685 orr w25,w24,w20 686 and w26,w24,w20 687 eor w4,w4,w6 688 ror w27,w23,#27 689 and w25,w25,w21 690 add w21,w21,w28 691 eor w4,w4,w12 692 add w22,w22,w27 693 orr w25,w25,w26 694 ror w24,w24,#2 695 eor w4,w4,w17 696 add w21,w21,w3 697 add w22,w22,w25 698 ror w4,w4,#31 699 orr w25,w23,w24 700 and w26,w23,w24 701 eor w5,w5,w7 702 ror w27,w22,#27 703 and w25,w25,w20 704 add w20,w20,w28 705 eor w5,w5,w13 706 add w21,w21,w27 707 orr w25,w25,w26 708 ror w23,w23,#2 709 eor w5,w5,w19 710 add w20,w20,w4 711 add w21,w21,w25 712 ror w5,w5,#31 713 orr w25,w22,w23 714 and w26,w22,w23 715 eor w6,w6,w8 716 ror w27,w21,#27 717 and w25,w25,w24 718 add w24,w24,w28 719 eor w6,w6,w14 720 add w20,w20,w27 721 orr w25,w25,w26 722 ror w22,w22,#2 723 eor w6,w6,w3 724 add w24,w24,w5 725 add w20,w20,w25 726 ror w6,w6,#31 727 orr w25,w21,w22 728 and w26,w21,w22 729 eor w7,w7,w9 730 ror w27,w20,#27 731 and w25,w25,w23 732 add w23,w23,w28 733 eor w7,w7,w15 734 add w24,w24,w27 735 orr w25,w25,w26 736 ror w21,w21,#2 737 eor w7,w7,w4 738 add w23,w23,w6 739 add w24,w24,w25 740 ror w7,w7,#31 741 orr w25,w20,w21 742 and w26,w20,w21 743 eor w8,w8,w10 744 ror w27,w24,#27 745 and w25,w25,w22 746 add w22,w22,w28 747 eor w8,w8,w16 748 add w23,w23,w27 749 orr w25,w25,w26 750 ror w20,w20,#2 751 eor w8,w8,w5 752 add w22,w22,w7 753 add w23,w23,w25 754 ror w8,w8,#31 755 orr w25,w24,w20 756 and w26,w24,w20 757 eor w9,w9,w11 758 ror w27,w23,#27 759 and w25,w25,w21 760 add w21,w21,w28 761 eor w9,w9,w17 762 add w22,w22,w27 763 orr w25,w25,w26 764 ror w24,w24,#2 765 eor w9,w9,w6 766 add w21,w21,w8 767 add w22,w22,w25 768 ror w9,w9,#31 769 orr w25,w23,w24 770 and w26,w23,w24 771 eor w10,w10,w12 772 ror w27,w22,#27 773 and w25,w25,w20 774 add w20,w20,w28 775 eor w10,w10,w19 776 add w21,w21,w27 777 orr w25,w25,w26 778 ror w23,w23,#2 779 eor w10,w10,w7 780 add w20,w20,w9 781 add w21,w21,w25 782 ror w10,w10,#31 783 orr w25,w22,w23 784 and w26,w22,w23 785 eor w11,w11,w13 786 ror w27,w21,#27 787 and w25,w25,w24 788 add w24,w24,w28 789 eor w11,w11,w3 790 add w20,w20,w27 791 orr w25,w25,w26 792 ror w22,w22,#2 793 eor w11,w11,w8 794 add w24,w24,w10 795 add w20,w20,w25 796 ror w11,w11,#31 797 orr w25,w21,w22 798 and w26,w21,w22 799 eor w12,w12,w14 800 ror w27,w20,#27 801 and w25,w25,w23 802 add w23,w23,w28 803 eor w12,w12,w4 804 add w24,w24,w27 805 orr w25,w25,w26 806 ror w21,w21,#2 807 eor w12,w12,w9 808 add w23,w23,w11 809 add w24,w24,w25 810 ror w12,w12,#31 811 orr w25,w20,w21 812 and w26,w20,w21 813 eor w13,w13,w15 814 ror w27,w24,#27 815 and w25,w25,w22 816 add w22,w22,w28 817 eor w13,w13,w5 818 add w23,w23,w27 819 orr w25,w25,w26 820 ror w20,w20,#2 821 eor w13,w13,w10 822 add w22,w22,w12 823 add w23,w23,w25 824 ror w13,w13,#31 825 orr w25,w24,w20 826 and w26,w24,w20 827 eor w14,w14,w16 828 ror w27,w23,#27 829 and w25,w25,w21 830 add w21,w21,w28 831 eor w14,w14,w6 832 add w22,w22,w27 833 orr w25,w25,w26 834 ror w24,w24,#2 835 eor w14,w14,w11 836 add w21,w21,w13 837 add w22,w22,w25 838 ror w14,w14,#31 839 orr w25,w23,w24 840 and w26,w23,w24 841 eor w15,w15,w17 842 ror w27,w22,#27 843 and w25,w25,w20 844 add w20,w20,w28 845 eor w15,w15,w7 846 add w21,w21,w27 847 orr w25,w25,w26 848 ror w23,w23,#2 849 eor w15,w15,w12 850 add w20,w20,w14 851 add w21,w21,w25 852 ror w15,w15,#31 853 movz w28,#0xc1d6 854 movk w28,#0xca62,lsl#16 855 orr w25,w22,w23 856 and w26,w22,w23 857 eor w16,w16,w19 858 ror w27,w21,#27 859 and w25,w25,w24 860 add w24,w24,w28 861 eor w16,w16,w8 862 add w20,w20,w27 863 orr w25,w25,w26 864 ror w22,w22,#2 865 eor w16,w16,w13 866 add w24,w24,w15 867 add w20,w20,w25 868 ror w16,w16,#31 869 eor w17,w17,w3 870 eor w25,w23,w21 871 ror w27,w20,#27 872 add w23,w23,w28 873 eor w17,w17,w9 874 eor w25,w25,w22 875 add w24,w24,w27 876 ror w21,w21,#2 877 eor w17,w17,w14 878 add w23,w23,w16 879 add w24,w24,w25 880 ror w17,w17,#31 881 eor w19,w19,w4 882 eor w25,w22,w20 883 ror w27,w24,#27 884 add w22,w22,w28 885 eor w19,w19,w10 886 eor w25,w25,w21 887 add w23,w23,w27 888 ror w20,w20,#2 889 eor w19,w19,w15 890 add w22,w22,w17 891 add w23,w23,w25 892 ror w19,w19,#31 893 eor w3,w3,w5 894 eor w25,w21,w24 895 ror w27,w23,#27 896 add w21,w21,w28 897 eor w3,w3,w11 898 eor w25,w25,w20 899 add w22,w22,w27 900 ror w24,w24,#2 901 eor w3,w3,w16 902 add w21,w21,w19 903 add w22,w22,w25 904 ror w3,w3,#31 905 eor w4,w4,w6 906 eor w25,w20,w23 907 ror w27,w22,#27 908 add w20,w20,w28 909 eor w4,w4,w12 910 eor w25,w25,w24 911 add w21,w21,w27 912 ror w23,w23,#2 913 eor w4,w4,w17 914 add w20,w20,w3 915 add w21,w21,w25 916 ror w4,w4,#31 917 eor w5,w5,w7 918 eor w25,w24,w22 919 ror w27,w21,#27 920 add w24,w24,w28 921 eor w5,w5,w13 922 eor w25,w25,w23 923 add w20,w20,w27 924 ror w22,w22,#2 925 eor w5,w5,w19 926 add w24,w24,w4 927 add w20,w20,w25 928 ror w5,w5,#31 929 eor w6,w6,w8 930 eor w25,w23,w21 931 ror w27,w20,#27 932 add w23,w23,w28 933 eor w6,w6,w14 934 eor w25,w25,w22 935 add w24,w24,w27 936 ror w21,w21,#2 937 eor w6,w6,w3 938 add w23,w23,w5 939 add w24,w24,w25 940 ror w6,w6,#31 941 eor w7,w7,w9 942 eor w25,w22,w20 943 ror w27,w24,#27 944 add w22,w22,w28 945 eor w7,w7,w15 946 eor w25,w25,w21 947 add w23,w23,w27 948 ror w20,w20,#2 949 eor w7,w7,w4 950 add w22,w22,w6 951 add w23,w23,w25 952 ror w7,w7,#31 953 eor w8,w8,w10 954 eor w25,w21,w24 955 ror w27,w23,#27 956 add w21,w21,w28 957 eor w8,w8,w16 958 eor w25,w25,w20 959 add w22,w22,w27 960 ror w24,w24,#2 961 eor w8,w8,w5 962 add w21,w21,w7 963 add w22,w22,w25 964 ror w8,w8,#31 965 eor w9,w9,w11 966 eor w25,w20,w23 967 ror w27,w22,#27 968 add w20,w20,w28 969 eor w9,w9,w17 970 eor w25,w25,w24 971 add w21,w21,w27 972 ror w23,w23,#2 973 eor w9,w9,w6 974 add w20,w20,w8 975 add w21,w21,w25 976 ror w9,w9,#31 977 eor w10,w10,w12 978 eor w25,w24,w22 979 ror w27,w21,#27 980 add w24,w24,w28 981 eor w10,w10,w19 982 eor w25,w25,w23 983 add w20,w20,w27 984 ror w22,w22,#2 985 eor w10,w10,w7 986 add w24,w24,w9 987 add w20,w20,w25 988 ror w10,w10,#31 989 eor w11,w11,w13 990 eor w25,w23,w21 991 ror w27,w20,#27 992 add w23,w23,w28 993 eor w11,w11,w3 994 eor w25,w25,w22 995 add w24,w24,w27 996 ror w21,w21,#2 997 eor w11,w11,w8 998 add w23,w23,w10 999 add w24,w24,w25 1000 ror w11,w11,#31 1001 eor w12,w12,w14 1002 eor w25,w22,w20 1003 ror w27,w24,#27 1004 add w22,w22,w28 1005 eor w12,w12,w4 1006 eor w25,w25,w21 1007 add w23,w23,w27 1008 ror w20,w20,#2 1009 eor w12,w12,w9 1010 add w22,w22,w11 1011 add w23,w23,w25 1012 ror w12,w12,#31 1013 eor w13,w13,w15 1014 eor w25,w21,w24 1015 ror w27,w23,#27 1016 add w21,w21,w28 1017 eor w13,w13,w5 1018 eor w25,w25,w20 1019 add w22,w22,w27 1020 ror w24,w24,#2 1021 eor w13,w13,w10 1022 add w21,w21,w12 1023 add w22,w22,w25 1024 ror w13,w13,#31 1025 eor w14,w14,w16 1026 eor w25,w20,w23 1027 ror w27,w22,#27 1028 add w20,w20,w28 1029 eor w14,w14,w6 1030 eor w25,w25,w24 1031 add w21,w21,w27 1032 ror w23,w23,#2 1033 eor w14,w14,w11 1034 add w20,w20,w13 1035 add w21,w21,w25 1036 ror w14,w14,#31 1037 eor w15,w15,w17 1038 eor w25,w24,w22 1039 ror w27,w21,#27 1040 add w24,w24,w28 1041 eor w15,w15,w7 1042 eor w25,w25,w23 1043 add w20,w20,w27 1044 ror w22,w22,#2 1045 eor w15,w15,w12 1046 add w24,w24,w14 1047 add w20,w20,w25 1048 ror w15,w15,#31 1049 eor w16,w16,w19 1050 eor w25,w23,w21 1051 ror w27,w20,#27 1052 add w23,w23,w28 1053 eor w16,w16,w8 1054 eor w25,w25,w22 1055 add w24,w24,w27 1056 ror w21,w21,#2 1057 eor w16,w16,w13 1058 add w23,w23,w15 1059 add w24,w24,w25 1060 ror w16,w16,#31 1061 eor w17,w17,w3 1062 eor w25,w22,w20 1063 ror w27,w24,#27 1064 add w22,w22,w28 1065 eor w17,w17,w9 1066 eor w25,w25,w21 1067 add w23,w23,w27 1068 ror w20,w20,#2 1069 eor w17,w17,w14 1070 add w22,w22,w16 1071 add w23,w23,w25 1072 ror w17,w17,#31 1073 eor w19,w19,w4 1074 eor w25,w21,w24 1075 ror w27,w23,#27 1076 add w21,w21,w28 1077 eor w19,w19,w10 1078 eor w25,w25,w20 1079 add w22,w22,w27 1080 ror w24,w24,#2 1081 eor w19,w19,w15 1082 add w21,w21,w17 1083 add w22,w22,w25 1084 ror w19,w19,#31 1085 ldp w4,w5,[x0] 1086 eor w25,w20,w23 1087 ror w27,w22,#27 1088 add w20,w20,w28 1089 eor w25,w25,w24 1090 add w21,w21,w27 1091 ror w23,w23,#2 1092 add w20,w20,w19 1093 add w21,w21,w25 1094 ldp w6,w7,[x0,#8] 1095 eor w25,w24,w22 1096 ror w27,w21,#27 1097 eor w25,w25,w23 1098 add w20,w20,w27 1099 ror w22,w22,#2 1100 ldr w8,[x0,#16] 1101 add w20,w20,w25 1102 add w21,w21,w5 1103 add w22,w22,w6 1104 add w20,w20,w4 1105 add w23,w23,w7 1106 add w24,w24,w8 1107 stp w20,w21,[x0] 1108 stp w22,w23,[x0,#8] 1109 str w24,[x0,#16] 1110 cbnz x2,Loop 1111 1112 ldp x19,x20,[sp,#16] 1113 ldp x21,x22,[sp,#32] 1114 ldp x23,x24,[sp,#48] 1115 ldp x25,x26,[sp,#64] 1116 ldp x27,x28,[sp,#80] 1117 ldr x29,[sp],#96 1118 ret 1119 1120 1121.align 6 1122sha1_block_armv8: 1123Lv8_entry: 1124 stp x29,x30,[sp,#-16]! 1125 add x29,sp,#0 1126 1127 adr x4,Lconst 1128 eor v1.16b,v1.16b,v1.16b 1129 ld1 {v0.4s},[x0],#16 1130 ld1 {v1.s}[0],[x0] 1131 sub x0,x0,#16 1132 ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x4] 1133 1134Loop_hw: 1135 ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 1136 sub x2,x2,#1 1137 rev32 v4.16b,v4.16b 1138 rev32 v5.16b,v5.16b 1139 1140 add v20.4s,v16.4s,v4.4s 1141 rev32 v6.16b,v6.16b 1142 orr v22.16b,v0.16b,v0.16b 1143 1144 add v21.4s,v16.4s,v5.4s 1145 rev32 v7.16b,v7.16b 1146.long 0x5e280803 1147.long 0x5e140020 1148 add v20.4s,v16.4s,v6.4s 1149.long 0x5e0630a4 1150.long 0x5e280802 1151.long 0x5e150060 1152 add v21.4s,v16.4s,v7.4s 1153.long 0x5e2818e4 1154.long 0x5e0730c5 1155.long 0x5e280803 1156.long 0x5e140040 1157 add v20.4s,v16.4s,v4.4s 1158.long 0x5e281885 1159.long 0x5e0430e6 1160.long 0x5e280802 1161.long 0x5e150060 1162 add v21.4s,v17.4s,v5.4s 1163.long 0x5e2818a6 1164.long 0x5e053087 1165.long 0x5e280803 1166.long 0x5e140040 1167 add v20.4s,v17.4s,v6.4s 1168.long 0x5e2818c7 1169.long 0x5e0630a4 1170.long 0x5e280802 1171.long 0x5e151060 1172 add v21.4s,v17.4s,v7.4s 1173.long 0x5e2818e4 1174.long 0x5e0730c5 1175.long 0x5e280803 1176.long 0x5e141040 1177 add v20.4s,v17.4s,v4.4s 1178.long 0x5e281885 1179.long 0x5e0430e6 1180.long 0x5e280802 1181.long 0x5e151060 1182 add v21.4s,v17.4s,v5.4s 1183.long 0x5e2818a6 1184.long 0x5e053087 1185.long 0x5e280803 1186.long 0x5e141040 1187 add v20.4s,v18.4s,v6.4s 1188.long 0x5e2818c7 1189.long 0x5e0630a4 1190.long 0x5e280802 1191.long 0x5e151060 1192 add v21.4s,v18.4s,v7.4s 1193.long 0x5e2818e4 1194.long 0x5e0730c5 1195.long 0x5e280803 1196.long 0x5e142040 1197 add v20.4s,v18.4s,v4.4s 1198.long 0x5e281885 1199.long 0x5e0430e6 1200.long 0x5e280802 1201.long 0x5e152060 1202 add v21.4s,v18.4s,v5.4s 1203.long 0x5e2818a6 1204.long 0x5e053087 1205.long 0x5e280803 1206.long 0x5e142040 1207 add v20.4s,v18.4s,v6.4s 1208.long 0x5e2818c7 1209.long 0x5e0630a4 1210.long 0x5e280802 1211.long 0x5e152060 1212 add v21.4s,v19.4s,v7.4s 1213.long 0x5e2818e4 1214.long 0x5e0730c5 1215.long 0x5e280803 1216.long 0x5e142040 1217 add v20.4s,v19.4s,v4.4s 1218.long 0x5e281885 1219.long 0x5e0430e6 1220.long 0x5e280802 1221.long 0x5e151060 1222 add v21.4s,v19.4s,v5.4s 1223.long 0x5e2818a6 1224.long 0x5e053087 1225.long 0x5e280803 1226.long 0x5e141040 1227 add v20.4s,v19.4s,v6.4s 1228.long 0x5e2818c7 1229.long 0x5e280802 1230.long 0x5e151060 1231 add v21.4s,v19.4s,v7.4s 1232 1233.long 0x5e280803 1234.long 0x5e141040 1235 1236.long 0x5e280802 1237.long 0x5e151060 1238 1239 add v1.4s,v1.4s,v2.4s 1240 add v0.4s,v0.4s,v22.4s 1241 1242 cbnz x2,Loop_hw 1243 1244 st1 {v0.4s},[x0],#16 1245 st1 {v1.s}[0],[x0] 1246 1247 ldr x29,[sp],#16 1248 ret 1249 1250.align 6 1251Lconst: 1252.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 1253.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 1254.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc 1255.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 1256L_gnutls_arm_cpuid_s: 1257 1258 1259 1260.quad __gnutls_arm_cpuid_s-. 1261 1262.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 1263.align 2 1264.align 2 1265.comm __gnutls_arm_cpuid_s,4,4 1266