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

Side by Side Diff: openssl/crypto/sha/asm/sha256-armv4.S

Issue 2072073002: Delete bundled copy of OpenSSL and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/openssl@master
Patch Set: Delete bundled copy of OpenSSL and replace with README. Created 4 years, 6 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
« no previous file with comments | « openssl/crypto/sha/asm/sha256-586-mac.S ('k') | openssl/crypto/sha/asm/sha256-armv4.pl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #include "arm_arch.h"
2
3 .text
4 .code 32
5
6 .type K256,%object
7 .align 5
8 K256:
9 .word 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
10 .word 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
11 .word 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
12 .word 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
13 .word 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
14 .word 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
15 .word 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
16 .word 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
17 .word 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
18 .word 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
19 .word 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
20 .word 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
21 .word 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
22 .word 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
23 .word 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
24 .word 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
25 .size K256,.-K256
26
27 .global sha256_block_data_order
28 .type sha256_block_data_order,%function
29 sha256_block_data_order:
30 sub r3,pc,#8 @ sha256_block_data_order
31 add r2,r1,r2,lsl#6 @ len to point at the end of inp
32 stmdb sp!,{r0,r1,r2,r4-r11,lr}
33 ldmia r0,{r4,r5,r6,r7,r8,r9,r10,r11}
34 sub r14,r3,#256 @ K256
35 sub sp,sp,#16*4 @ alloca(X[16])
36 .Loop:
37 #if __ARM_ARCH__>=7
38 ldr r3,[r1],#4
39 #else
40 ldrb r3,[r1,#3] @ 0
41 ldrb r12,[r1,#2]
42 ldrb r2,[r1,#1]
43 ldrb r0,[r1],#4
44 orr r3,r3,r12,lsl#8
45 orr r3,r3,r2,lsl#16
46 orr r3,r3,r0,lsl#24
47 #endif
48 mov r0,r8,ror#6
49 ldr r12,[r14],#4 @ *K256++
50 eor r0,r0,r8,ror#11
51 eor r2,r9,r10
52 #if 0>=16
53 add r3,r3,r1 @ from BODY_16_xx
54 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
55 rev r3,r3
56 #endif
57 #if 0==15
58 str r1,[sp,#17*4] @ leave room for r1
59 #endif
60 eor r0,r0,r8,ror#25 @ Sigma1(e)
61 and r2,r2,r8
62 str r3,[sp,#0*4]
63 add r3,r3,r0
64 eor r2,r2,r10 @ Ch(e,f,g)
65 add r3,r3,r11
66 mov r11,r4,ror#2
67 add r3,r3,r2
68 eor r11,r11,r4,ror#13
69 add r3,r3,r12
70 eor r11,r11,r4,ror#22 @ Sigma0(a)
71 #if 0>=15
72 ldr r1,[sp,#2*4] @ from BODY_16_xx
73 #endif
74 orr r0,r4,r5
75 and r2,r4,r5
76 and r0,r0,r6
77 add r11,r11,r3
78 orr r0,r0,r2 @ Maj(a,b,c)
79 add r7,r7,r3
80 add r11,r11,r0
81 #if __ARM_ARCH__>=7
82 ldr r3,[r1],#4
83 #else
84 ldrb r3,[r1,#3] @ 1
85 ldrb r12,[r1,#2]
86 ldrb r2,[r1,#1]
87 ldrb r0,[r1],#4
88 orr r3,r3,r12,lsl#8
89 orr r3,r3,r2,lsl#16
90 orr r3,r3,r0,lsl#24
91 #endif
92 mov r0,r7,ror#6
93 ldr r12,[r14],#4 @ *K256++
94 eor r0,r0,r7,ror#11
95 eor r2,r8,r9
96 #if 1>=16
97 add r3,r3,r1 @ from BODY_16_xx
98 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
99 rev r3,r3
100 #endif
101 #if 1==15
102 str r1,[sp,#17*4] @ leave room for r1
103 #endif
104 eor r0,r0,r7,ror#25 @ Sigma1(e)
105 and r2,r2,r7
106 str r3,[sp,#1*4]
107 add r3,r3,r0
108 eor r2,r2,r9 @ Ch(e,f,g)
109 add r3,r3,r10
110 mov r10,r11,ror#2
111 add r3,r3,r2
112 eor r10,r10,r11,ror#13
113 add r3,r3,r12
114 eor r10,r10,r11,ror#22 @ Sigma0(a)
115 #if 1>=15
116 ldr r1,[sp,#3*4] @ from BODY_16_xx
117 #endif
118 orr r0,r11,r4
119 and r2,r11,r4
120 and r0,r0,r5
121 add r10,r10,r3
122 orr r0,r0,r2 @ Maj(a,b,c)
123 add r6,r6,r3
124 add r10,r10,r0
125 #if __ARM_ARCH__>=7
126 ldr r3,[r1],#4
127 #else
128 ldrb r3,[r1,#3] @ 2
129 ldrb r12,[r1,#2]
130 ldrb r2,[r1,#1]
131 ldrb r0,[r1],#4
132 orr r3,r3,r12,lsl#8
133 orr r3,r3,r2,lsl#16
134 orr r3,r3,r0,lsl#24
135 #endif
136 mov r0,r6,ror#6
137 ldr r12,[r14],#4 @ *K256++
138 eor r0,r0,r6,ror#11
139 eor r2,r7,r8
140 #if 2>=16
141 add r3,r3,r1 @ from BODY_16_xx
142 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
143 rev r3,r3
144 #endif
145 #if 2==15
146 str r1,[sp,#17*4] @ leave room for r1
147 #endif
148 eor r0,r0,r6,ror#25 @ Sigma1(e)
149 and r2,r2,r6
150 str r3,[sp,#2*4]
151 add r3,r3,r0
152 eor r2,r2,r8 @ Ch(e,f,g)
153 add r3,r3,r9
154 mov r9,r10,ror#2
155 add r3,r3,r2
156 eor r9,r9,r10,ror#13
157 add r3,r3,r12
158 eor r9,r9,r10,ror#22 @ Sigma0(a)
159 #if 2>=15
160 ldr r1,[sp,#4*4] @ from BODY_16_xx
161 #endif
162 orr r0,r10,r11
163 and r2,r10,r11
164 and r0,r0,r4
165 add r9,r9,r3
166 orr r0,r0,r2 @ Maj(a,b,c)
167 add r5,r5,r3
168 add r9,r9,r0
169 #if __ARM_ARCH__>=7
170 ldr r3,[r1],#4
171 #else
172 ldrb r3,[r1,#3] @ 3
173 ldrb r12,[r1,#2]
174 ldrb r2,[r1,#1]
175 ldrb r0,[r1],#4
176 orr r3,r3,r12,lsl#8
177 orr r3,r3,r2,lsl#16
178 orr r3,r3,r0,lsl#24
179 #endif
180 mov r0,r5,ror#6
181 ldr r12,[r14],#4 @ *K256++
182 eor r0,r0,r5,ror#11
183 eor r2,r6,r7
184 #if 3>=16
185 add r3,r3,r1 @ from BODY_16_xx
186 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
187 rev r3,r3
188 #endif
189 #if 3==15
190 str r1,[sp,#17*4] @ leave room for r1
191 #endif
192 eor r0,r0,r5,ror#25 @ Sigma1(e)
193 and r2,r2,r5
194 str r3,[sp,#3*4]
195 add r3,r3,r0
196 eor r2,r2,r7 @ Ch(e,f,g)
197 add r3,r3,r8
198 mov r8,r9,ror#2
199 add r3,r3,r2
200 eor r8,r8,r9,ror#13
201 add r3,r3,r12
202 eor r8,r8,r9,ror#22 @ Sigma0(a)
203 #if 3>=15
204 ldr r1,[sp,#5*4] @ from BODY_16_xx
205 #endif
206 orr r0,r9,r10
207 and r2,r9,r10
208 and r0,r0,r11
209 add r8,r8,r3
210 orr r0,r0,r2 @ Maj(a,b,c)
211 add r4,r4,r3
212 add r8,r8,r0
213 #if __ARM_ARCH__>=7
214 ldr r3,[r1],#4
215 #else
216 ldrb r3,[r1,#3] @ 4
217 ldrb r12,[r1,#2]
218 ldrb r2,[r1,#1]
219 ldrb r0,[r1],#4
220 orr r3,r3,r12,lsl#8
221 orr r3,r3,r2,lsl#16
222 orr r3,r3,r0,lsl#24
223 #endif
224 mov r0,r4,ror#6
225 ldr r12,[r14],#4 @ *K256++
226 eor r0,r0,r4,ror#11
227 eor r2,r5,r6
228 #if 4>=16
229 add r3,r3,r1 @ from BODY_16_xx
230 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
231 rev r3,r3
232 #endif
233 #if 4==15
234 str r1,[sp,#17*4] @ leave room for r1
235 #endif
236 eor r0,r0,r4,ror#25 @ Sigma1(e)
237 and r2,r2,r4
238 str r3,[sp,#4*4]
239 add r3,r3,r0
240 eor r2,r2,r6 @ Ch(e,f,g)
241 add r3,r3,r7
242 mov r7,r8,ror#2
243 add r3,r3,r2
244 eor r7,r7,r8,ror#13
245 add r3,r3,r12
246 eor r7,r7,r8,ror#22 @ Sigma0(a)
247 #if 4>=15
248 ldr r1,[sp,#6*4] @ from BODY_16_xx
249 #endif
250 orr r0,r8,r9
251 and r2,r8,r9
252 and r0,r0,r10
253 add r7,r7,r3
254 orr r0,r0,r2 @ Maj(a,b,c)
255 add r11,r11,r3
256 add r7,r7,r0
257 #if __ARM_ARCH__>=7
258 ldr r3,[r1],#4
259 #else
260 ldrb r3,[r1,#3] @ 5
261 ldrb r12,[r1,#2]
262 ldrb r2,[r1,#1]
263 ldrb r0,[r1],#4
264 orr r3,r3,r12,lsl#8
265 orr r3,r3,r2,lsl#16
266 orr r3,r3,r0,lsl#24
267 #endif
268 mov r0,r11,ror#6
269 ldr r12,[r14],#4 @ *K256++
270 eor r0,r0,r11,ror#11
271 eor r2,r4,r5
272 #if 5>=16
273 add r3,r3,r1 @ from BODY_16_xx
274 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
275 rev r3,r3
276 #endif
277 #if 5==15
278 str r1,[sp,#17*4] @ leave room for r1
279 #endif
280 eor r0,r0,r11,ror#25 @ Sigma1(e)
281 and r2,r2,r11
282 str r3,[sp,#5*4]
283 add r3,r3,r0
284 eor r2,r2,r5 @ Ch(e,f,g)
285 add r3,r3,r6
286 mov r6,r7,ror#2
287 add r3,r3,r2
288 eor r6,r6,r7,ror#13
289 add r3,r3,r12
290 eor r6,r6,r7,ror#22 @ Sigma0(a)
291 #if 5>=15
292 ldr r1,[sp,#7*4] @ from BODY_16_xx
293 #endif
294 orr r0,r7,r8
295 and r2,r7,r8
296 and r0,r0,r9
297 add r6,r6,r3
298 orr r0,r0,r2 @ Maj(a,b,c)
299 add r10,r10,r3
300 add r6,r6,r0
301 #if __ARM_ARCH__>=7
302 ldr r3,[r1],#4
303 #else
304 ldrb r3,[r1,#3] @ 6
305 ldrb r12,[r1,#2]
306 ldrb r2,[r1,#1]
307 ldrb r0,[r1],#4
308 orr r3,r3,r12,lsl#8
309 orr r3,r3,r2,lsl#16
310 orr r3,r3,r0,lsl#24
311 #endif
312 mov r0,r10,ror#6
313 ldr r12,[r14],#4 @ *K256++
314 eor r0,r0,r10,ror#11
315 eor r2,r11,r4
316 #if 6>=16
317 add r3,r3,r1 @ from BODY_16_xx
318 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
319 rev r3,r3
320 #endif
321 #if 6==15
322 str r1,[sp,#17*4] @ leave room for r1
323 #endif
324 eor r0,r0,r10,ror#25 @ Sigma1(e)
325 and r2,r2,r10
326 str r3,[sp,#6*4]
327 add r3,r3,r0
328 eor r2,r2,r4 @ Ch(e,f,g)
329 add r3,r3,r5
330 mov r5,r6,ror#2
331 add r3,r3,r2
332 eor r5,r5,r6,ror#13
333 add r3,r3,r12
334 eor r5,r5,r6,ror#22 @ Sigma0(a)
335 #if 6>=15
336 ldr r1,[sp,#8*4] @ from BODY_16_xx
337 #endif
338 orr r0,r6,r7
339 and r2,r6,r7
340 and r0,r0,r8
341 add r5,r5,r3
342 orr r0,r0,r2 @ Maj(a,b,c)
343 add r9,r9,r3
344 add r5,r5,r0
345 #if __ARM_ARCH__>=7
346 ldr r3,[r1],#4
347 #else
348 ldrb r3,[r1,#3] @ 7
349 ldrb r12,[r1,#2]
350 ldrb r2,[r1,#1]
351 ldrb r0,[r1],#4
352 orr r3,r3,r12,lsl#8
353 orr r3,r3,r2,lsl#16
354 orr r3,r3,r0,lsl#24
355 #endif
356 mov r0,r9,ror#6
357 ldr r12,[r14],#4 @ *K256++
358 eor r0,r0,r9,ror#11
359 eor r2,r10,r11
360 #if 7>=16
361 add r3,r3,r1 @ from BODY_16_xx
362 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
363 rev r3,r3
364 #endif
365 #if 7==15
366 str r1,[sp,#17*4] @ leave room for r1
367 #endif
368 eor r0,r0,r9,ror#25 @ Sigma1(e)
369 and r2,r2,r9
370 str r3,[sp,#7*4]
371 add r3,r3,r0
372 eor r2,r2,r11 @ Ch(e,f,g)
373 add r3,r3,r4
374 mov r4,r5,ror#2
375 add r3,r3,r2
376 eor r4,r4,r5,ror#13
377 add r3,r3,r12
378 eor r4,r4,r5,ror#22 @ Sigma0(a)
379 #if 7>=15
380 ldr r1,[sp,#9*4] @ from BODY_16_xx
381 #endif
382 orr r0,r5,r6
383 and r2,r5,r6
384 and r0,r0,r7
385 add r4,r4,r3
386 orr r0,r0,r2 @ Maj(a,b,c)
387 add r8,r8,r3
388 add r4,r4,r0
389 #if __ARM_ARCH__>=7
390 ldr r3,[r1],#4
391 #else
392 ldrb r3,[r1,#3] @ 8
393 ldrb r12,[r1,#2]
394 ldrb r2,[r1,#1]
395 ldrb r0,[r1],#4
396 orr r3,r3,r12,lsl#8
397 orr r3,r3,r2,lsl#16
398 orr r3,r3,r0,lsl#24
399 #endif
400 mov r0,r8,ror#6
401 ldr r12,[r14],#4 @ *K256++
402 eor r0,r0,r8,ror#11
403 eor r2,r9,r10
404 #if 8>=16
405 add r3,r3,r1 @ from BODY_16_xx
406 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
407 rev r3,r3
408 #endif
409 #if 8==15
410 str r1,[sp,#17*4] @ leave room for r1
411 #endif
412 eor r0,r0,r8,ror#25 @ Sigma1(e)
413 and r2,r2,r8
414 str r3,[sp,#8*4]
415 add r3,r3,r0
416 eor r2,r2,r10 @ Ch(e,f,g)
417 add r3,r3,r11
418 mov r11,r4,ror#2
419 add r3,r3,r2
420 eor r11,r11,r4,ror#13
421 add r3,r3,r12
422 eor r11,r11,r4,ror#22 @ Sigma0(a)
423 #if 8>=15
424 ldr r1,[sp,#10*4] @ from BODY_16_xx
425 #endif
426 orr r0,r4,r5
427 and r2,r4,r5
428 and r0,r0,r6
429 add r11,r11,r3
430 orr r0,r0,r2 @ Maj(a,b,c)
431 add r7,r7,r3
432 add r11,r11,r0
433 #if __ARM_ARCH__>=7
434 ldr r3,[r1],#4
435 #else
436 ldrb r3,[r1,#3] @ 9
437 ldrb r12,[r1,#2]
438 ldrb r2,[r1,#1]
439 ldrb r0,[r1],#4
440 orr r3,r3,r12,lsl#8
441 orr r3,r3,r2,lsl#16
442 orr r3,r3,r0,lsl#24
443 #endif
444 mov r0,r7,ror#6
445 ldr r12,[r14],#4 @ *K256++
446 eor r0,r0,r7,ror#11
447 eor r2,r8,r9
448 #if 9>=16
449 add r3,r3,r1 @ from BODY_16_xx
450 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
451 rev r3,r3
452 #endif
453 #if 9==15
454 str r1,[sp,#17*4] @ leave room for r1
455 #endif
456 eor r0,r0,r7,ror#25 @ Sigma1(e)
457 and r2,r2,r7
458 str r3,[sp,#9*4]
459 add r3,r3,r0
460 eor r2,r2,r9 @ Ch(e,f,g)
461 add r3,r3,r10
462 mov r10,r11,ror#2
463 add r3,r3,r2
464 eor r10,r10,r11,ror#13
465 add r3,r3,r12
466 eor r10,r10,r11,ror#22 @ Sigma0(a)
467 #if 9>=15
468 ldr r1,[sp,#11*4] @ from BODY_16_xx
469 #endif
470 orr r0,r11,r4
471 and r2,r11,r4
472 and r0,r0,r5
473 add r10,r10,r3
474 orr r0,r0,r2 @ Maj(a,b,c)
475 add r6,r6,r3
476 add r10,r10,r0
477 #if __ARM_ARCH__>=7
478 ldr r3,[r1],#4
479 #else
480 ldrb r3,[r1,#3] @ 10
481 ldrb r12,[r1,#2]
482 ldrb r2,[r1,#1]
483 ldrb r0,[r1],#4
484 orr r3,r3,r12,lsl#8
485 orr r3,r3,r2,lsl#16
486 orr r3,r3,r0,lsl#24
487 #endif
488 mov r0,r6,ror#6
489 ldr r12,[r14],#4 @ *K256++
490 eor r0,r0,r6,ror#11
491 eor r2,r7,r8
492 #if 10>=16
493 add r3,r3,r1 @ from BODY_16_xx
494 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
495 rev r3,r3
496 #endif
497 #if 10==15
498 str r1,[sp,#17*4] @ leave room for r1
499 #endif
500 eor r0,r0,r6,ror#25 @ Sigma1(e)
501 and r2,r2,r6
502 str r3,[sp,#10*4]
503 add r3,r3,r0
504 eor r2,r2,r8 @ Ch(e,f,g)
505 add r3,r3,r9
506 mov r9,r10,ror#2
507 add r3,r3,r2
508 eor r9,r9,r10,ror#13
509 add r3,r3,r12
510 eor r9,r9,r10,ror#22 @ Sigma0(a)
511 #if 10>=15
512 ldr r1,[sp,#12*4] @ from BODY_16_xx
513 #endif
514 orr r0,r10,r11
515 and r2,r10,r11
516 and r0,r0,r4
517 add r9,r9,r3
518 orr r0,r0,r2 @ Maj(a,b,c)
519 add r5,r5,r3
520 add r9,r9,r0
521 #if __ARM_ARCH__>=7
522 ldr r3,[r1],#4
523 #else
524 ldrb r3,[r1,#3] @ 11
525 ldrb r12,[r1,#2]
526 ldrb r2,[r1,#1]
527 ldrb r0,[r1],#4
528 orr r3,r3,r12,lsl#8
529 orr r3,r3,r2,lsl#16
530 orr r3,r3,r0,lsl#24
531 #endif
532 mov r0,r5,ror#6
533 ldr r12,[r14],#4 @ *K256++
534 eor r0,r0,r5,ror#11
535 eor r2,r6,r7
536 #if 11>=16
537 add r3,r3,r1 @ from BODY_16_xx
538 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
539 rev r3,r3
540 #endif
541 #if 11==15
542 str r1,[sp,#17*4] @ leave room for r1
543 #endif
544 eor r0,r0,r5,ror#25 @ Sigma1(e)
545 and r2,r2,r5
546 str r3,[sp,#11*4]
547 add r3,r3,r0
548 eor r2,r2,r7 @ Ch(e,f,g)
549 add r3,r3,r8
550 mov r8,r9,ror#2
551 add r3,r3,r2
552 eor r8,r8,r9,ror#13
553 add r3,r3,r12
554 eor r8,r8,r9,ror#22 @ Sigma0(a)
555 #if 11>=15
556 ldr r1,[sp,#13*4] @ from BODY_16_xx
557 #endif
558 orr r0,r9,r10
559 and r2,r9,r10
560 and r0,r0,r11
561 add r8,r8,r3
562 orr r0,r0,r2 @ Maj(a,b,c)
563 add r4,r4,r3
564 add r8,r8,r0
565 #if __ARM_ARCH__>=7
566 ldr r3,[r1],#4
567 #else
568 ldrb r3,[r1,#3] @ 12
569 ldrb r12,[r1,#2]
570 ldrb r2,[r1,#1]
571 ldrb r0,[r1],#4
572 orr r3,r3,r12,lsl#8
573 orr r3,r3,r2,lsl#16
574 orr r3,r3,r0,lsl#24
575 #endif
576 mov r0,r4,ror#6
577 ldr r12,[r14],#4 @ *K256++
578 eor r0,r0,r4,ror#11
579 eor r2,r5,r6
580 #if 12>=16
581 add r3,r3,r1 @ from BODY_16_xx
582 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
583 rev r3,r3
584 #endif
585 #if 12==15
586 str r1,[sp,#17*4] @ leave room for r1
587 #endif
588 eor r0,r0,r4,ror#25 @ Sigma1(e)
589 and r2,r2,r4
590 str r3,[sp,#12*4]
591 add r3,r3,r0
592 eor r2,r2,r6 @ Ch(e,f,g)
593 add r3,r3,r7
594 mov r7,r8,ror#2
595 add r3,r3,r2
596 eor r7,r7,r8,ror#13
597 add r3,r3,r12
598 eor r7,r7,r8,ror#22 @ Sigma0(a)
599 #if 12>=15
600 ldr r1,[sp,#14*4] @ from BODY_16_xx
601 #endif
602 orr r0,r8,r9
603 and r2,r8,r9
604 and r0,r0,r10
605 add r7,r7,r3
606 orr r0,r0,r2 @ Maj(a,b,c)
607 add r11,r11,r3
608 add r7,r7,r0
609 #if __ARM_ARCH__>=7
610 ldr r3,[r1],#4
611 #else
612 ldrb r3,[r1,#3] @ 13
613 ldrb r12,[r1,#2]
614 ldrb r2,[r1,#1]
615 ldrb r0,[r1],#4
616 orr r3,r3,r12,lsl#8
617 orr r3,r3,r2,lsl#16
618 orr r3,r3,r0,lsl#24
619 #endif
620 mov r0,r11,ror#6
621 ldr r12,[r14],#4 @ *K256++
622 eor r0,r0,r11,ror#11
623 eor r2,r4,r5
624 #if 13>=16
625 add r3,r3,r1 @ from BODY_16_xx
626 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
627 rev r3,r3
628 #endif
629 #if 13==15
630 str r1,[sp,#17*4] @ leave room for r1
631 #endif
632 eor r0,r0,r11,ror#25 @ Sigma1(e)
633 and r2,r2,r11
634 str r3,[sp,#13*4]
635 add r3,r3,r0
636 eor r2,r2,r5 @ Ch(e,f,g)
637 add r3,r3,r6
638 mov r6,r7,ror#2
639 add r3,r3,r2
640 eor r6,r6,r7,ror#13
641 add r3,r3,r12
642 eor r6,r6,r7,ror#22 @ Sigma0(a)
643 #if 13>=15
644 ldr r1,[sp,#15*4] @ from BODY_16_xx
645 #endif
646 orr r0,r7,r8
647 and r2,r7,r8
648 and r0,r0,r9
649 add r6,r6,r3
650 orr r0,r0,r2 @ Maj(a,b,c)
651 add r10,r10,r3
652 add r6,r6,r0
653 #if __ARM_ARCH__>=7
654 ldr r3,[r1],#4
655 #else
656 ldrb r3,[r1,#3] @ 14
657 ldrb r12,[r1,#2]
658 ldrb r2,[r1,#1]
659 ldrb r0,[r1],#4
660 orr r3,r3,r12,lsl#8
661 orr r3,r3,r2,lsl#16
662 orr r3,r3,r0,lsl#24
663 #endif
664 mov r0,r10,ror#6
665 ldr r12,[r14],#4 @ *K256++
666 eor r0,r0,r10,ror#11
667 eor r2,r11,r4
668 #if 14>=16
669 add r3,r3,r1 @ from BODY_16_xx
670 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
671 rev r3,r3
672 #endif
673 #if 14==15
674 str r1,[sp,#17*4] @ leave room for r1
675 #endif
676 eor r0,r0,r10,ror#25 @ Sigma1(e)
677 and r2,r2,r10
678 str r3,[sp,#14*4]
679 add r3,r3,r0
680 eor r2,r2,r4 @ Ch(e,f,g)
681 add r3,r3,r5
682 mov r5,r6,ror#2
683 add r3,r3,r2
684 eor r5,r5,r6,ror#13
685 add r3,r3,r12
686 eor r5,r5,r6,ror#22 @ Sigma0(a)
687 #if 14>=15
688 ldr r1,[sp,#0*4] @ from BODY_16_xx
689 #endif
690 orr r0,r6,r7
691 and r2,r6,r7
692 and r0,r0,r8
693 add r5,r5,r3
694 orr r0,r0,r2 @ Maj(a,b,c)
695 add r9,r9,r3
696 add r5,r5,r0
697 #if __ARM_ARCH__>=7
698 ldr r3,[r1],#4
699 #else
700 ldrb r3,[r1,#3] @ 15
701 ldrb r12,[r1,#2]
702 ldrb r2,[r1,#1]
703 ldrb r0,[r1],#4
704 orr r3,r3,r12,lsl#8
705 orr r3,r3,r2,lsl#16
706 orr r3,r3,r0,lsl#24
707 #endif
708 mov r0,r9,ror#6
709 ldr r12,[r14],#4 @ *K256++
710 eor r0,r0,r9,ror#11
711 eor r2,r10,r11
712 #if 15>=16
713 add r3,r3,r1 @ from BODY_16_xx
714 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
715 rev r3,r3
716 #endif
717 #if 15==15
718 str r1,[sp,#17*4] @ leave room for r1
719 #endif
720 eor r0,r0,r9,ror#25 @ Sigma1(e)
721 and r2,r2,r9
722 str r3,[sp,#15*4]
723 add r3,r3,r0
724 eor r2,r2,r11 @ Ch(e,f,g)
725 add r3,r3,r4
726 mov r4,r5,ror#2
727 add r3,r3,r2
728 eor r4,r4,r5,ror#13
729 add r3,r3,r12
730 eor r4,r4,r5,ror#22 @ Sigma0(a)
731 #if 15>=15
732 ldr r1,[sp,#1*4] @ from BODY_16_xx
733 #endif
734 orr r0,r5,r6
735 and r2,r5,r6
736 and r0,r0,r7
737 add r4,r4,r3
738 orr r0,r0,r2 @ Maj(a,b,c)
739 add r8,r8,r3
740 add r4,r4,r0
741 .Lrounds_16_xx:
742 @ ldr r1,[sp,#1*4] @ 16
743 ldr r12,[sp,#14*4]
744 mov r0,r1,ror#7
745 ldr r3,[sp,#0*4]
746 eor r0,r0,r1,ror#18
747 ldr r2,[sp,#9*4]
748 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
749 mov r1,r12,ror#17
750 add r3,r3,r0
751 eor r1,r1,r12,ror#19
752 add r3,r3,r2
753 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
754 @ add r3,r3,r1
755 mov r0,r8,ror#6
756 ldr r12,[r14],#4 @ *K256++
757 eor r0,r0,r8,ror#11
758 eor r2,r9,r10
759 #if 16>=16
760 add r3,r3,r1 @ from BODY_16_xx
761 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
762 rev r3,r3
763 #endif
764 #if 16==15
765 str r1,[sp,#17*4] @ leave room for r1
766 #endif
767 eor r0,r0,r8,ror#25 @ Sigma1(e)
768 and r2,r2,r8
769 str r3,[sp,#0*4]
770 add r3,r3,r0
771 eor r2,r2,r10 @ Ch(e,f,g)
772 add r3,r3,r11
773 mov r11,r4,ror#2
774 add r3,r3,r2
775 eor r11,r11,r4,ror#13
776 add r3,r3,r12
777 eor r11,r11,r4,ror#22 @ Sigma0(a)
778 #if 16>=15
779 ldr r1,[sp,#2*4] @ from BODY_16_xx
780 #endif
781 orr r0,r4,r5
782 and r2,r4,r5
783 and r0,r0,r6
784 add r11,r11,r3
785 orr r0,r0,r2 @ Maj(a,b,c)
786 add r7,r7,r3
787 add r11,r11,r0
788 @ ldr r1,[sp,#2*4] @ 17
789 ldr r12,[sp,#15*4]
790 mov r0,r1,ror#7
791 ldr r3,[sp,#1*4]
792 eor r0,r0,r1,ror#18
793 ldr r2,[sp,#10*4]
794 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
795 mov r1,r12,ror#17
796 add r3,r3,r0
797 eor r1,r1,r12,ror#19
798 add r3,r3,r2
799 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
800 @ add r3,r3,r1
801 mov r0,r7,ror#6
802 ldr r12,[r14],#4 @ *K256++
803 eor r0,r0,r7,ror#11
804 eor r2,r8,r9
805 #if 17>=16
806 add r3,r3,r1 @ from BODY_16_xx
807 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
808 rev r3,r3
809 #endif
810 #if 17==15
811 str r1,[sp,#17*4] @ leave room for r1
812 #endif
813 eor r0,r0,r7,ror#25 @ Sigma1(e)
814 and r2,r2,r7
815 str r3,[sp,#1*4]
816 add r3,r3,r0
817 eor r2,r2,r9 @ Ch(e,f,g)
818 add r3,r3,r10
819 mov r10,r11,ror#2
820 add r3,r3,r2
821 eor r10,r10,r11,ror#13
822 add r3,r3,r12
823 eor r10,r10,r11,ror#22 @ Sigma0(a)
824 #if 17>=15
825 ldr r1,[sp,#3*4] @ from BODY_16_xx
826 #endif
827 orr r0,r11,r4
828 and r2,r11,r4
829 and r0,r0,r5
830 add r10,r10,r3
831 orr r0,r0,r2 @ Maj(a,b,c)
832 add r6,r6,r3
833 add r10,r10,r0
834 @ ldr r1,[sp,#3*4] @ 18
835 ldr r12,[sp,#0*4]
836 mov r0,r1,ror#7
837 ldr r3,[sp,#2*4]
838 eor r0,r0,r1,ror#18
839 ldr r2,[sp,#11*4]
840 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
841 mov r1,r12,ror#17
842 add r3,r3,r0
843 eor r1,r1,r12,ror#19
844 add r3,r3,r2
845 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
846 @ add r3,r3,r1
847 mov r0,r6,ror#6
848 ldr r12,[r14],#4 @ *K256++
849 eor r0,r0,r6,ror#11
850 eor r2,r7,r8
851 #if 18>=16
852 add r3,r3,r1 @ from BODY_16_xx
853 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
854 rev r3,r3
855 #endif
856 #if 18==15
857 str r1,[sp,#17*4] @ leave room for r1
858 #endif
859 eor r0,r0,r6,ror#25 @ Sigma1(e)
860 and r2,r2,r6
861 str r3,[sp,#2*4]
862 add r3,r3,r0
863 eor r2,r2,r8 @ Ch(e,f,g)
864 add r3,r3,r9
865 mov r9,r10,ror#2
866 add r3,r3,r2
867 eor r9,r9,r10,ror#13
868 add r3,r3,r12
869 eor r9,r9,r10,ror#22 @ Sigma0(a)
870 #if 18>=15
871 ldr r1,[sp,#4*4] @ from BODY_16_xx
872 #endif
873 orr r0,r10,r11
874 and r2,r10,r11
875 and r0,r0,r4
876 add r9,r9,r3
877 orr r0,r0,r2 @ Maj(a,b,c)
878 add r5,r5,r3
879 add r9,r9,r0
880 @ ldr r1,[sp,#4*4] @ 19
881 ldr r12,[sp,#1*4]
882 mov r0,r1,ror#7
883 ldr r3,[sp,#3*4]
884 eor r0,r0,r1,ror#18
885 ldr r2,[sp,#12*4]
886 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
887 mov r1,r12,ror#17
888 add r3,r3,r0
889 eor r1,r1,r12,ror#19
890 add r3,r3,r2
891 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
892 @ add r3,r3,r1
893 mov r0,r5,ror#6
894 ldr r12,[r14],#4 @ *K256++
895 eor r0,r0,r5,ror#11
896 eor r2,r6,r7
897 #if 19>=16
898 add r3,r3,r1 @ from BODY_16_xx
899 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
900 rev r3,r3
901 #endif
902 #if 19==15
903 str r1,[sp,#17*4] @ leave room for r1
904 #endif
905 eor r0,r0,r5,ror#25 @ Sigma1(e)
906 and r2,r2,r5
907 str r3,[sp,#3*4]
908 add r3,r3,r0
909 eor r2,r2,r7 @ Ch(e,f,g)
910 add r3,r3,r8
911 mov r8,r9,ror#2
912 add r3,r3,r2
913 eor r8,r8,r9,ror#13
914 add r3,r3,r12
915 eor r8,r8,r9,ror#22 @ Sigma0(a)
916 #if 19>=15
917 ldr r1,[sp,#5*4] @ from BODY_16_xx
918 #endif
919 orr r0,r9,r10
920 and r2,r9,r10
921 and r0,r0,r11
922 add r8,r8,r3
923 orr r0,r0,r2 @ Maj(a,b,c)
924 add r4,r4,r3
925 add r8,r8,r0
926 @ ldr r1,[sp,#5*4] @ 20
927 ldr r12,[sp,#2*4]
928 mov r0,r1,ror#7
929 ldr r3,[sp,#4*4]
930 eor r0,r0,r1,ror#18
931 ldr r2,[sp,#13*4]
932 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
933 mov r1,r12,ror#17
934 add r3,r3,r0
935 eor r1,r1,r12,ror#19
936 add r3,r3,r2
937 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
938 @ add r3,r3,r1
939 mov r0,r4,ror#6
940 ldr r12,[r14],#4 @ *K256++
941 eor r0,r0,r4,ror#11
942 eor r2,r5,r6
943 #if 20>=16
944 add r3,r3,r1 @ from BODY_16_xx
945 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
946 rev r3,r3
947 #endif
948 #if 20==15
949 str r1,[sp,#17*4] @ leave room for r1
950 #endif
951 eor r0,r0,r4,ror#25 @ Sigma1(e)
952 and r2,r2,r4
953 str r3,[sp,#4*4]
954 add r3,r3,r0
955 eor r2,r2,r6 @ Ch(e,f,g)
956 add r3,r3,r7
957 mov r7,r8,ror#2
958 add r3,r3,r2
959 eor r7,r7,r8,ror#13
960 add r3,r3,r12
961 eor r7,r7,r8,ror#22 @ Sigma0(a)
962 #if 20>=15
963 ldr r1,[sp,#6*4] @ from BODY_16_xx
964 #endif
965 orr r0,r8,r9
966 and r2,r8,r9
967 and r0,r0,r10
968 add r7,r7,r3
969 orr r0,r0,r2 @ Maj(a,b,c)
970 add r11,r11,r3
971 add r7,r7,r0
972 @ ldr r1,[sp,#6*4] @ 21
973 ldr r12,[sp,#3*4]
974 mov r0,r1,ror#7
975 ldr r3,[sp,#5*4]
976 eor r0,r0,r1,ror#18
977 ldr r2,[sp,#14*4]
978 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
979 mov r1,r12,ror#17
980 add r3,r3,r0
981 eor r1,r1,r12,ror#19
982 add r3,r3,r2
983 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
984 @ add r3,r3,r1
985 mov r0,r11,ror#6
986 ldr r12,[r14],#4 @ *K256++
987 eor r0,r0,r11,ror#11
988 eor r2,r4,r5
989 #if 21>=16
990 add r3,r3,r1 @ from BODY_16_xx
991 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
992 rev r3,r3
993 #endif
994 #if 21==15
995 str r1,[sp,#17*4] @ leave room for r1
996 #endif
997 eor r0,r0,r11,ror#25 @ Sigma1(e)
998 and r2,r2,r11
999 str r3,[sp,#5*4]
1000 add r3,r3,r0
1001 eor r2,r2,r5 @ Ch(e,f,g)
1002 add r3,r3,r6
1003 mov r6,r7,ror#2
1004 add r3,r3,r2
1005 eor r6,r6,r7,ror#13
1006 add r3,r3,r12
1007 eor r6,r6,r7,ror#22 @ Sigma0(a)
1008 #if 21>=15
1009 ldr r1,[sp,#7*4] @ from BODY_16_xx
1010 #endif
1011 orr r0,r7,r8
1012 and r2,r7,r8
1013 and r0,r0,r9
1014 add r6,r6,r3
1015 orr r0,r0,r2 @ Maj(a,b,c)
1016 add r10,r10,r3
1017 add r6,r6,r0
1018 @ ldr r1,[sp,#7*4] @ 22
1019 ldr r12,[sp,#4*4]
1020 mov r0,r1,ror#7
1021 ldr r3,[sp,#6*4]
1022 eor r0,r0,r1,ror#18
1023 ldr r2,[sp,#15*4]
1024 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1025 mov r1,r12,ror#17
1026 add r3,r3,r0
1027 eor r1,r1,r12,ror#19
1028 add r3,r3,r2
1029 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1030 @ add r3,r3,r1
1031 mov r0,r10,ror#6
1032 ldr r12,[r14],#4 @ *K256++
1033 eor r0,r0,r10,ror#11
1034 eor r2,r11,r4
1035 #if 22>=16
1036 add r3,r3,r1 @ from BODY_16_xx
1037 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1038 rev r3,r3
1039 #endif
1040 #if 22==15
1041 str r1,[sp,#17*4] @ leave room for r1
1042 #endif
1043 eor r0,r0,r10,ror#25 @ Sigma1(e)
1044 and r2,r2,r10
1045 str r3,[sp,#6*4]
1046 add r3,r3,r0
1047 eor r2,r2,r4 @ Ch(e,f,g)
1048 add r3,r3,r5
1049 mov r5,r6,ror#2
1050 add r3,r3,r2
1051 eor r5,r5,r6,ror#13
1052 add r3,r3,r12
1053 eor r5,r5,r6,ror#22 @ Sigma0(a)
1054 #if 22>=15
1055 ldr r1,[sp,#8*4] @ from BODY_16_xx
1056 #endif
1057 orr r0,r6,r7
1058 and r2,r6,r7
1059 and r0,r0,r8
1060 add r5,r5,r3
1061 orr r0,r0,r2 @ Maj(a,b,c)
1062 add r9,r9,r3
1063 add r5,r5,r0
1064 @ ldr r1,[sp,#8*4] @ 23
1065 ldr r12,[sp,#5*4]
1066 mov r0,r1,ror#7
1067 ldr r3,[sp,#7*4]
1068 eor r0,r0,r1,ror#18
1069 ldr r2,[sp,#0*4]
1070 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1071 mov r1,r12,ror#17
1072 add r3,r3,r0
1073 eor r1,r1,r12,ror#19
1074 add r3,r3,r2
1075 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1076 @ add r3,r3,r1
1077 mov r0,r9,ror#6
1078 ldr r12,[r14],#4 @ *K256++
1079 eor r0,r0,r9,ror#11
1080 eor r2,r10,r11
1081 #if 23>=16
1082 add r3,r3,r1 @ from BODY_16_xx
1083 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1084 rev r3,r3
1085 #endif
1086 #if 23==15
1087 str r1,[sp,#17*4] @ leave room for r1
1088 #endif
1089 eor r0,r0,r9,ror#25 @ Sigma1(e)
1090 and r2,r2,r9
1091 str r3,[sp,#7*4]
1092 add r3,r3,r0
1093 eor r2,r2,r11 @ Ch(e,f,g)
1094 add r3,r3,r4
1095 mov r4,r5,ror#2
1096 add r3,r3,r2
1097 eor r4,r4,r5,ror#13
1098 add r3,r3,r12
1099 eor r4,r4,r5,ror#22 @ Sigma0(a)
1100 #if 23>=15
1101 ldr r1,[sp,#9*4] @ from BODY_16_xx
1102 #endif
1103 orr r0,r5,r6
1104 and r2,r5,r6
1105 and r0,r0,r7
1106 add r4,r4,r3
1107 orr r0,r0,r2 @ Maj(a,b,c)
1108 add r8,r8,r3
1109 add r4,r4,r0
1110 @ ldr r1,[sp,#9*4] @ 24
1111 ldr r12,[sp,#6*4]
1112 mov r0,r1,ror#7
1113 ldr r3,[sp,#8*4]
1114 eor r0,r0,r1,ror#18
1115 ldr r2,[sp,#1*4]
1116 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1117 mov r1,r12,ror#17
1118 add r3,r3,r0
1119 eor r1,r1,r12,ror#19
1120 add r3,r3,r2
1121 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1122 @ add r3,r3,r1
1123 mov r0,r8,ror#6
1124 ldr r12,[r14],#4 @ *K256++
1125 eor r0,r0,r8,ror#11
1126 eor r2,r9,r10
1127 #if 24>=16
1128 add r3,r3,r1 @ from BODY_16_xx
1129 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1130 rev r3,r3
1131 #endif
1132 #if 24==15
1133 str r1,[sp,#17*4] @ leave room for r1
1134 #endif
1135 eor r0,r0,r8,ror#25 @ Sigma1(e)
1136 and r2,r2,r8
1137 str r3,[sp,#8*4]
1138 add r3,r3,r0
1139 eor r2,r2,r10 @ Ch(e,f,g)
1140 add r3,r3,r11
1141 mov r11,r4,ror#2
1142 add r3,r3,r2
1143 eor r11,r11,r4,ror#13
1144 add r3,r3,r12
1145 eor r11,r11,r4,ror#22 @ Sigma0(a)
1146 #if 24>=15
1147 ldr r1,[sp,#10*4] @ from BODY_16_xx
1148 #endif
1149 orr r0,r4,r5
1150 and r2,r4,r5
1151 and r0,r0,r6
1152 add r11,r11,r3
1153 orr r0,r0,r2 @ Maj(a,b,c)
1154 add r7,r7,r3
1155 add r11,r11,r0
1156 @ ldr r1,[sp,#10*4] @ 25
1157 ldr r12,[sp,#7*4]
1158 mov r0,r1,ror#7
1159 ldr r3,[sp,#9*4]
1160 eor r0,r0,r1,ror#18
1161 ldr r2,[sp,#2*4]
1162 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1163 mov r1,r12,ror#17
1164 add r3,r3,r0
1165 eor r1,r1,r12,ror#19
1166 add r3,r3,r2
1167 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1168 @ add r3,r3,r1
1169 mov r0,r7,ror#6
1170 ldr r12,[r14],#4 @ *K256++
1171 eor r0,r0,r7,ror#11
1172 eor r2,r8,r9
1173 #if 25>=16
1174 add r3,r3,r1 @ from BODY_16_xx
1175 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1176 rev r3,r3
1177 #endif
1178 #if 25==15
1179 str r1,[sp,#17*4] @ leave room for r1
1180 #endif
1181 eor r0,r0,r7,ror#25 @ Sigma1(e)
1182 and r2,r2,r7
1183 str r3,[sp,#9*4]
1184 add r3,r3,r0
1185 eor r2,r2,r9 @ Ch(e,f,g)
1186 add r3,r3,r10
1187 mov r10,r11,ror#2
1188 add r3,r3,r2
1189 eor r10,r10,r11,ror#13
1190 add r3,r3,r12
1191 eor r10,r10,r11,ror#22 @ Sigma0(a)
1192 #if 25>=15
1193 ldr r1,[sp,#11*4] @ from BODY_16_xx
1194 #endif
1195 orr r0,r11,r4
1196 and r2,r11,r4
1197 and r0,r0,r5
1198 add r10,r10,r3
1199 orr r0,r0,r2 @ Maj(a,b,c)
1200 add r6,r6,r3
1201 add r10,r10,r0
1202 @ ldr r1,[sp,#11*4] @ 26
1203 ldr r12,[sp,#8*4]
1204 mov r0,r1,ror#7
1205 ldr r3,[sp,#10*4]
1206 eor r0,r0,r1,ror#18
1207 ldr r2,[sp,#3*4]
1208 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1209 mov r1,r12,ror#17
1210 add r3,r3,r0
1211 eor r1,r1,r12,ror#19
1212 add r3,r3,r2
1213 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1214 @ add r3,r3,r1
1215 mov r0,r6,ror#6
1216 ldr r12,[r14],#4 @ *K256++
1217 eor r0,r0,r6,ror#11
1218 eor r2,r7,r8
1219 #if 26>=16
1220 add r3,r3,r1 @ from BODY_16_xx
1221 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1222 rev r3,r3
1223 #endif
1224 #if 26==15
1225 str r1,[sp,#17*4] @ leave room for r1
1226 #endif
1227 eor r0,r0,r6,ror#25 @ Sigma1(e)
1228 and r2,r2,r6
1229 str r3,[sp,#10*4]
1230 add r3,r3,r0
1231 eor r2,r2,r8 @ Ch(e,f,g)
1232 add r3,r3,r9
1233 mov r9,r10,ror#2
1234 add r3,r3,r2
1235 eor r9,r9,r10,ror#13
1236 add r3,r3,r12
1237 eor r9,r9,r10,ror#22 @ Sigma0(a)
1238 #if 26>=15
1239 ldr r1,[sp,#12*4] @ from BODY_16_xx
1240 #endif
1241 orr r0,r10,r11
1242 and r2,r10,r11
1243 and r0,r0,r4
1244 add r9,r9,r3
1245 orr r0,r0,r2 @ Maj(a,b,c)
1246 add r5,r5,r3
1247 add r9,r9,r0
1248 @ ldr r1,[sp,#12*4] @ 27
1249 ldr r12,[sp,#9*4]
1250 mov r0,r1,ror#7
1251 ldr r3,[sp,#11*4]
1252 eor r0,r0,r1,ror#18
1253 ldr r2,[sp,#4*4]
1254 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1255 mov r1,r12,ror#17
1256 add r3,r3,r0
1257 eor r1,r1,r12,ror#19
1258 add r3,r3,r2
1259 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1260 @ add r3,r3,r1
1261 mov r0,r5,ror#6
1262 ldr r12,[r14],#4 @ *K256++
1263 eor r0,r0,r5,ror#11
1264 eor r2,r6,r7
1265 #if 27>=16
1266 add r3,r3,r1 @ from BODY_16_xx
1267 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1268 rev r3,r3
1269 #endif
1270 #if 27==15
1271 str r1,[sp,#17*4] @ leave room for r1
1272 #endif
1273 eor r0,r0,r5,ror#25 @ Sigma1(e)
1274 and r2,r2,r5
1275 str r3,[sp,#11*4]
1276 add r3,r3,r0
1277 eor r2,r2,r7 @ Ch(e,f,g)
1278 add r3,r3,r8
1279 mov r8,r9,ror#2
1280 add r3,r3,r2
1281 eor r8,r8,r9,ror#13
1282 add r3,r3,r12
1283 eor r8,r8,r9,ror#22 @ Sigma0(a)
1284 #if 27>=15
1285 ldr r1,[sp,#13*4] @ from BODY_16_xx
1286 #endif
1287 orr r0,r9,r10
1288 and r2,r9,r10
1289 and r0,r0,r11
1290 add r8,r8,r3
1291 orr r0,r0,r2 @ Maj(a,b,c)
1292 add r4,r4,r3
1293 add r8,r8,r0
1294 @ ldr r1,[sp,#13*4] @ 28
1295 ldr r12,[sp,#10*4]
1296 mov r0,r1,ror#7
1297 ldr r3,[sp,#12*4]
1298 eor r0,r0,r1,ror#18
1299 ldr r2,[sp,#5*4]
1300 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1301 mov r1,r12,ror#17
1302 add r3,r3,r0
1303 eor r1,r1,r12,ror#19
1304 add r3,r3,r2
1305 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1306 @ add r3,r3,r1
1307 mov r0,r4,ror#6
1308 ldr r12,[r14],#4 @ *K256++
1309 eor r0,r0,r4,ror#11
1310 eor r2,r5,r6
1311 #if 28>=16
1312 add r3,r3,r1 @ from BODY_16_xx
1313 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1314 rev r3,r3
1315 #endif
1316 #if 28==15
1317 str r1,[sp,#17*4] @ leave room for r1
1318 #endif
1319 eor r0,r0,r4,ror#25 @ Sigma1(e)
1320 and r2,r2,r4
1321 str r3,[sp,#12*4]
1322 add r3,r3,r0
1323 eor r2,r2,r6 @ Ch(e,f,g)
1324 add r3,r3,r7
1325 mov r7,r8,ror#2
1326 add r3,r3,r2
1327 eor r7,r7,r8,ror#13
1328 add r3,r3,r12
1329 eor r7,r7,r8,ror#22 @ Sigma0(a)
1330 #if 28>=15
1331 ldr r1,[sp,#14*4] @ from BODY_16_xx
1332 #endif
1333 orr r0,r8,r9
1334 and r2,r8,r9
1335 and r0,r0,r10
1336 add r7,r7,r3
1337 orr r0,r0,r2 @ Maj(a,b,c)
1338 add r11,r11,r3
1339 add r7,r7,r0
1340 @ ldr r1,[sp,#14*4] @ 29
1341 ldr r12,[sp,#11*4]
1342 mov r0,r1,ror#7
1343 ldr r3,[sp,#13*4]
1344 eor r0,r0,r1,ror#18
1345 ldr r2,[sp,#6*4]
1346 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1347 mov r1,r12,ror#17
1348 add r3,r3,r0
1349 eor r1,r1,r12,ror#19
1350 add r3,r3,r2
1351 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1352 @ add r3,r3,r1
1353 mov r0,r11,ror#6
1354 ldr r12,[r14],#4 @ *K256++
1355 eor r0,r0,r11,ror#11
1356 eor r2,r4,r5
1357 #if 29>=16
1358 add r3,r3,r1 @ from BODY_16_xx
1359 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1360 rev r3,r3
1361 #endif
1362 #if 29==15
1363 str r1,[sp,#17*4] @ leave room for r1
1364 #endif
1365 eor r0,r0,r11,ror#25 @ Sigma1(e)
1366 and r2,r2,r11
1367 str r3,[sp,#13*4]
1368 add r3,r3,r0
1369 eor r2,r2,r5 @ Ch(e,f,g)
1370 add r3,r3,r6
1371 mov r6,r7,ror#2
1372 add r3,r3,r2
1373 eor r6,r6,r7,ror#13
1374 add r3,r3,r12
1375 eor r6,r6,r7,ror#22 @ Sigma0(a)
1376 #if 29>=15
1377 ldr r1,[sp,#15*4] @ from BODY_16_xx
1378 #endif
1379 orr r0,r7,r8
1380 and r2,r7,r8
1381 and r0,r0,r9
1382 add r6,r6,r3
1383 orr r0,r0,r2 @ Maj(a,b,c)
1384 add r10,r10,r3
1385 add r6,r6,r0
1386 @ ldr r1,[sp,#15*4] @ 30
1387 ldr r12,[sp,#12*4]
1388 mov r0,r1,ror#7
1389 ldr r3,[sp,#14*4]
1390 eor r0,r0,r1,ror#18
1391 ldr r2,[sp,#7*4]
1392 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1393 mov r1,r12,ror#17
1394 add r3,r3,r0
1395 eor r1,r1,r12,ror#19
1396 add r3,r3,r2
1397 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1398 @ add r3,r3,r1
1399 mov r0,r10,ror#6
1400 ldr r12,[r14],#4 @ *K256++
1401 eor r0,r0,r10,ror#11
1402 eor r2,r11,r4
1403 #if 30>=16
1404 add r3,r3,r1 @ from BODY_16_xx
1405 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1406 rev r3,r3
1407 #endif
1408 #if 30==15
1409 str r1,[sp,#17*4] @ leave room for r1
1410 #endif
1411 eor r0,r0,r10,ror#25 @ Sigma1(e)
1412 and r2,r2,r10
1413 str r3,[sp,#14*4]
1414 add r3,r3,r0
1415 eor r2,r2,r4 @ Ch(e,f,g)
1416 add r3,r3,r5
1417 mov r5,r6,ror#2
1418 add r3,r3,r2
1419 eor r5,r5,r6,ror#13
1420 add r3,r3,r12
1421 eor r5,r5,r6,ror#22 @ Sigma0(a)
1422 #if 30>=15
1423 ldr r1,[sp,#0*4] @ from BODY_16_xx
1424 #endif
1425 orr r0,r6,r7
1426 and r2,r6,r7
1427 and r0,r0,r8
1428 add r5,r5,r3
1429 orr r0,r0,r2 @ Maj(a,b,c)
1430 add r9,r9,r3
1431 add r5,r5,r0
1432 @ ldr r1,[sp,#0*4] @ 31
1433 ldr r12,[sp,#13*4]
1434 mov r0,r1,ror#7
1435 ldr r3,[sp,#15*4]
1436 eor r0,r0,r1,ror#18
1437 ldr r2,[sp,#8*4]
1438 eor r0,r0,r1,lsr#3 @ sigma0(X[i+1])
1439 mov r1,r12,ror#17
1440 add r3,r3,r0
1441 eor r1,r1,r12,ror#19
1442 add r3,r3,r2
1443 eor r1,r1,r12,lsr#10 @ sigma1(X[i+14])
1444 @ add r3,r3,r1
1445 mov r0,r9,ror#6
1446 ldr r12,[r14],#4 @ *K256++
1447 eor r0,r0,r9,ror#11
1448 eor r2,r10,r11
1449 #if 31>=16
1450 add r3,r3,r1 @ from BODY_16_xx
1451 #elif __ARM_ARCH__>=7 && defined(__ARMEL__)
1452 rev r3,r3
1453 #endif
1454 #if 31==15
1455 str r1,[sp,#17*4] @ leave room for r1
1456 #endif
1457 eor r0,r0,r9,ror#25 @ Sigma1(e)
1458 and r2,r2,r9
1459 str r3,[sp,#15*4]
1460 add r3,r3,r0
1461 eor r2,r2,r11 @ Ch(e,f,g)
1462 add r3,r3,r4
1463 mov r4,r5,ror#2
1464 add r3,r3,r2
1465 eor r4,r4,r5,ror#13
1466 add r3,r3,r12
1467 eor r4,r4,r5,ror#22 @ Sigma0(a)
1468 #if 31>=15
1469 ldr r1,[sp,#1*4] @ from BODY_16_xx
1470 #endif
1471 orr r0,r5,r6
1472 and r2,r5,r6
1473 and r0,r0,r7
1474 add r4,r4,r3
1475 orr r0,r0,r2 @ Maj(a,b,c)
1476 add r8,r8,r3
1477 add r4,r4,r0
1478 and r12,r12,#0xff
1479 cmp r12,#0xf2
1480 bne .Lrounds_16_xx
1481
1482 ldr r3,[sp,#16*4] @ pull ctx
1483 ldr r0,[r3,#0]
1484 ldr r2,[r3,#4]
1485 ldr r12,[r3,#8]
1486 add r4,r4,r0
1487 ldr r0,[r3,#12]
1488 add r5,r5,r2
1489 ldr r2,[r3,#16]
1490 add r6,r6,r12
1491 ldr r12,[r3,#20]
1492 add r7,r7,r0
1493 ldr r0,[r3,#24]
1494 add r8,r8,r2
1495 ldr r2,[r3,#28]
1496 add r9,r9,r12
1497 ldr r1,[sp,#17*4] @ pull inp
1498 ldr r12,[sp,#18*4] @ pull inp+len
1499 add r10,r10,r0
1500 add r11,r11,r2
1501 stmia r3,{r4,r5,r6,r7,r8,r9,r10,r11}
1502 cmp r1,r12
1503 sub r14,r14,#256 @ rewind Ktbl
1504 bne .Loop
1505
1506 add sp,sp,#19*4 @ destroy frame
1507 #if __ARM_ARCH__>=5
1508 ldmia sp!,{r4-r11,pc}
1509 #else
1510 ldmia sp!,{r4-r11,lr}
1511 tst lr,#1
1512 moveq pc,lr @ be binary compatible with V4, yet
1513 .word 0xe12fff1e @ interoperable with Thumb ISA:- )
1514 #endif
1515 .size sha256_block_data_order,.-sha256_block_data_order
1516 .asciz "SHA256 block transform for ARMv4, CRYPTOGAMS by <appro@openssl.org>"
1517 .align 2
OLDNEW
« no previous file with comments | « openssl/crypto/sha/asm/sha256-586-mac.S ('k') | openssl/crypto/sha/asm/sha256-armv4.pl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698