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