Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(195)

Side by Side Diff: third_party/boringssl/linux-arm/crypto/sha/sha1-armv4-large.S

Issue 1136743004: Roll src/third_party/boringssl/src 68de407:771a138 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #include "arm_arch.h" 1 #include "arm_arch.h"
2 2
3 .text 3 .text
4 .code 32 4 .code 32
5 5
6 .global»sha1_block_data_order 6 .globl» sha1_block_data_order
7 .type sha1_block_data_order,%function 7 .type sha1_block_data_order,%function
8 8
9 .align 5 9 .align 5
10 sha1_block_data_order: 10 sha1_block_data_order:
11 #if __ARM_MAX_ARCH__>=7 11 #if __ARM_MAX_ARCH__>=7
12 sub r3,pc,#8 @ sha1_block_data_order 12 sub r3,pc,#8 @ sha1_block_data_order
13 ldr r12,.LOPENSSL_armcap 13 ldr r12,.LOPENSSL_armcap
14 ldr r12,[r3,r12] @ OPENSSL_armcap_P 14 ldr r12,[r3,r12] @ OPENSSL_armcap_P
15 #ifdef __APPLE__
16 ldr r12,[r12]
17 #endif
15 tst r12,#ARMV8_SHA1 18 tst r12,#ARMV8_SHA1
16 bne .LARMv8 19 bne .LARMv8
17 tst r12,#ARMV7_NEON 20 tst r12,#ARMV7_NEON
18 bne .LNEON 21 bne .LNEON
19 #endif 22 #endif
20 » stmdb» sp!,{r4-r12,lr} 23 » stmdb» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
21 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1 24 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1
22 ldmia r0,{r3,r4,r5,r6,r7} 25 ldmia r0,{r3,r4,r5,r6,r7}
23 .Lloop: 26 .Lloop:
24 ldr r8,.LK_00_19 27 ldr r8,.LK_00_19
25 mov r14,sp 28 mov r14,sp
26 sub sp,sp,#15*4 29 sub sp,sp,#15*4
27 mov r5,r5,ror#30 30 mov r5,r5,ror#30
28 mov r6,r6,ror#30 31 mov r6,r6,ror#30
29 mov r7,r7,ror#30 @ [6] 32 mov r7,r7,ror#30 @ [6]
30 .L_00_15: 33 .L_00_15:
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 ldr r11,[r14,#7*4] 189 ldr r11,[r14,#7*4]
187 add r6,r8,r6,ror#2 @ E+=K_xx_xx 190 add r6,r8,r6,ror#2 @ E+=K_xx_xx
188 ldr r12,[r14,#2*4] 191 ldr r12,[r14,#2*4]
189 eor r9,r9,r10 192 eor r9,r9,r10
190 eor r11,r11,r12 @ 1 cycle stall 193 eor r11,r11,r12 @ 1 cycle stall
191 eor r10,r4,r5 @ F_xx_xx 194 eor r10,r4,r5 @ F_xx_xx
192 mov r9,r9,ror#31 195 mov r9,r9,ror#31
193 add r6,r6,r7,ror#27 @ E+=ROR(A,27) 196 add r6,r6,r7,ror#27 @ E+=ROR(A,27)
194 eor r9,r9,r11,ror#31 197 eor r9,r9,r11,ror#31
195 str r9,[r14,#-4]! 198 str r9,[r14,#-4]!
196 » and r10,r3,r10,ror#2» » » » » @ F_xx_xx 199 » and» r10,r3,r10,ror#2» » » » » @ F_xx_x x
197 @ F_xx_xx 200 @ F_xx_xx
198 add r6,r6,r9 @ E+=X[i] 201 add r6,r6,r9 @ E+=X[i]
199 eor r10,r10,r5,ror#2 @ F_00_19(B,C,D) 202 eor r10,r10,r5,ror#2 @ F_00_19(B,C,D)
200 add r6,r6,r10 @ E+=F_00_19(B,C,D) 203 add r6,r6,r10 @ E+=F_00_19(B,C,D)
201 ldr r9,[r14,#15*4] 204 ldr r9,[r14,#15*4]
202 ldr r10,[r14,#13*4] 205 ldr r10,[r14,#13*4]
203 ldr r11,[r14,#7*4] 206 ldr r11,[r14,#7*4]
204 add r5,r8,r5,ror#2 @ E+=K_xx_xx 207 add r5,r8,r5,ror#2 @ E+=K_xx_xx
205 ldr r12,[r14,#2*4] 208 ldr r12,[r14,#2*4]
206 eor r9,r9,r10 209 eor r9,r9,r10
207 eor r11,r11,r12 @ 1 cycle stall 210 eor r11,r11,r12 @ 1 cycle stall
208 eor r10,r3,r4 @ F_xx_xx 211 eor r10,r3,r4 @ F_xx_xx
209 mov r9,r9,ror#31 212 mov r9,r9,ror#31
210 add r5,r5,r6,ror#27 @ E+=ROR(A,27) 213 add r5,r5,r6,ror#27 @ E+=ROR(A,27)
211 eor r9,r9,r11,ror#31 214 eor r9,r9,r11,ror#31
212 str r9,[r14,#-4]! 215 str r9,[r14,#-4]!
213 » and r10,r7,r10,ror#2» » » » » @ F_xx_xx 216 » and» r10,r7,r10,ror#2» » » » » @ F_xx_x x
214 @ F_xx_xx 217 @ F_xx_xx
215 add r5,r5,r9 @ E+=X[i] 218 add r5,r5,r9 @ E+=X[i]
216 eor r10,r10,r4,ror#2 @ F_00_19(B,C,D) 219 eor r10,r10,r4,ror#2 @ F_00_19(B,C,D)
217 add r5,r5,r10 @ E+=F_00_19(B,C,D) 220 add r5,r5,r10 @ E+=F_00_19(B,C,D)
218 ldr r9,[r14,#15*4] 221 ldr r9,[r14,#15*4]
219 ldr r10,[r14,#13*4] 222 ldr r10,[r14,#13*4]
220 ldr r11,[r14,#7*4] 223 ldr r11,[r14,#7*4]
221 add r4,r8,r4,ror#2 @ E+=K_xx_xx 224 add r4,r8,r4,ror#2 @ E+=K_xx_xx
222 ldr r12,[r14,#2*4] 225 ldr r12,[r14,#2*4]
223 eor r9,r9,r10 226 eor r9,r9,r10
224 eor r11,r11,r12 @ 1 cycle stall 227 eor r11,r11,r12 @ 1 cycle stall
225 eor r10,r7,r3 @ F_xx_xx 228 eor r10,r7,r3 @ F_xx_xx
226 mov r9,r9,ror#31 229 mov r9,r9,ror#31
227 add r4,r4,r5,ror#27 @ E+=ROR(A,27) 230 add r4,r4,r5,ror#27 @ E+=ROR(A,27)
228 eor r9,r9,r11,ror#31 231 eor r9,r9,r11,ror#31
229 str r9,[r14,#-4]! 232 str r9,[r14,#-4]!
230 » and r10,r6,r10,ror#2» » » » » @ F_xx_xx 233 » and» r10,r6,r10,ror#2» » » » » @ F_xx_x x
231 @ F_xx_xx 234 @ F_xx_xx
232 add r4,r4,r9 @ E+=X[i] 235 add r4,r4,r9 @ E+=X[i]
233 eor r10,r10,r3,ror#2 @ F_00_19(B,C,D) 236 eor r10,r10,r3,ror#2 @ F_00_19(B,C,D)
234 add r4,r4,r10 @ E+=F_00_19(B,C,D) 237 add r4,r4,r10 @ E+=F_00_19(B,C,D)
235 ldr r9,[r14,#15*4] 238 ldr r9,[r14,#15*4]
236 ldr r10,[r14,#13*4] 239 ldr r10,[r14,#13*4]
237 ldr r11,[r14,#7*4] 240 ldr r11,[r14,#7*4]
238 add r3,r8,r3,ror#2 @ E+=K_xx_xx 241 add r3,r8,r3,ror#2 @ E+=K_xx_xx
239 ldr r12,[r14,#2*4] 242 ldr r12,[r14,#2*4]
240 eor r9,r9,r10 243 eor r9,r9,r10
241 eor r11,r11,r12 @ 1 cycle stall 244 eor r11,r11,r12 @ 1 cycle stall
242 eor r10,r6,r7 @ F_xx_xx 245 eor r10,r6,r7 @ F_xx_xx
243 mov r9,r9,ror#31 246 mov r9,r9,ror#31
244 add r3,r3,r4,ror#27 @ E+=ROR(A,27) 247 add r3,r3,r4,ror#27 @ E+=ROR(A,27)
245 eor r9,r9,r11,ror#31 248 eor r9,r9,r11,ror#31
246 str r9,[r14,#-4]! 249 str r9,[r14,#-4]!
247 » and r10,r5,r10,ror#2» » » » » @ F_xx_xx 250 » and» r10,r5,r10,ror#2» » » » » @ F_xx_x x
248 @ F_xx_xx 251 @ F_xx_xx
249 add r3,r3,r9 @ E+=X[i] 252 add r3,r3,r9 @ E+=X[i]
250 eor r10,r10,r7,ror#2 @ F_00_19(B,C,D) 253 eor r10,r10,r7,ror#2 @ F_00_19(B,C,D)
251 add r3,r3,r10 @ E+=F_00_19(B,C,D) 254 add r3,r3,r10 @ E+=F_00_19(B,C,D)
252 255
253 ldr r8,.LK_20_39 @ [+15+16*4] 256 ldr r8,.LK_20_39 @ [+15+16*4]
254 cmn sp,#0 @ [+3], clear carry to denote 20_39 257 cmn sp,#0 @ [+3], clear carry to denote 20_39
255 .L_20_39_or_60_79: 258 .L_20_39_or_60_79:
256 ldr r9,[r14,#15*4] 259 ldr r9,[r14,#15*4]
257 ldr r10,[r14,#13*4] 260 ldr r10,[r14,#13*4]
258 ldr r11,[r14,#7*4] 261 ldr r11,[r14,#7*4]
259 add r7,r8,r7,ror#2 @ E+=K_xx_xx 262 add r7,r8,r7,ror#2 @ E+=K_xx_xx
260 ldr r12,[r14,#2*4] 263 ldr r12,[r14,#2*4]
261 eor r9,r9,r10 264 eor r9,r9,r10
262 eor r11,r11,r12 @ 1 cycle stall 265 eor r11,r11,r12 @ 1 cycle stall
263 eor r10,r5,r6 @ F_xx_xx 266 eor r10,r5,r6 @ F_xx_xx
264 mov r9,r9,ror#31 267 mov r9,r9,ror#31
265 add r7,r7,r3,ror#27 @ E+=ROR(A,27) 268 add r7,r7,r3,ror#27 @ E+=ROR(A,27)
266 eor r9,r9,r11,ror#31 269 eor r9,r9,r11,ror#31
267 str r9,[r14,#-4]! 270 str r9,[r14,#-4]!
268 » eor r10,r4,r10,ror#2» » » » » @ F_xx_xx 271 » eor» r10,r4,r10,ror#2» » » » » @ F_xx_x x
269 @ F_xx_xx 272 @ F_xx_xx
270 add r7,r7,r9 @ E+=X[i] 273 add r7,r7,r9 @ E+=X[i]
271 add r7,r7,r10 @ E+=F_20_39(B,C,D) 274 add r7,r7,r10 @ E+=F_20_39(B,C,D)
272 ldr r9,[r14,#15*4] 275 ldr r9,[r14,#15*4]
273 ldr r10,[r14,#13*4] 276 ldr r10,[r14,#13*4]
274 ldr r11,[r14,#7*4] 277 ldr r11,[r14,#7*4]
275 add r6,r8,r6,ror#2 @ E+=K_xx_xx 278 add r6,r8,r6,ror#2 @ E+=K_xx_xx
276 ldr r12,[r14,#2*4] 279 ldr r12,[r14,#2*4]
277 eor r9,r9,r10 280 eor r9,r9,r10
278 eor r11,r11,r12 @ 1 cycle stall 281 eor r11,r11,r12 @ 1 cycle stall
279 eor r10,r4,r5 @ F_xx_xx 282 eor r10,r4,r5 @ F_xx_xx
280 mov r9,r9,ror#31 283 mov r9,r9,ror#31
281 add r6,r6,r7,ror#27 @ E+=ROR(A,27) 284 add r6,r6,r7,ror#27 @ E+=ROR(A,27)
282 eor r9,r9,r11,ror#31 285 eor r9,r9,r11,ror#31
283 str r9,[r14,#-4]! 286 str r9,[r14,#-4]!
284 » eor r10,r3,r10,ror#2» » » » » @ F_xx_xx 287 » eor» r10,r3,r10,ror#2» » » » » @ F_xx_x x
285 @ F_xx_xx 288 @ F_xx_xx
286 add r6,r6,r9 @ E+=X[i] 289 add r6,r6,r9 @ E+=X[i]
287 add r6,r6,r10 @ E+=F_20_39(B,C,D) 290 add r6,r6,r10 @ E+=F_20_39(B,C,D)
288 ldr r9,[r14,#15*4] 291 ldr r9,[r14,#15*4]
289 ldr r10,[r14,#13*4] 292 ldr r10,[r14,#13*4]
290 ldr r11,[r14,#7*4] 293 ldr r11,[r14,#7*4]
291 add r5,r8,r5,ror#2 @ E+=K_xx_xx 294 add r5,r8,r5,ror#2 @ E+=K_xx_xx
292 ldr r12,[r14,#2*4] 295 ldr r12,[r14,#2*4]
293 eor r9,r9,r10 296 eor r9,r9,r10
294 eor r11,r11,r12 @ 1 cycle stall 297 eor r11,r11,r12 @ 1 cycle stall
295 eor r10,r3,r4 @ F_xx_xx 298 eor r10,r3,r4 @ F_xx_xx
296 mov r9,r9,ror#31 299 mov r9,r9,ror#31
297 add r5,r5,r6,ror#27 @ E+=ROR(A,27) 300 add r5,r5,r6,ror#27 @ E+=ROR(A,27)
298 eor r9,r9,r11,ror#31 301 eor r9,r9,r11,ror#31
299 str r9,[r14,#-4]! 302 str r9,[r14,#-4]!
300 » eor r10,r7,r10,ror#2» » » » » @ F_xx_xx 303 » eor» r10,r7,r10,ror#2» » » » » @ F_xx_x x
301 @ F_xx_xx 304 @ F_xx_xx
302 add r5,r5,r9 @ E+=X[i] 305 add r5,r5,r9 @ E+=X[i]
303 add r5,r5,r10 @ E+=F_20_39(B,C,D) 306 add r5,r5,r10 @ E+=F_20_39(B,C,D)
304 ldr r9,[r14,#15*4] 307 ldr r9,[r14,#15*4]
305 ldr r10,[r14,#13*4] 308 ldr r10,[r14,#13*4]
306 ldr r11,[r14,#7*4] 309 ldr r11,[r14,#7*4]
307 add r4,r8,r4,ror#2 @ E+=K_xx_xx 310 add r4,r8,r4,ror#2 @ E+=K_xx_xx
308 ldr r12,[r14,#2*4] 311 ldr r12,[r14,#2*4]
309 eor r9,r9,r10 312 eor r9,r9,r10
310 eor r11,r11,r12 @ 1 cycle stall 313 eor r11,r11,r12 @ 1 cycle stall
311 eor r10,r7,r3 @ F_xx_xx 314 eor r10,r7,r3 @ F_xx_xx
312 mov r9,r9,ror#31 315 mov r9,r9,ror#31
313 add r4,r4,r5,ror#27 @ E+=ROR(A,27) 316 add r4,r4,r5,ror#27 @ E+=ROR(A,27)
314 eor r9,r9,r11,ror#31 317 eor r9,r9,r11,ror#31
315 str r9,[r14,#-4]! 318 str r9,[r14,#-4]!
316 » eor r10,r6,r10,ror#2» » » » » @ F_xx_xx 319 » eor» r10,r6,r10,ror#2» » » » » @ F_xx_x x
317 @ F_xx_xx 320 @ F_xx_xx
318 add r4,r4,r9 @ E+=X[i] 321 add r4,r4,r9 @ E+=X[i]
319 add r4,r4,r10 @ E+=F_20_39(B,C,D) 322 add r4,r4,r10 @ E+=F_20_39(B,C,D)
320 ldr r9,[r14,#15*4] 323 ldr r9,[r14,#15*4]
321 ldr r10,[r14,#13*4] 324 ldr r10,[r14,#13*4]
322 ldr r11,[r14,#7*4] 325 ldr r11,[r14,#7*4]
323 add r3,r8,r3,ror#2 @ E+=K_xx_xx 326 add r3,r8,r3,ror#2 @ E+=K_xx_xx
324 ldr r12,[r14,#2*4] 327 ldr r12,[r14,#2*4]
325 eor r9,r9,r10 328 eor r9,r9,r10
326 eor r11,r11,r12 @ 1 cycle stall 329 eor r11,r11,r12 @ 1 cycle stall
327 eor r10,r6,r7 @ F_xx_xx 330 eor r10,r6,r7 @ F_xx_xx
328 mov r9,r9,ror#31 331 mov r9,r9,ror#31
329 add r3,r3,r4,ror#27 @ E+=ROR(A,27) 332 add r3,r3,r4,ror#27 @ E+=ROR(A,27)
330 eor r9,r9,r11,ror#31 333 eor r9,r9,r11,ror#31
331 str r9,[r14,#-4]! 334 str r9,[r14,#-4]!
332 » eor r10,r5,r10,ror#2» » » » » @ F_xx_xx 335 » eor» r10,r5,r10,ror#2» » » » » @ F_xx_x x
333 @ F_xx_xx 336 @ F_xx_xx
334 add r3,r3,r9 @ E+=X[i] 337 add r3,r3,r9 @ E+=X[i]
335 add r3,r3,r10 @ E+=F_20_39(B,C,D) 338 add r3,r3,r10 @ E+=F_20_39(B,C,D)
336 teq r14,sp @ preserve carry 339 teq r14,sp @ preserve carry
337 bne .L_20_39_or_60_79 @ [+((12+3)*5+2)*4] 340 bne .L_20_39_or_60_79 @ [+((12+3)*5+2)*4]
338 bcs .L_done @ [+((12+3)*5+2)*4], spare 300 bytes 341 bcs .L_done @ [+((12+3)*5+2)*4], spare 300 bytes
339 342
340 ldr r8,.LK_40_59 343 ldr r8,.LK_40_59
341 sub sp,sp,#20*4 @ [+2] 344 sub sp,sp,#20*4 @ [+2]
342 .L_40_59: 345 .L_40_59:
343 ldr r9,[r14,#15*4] 346 ldr r9,[r14,#15*4]
344 ldr r10,[r14,#13*4] 347 ldr r10,[r14,#13*4]
345 ldr r11,[r14,#7*4] 348 ldr r11,[r14,#7*4]
346 add r7,r8,r7,ror#2 @ E+=K_xx_xx 349 add r7,r8,r7,ror#2 @ E+=K_xx_xx
347 ldr r12,[r14,#2*4] 350 ldr r12,[r14,#2*4]
348 eor r9,r9,r10 351 eor r9,r9,r10
349 eor r11,r11,r12 @ 1 cycle stall 352 eor r11,r11,r12 @ 1 cycle stall
350 eor r10,r5,r6 @ F_xx_xx 353 eor r10,r5,r6 @ F_xx_xx
351 mov r9,r9,ror#31 354 mov r9,r9,ror#31
352 add r7,r7,r3,ror#27 @ E+=ROR(A,27) 355 add r7,r7,r3,ror#27 @ E+=ROR(A,27)
353 eor r9,r9,r11,ror#31 356 eor r9,r9,r11,ror#31
354 str r9,[r14,#-4]! 357 str r9,[r14,#-4]!
355 » and r10,r4,r10,ror#2» » » » » @ F_xx_xx 358 » and» r10,r4,r10,ror#2» » » » » @ F_xx_x x
356 » and r11,r5,r6» » » » » @ F_xx_xx 359 » and» r11,r5,r6» » » » » @ F_xx_xx
357 add r7,r7,r9 @ E+=X[i] 360 add r7,r7,r9 @ E+=X[i]
358 add r7,r7,r10 @ E+=F_40_59(B,C,D) 361 add r7,r7,r10 @ E+=F_40_59(B,C,D)
359 add r7,r7,r11,ror#2 362 add r7,r7,r11,ror#2
360 ldr r9,[r14,#15*4] 363 ldr r9,[r14,#15*4]
361 ldr r10,[r14,#13*4] 364 ldr r10,[r14,#13*4]
362 ldr r11,[r14,#7*4] 365 ldr r11,[r14,#7*4]
363 add r6,r8,r6,ror#2 @ E+=K_xx_xx 366 add r6,r8,r6,ror#2 @ E+=K_xx_xx
364 ldr r12,[r14,#2*4] 367 ldr r12,[r14,#2*4]
365 eor r9,r9,r10 368 eor r9,r9,r10
366 eor r11,r11,r12 @ 1 cycle stall 369 eor r11,r11,r12 @ 1 cycle stall
367 eor r10,r4,r5 @ F_xx_xx 370 eor r10,r4,r5 @ F_xx_xx
368 mov r9,r9,ror#31 371 mov r9,r9,ror#31
369 add r6,r6,r7,ror#27 @ E+=ROR(A,27) 372 add r6,r6,r7,ror#27 @ E+=ROR(A,27)
370 eor r9,r9,r11,ror#31 373 eor r9,r9,r11,ror#31
371 str r9,[r14,#-4]! 374 str r9,[r14,#-4]!
372 » and r10,r3,r10,ror#2» » » » » @ F_xx_xx 375 » and» r10,r3,r10,ror#2» » » » » @ F_xx_x x
373 » and r11,r4,r5» » » » » @ F_xx_xx 376 » and» r11,r4,r5» » » » » @ F_xx_xx
374 add r6,r6,r9 @ E+=X[i] 377 add r6,r6,r9 @ E+=X[i]
375 add r6,r6,r10 @ E+=F_40_59(B,C,D) 378 add r6,r6,r10 @ E+=F_40_59(B,C,D)
376 add r6,r6,r11,ror#2 379 add r6,r6,r11,ror#2
377 ldr r9,[r14,#15*4] 380 ldr r9,[r14,#15*4]
378 ldr r10,[r14,#13*4] 381 ldr r10,[r14,#13*4]
379 ldr r11,[r14,#7*4] 382 ldr r11,[r14,#7*4]
380 add r5,r8,r5,ror#2 @ E+=K_xx_xx 383 add r5,r8,r5,ror#2 @ E+=K_xx_xx
381 ldr r12,[r14,#2*4] 384 ldr r12,[r14,#2*4]
382 eor r9,r9,r10 385 eor r9,r9,r10
383 eor r11,r11,r12 @ 1 cycle stall 386 eor r11,r11,r12 @ 1 cycle stall
384 eor r10,r3,r4 @ F_xx_xx 387 eor r10,r3,r4 @ F_xx_xx
385 mov r9,r9,ror#31 388 mov r9,r9,ror#31
386 add r5,r5,r6,ror#27 @ E+=ROR(A,27) 389 add r5,r5,r6,ror#27 @ E+=ROR(A,27)
387 eor r9,r9,r11,ror#31 390 eor r9,r9,r11,ror#31
388 str r9,[r14,#-4]! 391 str r9,[r14,#-4]!
389 » and r10,r7,r10,ror#2» » » » » @ F_xx_xx 392 » and» r10,r7,r10,ror#2» » » » » @ F_xx_x x
390 » and r11,r3,r4» » » » » @ F_xx_xx 393 » and» r11,r3,r4» » » » » @ F_xx_xx
391 add r5,r5,r9 @ E+=X[i] 394 add r5,r5,r9 @ E+=X[i]
392 add r5,r5,r10 @ E+=F_40_59(B,C,D) 395 add r5,r5,r10 @ E+=F_40_59(B,C,D)
393 add r5,r5,r11,ror#2 396 add r5,r5,r11,ror#2
394 ldr r9,[r14,#15*4] 397 ldr r9,[r14,#15*4]
395 ldr r10,[r14,#13*4] 398 ldr r10,[r14,#13*4]
396 ldr r11,[r14,#7*4] 399 ldr r11,[r14,#7*4]
397 add r4,r8,r4,ror#2 @ E+=K_xx_xx 400 add r4,r8,r4,ror#2 @ E+=K_xx_xx
398 ldr r12,[r14,#2*4] 401 ldr r12,[r14,#2*4]
399 eor r9,r9,r10 402 eor r9,r9,r10
400 eor r11,r11,r12 @ 1 cycle stall 403 eor r11,r11,r12 @ 1 cycle stall
401 eor r10,r7,r3 @ F_xx_xx 404 eor r10,r7,r3 @ F_xx_xx
402 mov r9,r9,ror#31 405 mov r9,r9,ror#31
403 add r4,r4,r5,ror#27 @ E+=ROR(A,27) 406 add r4,r4,r5,ror#27 @ E+=ROR(A,27)
404 eor r9,r9,r11,ror#31 407 eor r9,r9,r11,ror#31
405 str r9,[r14,#-4]! 408 str r9,[r14,#-4]!
406 » and r10,r6,r10,ror#2» » » » » @ F_xx_xx 409 » and» r10,r6,r10,ror#2» » » » » @ F_xx_x x
407 » and r11,r7,r3» » » » » @ F_xx_xx 410 » and» r11,r7,r3» » » » » @ F_xx_xx
408 add r4,r4,r9 @ E+=X[i] 411 add r4,r4,r9 @ E+=X[i]
409 add r4,r4,r10 @ E+=F_40_59(B,C,D) 412 add r4,r4,r10 @ E+=F_40_59(B,C,D)
410 add r4,r4,r11,ror#2 413 add r4,r4,r11,ror#2
411 ldr r9,[r14,#15*4] 414 ldr r9,[r14,#15*4]
412 ldr r10,[r14,#13*4] 415 ldr r10,[r14,#13*4]
413 ldr r11,[r14,#7*4] 416 ldr r11,[r14,#7*4]
414 add r3,r8,r3,ror#2 @ E+=K_xx_xx 417 add r3,r8,r3,ror#2 @ E+=K_xx_xx
415 ldr r12,[r14,#2*4] 418 ldr r12,[r14,#2*4]
416 eor r9,r9,r10 419 eor r9,r9,r10
417 eor r11,r11,r12 @ 1 cycle stall 420 eor r11,r11,r12 @ 1 cycle stall
418 eor r10,r6,r7 @ F_xx_xx 421 eor r10,r6,r7 @ F_xx_xx
419 mov r9,r9,ror#31 422 mov r9,r9,ror#31
420 add r3,r3,r4,ror#27 @ E+=ROR(A,27) 423 add r3,r3,r4,ror#27 @ E+=ROR(A,27)
421 eor r9,r9,r11,ror#31 424 eor r9,r9,r11,ror#31
422 str r9,[r14,#-4]! 425 str r9,[r14,#-4]!
423 » and r10,r5,r10,ror#2» » » » » @ F_xx_xx 426 » and» r10,r5,r10,ror#2» » » » » @ F_xx_x x
424 » and r11,r6,r7» » » » » @ F_xx_xx 427 » and» r11,r6,r7» » » » » @ F_xx_xx
425 add r3,r3,r9 @ E+=X[i] 428 add r3,r3,r9 @ E+=X[i]
426 add r3,r3,r10 @ E+=F_40_59(B,C,D) 429 add r3,r3,r10 @ E+=F_40_59(B,C,D)
427 add r3,r3,r11,ror#2 430 add r3,r3,r11,ror#2
428 teq r14,sp 431 teq r14,sp
429 bne .L_40_59 @ [+((12+5)*5+2)*4] 432 bne .L_40_59 @ [+((12+5)*5+2)*4]
430 433
431 ldr r8,.LK_60_79 434 ldr r8,.LK_60_79
432 sub sp,sp,#20*4 435 sub sp,sp,#20*4
433 cmp sp,#0 @ set carry to denote 60_79 436 cmp sp,#0 @ set carry to denote 60_79
434 b .L_20_39_or_60_79 @ [+4], spare 300 bytes 437 b .L_20_39_or_60_79 @ [+4], spare 300 bytes
435 .L_done: 438 .L_done:
436 add sp,sp,#80*4 @ "deallocate" stack frame 439 add sp,sp,#80*4 @ "deallocate" stack frame
437 ldmia r0,{r8,r9,r10,r11,r12} 440 ldmia r0,{r8,r9,r10,r11,r12}
438 add r3,r8,r3 441 add r3,r8,r3
439 add r4,r9,r4 442 add r4,r9,r4
440 add r5,r10,r5,ror#2 443 add r5,r10,r5,ror#2
441 add r6,r11,r6,ror#2 444 add r6,r11,r6,ror#2
442 add r7,r12,r7,ror#2 445 add r7,r12,r7,ror#2
443 stmia r0,{r3,r4,r5,r6,r7} 446 stmia r0,{r3,r4,r5,r6,r7}
444 teq r1,r2 447 teq r1,r2
445 bne .Lloop @ [+18], total 1307 448 bne .Lloop @ [+18], total 1307
446 449
447 #if __ARM_ARCH__>=5 450 #if __ARM_ARCH__>=5
448 » ldmia» sp!,{r4-r12,pc} 451 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
449 #else 452 #else
450 » ldmia» sp!,{r4-r12,lr} 453 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
451 tst lr,#1 454 tst lr,#1
452 moveq pc,lr @ be binary compatible with V4, yet 455 moveq pc,lr @ be binary compatible with V4, yet
453 » .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:- ) 456 .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:-)
454 #endif 457 #endif
455 .size sha1_block_data_order,.-sha1_block_data_order 458 .size sha1_block_data_order,.-sha1_block_data_order
456 459
457 .align 5 460 .align 5
458 .LK_00_19:» .word» 0x5a827999 461 .LK_00_19:.word»0x5a827999
459 .LK_20_39:» .word» 0x6ed9eba1 462 .LK_20_39:.word»0x6ed9eba1
460 .LK_40_59:» .word» 0x8f1bbcdc 463 .LK_40_59:.word»0x8f1bbcdc
461 .LK_60_79:» .word» 0xca62c1d6 464 .LK_60_79:.word»0xca62c1d6
462 #if __ARM_MAX_ARCH__>=7 465 #if __ARM_MAX_ARCH__>=7
463 .LOPENSSL_armcap: 466 .LOPENSSL_armcap:
464 .word OPENSSL_armcap_P-sha1_block_data_order 467 .word OPENSSL_armcap_P-sha1_block_data_order
465 #endif 468 #endif
466 .asciz» "SHA1 block transform for ARMv4/NEON/ARMv8, CRYPTOGAMS by <appro@openssl .org>" 469 .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
470 .align» 2
467 .align 5 471 .align 5
468 #if __ARM_MAX_ARCH__>=7 472 #if __ARM_MAX_ARCH__>=7
469 .arch armv7-a 473 .arch armv7-a
470 .fpu neon 474 .fpu neon
471 475
472 .type sha1_block_data_order_neon,%function 476 .type sha1_block_data_order_neon,%function
473 .align 4 477 .align 4
474 sha1_block_data_order_neon: 478 sha1_block_data_order_neon:
475 .LNEON: 479 .LNEON:
476 » stmdb» sp!,{r4-r12,lr} 480 » stmdb» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
477 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1 481 add r2,r1,r2,lsl#6 @ r2 to point at the end of r1
478 @ dmb @ errata #451034 on early Cortex A8 482 @ dmb @ errata #451034 on early Cortex A8
479 @ vstmdb sp!,{d8-d15} @ ABI specification says so 483 @ vstmdb sp!,{d8-d15} @ ABI specification says so
480 mov r14,sp 484 mov r14,sp
481 sub sp,sp,#64 @ alloca 485 sub sp,sp,#64 @ alloca
482 adr r8,.LK_00_19 486 adr r8,.LK_00_19
483 bic sp,sp,#15 @ align for 128-bit stores 487 bic sp,sp,#15 @ align for 128-bit stores
484 488
485 ldmia r0,{r3,r4,r5,r6,r7} @ load context 489 ldmia r0,{r3,r4,r5,r6,r7} @ load context
486 mov r12,sp 490 mov r12,sp
487 491
488 » vld1.8» » {q0-q1},[r1]!» @ handles unaligned 492 » vld1.8» {q0,q1},[r1]!» @ handles unaligned
489 » veor» » q15,q15,q15 493 » veor» q15,q15,q15
490 » vld1.8» » {q2-q3},[r1]! 494 » vld1.8» {q2,q3},[r1]!
491 » vld1.32»» {d28[],d29[]},[r8,:32]!»@ load K_00_19 495 » vld1.32»{d28[],d29[]},[r8,:32]!»@ load K_00_19
492 vrev32.8 q0,q0 @ yes, even on 496 vrev32.8 q0,q0 @ yes, even on
493 vrev32.8 q1,q1 @ big-endian... 497 vrev32.8 q1,q1 @ big-endian...
494 vrev32.8 q2,q2 498 vrev32.8 q2,q2
495 vadd.i32 q8,q0,q14 499 vadd.i32 q8,q0,q14
496 vrev32.8 q3,q3 500 vrev32.8 q3,q3
497 vadd.i32 q9,q1,q14 501 vadd.i32 q9,q1,q14
498 » vst1.32»» {q8},[r12,:128]! 502 » vst1.32»{q8},[r12,:128]!
499 vadd.i32 q10,q2,q14 503 vadd.i32 q10,q2,q14
500 » vst1.32»» {q9},[r12,:128]! 504 » vst1.32»{q9},[r12,:128]!
501 » vst1.32»» {q10},[r12,:128]! 505 » vst1.32»{q10},[r12,:128]!
502 » ldr» » r9,[sp]»» » @ big RAW stall 506 » ldr» r9,[sp]»» » @ big RAW stall
503 507
504 .Loop_neon: 508 .Loop_neon:
505 vext.8 q8,q0,q1,#8 509 vext.8 q8,q0,q1,#8
506 bic r10,r6,r4 510 bic r10,r6,r4
507 add r7,r7,r9 511 add r7,r7,r9
508 and r11,r5,r4 512 and r11,r5,r4
509 vadd.i32 q13,q3,q14 513 vadd.i32 q13,q3,q14
510 ldr r9,[sp,#4] 514 ldr r9,[sp,#4]
511 add r7,r7,r3,ror#27 515 add r7,r7,r3,ror#27
512 vext.8 q12,q3,q15,#4 516 vext.8 q12,q3,q15,#4
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after
1170 mov r6,r6,ror#2 1174 mov r6,r6,ror#2
1171 add r4,r4,r11 1175 add r4,r4,r11
1172 vadd.i32 q13,q3,q14 1176 vadd.i32 q13,q3,q14
1173 eor r10,r5,r7 1177 eor r10,r5,r7
1174 add r3,r3,r9 1178 add r3,r3,r9
1175 vst1.32 {q13},[r12,:128]! 1179 vst1.32 {q13},[r12,:128]!
1176 sub r12,r12,#64 1180 sub r12,r12,#64
1177 teq r1,r2 1181 teq r1,r2
1178 sub r8,r8,#16 1182 sub r8,r8,#16
1179 subeq r1,r1,#64 1183 subeq r1,r1,#64
1180 » vld1.8» {q0-q1},[r1]! 1184 » vld1.8» {q0,q1},[r1]!
1181 ldr r9,[sp,#4] 1185 ldr r9,[sp,#4]
1182 eor r11,r10,r6 1186 eor r11,r10,r6
1183 » vld1.8» {q2-q3},[r1]! 1187 » vld1.8» {q2,q3},[r1]!
1184 add r3,r3,r4,ror#27 1188 add r3,r3,r4,ror#27
1185 mov r5,r5,ror#2 1189 mov r5,r5,ror#2
1186 vld1.32 {d28[],d29[]},[r8,:32]! 1190 vld1.32 {d28[],d29[]},[r8,:32]!
1187 add r3,r3,r11 1191 add r3,r3,r11
1188 eor r10,r4,r6 1192 eor r10,r4,r6
1189 vrev32.8 q0,q0 1193 vrev32.8 q0,q0
1190 add r7,r7,r9 1194 add r7,r7,r9
1191 ldr r9,[sp,#8] 1195 ldr r9,[sp,#8]
1192 eor r11,r10,r5 1196 eor r11,r10,r5
1193 add r7,r7,r3,ror#27 1197 add r7,r7,r3,ror#27
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
1306 add r5,r5,r11 1310 add r5,r5,r11
1307 add r6,r6,r12 1311 add r6,r6,r12
1308 moveq sp,r14 1312 moveq sp,r14
1309 add r7,r7,r9 1313 add r7,r7,r9
1310 ldrne r9,[sp] 1314 ldrne r9,[sp]
1311 stmia r0,{r3,r4,r5,r6,r7} 1315 stmia r0,{r3,r4,r5,r6,r7}
1312 addne r12,sp,#3*16 1316 addne r12,sp,#3*16
1313 bne .Loop_neon 1317 bne .Loop_neon
1314 1318
1315 @ vldmia sp!,{d8-d15} 1319 @ vldmia sp!,{d8-d15}
1316 » ldmia» sp!,{r4-r12,pc} 1320 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
1317 .size sha1_block_data_order_neon,.-sha1_block_data_order_neon 1321 .size sha1_block_data_order_neon,.-sha1_block_data_order_neon
1318 #endif 1322 #endif
1319 #if __ARM_MAX_ARCH__>=7 1323 #if __ARM_MAX_ARCH__>=7
1320 .type sha1_block_data_order_armv8,%function 1324 .type sha1_block_data_order_armv8,%function
1321 .align 5 1325 .align 5
1322 sha1_block_data_order_armv8: 1326 sha1_block_data_order_armv8:
1323 .LARMv8: 1327 .LARMv8:
1324 » vstmdb» sp!,{d8-d15}» » @ ABI specification says so 1328 » vstmdb» sp!,{d8,d9,d10,d11,d12,d13,d14,d15}» » @ ABI specificat ion says so
1325 1329
1326 veor q1,q1,q1 1330 veor q1,q1,q1
1327 adr r3,.LK_00_19 1331 adr r3,.LK_00_19
1328 vld1.32 {q0},[r0]! 1332 vld1.32 {q0},[r0]!
1329 vld1.32 {d2[0]},[r0] 1333 vld1.32 {d2[0]},[r0]
1330 sub r0,r0,#16 1334 sub r0,r0,#16
1331 vld1.32 {d16[],d17[]},[r3,:32]! 1335 vld1.32 {d16[],d17[]},[r3,:32]!
1332 vld1.32 {d18[],d19[]},[r3,:32]! 1336 vld1.32 {d18[],d19[]},[r3,:32]!
1333 vld1.32 {d20[],d21[]},[r3,:32]! 1337 vld1.32 {d20[],d21[]},[r3,:32]!
1334 vld1.32 {d22[],d23[]},[r3,:32] 1338 vld1.32 {d22[],d23[]},[r3,:32]
1335 1339
1336 .Loop_v8: 1340 .Loop_v8:
1337 » vld1.8» » {q4-q5},[r1]! 1341 » vld1.8» {q4,q5},[r1]!
1338 » vld1.8» » {q6-q7},[r1]! 1342 » vld1.8» {q6,q7},[r1]!
1339 vrev32.8 q4,q4 1343 vrev32.8 q4,q4
1340 vrev32.8 q5,q5 1344 vrev32.8 q5,q5
1341 1345
1342 vadd.i32 q12,q8,q4 1346 vadd.i32 q12,q8,q4
1343 vrev32.8 q6,q6 1347 vrev32.8 q6,q6
1344 » vmov» » q14,q0» @ offload 1348 » vmov» q14,q0» @ offload
1345 » subs» » r2,r2,#1 1349 » subs» r2,r2,#1
1346 1350
1347 vadd.i32 q13,q8,q5 1351 vadd.i32 q13,q8,q5
1348 vrev32.8 q7,q7 1352 vrev32.8 q7,q7
1349 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 0 1353 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 0
1350 » .byte» 0x68,0x0c,0x02,0xf2» @ sha1c q0,q1,q12 1354 .byte» 0x68,0x0c,0x02,0xf2» @ sha1c q0,q1,q12
1351 vadd.i32 q12,q8,q6 1355 vadd.i32 q12,q8,q6
1352 » .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 1356 .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6
1353 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 1 1357 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 1
1354 » .byte» 0x6a,0x0c,0x06,0xf2» @ sha1c q0,q3,q13 1358 .byte» 0x6a,0x0c,0x06,0xf2» @ sha1c q0,q3,q13
1355 vadd.i32 q13,q8,q7 1359 vadd.i32 q13,q8,q7
1356 » .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 1360 .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7
1357 » .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 1361 .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7
1358 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 2 1362 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 2
1359 » .byte» 0x68,0x0c,0x04,0xf2» @ sha1c q0,q2,q12 1363 .byte» 0x68,0x0c,0x04,0xf2» @ sha1c q0,q2,q12
1360 vadd.i32 q12,q8,q4 1364 vadd.i32 q12,q8,q4
1361 » .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 1365 .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4
1362 » .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 1366 .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4
1363 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 3 1367 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 3
1364 » .byte» 0x6a,0x0c,0x06,0xf2» @ sha1c q0,q3,q13 1368 .byte» 0x6a,0x0c,0x06,0xf2» @ sha1c q0,q3,q13
1365 vadd.i32 q13,q9,q5 1369 vadd.i32 q13,q9,q5
1366 » .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 1370 .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5
1367 » .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 1371 .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5
1368 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 4 1372 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 4
1369 » .byte» 0x68,0x0c,0x04,0xf2» @ sha1c q0,q2,q12 1373 .byte» 0x68,0x0c,0x04,0xf2» @ sha1c q0,q2,q12
1370 vadd.i32 q12,q9,q6 1374 vadd.i32 q12,q9,q6
1371 » .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 1375 .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6
1372 » .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 1376 .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6
1373 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 5 1377 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 5
1374 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 1378 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13
1375 vadd.i32 q13,q9,q7 1379 vadd.i32 q13,q9,q7
1376 » .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 1380 .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7
1377 » .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 1381 .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7
1378 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 6 1382 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 6
1379 » .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 1383 .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12
1380 vadd.i32 q12,q9,q4 1384 vadd.i32 q12,q9,q4
1381 » .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 1385 .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4
1382 » .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 1386 .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4
1383 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 7 1387 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 7
1384 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 1388 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13
1385 vadd.i32 q13,q9,q5 1389 vadd.i32 q13,q9,q5
1386 » .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 1390 .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5
1387 » .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 1391 .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5
1388 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 8 1392 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 8
1389 » .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 1393 .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12
1390 vadd.i32 q12,q10,q6 1394 vadd.i32 q12,q10,q6
1391 » .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 1395 .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6
1392 » .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 1396 .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6
1393 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 9 1397 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 9
1394 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 1398 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13
1395 vadd.i32 q13,q10,q7 1399 vadd.i32 q13,q10,q7
1396 » .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 1400 .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7
1397 » .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 1401 .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7
1398 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 10 1402 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 10
1399 » .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12 1403 .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12
1400 vadd.i32 q12,q10,q4 1404 vadd.i32 q12,q10,q4
1401 » .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 1405 .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4
1402 » .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 1406 .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4
1403 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 11 1407 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 11
1404 » .byte» 0x6a,0x0c,0x26,0xf2» @ sha1m q0,q3,q13 1408 .byte» 0x6a,0x0c,0x26,0xf2» @ sha1m q0,q3,q13
1405 vadd.i32 q13,q10,q5 1409 vadd.i32 q13,q10,q5
1406 » .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 1410 .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5
1407 » .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 1411 .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5
1408 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 12 1412 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 12
1409 » .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12 1413 .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12
1410 vadd.i32 q12,q10,q6 1414 vadd.i32 q12,q10,q6
1411 » .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 1415 .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6
1412 » .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6 1416 .byte» 0x4c,0x8c,0x3a,0xf2» @ sha1su0 q4,q5,q6
1413 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 13 1417 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 13
1414 » .byte» 0x6a,0x0c,0x26,0xf2» @ sha1m q0,q3,q13 1418 .byte» 0x6a,0x0c,0x26,0xf2» @ sha1m q0,q3,q13
1415 vadd.i32 q13,q11,q7 1419 vadd.i32 q13,q11,q7
1416 » .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7 1420 .byte» 0x8e,0x83,0xba,0xf3» @ sha1su1 q4,q7
1417 » .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7 1421 .byte» 0x4e,0xac,0x3c,0xf2» @ sha1su0 q5,q6,q7
1418 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 14 1422 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 14
1419 » .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12 1423 .byte» 0x68,0x0c,0x24,0xf2» @ sha1m q0,q2,q12
1420 vadd.i32 q12,q11,q4 1424 vadd.i32 q12,q11,q4
1421 » .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4 1425 .byte» 0x88,0xa3,0xba,0xf3» @ sha1su1 q5,q4
1422 » .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4 1426 .byte» 0x48,0xcc,0x3e,0xf2» @ sha1su0 q6,q7,q4
1423 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 15 1427 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 15
1424 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 1428 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13
1425 vadd.i32 q13,q11,q5 1429 vadd.i32 q13,q11,q5
1426 » .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5 1430 .byte» 0x8a,0xc3,0xba,0xf3» @ sha1su1 q6,q5
1427 » .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5 1431 .byte» 0x4a,0xec,0x38,0xf2» @ sha1su0 q7,q4,q5
1428 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 16 1432 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 16
1429 » .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 1433 .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12
1430 vadd.i32 q12,q11,q6 1434 vadd.i32 q12,q11,q6
1431 » .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6 1435 .byte» 0x8c,0xe3,0xba,0xf3» @ sha1su1 q7,q6
1432 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 17 1436 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 17
1433 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 1437 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13
1434 vadd.i32 q13,q11,q7 1438 vadd.i32 q13,q11,q7
1435 1439
1436 » .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 18 1440 .byte» 0xc0,0x62,0xb9,0xf3» @ sha1h q3,q0» » @ 18
1437 » .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12 1441 .byte» 0x68,0x0c,0x14,0xf2» @ sha1p q0,q2,q12
1438 1442
1439 » .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 19 1443 .byte» 0xc0,0x42,0xb9,0xf3» @ sha1h q2,q0» » @ 19
1440 » .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13 1444 .byte» 0x6a,0x0c,0x16,0xf2» @ sha1p q0,q3,q13
1441 1445
1442 vadd.i32 q1,q1,q2 1446 vadd.i32 q1,q1,q2
1443 vadd.i32 q0,q0,q14 1447 vadd.i32 q0,q0,q14
1444 » bne» » .Loop_v8 1448 » bne» .Loop_v8
1445 1449
1446 » vst1.32»» {q0},[r0]! 1450 » vst1.32»{q0},[r0]!
1447 » vst1.32»» {d2[0]},[r0] 1451 » vst1.32»{d2[0]},[r0]
1448 1452
1449 » vldmia» sp!,{d8-d15} 1453 » vldmia» sp!,{d8,d9,d10,d11,d12,d13,d14,d15}
1450 bx lr @ bx lr 1454 bx lr @ bx lr
1451 .size sha1_block_data_order_armv8,.-sha1_block_data_order_armv8 1455 .size sha1_block_data_order_armv8,.-sha1_block_data_order_armv8
1452 #endif 1456 #endif
1453 #if __ARM_MAX_ARCH__>=7 1457 #if __ARM_MAX_ARCH__>=7
1454 .comm OPENSSL_armcap_P,4,4 1458 .comm OPENSSL_armcap_P,4,4
1455 .hidden OPENSSL_armcap_P 1459 .hidden OPENSSL_armcap_P
1456 #endif 1460 #endif
OLDNEW
« no previous file with comments | « third_party/boringssl/linux-arm/crypto/modes/ghash-armv4.S ('k') | third_party/boringssl/linux-arm/crypto/sha/sha256-armv4.S » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698