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