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

Side by Side Diff: third_party/boringssl/linux-arm/crypto/aes/aes-armv4.S

Issue 1128293004: Revert of Roll src/third_party/boringssl/src 68de407:de12d6c (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Thanks Rietveld, Thietveld. 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 1
2 @ ==================================================================== 2 @ ====================================================================
3 @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL 3 @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
4 @ project. The module is, however, dual licensed under OpenSSL and 4 @ project. The module is, however, dual licensed under OpenSSL and
5 @ CRYPTOGAMS licenses depending on where you obtain it. For further 5 @ CRYPTOGAMS licenses depending on where you obtain it. For further
6 @ details see http://www.openssl.org/~appro/cryptogams/. 6 @ details see http://www.openssl.org/~appro/cryptogams/.
7 @ ==================================================================== 7 @ ====================================================================
8 8
9 @ AES for ARMv4 9 @ AES for ARMv4
10 10
(...skipping 25 matching lines...) Expand all
36 # include "arm_arch.h" 36 # include "arm_arch.h"
37 #else 37 #else
38 # define __ARM_ARCH__ __LINUX_ARM_ARCH__ 38 # define __ARM_ARCH__ __LINUX_ARM_ARCH__
39 #endif 39 #endif
40 40
41 .text 41 .text
42 #if __ARM_ARCH__<7 42 #if __ARM_ARCH__<7
43 .code 32 43 .code 32
44 #else 44 #else
45 .syntax unified 45 .syntax unified
46 # if defined(__thumb2__) && !defined(__APPLE__) 46 # ifdef __thumb2__
47 .thumb 47 .thumb
48 # else 48 # else
49 .code 32 49 .code 32
50 # endif 50 # endif
51 #endif 51 #endif
52 52
53 .type AES_Te,%object 53 .type AES_Te,%object
54 .align 5 54 .align 5
55 AES_Te: 55 AES_Te:
56 .word 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d 56 .word 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 .byte 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68 151 .byte 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68
152 .byte 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 152 .byte 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
153 @ rcon[] 153 @ rcon[]
154 .word 0x01000000, 0x02000000, 0x04000000, 0x08000000 154 .word 0x01000000, 0x02000000, 0x04000000, 0x08000000
155 .word 0x10000000, 0x20000000, 0x40000000, 0x80000000 155 .word 0x10000000, 0x20000000, 0x40000000, 0x80000000
156 .word 0x1B000000, 0x36000000, 0, 0, 0, 0, 0, 0 156 .word 0x1B000000, 0x36000000, 0, 0, 0, 0, 0, 0
157 .size AES_Te,.-AES_Te 157 .size AES_Te,.-AES_Te
158 158
159 @ void asm_AES_encrypt(const unsigned char *in, unsigned char *out, 159 @ void asm_AES_encrypt(const unsigned char *in, unsigned char *out,
160 @ const AES_KEY *key) { 160 @ const AES_KEY *key) {
161 .globl» asm_AES_encrypt 161 .global asm_AES_encrypt
162 .hidden»asm_AES_encrypt 162 .hidden asm_AES_encrypt
163 .type» asm_AES_encrypt,%function 163 .type asm_AES_encrypt,%function
164 .align 5 164 .align 5
165 asm_AES_encrypt: 165 asm_AES_encrypt:
166 #if __ARM_ARCH__<7 166 #if __ARM_ARCH__<7
167 sub r3,pc,#8 @ asm_AES_encrypt 167 sub r3,pc,#8 @ asm_AES_encrypt
168 #else 168 #else
169 adr r3,asm_AES_encrypt 169 adr r3,asm_AES_encrypt
170 #endif 170 #endif
171 » stmdb» sp!,{r1,r4-r12,lr} 171 » stmdb sp!,{r1,r4-r12,lr}
172 #ifdef» __APPLE__
173 » adr» r10,AES_Te
174 #else
175 » sub» r10,r3,#asm_AES_encrypt-AES_Te» @ Te
176 #endif
177 mov r12,r0 @ inp 172 mov r12,r0 @ inp
178 mov r11,r2 173 mov r11,r2
174 sub r10,r3,#asm_AES_encrypt-AES_Te @ Te
179 #if __ARM_ARCH__<7 175 #if __ARM_ARCH__<7
180 ldrb r0,[r12,#3] @ load input data in endian-neutral 176 ldrb r0,[r12,#3] @ load input data in endian-neutral
181 ldrb r4,[r12,#2] @ manner... 177 ldrb r4,[r12,#2] @ manner...
182 ldrb r5,[r12,#1] 178 ldrb r5,[r12,#1]
183 ldrb r6,[r12,#0] 179 ldrb r6,[r12,#0]
184 orr r0,r0,r4,lsl#8 180 orr r0,r0,r4,lsl#8
185 ldrb r1,[r12,#7] 181 ldrb r1,[r12,#7]
186 orr r0,r0,r5,lsl#16 182 orr r0,r0,r5,lsl#16
187 ldrb r4,[r12,#6] 183 ldrb r4,[r12,#6]
188 orr r0,r0,r6,lsl#24 184 orr r0,r0,r6,lsl#24
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 strb r6,[r12,#10] 251 strb r6,[r12,#10]
256 mov r5,r3,lsr#16 252 mov r5,r3,lsr#16
257 strb r2,[r12,#11] 253 strb r2,[r12,#11]
258 mov r6,r3,lsr#8 254 mov r6,r3,lsr#8
259 strb r4,[r12,#12] 255 strb r4,[r12,#12]
260 strb r5,[r12,#13] 256 strb r5,[r12,#13]
261 strb r6,[r12,#14] 257 strb r6,[r12,#14]
262 strb r3,[r12,#15] 258 strb r3,[r12,#15]
263 #endif 259 #endif
264 #if __ARM_ARCH__>=5 260 #if __ARM_ARCH__>=5
265 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} 261 » ldmia» sp!,{r4-r12,pc}
266 #else 262 #else
267 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} 263 » ldmia sp!,{r4-r12,lr}
268 tst lr,#1 264 tst lr,#1
269 moveq pc,lr @ be binary compatible with V4, yet 265 moveq pc,lr @ be binary compatible with V4, yet
270 .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:-) 266 » .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:- )
271 #endif 267 #endif
272 .size asm_AES_encrypt,.-asm_AES_encrypt 268 .size asm_AES_encrypt,.-asm_AES_encrypt
273 269
274 .type» _armv4_AES_encrypt,%function 270 .type _armv4_AES_encrypt,%function
275 .align 2 271 .align 2
276 _armv4_AES_encrypt: 272 _armv4_AES_encrypt:
277 str lr,[sp,#-4]! @ push lr 273 str lr,[sp,#-4]! @ push lr
278 » ldmia» r11!,{r4,r5,r6,r7} 274 » ldmia» r11!,{r4-r7}
279 eor r0,r0,r4 275 eor r0,r0,r4
280 ldr r12,[r11,#240-16] 276 ldr r12,[r11,#240-16]
281 eor r1,r1,r5 277 eor r1,r1,r5
282 eor r2,r2,r6 278 eor r2,r2,r6
283 eor r3,r3,r7 279 eor r3,r3,r7
284 sub r12,r12,#1 280 sub r12,r12,#1
285 mov lr,#255 281 mov lr,#255
286 282
287 and r7,lr,r0 283 and r7,lr,r0
288 and r8,lr,r0,lsr#8 284 and r8,lr,r0,lsr#8
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 397
402 eor r0,r0,r7 398 eor r0,r0,r7
403 eor r1,r1,r4 399 eor r1,r1,r4
404 eor r2,r2,r5 400 eor r2,r2,r5
405 eor r3,r3,r6 401 eor r3,r3,r6
406 402
407 sub r10,r10,#2 403 sub r10,r10,#2
408 ldr pc,[sp],#4 @ pop and return 404 ldr pc,[sp],#4 @ pop and return
409 .size _armv4_AES_encrypt,.-_armv4_AES_encrypt 405 .size _armv4_AES_encrypt,.-_armv4_AES_encrypt
410 406
411 .globl» asm_AES_set_encrypt_key 407 .global asm_AES_set_encrypt_key
412 .hidden»asm_AES_set_encrypt_key 408 .hidden asm_AES_set_encrypt_key
413 .type» asm_AES_set_encrypt_key,%function 409 .type asm_AES_set_encrypt_key,%function
414 .align 5 410 .align 5
415 asm_AES_set_encrypt_key: 411 asm_AES_set_encrypt_key:
416 _armv4_AES_set_encrypt_key: 412 _armv4_AES_set_encrypt_key:
417 #if __ARM_ARCH__<7 413 #if __ARM_ARCH__<7
418 sub r3,pc,#8 @ asm_AES_set_encrypt_key 414 sub r3,pc,#8 @ asm_AES_set_encrypt_key
419 #else 415 #else
420 adr r3,asm_AES_set_encrypt_key 416 adr r3,asm_AES_set_encrypt_key
421 #endif 417 #endif
422 teq r0,#0 418 teq r0,#0
423 #if __ARM_ARCH__>=7 419 #if __ARM_ARCH__>=7
(...skipping 12 matching lines...) Expand all
436 beq .Lok 432 beq .Lok
437 teq r1,#192 433 teq r1,#192
438 beq .Lok 434 beq .Lok
439 teq r1,#256 435 teq r1,#256
440 #if __ARM_ARCH__>=7 436 #if __ARM_ARCH__>=7
441 itt ne @ Thumb2 thing, sanity check in ARM 437 itt ne @ Thumb2 thing, sanity check in ARM
442 #endif 438 #endif
443 movne r0,#-1 439 movne r0,#-1
444 bne .Labrt 440 bne .Labrt
445 441
446 .Lok:» stmdb» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} 442 .Lok:» stmdb sp!,{r4-r12,lr}
443 » sub» r10,r3,#_armv4_AES_set_encrypt_key-AES_Te-1024» @ Te4
444
447 mov r12,r0 @ inp 445 mov r12,r0 @ inp
448 mov lr,r1 @ bits 446 mov lr,r1 @ bits
449 mov r11,r2 @ key 447 mov r11,r2 @ key
450 448
451 #ifdef __APPLE__
452 adr r10,AES_Te+1024 @ Te4
453 #else
454 sub r10,r3,#_armv4_AES_set_encrypt_key-AES_Te-1024 @ Te4
455 #endif
456
457 #if __ARM_ARCH__<7 449 #if __ARM_ARCH__<7
458 ldrb r0,[r12,#3] @ load input data in endian-neutral 450 ldrb r0,[r12,#3] @ load input data in endian-neutral
459 ldrb r4,[r12,#2] @ manner... 451 ldrb r4,[r12,#2] @ manner...
460 ldrb r5,[r12,#1] 452 ldrb r5,[r12,#1]
461 ldrb r6,[r12,#0] 453 ldrb r6,[r12,#0]
462 orr r0,r0,r4,lsl#8 454 orr r0,r0,r4,lsl#8
463 ldrb r1,[r12,#7] 455 ldrb r1,[r12,#7]
464 orr r0,r0,r5,lsl#16 456 orr r0,r0,r5,lsl#16
465 ldrb r4,[r12,#6] 457 ldrb r4,[r12,#6]
466 orr r0,r0,r6,lsl#24 458 orr r0,r0,r6,lsl#24
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 str r4,[r11,#-16] 689 str r4,[r11,#-16]
698 eor r8,r8,r7 @ rk[14]=rk[6]^rk[13] 690 eor r8,r8,r7 @ rk[14]=rk[6]^rk[13]
699 str r7,[r11,#-12] 691 str r7,[r11,#-12]
700 eor r9,r9,r8 @ rk[15]=rk[7]^rk[14] 692 eor r9,r9,r8 @ rk[15]=rk[7]^rk[14]
701 str r8,[r11,#-8] 693 str r8,[r11,#-8]
702 str r9,[r11,#-4] 694 str r9,[r11,#-4]
703 b .L256_loop 695 b .L256_loop
704 696
705 .align 2 697 .align 2
706 .Ldone: mov r0,#0 698 .Ldone: mov r0,#0
707 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} 699 » ldmia sp!,{r4-r12,lr}
708 .Labrt: 700 .Labrt:
709 #if __ARM_ARCH__>=5 701 #if defined(__thumb2__) && __ARM_ARCH__>=7
710 » bx» lr» » » » @ .word»0xe12fff1e 702 » .short» 0x4770» » » @ .word»0xe12fff1e in Thumb2 encoding
711 #else 703 #else
712 tst lr,#1 704 tst lr,#1
713 moveq pc,lr @ be binary compatible with V4, yet 705 moveq pc,lr @ be binary compatible with V4, yet
714 .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:-) 706 » .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:- )
715 #endif 707 #endif
716 .size asm_AES_set_encrypt_key,.-asm_AES_set_encrypt_key 708 .size asm_AES_set_encrypt_key,.-asm_AES_set_encrypt_key
717 709
718 .globl» asm_AES_set_decrypt_key 710 .global asm_AES_set_decrypt_key
719 .hidden»asm_AES_set_decrypt_key 711 .hidden asm_AES_set_decrypt_key
720 .type» asm_AES_set_decrypt_key,%function 712 .type asm_AES_set_decrypt_key,%function
721 .align 5 713 .align 5
722 asm_AES_set_decrypt_key: 714 asm_AES_set_decrypt_key:
723 str lr,[sp,#-4]! @ push lr 715 str lr,[sp,#-4]! @ push lr
724 bl _armv4_AES_set_encrypt_key 716 bl _armv4_AES_set_encrypt_key
725 teq r0,#0 717 teq r0,#0
726 ldr lr,[sp],#4 @ pop lr 718 ldr lr,[sp],#4 @ pop lr
727 bne .Labrt 719 bne .Labrt
728 720
729 mov r0,r2 @ asm_AES_set_encrypt_key preserves r2, 721 mov r0,r2 @ asm_AES_set_encrypt_key preserves r2,
730 mov r1,r2 @ which is AES_KEY *key 722 mov r1,r2 @ which is AES_KEY *key
731 b _armv4_AES_set_enc2dec_key 723 b _armv4_AES_set_enc2dec_key
732 .size asm_AES_set_decrypt_key,.-asm_AES_set_decrypt_key 724 .size asm_AES_set_decrypt_key,.-asm_AES_set_decrypt_key
733 725
734 @ void AES_set_enc2dec_key(const AES_KEY *inp,AES_KEY *out) 726 @ void AES_set_enc2dec_key(const AES_KEY *inp,AES_KEY *out)
735 .globl» AES_set_enc2dec_key 727 .global»AES_set_enc2dec_key
736 .hidden AES_set_enc2dec_key 728 .hidden AES_set_enc2dec_key
737 .type AES_set_enc2dec_key,%function 729 .type AES_set_enc2dec_key,%function
738 .align 5 730 .align 5
739 AES_set_enc2dec_key: 731 AES_set_enc2dec_key:
740 _armv4_AES_set_enc2dec_key: 732 _armv4_AES_set_enc2dec_key:
741 » stmdb» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} 733 » stmdb sp!,{r4-r12,lr}
742 734
743 ldr r12,[r0,#240] 735 ldr r12,[r0,#240]
744 mov r7,r0 @ input 736 mov r7,r0 @ input
745 add r8,r0,r12,lsl#4 737 add r8,r0,r12,lsl#4
746 mov r11,r1 @ ouput 738 mov r11,r1 @ ouput
747 add r10,r1,r12,lsl#4 739 add r10,r1,r12,lsl#4
748 str r12,[r1,#240] 740 str r12,[r1,#240]
749 741
750 .Linv: ldr r0,[r7],#16 742 .Linv: ldr r0,[r7],#16
751 ldr r1,[r7,#-12] 743 ldr r1,[r7,#-12]
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 eor r4,r4,r5,ror#16 @ ^= ROTATE(tpd=tp9^tp4,16) 805 eor r4,r4,r5,ror#16 @ ^= ROTATE(tpd=tp9^tp4,16)
814 eor r4,r4,r5,ror#8 @ ^= ROTATE(tp9,24) 806 eor r4,r4,r5,ror#8 @ ^= ROTATE(tp9,24)
815 807
816 ldr r0,[r11,#4] @ prefetch tp1 808 ldr r0,[r11,#4] @ prefetch tp1
817 str r4,[r11],#4 809 str r4,[r11],#4
818 subs r12,r12,#1 810 subs r12,r12,#1
819 bne .Lmix 811 bne .Lmix
820 812
821 mov r0,#0 813 mov r0,#0
822 #if __ARM_ARCH__>=5 814 #if __ARM_ARCH__>=5
823 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} 815 » ldmia» sp!,{r4-r12,pc}
824 #else 816 #else
825 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} 817 » ldmia sp!,{r4-r12,lr}
826 tst lr,#1 818 tst lr,#1
827 moveq pc,lr @ be binary compatible with V4, yet 819 moveq pc,lr @ be binary compatible with V4, yet
828 .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:-) 820 » .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:- )
829 #endif 821 #endif
830 .size AES_set_enc2dec_key,.-AES_set_enc2dec_key 822 .size AES_set_enc2dec_key,.-AES_set_enc2dec_key
831 823
832 .type AES_Td,%object 824 .type AES_Td,%object
833 .align 5 825 .align 5
834 AES_Td: 826 AES_Td:
835 .word 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96 827 .word 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96
836 .word 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393 828 .word 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393
837 .word 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25 829 .word 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25
838 .word 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f 830 .word 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
926 .byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d 918 .byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d
927 .byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef 919 .byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef
928 .byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0 920 .byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0
929 .byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 921 .byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61
930 .byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 922 .byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26
931 .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d 923 .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
932 .size AES_Td,.-AES_Td 924 .size AES_Td,.-AES_Td
933 925
934 @ void asm_AES_decrypt(const unsigned char *in, unsigned char *out, 926 @ void asm_AES_decrypt(const unsigned char *in, unsigned char *out,
935 @ const AES_KEY *key) { 927 @ const AES_KEY *key) {
936 .globl» asm_AES_decrypt 928 .global asm_AES_decrypt
937 .hidden»asm_AES_decrypt 929 .hidden asm_AES_decrypt
938 .type» asm_AES_decrypt,%function 930 .type asm_AES_decrypt,%function
939 .align 5 931 .align 5
940 asm_AES_decrypt: 932 asm_AES_decrypt:
941 #if __ARM_ARCH__<7 933 #if __ARM_ARCH__<7
942 sub r3,pc,#8 @ asm_AES_decrypt 934 sub r3,pc,#8 @ asm_AES_decrypt
943 #else 935 #else
944 adr r3,asm_AES_decrypt 936 adr r3,asm_AES_decrypt
945 #endif 937 #endif
946 » stmdb» sp!,{r1,r4-r12,lr} 938 » stmdb sp!,{r1,r4-r12,lr}
947 #ifdef» __APPLE__
948 » adr» r10,AES_Td
949 #else
950 » sub» r10,r3,#asm_AES_decrypt-AES_Td» @ Td
951 #endif
952 mov r12,r0 @ inp 939 mov r12,r0 @ inp
953 mov r11,r2 940 mov r11,r2
941 sub r10,r3,#asm_AES_decrypt-AES_Td @ Td
954 #if __ARM_ARCH__<7 942 #if __ARM_ARCH__<7
955 ldrb r0,[r12,#3] @ load input data in endian-neutral 943 ldrb r0,[r12,#3] @ load input data in endian-neutral
956 ldrb r4,[r12,#2] @ manner... 944 ldrb r4,[r12,#2] @ manner...
957 ldrb r5,[r12,#1] 945 ldrb r5,[r12,#1]
958 ldrb r6,[r12,#0] 946 ldrb r6,[r12,#0]
959 orr r0,r0,r4,lsl#8 947 orr r0,r0,r4,lsl#8
960 ldrb r1,[r12,#7] 948 ldrb r1,[r12,#7]
961 orr r0,r0,r5,lsl#16 949 orr r0,r0,r5,lsl#16
962 ldrb r4,[r12,#6] 950 ldrb r4,[r12,#6]
963 orr r0,r0,r6,lsl#24 951 orr r0,r0,r6,lsl#24
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1030 strb r6,[r12,#10] 1018 strb r6,[r12,#10]
1031 mov r5,r3,lsr#16 1019 mov r5,r3,lsr#16
1032 strb r2,[r12,#11] 1020 strb r2,[r12,#11]
1033 mov r6,r3,lsr#8 1021 mov r6,r3,lsr#8
1034 strb r4,[r12,#12] 1022 strb r4,[r12,#12]
1035 strb r5,[r12,#13] 1023 strb r5,[r12,#13]
1036 strb r6,[r12,#14] 1024 strb r6,[r12,#14]
1037 strb r3,[r12,#15] 1025 strb r3,[r12,#15]
1038 #endif 1026 #endif
1039 #if __ARM_ARCH__>=5 1027 #if __ARM_ARCH__>=5
1040 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc} 1028 » ldmia» sp!,{r4-r12,pc}
1041 #else 1029 #else
1042 » ldmia» sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr} 1030 » ldmia sp!,{r4-r12,lr}
1043 tst lr,#1 1031 tst lr,#1
1044 moveq pc,lr @ be binary compatible with V4, yet 1032 moveq pc,lr @ be binary compatible with V4, yet
1045 .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:-) 1033 » .word» 0xe12fff1e» » » @ interoperable with Thumb ISA:- )
1046 #endif 1034 #endif
1047 .size asm_AES_decrypt,.-asm_AES_decrypt 1035 .size asm_AES_decrypt,.-asm_AES_decrypt
1048 1036
1049 .type» _armv4_AES_decrypt,%function 1037 .type _armv4_AES_decrypt,%function
1050 .align 2 1038 .align 2
1051 _armv4_AES_decrypt: 1039 _armv4_AES_decrypt:
1052 str lr,[sp,#-4]! @ push lr 1040 str lr,[sp,#-4]! @ push lr
1053 » ldmia» r11!,{r4,r5,r6,r7} 1041 » ldmia» r11!,{r4-r7}
1054 eor r0,r0,r4 1042 eor r0,r0,r4
1055 ldr r12,[r11,#240-16] 1043 ldr r12,[r11,#240-16]
1056 eor r1,r1,r5 1044 eor r1,r1,r5
1057 eor r2,r2,r6 1045 eor r2,r2,r6
1058 eor r3,r3,r7 1046 eor r3,r3,r7
1059 sub r12,r12,#1 1047 sub r12,r12,#1
1060 mov lr,#255 1048 mov lr,#255
1061 1049
1062 and r7,lr,r0,lsr#16 1050 and r7,lr,r0,lsr#16
1063 and r8,lr,r0,lsr#8 1051 and r8,lr,r0,lsr#8
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
1184 ldr r6,[r11,#12] 1172 ldr r6,[r11,#12]
1185 1173
1186 eor r0,r0,r7 1174 eor r0,r0,r7
1187 eor r1,r1,r4 1175 eor r1,r1,r4
1188 eor r2,r2,r5 1176 eor r2,r2,r5
1189 eor r3,r3,r6 1177 eor r3,r3,r6
1190 1178
1191 sub r10,r10,#1024 1179 sub r10,r10,#1024
1192 ldr pc,[sp],#4 @ pop and return 1180 ldr pc,[sp],#4 @ pop and return
1193 .size _armv4_AES_decrypt,.-_armv4_AES_decrypt 1181 .size _armv4_AES_decrypt,.-_armv4_AES_decrypt
1194 .byte» 65,69,83,32,102,111,114,32,65,82,77,118,52,44,32,67,82,89,80,84,79,71,65 ,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111, 114,103,62,0 1182 .asciz» "AES for ARMv4, CRYPTOGAMS by <appro@openssl.org>"
1195 .align» 2
1196 .align 2 1183 .align 2
1197 1184
1198 #endif 1185 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698