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