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