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