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