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