OLD | NEW |
(Empty) | |
| 1 #if defined(__arm__) |
| 2 #include "arm_arch.h" |
| 3 |
| 4 .text |
| 5 .code 32 |
| 6 |
| 7 .globl sha1_block_data_order |
| 8 .type sha1_block_data_order,%function |
| 9 |
| 10 .align 5 |
| 11 sha1_block_data_order: |
| 12 #if __ARM_MAX_ARCH__>=7 |
| 13 sub r3,pc,#8 @ sha1_block_data_order |
| 14 ldr r12,.LOPENSSL_armcap |
| 15 ldr r12,[r3,r12] @ OPENSSL_armcap_P |
| 16 #ifdef __APPLE__ |
| 17 ldr r12,[r12] |
| 18 #endif |
| 19 tst r12,#ARMV8_SHA1 |
| 20 bne .LARMv8 |
| 21 tst r12,#ARMV7_NEON |
| 22 bne .LNEON |
| 23 #endif |
| 24 stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} |
| 25 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1 |
| 26 ldmia r0,{r3,r4,r5,r6,r7} |
| 27 .Lloop: |
| 28 ldr r8,.LK_00_19 |
| 29 mov r14,sp |
| 30 sub sp,sp,#15*4 |
| 31 mov r5,r5,ror#30 |
| 32 mov r6,r6,ror#30 |
| 33 mov r7,r7,ror#30 @ [6] |
| 34 .L_00_15: |
| 35 #if __ARM_ARCH__<7 |
| 36 ldrb r10,[r1,#2] |
| 37 ldrb r9,[r1,#3] |
| 38 ldrb r11,[r1,#1] |
| 39 add r7,r8,r7,ror#2 @ E+=K_00_19 |
| 40 ldrb r12,[r1],#4 |
| 41 orr r9,r9,r10,lsl#8 |
| 42 eor r10,r5,r6 @ F_xx_xx |
| 43 orr r9,r9,r11,lsl#16 |
| 44 add r7,r7,r3,ror#27 @ E+=ROR(A,27) |
| 45 orr r9,r9,r12,lsl#24 |
| 46 #else |
| 47 ldr r9,[r1],#4 @ handles unaligned |
| 48 add r7,r8,r7,ror#2 @ E+=K_00_19 |
| 49 eor r10,r5,r6 @ F_xx_xx |
| 50 add r7,r7,r3,ror#27 @ E+=ROR(A,27) |
| 51 #ifdef __ARMEL__ |
| 52 rev r9,r9 @ byte swap |
| 53 #endif |
| 54 #endif |
| 55 and r10,r4,r10,ror#2 |
| 56 add r7,r7,r9 @ E+=X[i] |
| 57 eor r10,r10,r6,ror#2 @ F_00_19(B,C,D) |
| 58 str r9,[r14,#-4]! |
| 59 add r7,r7,r10 @ E+=F_00_19(B,C,D) |
| 60 #if __ARM_ARCH__<7 |
| 61 ldrb r10,[r1,#2] |
| 62 ldrb r9,[r1,#3] |
| 63 ldrb r11,[r1,#1] |
| 64 add r6,r8,r6,ror#2 @ E+=K_00_19 |
| 65 ldrb r12,[r1],#4 |
| 66 orr r9,r9,r10,lsl#8 |
| 67 eor r10,r4,r5 @ F_xx_xx |
| 68 orr r9,r9,r11,lsl#16 |
| 69 add r6,r6,r7,ror#27 @ E+=ROR(A,27) |
| 70 orr r9,r9,r12,lsl#24 |
| 71 #else |
| 72 ldr r9,[r1],#4 @ handles unaligned |
| 73 add r6,r8,r6,ror#2 @ E+=K_00_19 |
| 74 eor r10,r4,r5 @ F_xx_xx |
| 75 add r6,r6,r7,ror#27 @ E+=ROR(A,27) |
| 76 #ifdef __ARMEL__ |
| 77 rev r9,r9 @ byte swap |
| 78 #endif |
| 79 #endif |
| 80 and r10,r3,r10,ror#2 |
| 81 add r6,r6,r9 @ E+=X[i] |
| 82 eor r10,r10,r5,ror#2 @ F_00_19(B,C,D) |
| 83 str r9,[r14,#-4]! |
| 84 add r6,r6,r10 @ E+=F_00_19(B,C,D) |
| 85 #if __ARM_ARCH__<7 |
| 86 ldrb r10,[r1,#2] |
| 87 ldrb r9,[r1,#3] |
| 88 ldrb r11,[r1,#1] |
| 89 add r5,r8,r5,ror#2 @ E+=K_00_19 |
| 90 ldrb r12,[r1],#4 |
| 91 orr r9,r9,r10,lsl#8 |
| 92 eor r10,r3,r4 @ F_xx_xx |
| 93 orr r9,r9,r11,lsl#16 |
| 94 add r5,r5,r6,ror#27 @ E+=ROR(A,27) |
| 95 orr r9,r9,r12,lsl#24 |
| 96 #else |
| 97 ldr r9,[r1],#4 @ handles unaligned |
| 98 add r5,r8,r5,ror#2 @ E+=K_00_19 |
| 99 eor r10,r3,r4 @ F_xx_xx |
| 100 add r5,r5,r6,ror#27 @ E+=ROR(A,27) |
| 101 #ifdef __ARMEL__ |
| 102 rev r9,r9 @ byte swap |
| 103 #endif |
| 104 #endif |
| 105 and r10,r7,r10,ror#2 |
| 106 add r5,r5,r9 @ E+=X[i] |
| 107 eor r10,r10,r4,ror#2 @ F_00_19(B,C,D) |
| 108 str r9,[r14,#-4]! |
| 109 add r5,r5,r10 @ E+=F_00_19(B,C,D) |
| 110 #if __ARM_ARCH__<7 |
| 111 ldrb r10,[r1,#2] |
| 112 ldrb r9,[r1,#3] |
| 113 ldrb r11,[r1,#1] |
| 114 add r4,r8,r4,ror#2 @ E+=K_00_19 |
| 115 ldrb r12,[r1],#4 |
| 116 orr r9,r9,r10,lsl#8 |
| 117 eor r10,r7,r3 @ F_xx_xx |
| 118 orr r9,r9,r11,lsl#16 |
| 119 add r4,r4,r5,ror#27 @ E+=ROR(A,27) |
| 120 orr r9,r9,r12,lsl#24 |
| 121 #else |
| 122 ldr r9,[r1],#4 @ handles unaligned |
| 123 add r4,r8,r4,ror#2 @ E+=K_00_19 |
| 124 eor r10,r7,r3 @ F_xx_xx |
| 125 add r4,r4,r5,ror#27 @ E+=ROR(A,27) |
| 126 #ifdef __ARMEL__ |
| 127 rev r9,r9 @ byte swap |
| 128 #endif |
| 129 #endif |
| 130 and r10,r6,r10,ror#2 |
| 131 add r4,r4,r9 @ E+=X[i] |
| 132 eor r10,r10,r3,ror#2 @ F_00_19(B,C,D) |
| 133 str r9,[r14,#-4]! |
| 134 add r4,r4,r10 @ E+=F_00_19(B,C,D) |
| 135 #if __ARM_ARCH__<7 |
| 136 ldrb r10,[r1,#2] |
| 137 ldrb r9,[r1,#3] |
| 138 ldrb r11,[r1,#1] |
| 139 add r3,r8,r3,ror#2 @ E+=K_00_19 |
| 140 ldrb r12,[r1],#4 |
| 141 orr r9,r9,r10,lsl#8 |
| 142 eor r10,r6,r7 @ F_xx_xx |
| 143 orr r9,r9,r11,lsl#16 |
| 144 add r3,r3,r4,ror#27 @ E+=ROR(A,27) |
| 145 orr r9,r9,r12,lsl#24 |
| 146 #else |
| 147 ldr r9,[r1],#4 @ handles unaligned |
| 148 add r3,r8,r3,ror#2 @ E+=K_00_19 |
| 149 eor r10,r6,r7 @ F_xx_xx |
| 150 add r3,r3,r4,ror#27 @ E+=ROR(A,27) |
| 151 #ifdef __ARMEL__ |
| 152 rev r9,r9 @ byte swap |
| 153 #endif |
| 154 #endif |
| 155 and r10,r5,r10,ror#2 |
| 156 add r3,r3,r9 @ E+=X[i] |
| 157 eor r10,r10,r7,ror#2 @ F_00_19(B,C,D) |
| 158 str r9,[r14,#-4]! |
| 159 add r3,r3,r10 @ E+=F_00_19(B,C,D) |
| 160 teq r14,sp |
| 161 bne .L_00_15 @ [((11+4)*5+2)*3] |
| 162 sub sp,sp,#25*4 |
| 163 #if __ARM_ARCH__<7 |
| 164 ldrb r10,[r1,#2] |
| 165 ldrb r9,[r1,#3] |
| 166 ldrb r11,[r1,#1] |
| 167 add r7,r8,r7,ror#2 @ E+=K_00_19 |
| 168 ldrb r12,[r1],#4 |
| 169 orr r9,r9,r10,lsl#8 |
| 170 eor r10,r5,r6 @ F_xx_xx |
| 171 orr r9,r9,r11,lsl#16 |
| 172 add r7,r7,r3,ror#27 @ E+=ROR(A,27) |
| 173 orr r9,r9,r12,lsl#24 |
| 174 #else |
| 175 ldr r9,[r1],#4 @ handles unaligned |
| 176 add r7,r8,r7,ror#2 @ E+=K_00_19 |
| 177 eor r10,r5,r6 @ F_xx_xx |
| 178 add r7,r7,r3,ror#27 @ E+=ROR(A,27) |
| 179 #ifdef __ARMEL__ |
| 180 rev r9,r9 @ byte swap |
| 181 #endif |
| 182 #endif |
| 183 and r10,r4,r10,ror#2 |
| 184 add r7,r7,r9 @ E+=X[i] |
| 185 eor r10,r10,r6,ror#2 @ F_00_19(B,C,D) |
| 186 str r9,[r14,#-4]! |
| 187 add r7,r7,r10 @ E+=F_00_19(B,C,D) |
| 188 ldr r9,[r14,#15*4] |
| 189 ldr r10,[r14,#13*4] |
| 190 ldr r11,[r14,#7*4] |
| 191 add r6,r8,r6,ror#2 @ E+=K_xx_xx |
| 192 ldr r12,[r14,#2*4] |
| 193 eor r9,r9,r10 |
| 194 eor r11,r11,r12 @ 1 cycle stall |
| 195 eor r10,r4,r5 @ F_xx_xx |
| 196 mov r9,r9,ror#31 |
| 197 add r6,r6,r7,ror#27 @ E+=ROR(A,27) |
| 198 eor r9,r9,r11,ror#31 |
| 199 str r9,[r14,#-4]! |
| 200 and r10,r3,r10,ror#2 @ F_xx_x
x |
| 201 @ F_xx_xx |
| 202 add r6,r6,r9 @ E+=X[i] |
| 203 eor r10,r10,r5,ror#2 @ F_00_19(B,C,D) |
| 204 add r6,r6,r10 @ E+=F_00_19(B,C,D) |
| 205 ldr r9,[r14,#15*4] |
| 206 ldr r10,[r14,#13*4] |
| 207 ldr r11,[r14,#7*4] |
| 208 add r5,r8,r5,ror#2 @ E+=K_xx_xx |
| 209 ldr r12,[r14,#2*4] |
| 210 eor r9,r9,r10 |
| 211 eor r11,r11,r12 @ 1 cycle stall |
| 212 eor r10,r3,r4 @ F_xx_xx |
| 213 mov r9,r9,ror#31 |
| 214 add r5,r5,r6,ror#27 @ E+=ROR(A,27) |
| 215 eor r9,r9,r11,ror#31 |
| 216 str r9,[r14,#-4]! |
| 217 and r10,r7,r10,ror#2 @ F_xx_x
x |
| 218 @ F_xx_xx |
| 219 add r5,r5,r9 @ E+=X[i] |
| 220 eor r10,r10,r4,ror#2 @ F_00_19(B,C,D) |
| 221 add r5,r5,r10 @ E+=F_00_19(B,C,D) |
| 222 ldr r9,[r14,#15*4] |
| 223 ldr r10,[r14,#13*4] |
| 224 ldr r11,[r14,#7*4] |
| 225 add r4,r8,r4,ror#2 @ E+=K_xx_xx |
| 226 ldr r12,[r14,#2*4] |
| 227 eor r9,r9,r10 |
| 228 eor r11,r11,r12 @ 1 cycle stall |
| 229 eor r10,r7,r3 @ F_xx_xx |
| 230 mov r9,r9,ror#31 |
| 231 add r4,r4,r5,ror#27 @ E+=ROR(A,27) |
| 232 eor r9,r9,r11,ror#31 |
| 233 str r9,[r14,#-4]! |
| 234 and r10,r6,r10,ror#2 @ F_xx_x
x |
| 235 @ F_xx_xx |
| 236 add r4,r4,r9 @ E+=X[i] |
| 237 eor r10,r10,r3,ror#2 @ F_00_19(B,C,D) |
| 238 add r4,r4,r10 @ E+=F_00_19(B,C,D) |
| 239 ldr r9,[r14,#15*4] |
| 240 ldr r10,[r14,#13*4] |
| 241 ldr r11,[r14,#7*4] |
| 242 add r3,r8,r3,ror#2 @ E+=K_xx_xx |
| 243 ldr r12,[r14,#2*4] |
| 244 eor r9,r9,r10 |
| 245 eor r11,r11,r12 @ 1 cycle stall |
| 246 eor r10,r6,r7 @ F_xx_xx |
| 247 mov r9,r9,ror#31 |
| 248 add r3,r3,r4,ror#27 @ E+=ROR(A,27) |
| 249 eor r9,r9,r11,ror#31 |
| 250 str r9,[r14,#-4]! |
| 251 and r10,r5,r10,ror#2 @ F_xx_x
x |
| 252 @ F_xx_xx |
| 253 add r3,r3,r9 @ E+=X[i] |
| 254 eor r10,r10,r7,ror#2 @ F_00_19(B,C,D) |
| 255 add r3,r3,r10 @ E+=F_00_19(B,C,D) |
| 256 |
| 257 ldr r8,.LK_20_39 @ [+15+16*4] |
| 258 cmn sp,#0 @ [+3], clear carry to denote 20_39 |
| 259 .L_20_39_or_60_79: |
| 260 ldr r9,[r14,#15*4] |
| 261 ldr r10,[r14,#13*4] |
| 262 ldr r11,[r14,#7*4] |
| 263 add r7,r8,r7,ror#2 @ E+=K_xx_xx |
| 264 ldr r12,[r14,#2*4] |
| 265 eor r9,r9,r10 |
| 266 eor r11,r11,r12 @ 1 cycle stall |
| 267 eor r10,r5,r6 @ F_xx_xx |
| 268 mov r9,r9,ror#31 |
| 269 add r7,r7,r3,ror#27 @ E+=ROR(A,27) |
| 270 eor r9,r9,r11,ror#31 |
| 271 str r9,[r14,#-4]! |
| 272 eor r10,r4,r10,ror#2 @ F_xx_x
x |
| 273 @ F_xx_xx |
| 274 add r7,r7,r9 @ E+=X[i] |
| 275 add r7,r7,r10 @ E+=F_20_39(B,C,D) |
| 276 ldr r9,[r14,#15*4] |
| 277 ldr r10,[r14,#13*4] |
| 278 ldr r11,[r14,#7*4] |
| 279 add r6,r8,r6,ror#2 @ E+=K_xx_xx |
| 280 ldr r12,[r14,#2*4] |
| 281 eor r9,r9,r10 |
| 282 eor r11,r11,r12 @ 1 cycle stall |
| 283 eor r10,r4,r5 @ F_xx_xx |
| 284 mov r9,r9,ror#31 |
| 285 add r6,r6,r7,ror#27 @ E+=ROR(A,27) |
| 286 eor r9,r9,r11,ror#31 |
| 287 str r9,[r14,#-4]! |
| 288 eor r10,r3,r10,ror#2 @ F_xx_x
x |
| 289 @ F_xx_xx |
| 290 add r6,r6,r9 @ E+=X[i] |
| 291 add r6,r6,r10 @ E+=F_20_39(B,C,D) |
| 292 ldr r9,[r14,#15*4] |
| 293 ldr r10,[r14,#13*4] |
| 294 ldr r11,[r14,#7*4] |
| 295 add r5,r8,r5,ror#2 @ E+=K_xx_xx |
| 296 ldr r12,[r14,#2*4] |
| 297 eor r9,r9,r10 |
| 298 eor r11,r11,r12 @ 1 cycle stall |
| 299 eor r10,r3,r4 @ F_xx_xx |
| 300 mov r9,r9,ror#31 |
| 301 add r5,r5,r6,ror#27 @ E+=ROR(A,27) |
| 302 eor r9,r9,r11,ror#31 |
| 303 str r9,[r14,#-4]! |
| 304 eor r10,r7,r10,ror#2 @ F_xx_x
x |
| 305 @ F_xx_xx |
| 306 add r5,r5,r9 @ E+=X[i] |
| 307 add r5,r5,r10 @ E+=F_20_39(B,C,D) |
| 308 ldr r9,[r14,#15*4] |
| 309 ldr r10,[r14,#13*4] |
| 310 ldr r11,[r14,#7*4] |
| 311 add r4,r8,r4,ror#2 @ E+=K_xx_xx |
| 312 ldr r12,[r14,#2*4] |
| 313 eor r9,r9,r10 |
| 314 eor r11,r11,r12 @ 1 cycle stall |
| 315 eor r10,r7,r3 @ F_xx_xx |
| 316 mov r9,r9,ror#31 |
| 317 add r4,r4,r5,ror#27 @ E+=ROR(A,27) |
| 318 eor r9,r9,r11,ror#31 |
| 319 str r9,[r14,#-4]! |
| 320 eor r10,r6,r10,ror#2 @ F_xx_x
x |
| 321 @ F_xx_xx |
| 322 add r4,r4,r9 @ E+=X[i] |
| 323 add r4,r4,r10 @ E+=F_20_39(B,C,D) |
| 324 ldr r9,[r14,#15*4] |
| 325 ldr r10,[r14,#13*4] |
| 326 ldr r11,[r14,#7*4] |
| 327 add r3,r8,r3,ror#2 @ E+=K_xx_xx |
| 328 ldr r12,[r14,#2*4] |
| 329 eor r9,r9,r10 |
| 330 eor r11,r11,r12 @ 1 cycle stall |
| 331 eor r10,r6,r7 @ F_xx_xx |
| 332 mov r9,r9,ror#31 |
| 333 add r3,r3,r4,ror#27 @ E+=ROR(A,27) |
| 334 eor r9,r9,r11,ror#31 |
| 335 str r9,[r14,#-4]! |
| 336 eor r10,r5,r10,ror#2 @ F_xx_x
x |
| 337 @ F_xx_xx |
| 338 add r3,r3,r9 @ E+=X[i] |
| 339 add r3,r3,r10 @ E+=F_20_39(B,C,D) |
| 340 teq r14,sp @ preserve carry |
| 341 bne .L_20_39_or_60_79 @ [+((12+3)*5+2)*4] |
| 342 bcs .L_done @ [+((12+3)*5+2)*4], spare 300 bytes |
| 343 |
| 344 ldr r8,.LK_40_59 |
| 345 sub sp,sp,#20*4 @ [+2] |
| 346 .L_40_59: |
| 347 ldr r9,[r14,#15*4] |
| 348 ldr r10,[r14,#13*4] |
| 349 ldr r11,[r14,#7*4] |
| 350 add r7,r8,r7,ror#2 @ E+=K_xx_xx |
| 351 ldr r12,[r14,#2*4] |
| 352 eor r9,r9,r10 |
| 353 eor r11,r11,r12 @ 1 cycle stall |
| 354 eor r10,r5,r6 @ F_xx_xx |
| 355 mov r9,r9,ror#31 |
| 356 add r7,r7,r3,ror#27 @ E+=ROR(A,27) |
| 357 eor r9,r9,r11,ror#31 |
| 358 str r9,[r14,#-4]! |
| 359 and r10,r4,r10,ror#2 @ F_xx_x
x |
| 360 and r11,r5,r6 @ F_xx_xx |
| 361 add r7,r7,r9 @ E+=X[i] |
| 362 add r7,r7,r10 @ E+=F_40_59(B,C,D) |
| 363 add r7,r7,r11,ror#2 |
| 364 ldr r9,[r14,#15*4] |
| 365 ldr r10,[r14,#13*4] |
| 366 ldr r11,[r14,#7*4] |
| 367 add r6,r8,r6,ror#2 @ E+=K_xx_xx |
| 368 ldr r12,[r14,#2*4] |
| 369 eor r9,r9,r10 |
| 370 eor r11,r11,r12 @ 1 cycle stall |
| 371 eor r10,r4,r5 @ F_xx_xx |
| 372 mov r9,r9,ror#31 |
| 373 add r6,r6,r7,ror#27 @ E+=ROR(A,27) |
| 374 eor r9,r9,r11,ror#31 |
| 375 str r9,[r14,#-4]! |
| 376 and r10,r3,r10,ror#2 @ F_xx_x
x |
| 377 and r11,r4,r5 @ F_xx_xx |
| 378 add r6,r6,r9 @ E+=X[i] |
| 379 add r6,r6,r10 @ E+=F_40_59(B,C,D) |
| 380 add r6,r6,r11,ror#2 |
| 381 ldr r9,[r14,#15*4] |
| 382 ldr r10,[r14,#13*4] |
| 383 ldr r11,[r14,#7*4] |
| 384 add r5,r8,r5,ror#2 @ E+=K_xx_xx |
| 385 ldr r12,[r14,#2*4] |
| 386 eor r9,r9,r10 |
| 387 eor r11,r11,r12 @ 1 cycle stall |
| 388 eor r10,r3,r4 @ F_xx_xx |
| 389 mov r9,r9,ror#31 |
| 390 add r5,r5,r6,ror#27 @ E+=ROR(A,27) |
| 391 eor r9,r9,r11,ror#31 |
| 392 str r9,[r14,#-4]! |
| 393 and r10,r7,r10,ror#2 @ F_xx_x
x |
| 394 and r11,r3,r4 @ F_xx_xx |
| 395 add r5,r5,r9 @ E+=X[i] |
| 396 add r5,r5,r10 @ E+=F_40_59(B,C,D) |
| 397 add r5,r5,r11,ror#2 |
| 398 ldr r9,[r14,#15*4] |
| 399 ldr r10,[r14,#13*4] |
| 400 ldr r11,[r14,#7*4] |
| 401 add r4,r8,r4,ror#2 @ E+=K_xx_xx |
| 402 ldr r12,[r14,#2*4] |
| 403 eor r9,r9,r10 |
| 404 eor r11,r11,r12 @ 1 cycle stall |
| 405 eor r10,r7,r3 @ F_xx_xx |
| 406 mov r9,r9,ror#31 |
| 407 add r4,r4,r5,ror#27 @ E+=ROR(A,27) |
| 408 eor r9,r9,r11,ror#31 |
| 409 str r9,[r14,#-4]! |
| 410 and r10,r6,r10,ror#2 @ F_xx_x
x |
| 411 and r11,r7,r3 @ F_xx_xx |
| 412 add r4,r4,r9 @ E+=X[i] |
| 413 add r4,r4,r10 @ E+=F_40_59(B,C,D) |
| 414 add r4,r4,r11,ror#2 |
| 415 ldr r9,[r14,#15*4] |
| 416 ldr r10,[r14,#13*4] |
| 417 ldr r11,[r14,#7*4] |
| 418 add r3,r8,r3,ror#2 @ E+=K_xx_xx |
| 419 ldr r12,[r14,#2*4] |
| 420 eor r9,r9,r10 |
| 421 eor r11,r11,r12 @ 1 cycle stall |
| 422 eor r10,r6,r7 @ F_xx_xx |
| 423 mov r9,r9,ror#31 |
| 424 add r3,r3,r4,ror#27 @ E+=ROR(A,27) |
| 425 eor r9,r9,r11,ror#31 |
| 426 str r9,[r14,#-4]! |
| 427 and r10,r5,r10,ror#2 @ F_xx_x
x |
| 428 and r11,r6,r7 @ F_xx_xx |
| 429 add r3,r3,r9 @ E+=X[i] |
| 430 add r3,r3,r10 @ E+=F_40_59(B,C,D) |
| 431 add r3,r3,r11,ror#2 |
| 432 teq r14,sp |
| 433 bne .L_40_59 @ [+((12+5)*5+2)*4] |
| 434 |
| 435 ldr r8,.LK_60_79 |
| 436 sub sp,sp,#20*4 |
| 437 cmp sp,#0 @ set carry to denote 60_79 |
| 438 b .L_20_39_or_60_79 @ [+4], spare 300 bytes |
| 439 .L_done: |
| 440 add sp,sp,#80*4 @ "deallocate" stack frame |
| 441 ldmia r0,{r8,r9,r10,r11,r12} |
| 442 add r3,r8,r3 |
| 443 add r4,r9,r4 |
| 444 add r5,r10,r5,ror#2 |
| 445 add r6,r11,r6,ror#2 |
| 446 add r7,r12,r7,ror#2 |
| 447 stmia r0,{r3,r4,r5,r6,r7} |
| 448 teq r1,r2 |
| 449 bne .Lloop @ [+18], total 1307 |
| 450 |
| 451 #if __ARM_ARCH__>=5 |
| 452 ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} |
| 453 #else |
| 454 ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} |
| 455 tst lr,#1 |
| 456 moveq pc,lr @ be binary compatible with V4, yet |
| 457 .word 0xe12fff1e @ interoperable with Thumb ISA:-) |
| 458 #endif |
| 459 .size sha1_block_data_order,.-sha1_block_data_order |
| 460 |
| 461 .align 5 |
| 462 .LK_00_19:.word 0x5a827999 |
| 463 .LK_20_39:.word 0x6ed9eba1 |
| 464 .LK_40_59:.word 0x8f1bbcdc |
| 465 .LK_60_79:.word 0xca62c1d6 |
| 466 #if __ARM_MAX_ARCH__>=7 |
| 467 .LOPENSSL_armcap: |
| 468 .word OPENSSL_armcap_P-sha1_block_data_order |
| 469 #endif |
| 470 .byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,3
2,102,111,114,32,65,82,77,118,52,47,78,69,79,78,47,65,82,77,118,56,44,32,67,82,8
9,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 |
| 471 .align 2 |
| 472 .align 5 |
| 473 #if __ARM_MAX_ARCH__>=7 |
| 474 .arch armv7-a |
| 475 .fpu neon |
| 476 |
| 477 .type sha1_block_data_order_neon,%function |
| 478 .align 4 |
| 479 sha1_block_data_order_neon: |
| 480 .LNEON: |
| 481 stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} |
| 482 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1 |
| 483 @ dmb @ errata #451034 on early Cortex A8 |
| 484 @ vstmdb sp!,{d8-d15} @ ABI specification says so |
| 485 mov r14,sp |
| 486 sub sp,sp,#64 @ alloca |
| 487 adr r8,.LK_00_19 |
| 488 bic sp,sp,#15 @ align for 128-bit stores |
| 489 |
| 490 ldmia r0,{r3,r4,r5,r6,r7} @ load context |
| 491 mov r12,sp |
| 492 |
| 493 vld1.8 {q0,q1},[r1]! @ handles unaligned |
| 494 veor q15,q15,q15 |
| 495 vld1.8 {q2,q3},[r1]! |
| 496 vld1.32 {d28[],d29[]},[r8,:32]! @ load K_00_19 |
| 497 vrev32.8 q0,q0 @ yes, even on |
| 498 vrev32.8 q1,q1 @ big-endian... |
| 499 vrev32.8 q2,q2 |
| 500 vadd.i32 q8,q0,q14 |
| 501 vrev32.8 q3,q3 |
| 502 vadd.i32 q9,q1,q14 |
| 503 vst1.32 {q8},[r12,:128]! |
| 504 vadd.i32 q10,q2,q14 |
| 505 vst1.32 {q9},[r12,:128]! |
| 506 vst1.32 {q10},[r12,:128]! |
| 507 ldr r9,[sp] @ big RAW stall |
| 508 |
| 509 .Loop_neon: |
| 510 vext.8 q8,q0,q1,#8 |
| 511 bic r10,r6,r4 |
| 512 add r7,r7,r9 |
| 513 and r11,r5,r4 |
| 514 vadd.i32 q13,q3,q14 |
| 515 ldr r9,[sp,#4] |
| 516 add r7,r7,r3,ror#27 |
| 517 vext.8 q12,q3,q15,#4 |
| 518 eor r11,r11,r10 |
| 519 mov r4,r4,ror#2 |
| 520 add r7,r7,r11 |
| 521 veor q8,q8,q0 |
| 522 bic r10,r5,r3 |
| 523 add r6,r6,r9 |
| 524 veor q12,q12,q2 |
| 525 and r11,r4,r3 |
| 526 ldr r9,[sp,#8] |
| 527 veor q12,q12,q8 |
| 528 add r6,r6,r7,ror#27 |
| 529 eor r11,r11,r10 |
| 530 vst1.32 {q13},[r12,:128]! |
| 531 sub r12,r12,#64 |
| 532 mov r3,r3,ror#2 |
| 533 add r6,r6,r11 |
| 534 vext.8 q13,q15,q12,#4 |
| 535 bic r10,r4,r7 |
| 536 add r5,r5,r9 |
| 537 vadd.i32 q8,q12,q12 |
| 538 and r11,r3,r7 |
| 539 ldr r9,[sp,#12] |
| 540 vsri.32 q8,q12,#31 |
| 541 add r5,r5,r6,ror#27 |
| 542 eor r11,r11,r10 |
| 543 mov r7,r7,ror#2 |
| 544 vshr.u32 q12,q13,#30 |
| 545 add r5,r5,r11 |
| 546 bic r10,r3,r6 |
| 547 vshl.u32 q13,q13,#2 |
| 548 add r4,r4,r9 |
| 549 and r11,r7,r6 |
| 550 veor q8,q8,q12 |
| 551 ldr r9,[sp,#16] |
| 552 add r4,r4,r5,ror#27 |
| 553 veor q8,q8,q13 |
| 554 eor r11,r11,r10 |
| 555 mov r6,r6,ror#2 |
| 556 add r4,r4,r11 |
| 557 vext.8 q9,q1,q2,#8 |
| 558 bic r10,r7,r5 |
| 559 add r3,r3,r9 |
| 560 and r11,r6,r5 |
| 561 vadd.i32 q13,q8,q14 |
| 562 ldr r9,[sp,#20] |
| 563 vld1.32 {d28[],d29[]},[r8,:32]! |
| 564 add r3,r3,r4,ror#27 |
| 565 vext.8 q12,q8,q15,#4 |
| 566 eor r11,r11,r10 |
| 567 mov r5,r5,ror#2 |
| 568 add r3,r3,r11 |
| 569 veor q9,q9,q1 |
| 570 bic r10,r6,r4 |
| 571 add r7,r7,r9 |
| 572 veor q12,q12,q3 |
| 573 and r11,r5,r4 |
| 574 ldr r9,[sp,#24] |
| 575 veor q12,q12,q9 |
| 576 add r7,r7,r3,ror#27 |
| 577 eor r11,r11,r10 |
| 578 vst1.32 {q13},[r12,:128]! |
| 579 mov r4,r4,ror#2 |
| 580 add r7,r7,r11 |
| 581 vext.8 q13,q15,q12,#4 |
| 582 bic r10,r5,r3 |
| 583 add r6,r6,r9 |
| 584 vadd.i32 q9,q12,q12 |
| 585 and r11,r4,r3 |
| 586 ldr r9,[sp,#28] |
| 587 vsri.32 q9,q12,#31 |
| 588 add r6,r6,r7,ror#27 |
| 589 eor r11,r11,r10 |
| 590 mov r3,r3,ror#2 |
| 591 vshr.u32 q12,q13,#30 |
| 592 add r6,r6,r11 |
| 593 bic r10,r4,r7 |
| 594 vshl.u32 q13,q13,#2 |
| 595 add r5,r5,r9 |
| 596 and r11,r3,r7 |
| 597 veor q9,q9,q12 |
| 598 ldr r9,[sp,#32] |
| 599 add r5,r5,r6,ror#27 |
| 600 veor q9,q9,q13 |
| 601 eor r11,r11,r10 |
| 602 mov r7,r7,ror#2 |
| 603 add r5,r5,r11 |
| 604 vext.8 q10,q2,q3,#8 |
| 605 bic r10,r3,r6 |
| 606 add r4,r4,r9 |
| 607 and r11,r7,r6 |
| 608 vadd.i32 q13,q9,q14 |
| 609 ldr r9,[sp,#36] |
| 610 add r4,r4,r5,ror#27 |
| 611 vext.8 q12,q9,q15,#4 |
| 612 eor r11,r11,r10 |
| 613 mov r6,r6,ror#2 |
| 614 add r4,r4,r11 |
| 615 veor q10,q10,q2 |
| 616 bic r10,r7,r5 |
| 617 add r3,r3,r9 |
| 618 veor q12,q12,q8 |
| 619 and r11,r6,r5 |
| 620 ldr r9,[sp,#40] |
| 621 veor q12,q12,q10 |
| 622 add r3,r3,r4,ror#27 |
| 623 eor r11,r11,r10 |
| 624 vst1.32 {q13},[r12,:128]! |
| 625 mov r5,r5,ror#2 |
| 626 add r3,r3,r11 |
| 627 vext.8 q13,q15,q12,#4 |
| 628 bic r10,r6,r4 |
| 629 add r7,r7,r9 |
| 630 vadd.i32 q10,q12,q12 |
| 631 and r11,r5,r4 |
| 632 ldr r9,[sp,#44] |
| 633 vsri.32 q10,q12,#31 |
| 634 add r7,r7,r3,ror#27 |
| 635 eor r11,r11,r10 |
| 636 mov r4,r4,ror#2 |
| 637 vshr.u32 q12,q13,#30 |
| 638 add r7,r7,r11 |
| 639 bic r10,r5,r3 |
| 640 vshl.u32 q13,q13,#2 |
| 641 add r6,r6,r9 |
| 642 and r11,r4,r3 |
| 643 veor q10,q10,q12 |
| 644 ldr r9,[sp,#48] |
| 645 add r6,r6,r7,ror#27 |
| 646 veor q10,q10,q13 |
| 647 eor r11,r11,r10 |
| 648 mov r3,r3,ror#2 |
| 649 add r6,r6,r11 |
| 650 vext.8 q11,q3,q8,#8 |
| 651 bic r10,r4,r7 |
| 652 add r5,r5,r9 |
| 653 and r11,r3,r7 |
| 654 vadd.i32 q13,q10,q14 |
| 655 ldr r9,[sp,#52] |
| 656 add r5,r5,r6,ror#27 |
| 657 vext.8 q12,q10,q15,#4 |
| 658 eor r11,r11,r10 |
| 659 mov r7,r7,ror#2 |
| 660 add r5,r5,r11 |
| 661 veor q11,q11,q3 |
| 662 bic r10,r3,r6 |
| 663 add r4,r4,r9 |
| 664 veor q12,q12,q9 |
| 665 and r11,r7,r6 |
| 666 ldr r9,[sp,#56] |
| 667 veor q12,q12,q11 |
| 668 add r4,r4,r5,ror#27 |
| 669 eor r11,r11,r10 |
| 670 vst1.32 {q13},[r12,:128]! |
| 671 mov r6,r6,ror#2 |
| 672 add r4,r4,r11 |
| 673 vext.8 q13,q15,q12,#4 |
| 674 bic r10,r7,r5 |
| 675 add r3,r3,r9 |
| 676 vadd.i32 q11,q12,q12 |
| 677 and r11,r6,r5 |
| 678 ldr r9,[sp,#60] |
| 679 vsri.32 q11,q12,#31 |
| 680 add r3,r3,r4,ror#27 |
| 681 eor r11,r11,r10 |
| 682 mov r5,r5,ror#2 |
| 683 vshr.u32 q12,q13,#30 |
| 684 add r3,r3,r11 |
| 685 bic r10,r6,r4 |
| 686 vshl.u32 q13,q13,#2 |
| 687 add r7,r7,r9 |
| 688 and r11,r5,r4 |
| 689 veor q11,q11,q12 |
| 690 ldr r9,[sp,#0] |
| 691 add r7,r7,r3,ror#27 |
| 692 veor q11,q11,q13 |
| 693 eor r11,r11,r10 |
| 694 mov r4,r4,ror#2 |
| 695 add r7,r7,r11 |
| 696 vext.8 q12,q10,q11,#8 |
| 697 bic r10,r5,r3 |
| 698 add r6,r6,r9 |
| 699 and r11,r4,r3 |
| 700 veor q0,q0,q8 |
| 701 ldr r9,[sp,#4] |
| 702 add r6,r6,r7,ror#27 |
| 703 veor q0,q0,q1 |
| 704 eor r11,r11,r10 |
| 705 mov r3,r3,ror#2 |
| 706 vadd.i32 q13,q11,q14 |
| 707 add r6,r6,r11 |
| 708 bic r10,r4,r7 |
| 709 veor q12,q12,q0 |
| 710 add r5,r5,r9 |
| 711 and r11,r3,r7 |
| 712 vshr.u32 q0,q12,#30 |
| 713 ldr r9,[sp,#8] |
| 714 add r5,r5,r6,ror#27 |
| 715 vst1.32 {q13},[r12,:128]! |
| 716 sub r12,r12,#64 |
| 717 eor r11,r11,r10 |
| 718 mov r7,r7,ror#2 |
| 719 vsli.32 q0,q12,#2 |
| 720 add r5,r5,r11 |
| 721 bic r10,r3,r6 |
| 722 add r4,r4,r9 |
| 723 and r11,r7,r6 |
| 724 ldr r9,[sp,#12] |
| 725 add r4,r4,r5,ror#27 |
| 726 eor r11,r11,r10 |
| 727 mov r6,r6,ror#2 |
| 728 add r4,r4,r11 |
| 729 bic r10,r7,r5 |
| 730 add r3,r3,r9 |
| 731 and r11,r6,r5 |
| 732 ldr r9,[sp,#16] |
| 733 add r3,r3,r4,ror#27 |
| 734 eor r11,r11,r10 |
| 735 mov r5,r5,ror#2 |
| 736 add r3,r3,r11 |
| 737 vext.8 q12,q11,q0,#8 |
| 738 eor r10,r4,r6 |
| 739 add r7,r7,r9 |
| 740 ldr r9,[sp,#20] |
| 741 veor q1,q1,q9 |
| 742 eor r11,r10,r5 |
| 743 add r7,r7,r3,ror#27 |
| 744 veor q1,q1,q2 |
| 745 mov r4,r4,ror#2 |
| 746 add r7,r7,r11 |
| 747 vadd.i32 q13,q0,q14 |
| 748 eor r10,r3,r5 |
| 749 add r6,r6,r9 |
| 750 veor q12,q12,q1 |
| 751 ldr r9,[sp,#24] |
| 752 eor r11,r10,r4 |
| 753 vshr.u32 q1,q12,#30 |
| 754 add r6,r6,r7,ror#27 |
| 755 mov r3,r3,ror#2 |
| 756 vst1.32 {q13},[r12,:128]! |
| 757 add r6,r6,r11 |
| 758 eor r10,r7,r4 |
| 759 vsli.32 q1,q12,#2 |
| 760 add r5,r5,r9 |
| 761 ldr r9,[sp,#28] |
| 762 eor r11,r10,r3 |
| 763 add r5,r5,r6,ror#27 |
| 764 mov r7,r7,ror#2 |
| 765 add r5,r5,r11 |
| 766 eor r10,r6,r3 |
| 767 add r4,r4,r9 |
| 768 ldr r9,[sp,#32] |
| 769 eor r11,r10,r7 |
| 770 add r4,r4,r5,ror#27 |
| 771 mov r6,r6,ror#2 |
| 772 add r4,r4,r11 |
| 773 vext.8 q12,q0,q1,#8 |
| 774 eor r10,r5,r7 |
| 775 add r3,r3,r9 |
| 776 ldr r9,[sp,#36] |
| 777 veor q2,q2,q10 |
| 778 eor r11,r10,r6 |
| 779 add r3,r3,r4,ror#27 |
| 780 veor q2,q2,q3 |
| 781 mov r5,r5,ror#2 |
| 782 add r3,r3,r11 |
| 783 vadd.i32 q13,q1,q14 |
| 784 eor r10,r4,r6 |
| 785 vld1.32 {d28[],d29[]},[r8,:32]! |
| 786 add r7,r7,r9 |
| 787 veor q12,q12,q2 |
| 788 ldr r9,[sp,#40] |
| 789 eor r11,r10,r5 |
| 790 vshr.u32 q2,q12,#30 |
| 791 add r7,r7,r3,ror#27 |
| 792 mov r4,r4,ror#2 |
| 793 vst1.32 {q13},[r12,:128]! |
| 794 add r7,r7,r11 |
| 795 eor r10,r3,r5 |
| 796 vsli.32 q2,q12,#2 |
| 797 add r6,r6,r9 |
| 798 ldr r9,[sp,#44] |
| 799 eor r11,r10,r4 |
| 800 add r6,r6,r7,ror#27 |
| 801 mov r3,r3,ror#2 |
| 802 add r6,r6,r11 |
| 803 eor r10,r7,r4 |
| 804 add r5,r5,r9 |
| 805 ldr r9,[sp,#48] |
| 806 eor r11,r10,r3 |
| 807 add r5,r5,r6,ror#27 |
| 808 mov r7,r7,ror#2 |
| 809 add r5,r5,r11 |
| 810 vext.8 q12,q1,q2,#8 |
| 811 eor r10,r6,r3 |
| 812 add r4,r4,r9 |
| 813 ldr r9,[sp,#52] |
| 814 veor q3,q3,q11 |
| 815 eor r11,r10,r7 |
| 816 add r4,r4,r5,ror#27 |
| 817 veor q3,q3,q8 |
| 818 mov r6,r6,ror#2 |
| 819 add r4,r4,r11 |
| 820 vadd.i32 q13,q2,q14 |
| 821 eor r10,r5,r7 |
| 822 add r3,r3,r9 |
| 823 veor q12,q12,q3 |
| 824 ldr r9,[sp,#56] |
| 825 eor r11,r10,r6 |
| 826 vshr.u32 q3,q12,#30 |
| 827 add r3,r3,r4,ror#27 |
| 828 mov r5,r5,ror#2 |
| 829 vst1.32 {q13},[r12,:128]! |
| 830 add r3,r3,r11 |
| 831 eor r10,r4,r6 |
| 832 vsli.32 q3,q12,#2 |
| 833 add r7,r7,r9 |
| 834 ldr r9,[sp,#60] |
| 835 eor r11,r10,r5 |
| 836 add r7,r7,r3,ror#27 |
| 837 mov r4,r4,ror#2 |
| 838 add r7,r7,r11 |
| 839 eor r10,r3,r5 |
| 840 add r6,r6,r9 |
| 841 ldr r9,[sp,#0] |
| 842 eor r11,r10,r4 |
| 843 add r6,r6,r7,ror#27 |
| 844 mov r3,r3,ror#2 |
| 845 add r6,r6,r11 |
| 846 vext.8 q12,q2,q3,#8 |
| 847 eor r10,r7,r4 |
| 848 add r5,r5,r9 |
| 849 ldr r9,[sp,#4] |
| 850 veor q8,q8,q0 |
| 851 eor r11,r10,r3 |
| 852 add r5,r5,r6,ror#27 |
| 853 veor q8,q8,q9 |
| 854 mov r7,r7,ror#2 |
| 855 add r5,r5,r11 |
| 856 vadd.i32 q13,q3,q14 |
| 857 eor r10,r6,r3 |
| 858 add r4,r4,r9 |
| 859 veor q12,q12,q8 |
| 860 ldr r9,[sp,#8] |
| 861 eor r11,r10,r7 |
| 862 vshr.u32 q8,q12,#30 |
| 863 add r4,r4,r5,ror#27 |
| 864 mov r6,r6,ror#2 |
| 865 vst1.32 {q13},[r12,:128]! |
| 866 sub r12,r12,#64 |
| 867 add r4,r4,r11 |
| 868 eor r10,r5,r7 |
| 869 vsli.32 q8,q12,#2 |
| 870 add r3,r3,r9 |
| 871 ldr r9,[sp,#12] |
| 872 eor r11,r10,r6 |
| 873 add r3,r3,r4,ror#27 |
| 874 mov r5,r5,ror#2 |
| 875 add r3,r3,r11 |
| 876 eor r10,r4,r6 |
| 877 add r7,r7,r9 |
| 878 ldr r9,[sp,#16] |
| 879 eor r11,r10,r5 |
| 880 add r7,r7,r3,ror#27 |
| 881 mov r4,r4,ror#2 |
| 882 add r7,r7,r11 |
| 883 vext.8 q12,q3,q8,#8 |
| 884 eor r10,r3,r5 |
| 885 add r6,r6,r9 |
| 886 ldr r9,[sp,#20] |
| 887 veor q9,q9,q1 |
| 888 eor r11,r10,r4 |
| 889 add r6,r6,r7,ror#27 |
| 890 veor q9,q9,q10 |
| 891 mov r3,r3,ror#2 |
| 892 add r6,r6,r11 |
| 893 vadd.i32 q13,q8,q14 |
| 894 eor r10,r7,r4 |
| 895 add r5,r5,r9 |
| 896 veor q12,q12,q9 |
| 897 ldr r9,[sp,#24] |
| 898 eor r11,r10,r3 |
| 899 vshr.u32 q9,q12,#30 |
| 900 add r5,r5,r6,ror#27 |
| 901 mov r7,r7,ror#2 |
| 902 vst1.32 {q13},[r12,:128]! |
| 903 add r5,r5,r11 |
| 904 eor r10,r6,r3 |
| 905 vsli.32 q9,q12,#2 |
| 906 add r4,r4,r9 |
| 907 ldr r9,[sp,#28] |
| 908 eor r11,r10,r7 |
| 909 add r4,r4,r5,ror#27 |
| 910 mov r6,r6,ror#2 |
| 911 add r4,r4,r11 |
| 912 eor r10,r5,r7 |
| 913 add r3,r3,r9 |
| 914 ldr r9,[sp,#32] |
| 915 eor r11,r10,r6 |
| 916 add r3,r3,r4,ror#27 |
| 917 mov r5,r5,ror#2 |
| 918 add r3,r3,r11 |
| 919 vext.8 q12,q8,q9,#8 |
| 920 add r7,r7,r9 |
| 921 and r10,r5,r6 |
| 922 ldr r9,[sp,#36] |
| 923 veor q10,q10,q2 |
| 924 add r7,r7,r3,ror#27 |
| 925 eor r11,r5,r6 |
| 926 veor q10,q10,q11 |
| 927 add r7,r7,r10 |
| 928 and r11,r11,r4 |
| 929 vadd.i32 q13,q9,q14 |
| 930 mov r4,r4,ror#2 |
| 931 add r7,r7,r11 |
| 932 veor q12,q12,q10 |
| 933 add r6,r6,r9 |
| 934 and r10,r4,r5 |
| 935 vshr.u32 q10,q12,#30 |
| 936 ldr r9,[sp,#40] |
| 937 add r6,r6,r7,ror#27 |
| 938 vst1.32 {q13},[r12,:128]! |
| 939 eor r11,r4,r5 |
| 940 add r6,r6,r10 |
| 941 vsli.32 q10,q12,#2 |
| 942 and r11,r11,r3 |
| 943 mov r3,r3,ror#2 |
| 944 add r6,r6,r11 |
| 945 add r5,r5,r9 |
| 946 and r10,r3,r4 |
| 947 ldr r9,[sp,#44] |
| 948 add r5,r5,r6,ror#27 |
| 949 eor r11,r3,r4 |
| 950 add r5,r5,r10 |
| 951 and r11,r11,r7 |
| 952 mov r7,r7,ror#2 |
| 953 add r5,r5,r11 |
| 954 add r4,r4,r9 |
| 955 and r10,r7,r3 |
| 956 ldr r9,[sp,#48] |
| 957 add r4,r4,r5,ror#27 |
| 958 eor r11,r7,r3 |
| 959 add r4,r4,r10 |
| 960 and r11,r11,r6 |
| 961 mov r6,r6,ror#2 |
| 962 add r4,r4,r11 |
| 963 vext.8 q12,q9,q10,#8 |
| 964 add r3,r3,r9 |
| 965 and r10,r6,r7 |
| 966 ldr r9,[sp,#52] |
| 967 veor q11,q11,q3 |
| 968 add r3,r3,r4,ror#27 |
| 969 eor r11,r6,r7 |
| 970 veor q11,q11,q0 |
| 971 add r3,r3,r10 |
| 972 and r11,r11,r5 |
| 973 vadd.i32 q13,q10,q14 |
| 974 mov r5,r5,ror#2 |
| 975 vld1.32 {d28[],d29[]},[r8,:32]! |
| 976 add r3,r3,r11 |
| 977 veor q12,q12,q11 |
| 978 add r7,r7,r9 |
| 979 and r10,r5,r6 |
| 980 vshr.u32 q11,q12,#30 |
| 981 ldr r9,[sp,#56] |
| 982 add r7,r7,r3,ror#27 |
| 983 vst1.32 {q13},[r12,:128]! |
| 984 eor r11,r5,r6 |
| 985 add r7,r7,r10 |
| 986 vsli.32 q11,q12,#2 |
| 987 and r11,r11,r4 |
| 988 mov r4,r4,ror#2 |
| 989 add r7,r7,r11 |
| 990 add r6,r6,r9 |
| 991 and r10,r4,r5 |
| 992 ldr r9,[sp,#60] |
| 993 add r6,r6,r7,ror#27 |
| 994 eor r11,r4,r5 |
| 995 add r6,r6,r10 |
| 996 and r11,r11,r3 |
| 997 mov r3,r3,ror#2 |
| 998 add r6,r6,r11 |
| 999 add r5,r5,r9 |
| 1000 and r10,r3,r4 |
| 1001 ldr r9,[sp,#0] |
| 1002 add r5,r5,r6,ror#27 |
| 1003 eor r11,r3,r4 |
| 1004 add r5,r5,r10 |
| 1005 and r11,r11,r7 |
| 1006 mov r7,r7,ror#2 |
| 1007 add r5,r5,r11 |
| 1008 vext.8 q12,q10,q11,#8 |
| 1009 add r4,r4,r9 |
| 1010 and r10,r7,r3 |
| 1011 ldr r9,[sp,#4] |
| 1012 veor q0,q0,q8 |
| 1013 add r4,r4,r5,ror#27 |
| 1014 eor r11,r7,r3 |
| 1015 veor q0,q0,q1 |
| 1016 add r4,r4,r10 |
| 1017 and r11,r11,r6 |
| 1018 vadd.i32 q13,q11,q14 |
| 1019 mov r6,r6,ror#2 |
| 1020 add r4,r4,r11 |
| 1021 veor q12,q12,q0 |
| 1022 add r3,r3,r9 |
| 1023 and r10,r6,r7 |
| 1024 vshr.u32 q0,q12,#30 |
| 1025 ldr r9,[sp,#8] |
| 1026 add r3,r3,r4,ror#27 |
| 1027 vst1.32 {q13},[r12,:128]! |
| 1028 sub r12,r12,#64 |
| 1029 eor r11,r6,r7 |
| 1030 add r3,r3,r10 |
| 1031 vsli.32 q0,q12,#2 |
| 1032 and r11,r11,r5 |
| 1033 mov r5,r5,ror#2 |
| 1034 add r3,r3,r11 |
| 1035 add r7,r7,r9 |
| 1036 and r10,r5,r6 |
| 1037 ldr r9,[sp,#12] |
| 1038 add r7,r7,r3,ror#27 |
| 1039 eor r11,r5,r6 |
| 1040 add r7,r7,r10 |
| 1041 and r11,r11,r4 |
| 1042 mov r4,r4,ror#2 |
| 1043 add r7,r7,r11 |
| 1044 add r6,r6,r9 |
| 1045 and r10,r4,r5 |
| 1046 ldr r9,[sp,#16] |
| 1047 add r6,r6,r7,ror#27 |
| 1048 eor r11,r4,r5 |
| 1049 add r6,r6,r10 |
| 1050 and r11,r11,r3 |
| 1051 mov r3,r3,ror#2 |
| 1052 add r6,r6,r11 |
| 1053 vext.8 q12,q11,q0,#8 |
| 1054 add r5,r5,r9 |
| 1055 and r10,r3,r4 |
| 1056 ldr r9,[sp,#20] |
| 1057 veor q1,q1,q9 |
| 1058 add r5,r5,r6,ror#27 |
| 1059 eor r11,r3,r4 |
| 1060 veor q1,q1,q2 |
| 1061 add r5,r5,r10 |
| 1062 and r11,r11,r7 |
| 1063 vadd.i32 q13,q0,q14 |
| 1064 mov r7,r7,ror#2 |
| 1065 add r5,r5,r11 |
| 1066 veor q12,q12,q1 |
| 1067 add r4,r4,r9 |
| 1068 and r10,r7,r3 |
| 1069 vshr.u32 q1,q12,#30 |
| 1070 ldr r9,[sp,#24] |
| 1071 add r4,r4,r5,ror#27 |
| 1072 vst1.32 {q13},[r12,:128]! |
| 1073 eor r11,r7,r3 |
| 1074 add r4,r4,r10 |
| 1075 vsli.32 q1,q12,#2 |
| 1076 and r11,r11,r6 |
| 1077 mov r6,r6,ror#2 |
| 1078 add r4,r4,r11 |
| 1079 add r3,r3,r9 |
| 1080 and r10,r6,r7 |
| 1081 ldr r9,[sp,#28] |
| 1082 add r3,r3,r4,ror#27 |
| 1083 eor r11,r6,r7 |
| 1084 add r3,r3,r10 |
| 1085 and r11,r11,r5 |
| 1086 mov r5,r5,ror#2 |
| 1087 add r3,r3,r11 |
| 1088 add r7,r7,r9 |
| 1089 and r10,r5,r6 |
| 1090 ldr r9,[sp,#32] |
| 1091 add r7,r7,r3,ror#27 |
| 1092 eor r11,r5,r6 |
| 1093 add r7,r7,r10 |
| 1094 and r11,r11,r4 |
| 1095 mov r4,r4,ror#2 |
| 1096 add r7,r7,r11 |
| 1097 vext.8 q12,q0,q1,#8 |
| 1098 add r6,r6,r9 |
| 1099 and r10,r4,r5 |
| 1100 ldr r9,[sp,#36] |
| 1101 veor q2,q2,q10 |
| 1102 add r6,r6,r7,ror#27 |
| 1103 eor r11,r4,r5 |
| 1104 veor q2,q2,q3 |
| 1105 add r6,r6,r10 |
| 1106 and r11,r11,r3 |
| 1107 vadd.i32 q13,q1,q14 |
| 1108 mov r3,r3,ror#2 |
| 1109 add r6,r6,r11 |
| 1110 veor q12,q12,q2 |
| 1111 add r5,r5,r9 |
| 1112 and r10,r3,r4 |
| 1113 vshr.u32 q2,q12,#30 |
| 1114 ldr r9,[sp,#40] |
| 1115 add r5,r5,r6,ror#27 |
| 1116 vst1.32 {q13},[r12,:128]! |
| 1117 eor r11,r3,r4 |
| 1118 add r5,r5,r10 |
| 1119 vsli.32 q2,q12,#2 |
| 1120 and r11,r11,r7 |
| 1121 mov r7,r7,ror#2 |
| 1122 add r5,r5,r11 |
| 1123 add r4,r4,r9 |
| 1124 and r10,r7,r3 |
| 1125 ldr r9,[sp,#44] |
| 1126 add r4,r4,r5,ror#27 |
| 1127 eor r11,r7,r3 |
| 1128 add r4,r4,r10 |
| 1129 and r11,r11,r6 |
| 1130 mov r6,r6,ror#2 |
| 1131 add r4,r4,r11 |
| 1132 add r3,r3,r9 |
| 1133 and r10,r6,r7 |
| 1134 ldr r9,[sp,#48] |
| 1135 add r3,r3,r4,ror#27 |
| 1136 eor r11,r6,r7 |
| 1137 add r3,r3,r10 |
| 1138 and r11,r11,r5 |
| 1139 mov r5,r5,ror#2 |
| 1140 add r3,r3,r11 |
| 1141 vext.8 q12,q1,q2,#8 |
| 1142 eor r10,r4,r6 |
| 1143 add r7,r7,r9 |
| 1144 ldr r9,[sp,#52] |
| 1145 veor q3,q3,q11 |
| 1146 eor r11,r10,r5 |
| 1147 add r7,r7,r3,ror#27 |
| 1148 veor q3,q3,q8 |
| 1149 mov r4,r4,ror#2 |
| 1150 add r7,r7,r11 |
| 1151 vadd.i32 q13,q2,q14 |
| 1152 eor r10,r3,r5 |
| 1153 add r6,r6,r9 |
| 1154 veor q12,q12,q3 |
| 1155 ldr r9,[sp,#56] |
| 1156 eor r11,r10,r4 |
| 1157 vshr.u32 q3,q12,#30 |
| 1158 add r6,r6,r7,ror#27 |
| 1159 mov r3,r3,ror#2 |
| 1160 vst1.32 {q13},[r12,:128]! |
| 1161 add r6,r6,r11 |
| 1162 eor r10,r7,r4 |
| 1163 vsli.32 q3,q12,#2 |
| 1164 add r5,r5,r9 |
| 1165 ldr r9,[sp,#60] |
| 1166 eor r11,r10,r3 |
| 1167 add r5,r5,r6,ror#27 |
| 1168 mov r7,r7,ror#2 |
| 1169 add r5,r5,r11 |
| 1170 eor r10,r6,r3 |
| 1171 add r4,r4,r9 |
| 1172 ldr r9,[sp,#0] |
| 1173 eor r11,r10,r7 |
| 1174 add r4,r4,r5,ror#27 |
| 1175 mov r6,r6,ror#2 |
| 1176 add r4,r4,r11 |
| 1177 vadd.i32 q13,q3,q14 |
| 1178 eor r10,r5,r7 |
| 1179 add r3,r3,r9 |
| 1180 vst1.32 {q13},[r12,:128]! |
| 1181 sub r12,r12,#64 |
| 1182 teq r1,r2 |
| 1183 sub r8,r8,#16 |
| 1184 subeq r1,r1,#64 |
| 1185 vld1.8 {q0,q1},[r1]! |
| 1186 ldr r9,[sp,#4] |
| 1187 eor r11,r10,r6 |
| 1188 vld1.8 {q2,q3},[r1]! |
| 1189 add r3,r3,r4,ror#27 |
| 1190 mov r5,r5,ror#2 |
| 1191 vld1.32 {d28[],d29[]},[r8,:32]! |
| 1192 add r3,r3,r11 |
| 1193 eor r10,r4,r6 |
| 1194 vrev32.8 q0,q0 |
| 1195 add r7,r7,r9 |
| 1196 ldr r9,[sp,#8] |
| 1197 eor r11,r10,r5 |
| 1198 add r7,r7,r3,ror#27 |
| 1199 mov r4,r4,ror#2 |
| 1200 add r7,r7,r11 |
| 1201 eor r10,r3,r5 |
| 1202 add r6,r6,r9 |
| 1203 ldr r9,[sp,#12] |
| 1204 eor r11,r10,r4 |
| 1205 add r6,r6,r7,ror#27 |
| 1206 mov r3,r3,ror#2 |
| 1207 add r6,r6,r11 |
| 1208 eor r10,r7,r4 |
| 1209 add r5,r5,r9 |
| 1210 ldr r9,[sp,#16] |
| 1211 eor r11,r10,r3 |
| 1212 add r5,r5,r6,ror#27 |
| 1213 mov r7,r7,ror#2 |
| 1214 add r5,r5,r11 |
| 1215 vrev32.8 q1,q1 |
| 1216 eor r10,r6,r3 |
| 1217 add r4,r4,r9 |
| 1218 vadd.i32 q8,q0,q14 |
| 1219 ldr r9,[sp,#20] |
| 1220 eor r11,r10,r7 |
| 1221 vst1.32 {q8},[r12,:128]! |
| 1222 add r4,r4,r5,ror#27 |
| 1223 mov r6,r6,ror#2 |
| 1224 add r4,r4,r11 |
| 1225 eor r10,r5,r7 |
| 1226 add r3,r3,r9 |
| 1227 ldr r9,[sp,#24] |
| 1228 eor r11,r10,r6 |
| 1229 add r3,r3,r4,ror#27 |
| 1230 mov r5,r5,ror#2 |
| 1231 add r3,r3,r11 |
| 1232 eor r10,r4,r6 |
| 1233 add r7,r7,r9 |
| 1234 ldr r9,[sp,#28] |
| 1235 eor r11,r10,r5 |
| 1236 add r7,r7,r3,ror#27 |
| 1237 mov r4,r4,ror#2 |
| 1238 add r7,r7,r11 |
| 1239 eor r10,r3,r5 |
| 1240 add r6,r6,r9 |
| 1241 ldr r9,[sp,#32] |
| 1242 eor r11,r10,r4 |
| 1243 add r6,r6,r7,ror#27 |
| 1244 mov r3,r3,ror#2 |
| 1245 add r6,r6,r11 |
| 1246 vrev32.8 q2,q2 |
| 1247 eor r10,r7,r4 |
| 1248 add r5,r5,r9 |
| 1249 vadd.i32 q9,q1,q14 |
| 1250 ldr r9,[sp,#36] |
| 1251 eor r11,r10,r3 |
| 1252 vst1.32 {q9},[r12,:128]! |
| 1253 add r5,r5,r6,ror#27 |
| 1254 mov r7,r7,ror#2 |
| 1255 add r5,r5,r11 |
| 1256 eor r10,r6,r3 |
| 1257 add r4,r4,r9 |
| 1258 ldr r9,[sp,#40] |
| 1259 eor r11,r10,r7 |
| 1260 add r4,r4,r5,ror#27 |
| 1261 mov r6,r6,ror#2 |
| 1262 add r4,r4,r11 |
| 1263 eor r10,r5,r7 |
| 1264 add r3,r3,r9 |
| 1265 ldr r9,[sp,#44] |
| 1266 eor r11,r10,r6 |
| 1267 add r3,r3,r4,ror#27 |
| 1268 mov r5,r5,ror#2 |
| 1269 add r3,r3,r11 |
| 1270 eor r10,r4,r6 |
| 1271 add r7,r7,r9 |
| 1272 ldr r9,[sp,#48] |
| 1273 eor r11,r10,r5 |
| 1274 add r7,r7,r3,ror#27 |
| 1275 mov r4,r4,ror#2 |
| 1276 add r7,r7,r11 |
| 1277 vrev32.8 q3,q3 |
| 1278 eor r10,r3,r5 |
| 1279 add r6,r6,r9 |
| 1280 vadd.i32 q10,q2,q14 |
| 1281 ldr r9,[sp,#52] |
| 1282 eor r11,r10,r4 |
| 1283 vst1.32 {q10},[r12,:128]! |
| 1284 add r6,r6,r7,ror#27 |
| 1285 mov r3,r3,ror#2 |
| 1286 add r6,r6,r11 |
| 1287 eor r10,r7,r4 |
| 1288 add r5,r5,r9 |
| 1289 ldr r9,[sp,#56] |
| 1290 eor r11,r10,r3 |
| 1291 add r5,r5,r6,ror#27 |
| 1292 mov r7,r7,ror#2 |
| 1293 add r5,r5,r11 |
| 1294 eor r10,r6,r3 |
| 1295 add r4,r4,r9 |
| 1296 ldr r9,[sp,#60] |
| 1297 eor r11,r10,r7 |
| 1298 add r4,r4,r5,ror#27 |
| 1299 mov r6,r6,ror#2 |
| 1300 add r4,r4,r11 |
| 1301 eor r10,r5,r7 |
| 1302 add r3,r3,r9 |
| 1303 eor r11,r10,r6 |
| 1304 add r3,r3,r4,ror#27 |
| 1305 mov r5,r5,ror#2 |
| 1306 add r3,r3,r11 |
| 1307 ldmia r0,{r9,r10,r11,r12} @ accumulate context |
| 1308 add r3,r3,r9 |
| 1309 ldr r9,[r0,#16] |
| 1310 add r4,r4,r10 |
| 1311 add r5,r5,r11 |
| 1312 add r6,r6,r12 |
| 1313 moveq sp,r14 |
| 1314 add r7,r7,r9 |
| 1315 ldrne r9,[sp] |
| 1316 stmia r0,{r3,r4,r5,r6,r7} |
| 1317 addne r12,sp,#3*16 |
| 1318 bne .Loop_neon |
| 1319 |
| 1320 @ vldmia sp!,{d8-d15} |
| 1321 ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} |
| 1322 .size sha1_block_data_order_neon,.-sha1_block_data_order_neon |
| 1323 #endif |
| 1324 #if __ARM_MAX_ARCH__>=7 |
| 1325 .type sha1_block_data_order_armv8,%function |
| 1326 .align 5 |
| 1327 sha1_block_data_order_armv8: |
| 1328 .LARMv8: |
| 1329 vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specificat
ion says so |
| 1330 |
| 1331 veor q1,q1,q1 |
| 1332 adr r3,.LK_00_19 |
| 1333 vld1.32 {q0},[r0]! |
| 1334 vld1.32 {d2[0]},[r0] |
| 1335 sub r0,r0,#16 |
| 1336 vld1.32 {d16[],d17[]},[r3,:32]! |
| 1337 vld1.32 {d18[],d19[]},[r3,:32]! |
| 1338 vld1.32 {d20[],d21[]},[r3,:32]! |
| 1339 vld1.32 {d22[],d23[]},[r3,:32] |
| 1340 |
| 1341 .Loop_v8: |
| 1342 vld1.8 {q4,q5},[r1]! |
| 1343 vld1.8 {q6,q7},[r1]! |
| 1344 vrev32.8 q4,q4 |
| 1345 vrev32.8 q5,q5 |
| 1346 |
| 1347 vadd.i32 q12,q8,q4 |
| 1348 vrev32.8 q6,q6 |
| 1349 vmov q14,q0 @ offload |
| 1350 subs r2,r2,#1 |
| 1351 |
| 1352 vadd.i32 q13,q8,q5 |
| 1353 vrev32.8 q7,q7 |
| 1354 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 0 |
| 1355 .byte 0x68,0x0c,0x02,0xf2 @ sha1c q0,q1,q12 |
| 1356 vadd.i32 q12,q8,q6 |
| 1357 .byte 0x4c,0x8c,0x3a,0xf2 @ sha1su0 q4,q5,q6 |
| 1358 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 1 |
| 1359 .byte 0x6a,0x0c,0x06,0xf2 @ sha1c q0,q3,q13 |
| 1360 vadd.i32 q13,q8,q7 |
| 1361 .byte 0x8e,0x83,0xba,0xf3 @ sha1su1 q4,q7 |
| 1362 .byte 0x4e,0xac,0x3c,0xf2 @ sha1su0 q5,q6,q7 |
| 1363 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 2 |
| 1364 .byte 0x68,0x0c,0x04,0xf2 @ sha1c q0,q2,q12 |
| 1365 vadd.i32 q12,q8,q4 |
| 1366 .byte 0x88,0xa3,0xba,0xf3 @ sha1su1 q5,q4 |
| 1367 .byte 0x48,0xcc,0x3e,0xf2 @ sha1su0 q6,q7,q4 |
| 1368 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 3 |
| 1369 .byte 0x6a,0x0c,0x06,0xf2 @ sha1c q0,q3,q13 |
| 1370 vadd.i32 q13,q9,q5 |
| 1371 .byte 0x8a,0xc3,0xba,0xf3 @ sha1su1 q6,q5 |
| 1372 .byte 0x4a,0xec,0x38,0xf2 @ sha1su0 q7,q4,q5 |
| 1373 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 4 |
| 1374 .byte 0x68,0x0c,0x04,0xf2 @ sha1c q0,q2,q12 |
| 1375 vadd.i32 q12,q9,q6 |
| 1376 .byte 0x8c,0xe3,0xba,0xf3 @ sha1su1 q7,q6 |
| 1377 .byte 0x4c,0x8c,0x3a,0xf2 @ sha1su0 q4,q5,q6 |
| 1378 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 5 |
| 1379 .byte 0x6a,0x0c,0x16,0xf2 @ sha1p q0,q3,q13 |
| 1380 vadd.i32 q13,q9,q7 |
| 1381 .byte 0x8e,0x83,0xba,0xf3 @ sha1su1 q4,q7 |
| 1382 .byte 0x4e,0xac,0x3c,0xf2 @ sha1su0 q5,q6,q7 |
| 1383 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 6 |
| 1384 .byte 0x68,0x0c,0x14,0xf2 @ sha1p q0,q2,q12 |
| 1385 vadd.i32 q12,q9,q4 |
| 1386 .byte 0x88,0xa3,0xba,0xf3 @ sha1su1 q5,q4 |
| 1387 .byte 0x48,0xcc,0x3e,0xf2 @ sha1su0 q6,q7,q4 |
| 1388 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 7 |
| 1389 .byte 0x6a,0x0c,0x16,0xf2 @ sha1p q0,q3,q13 |
| 1390 vadd.i32 q13,q9,q5 |
| 1391 .byte 0x8a,0xc3,0xba,0xf3 @ sha1su1 q6,q5 |
| 1392 .byte 0x4a,0xec,0x38,0xf2 @ sha1su0 q7,q4,q5 |
| 1393 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 8 |
| 1394 .byte 0x68,0x0c,0x14,0xf2 @ sha1p q0,q2,q12 |
| 1395 vadd.i32 q12,q10,q6 |
| 1396 .byte 0x8c,0xe3,0xba,0xf3 @ sha1su1 q7,q6 |
| 1397 .byte 0x4c,0x8c,0x3a,0xf2 @ sha1su0 q4,q5,q6 |
| 1398 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 9 |
| 1399 .byte 0x6a,0x0c,0x16,0xf2 @ sha1p q0,q3,q13 |
| 1400 vadd.i32 q13,q10,q7 |
| 1401 .byte 0x8e,0x83,0xba,0xf3 @ sha1su1 q4,q7 |
| 1402 .byte 0x4e,0xac,0x3c,0xf2 @ sha1su0 q5,q6,q7 |
| 1403 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 10 |
| 1404 .byte 0x68,0x0c,0x24,0xf2 @ sha1m q0,q2,q12 |
| 1405 vadd.i32 q12,q10,q4 |
| 1406 .byte 0x88,0xa3,0xba,0xf3 @ sha1su1 q5,q4 |
| 1407 .byte 0x48,0xcc,0x3e,0xf2 @ sha1su0 q6,q7,q4 |
| 1408 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 11 |
| 1409 .byte 0x6a,0x0c,0x26,0xf2 @ sha1m q0,q3,q13 |
| 1410 vadd.i32 q13,q10,q5 |
| 1411 .byte 0x8a,0xc3,0xba,0xf3 @ sha1su1 q6,q5 |
| 1412 .byte 0x4a,0xec,0x38,0xf2 @ sha1su0 q7,q4,q5 |
| 1413 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 12 |
| 1414 .byte 0x68,0x0c,0x24,0xf2 @ sha1m q0,q2,q12 |
| 1415 vadd.i32 q12,q10,q6 |
| 1416 .byte 0x8c,0xe3,0xba,0xf3 @ sha1su1 q7,q6 |
| 1417 .byte 0x4c,0x8c,0x3a,0xf2 @ sha1su0 q4,q5,q6 |
| 1418 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 13 |
| 1419 .byte 0x6a,0x0c,0x26,0xf2 @ sha1m q0,q3,q13 |
| 1420 vadd.i32 q13,q11,q7 |
| 1421 .byte 0x8e,0x83,0xba,0xf3 @ sha1su1 q4,q7 |
| 1422 .byte 0x4e,0xac,0x3c,0xf2 @ sha1su0 q5,q6,q7 |
| 1423 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 14 |
| 1424 .byte 0x68,0x0c,0x24,0xf2 @ sha1m q0,q2,q12 |
| 1425 vadd.i32 q12,q11,q4 |
| 1426 .byte 0x88,0xa3,0xba,0xf3 @ sha1su1 q5,q4 |
| 1427 .byte 0x48,0xcc,0x3e,0xf2 @ sha1su0 q6,q7,q4 |
| 1428 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 15 |
| 1429 .byte 0x6a,0x0c,0x16,0xf2 @ sha1p q0,q3,q13 |
| 1430 vadd.i32 q13,q11,q5 |
| 1431 .byte 0x8a,0xc3,0xba,0xf3 @ sha1su1 q6,q5 |
| 1432 .byte 0x4a,0xec,0x38,0xf2 @ sha1su0 q7,q4,q5 |
| 1433 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 16 |
| 1434 .byte 0x68,0x0c,0x14,0xf2 @ sha1p q0,q2,q12 |
| 1435 vadd.i32 q12,q11,q6 |
| 1436 .byte 0x8c,0xe3,0xba,0xf3 @ sha1su1 q7,q6 |
| 1437 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 17 |
| 1438 .byte 0x6a,0x0c,0x16,0xf2 @ sha1p q0,q3,q13 |
| 1439 vadd.i32 q13,q11,q7 |
| 1440 |
| 1441 .byte 0xc0,0x62,0xb9,0xf3 @ sha1h q3,q0 @ 18 |
| 1442 .byte 0x68,0x0c,0x14,0xf2 @ sha1p q0,q2,q12 |
| 1443 |
| 1444 .byte 0xc0,0x42,0xb9,0xf3 @ sha1h q2,q0 @ 19 |
| 1445 .byte 0x6a,0x0c,0x16,0xf2 @ sha1p q0,q3,q13 |
| 1446 |
| 1447 vadd.i32 q1,q1,q2 |
| 1448 vadd.i32 q0,q0,q14 |
| 1449 bne .Loop_v8 |
| 1450 |
| 1451 vst1.32 {q0},[r0]! |
| 1452 vst1.32 {d2[0]},[r0] |
| 1453 |
| 1454 vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15} |
| 1455 bx lr @ bx lr |
| 1456 .size sha1_block_data_order_armv8,.-sha1_block_data_order_armv8 |
| 1457 #endif |
| 1458 #if __ARM_MAX_ARCH__>=7 |
| 1459 .comm OPENSSL_armcap_P,4,4 |
| 1460 .hidden OPENSSL_armcap_P |
| 1461 #endif |
| 1462 #endif |
OLD | NEW |