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

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

Issue 428753004: BoringSSL: roll DEPS and enable dynamic visibility. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... Created 6 years, 4 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 | Annotate | Revision Log
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 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 .byte 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94 149 .byte 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94
150 .byte 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf 150 .byte 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf
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 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 .global AES_encrypt 161 .global asm_AES_encrypt
162 .type AES_encrypt,%function 162 .hidden asm_AES_encrypt
163 .type asm_AES_encrypt,%function
163 .align 5 164 .align 5
164 AES_encrypt: 165 asm_AES_encrypt:
165 #if __ARM_ARCH__<7 166 #if __ARM_ARCH__<7
166 » sub» r3,pc,#8» » @ AES_encrypt 167 » sub» r3,pc,#8» » @ asm_AES_encrypt
167 #else 168 #else
168 » adr» r3,AES_encrypt 169 » adr» r3,asm_AES_encrypt
169 #endif 170 #endif
170 stmdb sp!,{r1,r4-r12,lr} 171 stmdb sp!,{r1,r4-r12,lr}
171 mov r12,r0 @ inp 172 mov r12,r0 @ inp
172 mov r11,r2 173 mov r11,r2
173 » sub» r10,r3,#AES_encrypt-AES_Te» @ Te 174 » sub» r10,r3,#asm_AES_encrypt-AES_Te» @ Te
174 #if __ARM_ARCH__<7 175 #if __ARM_ARCH__<7
175 ldrb r0,[r12,#3] @ load input data in endian-neutral 176 ldrb r0,[r12,#3] @ load input data in endian-neutral
176 ldrb r4,[r12,#2] @ manner... 177 ldrb r4,[r12,#2] @ manner...
177 ldrb r5,[r12,#1] 178 ldrb r5,[r12,#1]
178 ldrb r6,[r12,#0] 179 ldrb r6,[r12,#0]
179 orr r0,r0,r4,lsl#8 180 orr r0,r0,r4,lsl#8
180 ldrb r1,[r12,#7] 181 ldrb r1,[r12,#7]
181 orr r0,r0,r5,lsl#16 182 orr r0,r0,r5,lsl#16
182 ldrb r4,[r12,#6] 183 ldrb r4,[r12,#6]
183 orr r0,r0,r6,lsl#24 184 orr r0,r0,r6,lsl#24
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 strb r3,[r12,#15] 258 strb r3,[r12,#15]
258 #endif 259 #endif
259 #if __ARM_ARCH__>=5 260 #if __ARM_ARCH__>=5
260 ldmia sp!,{r4-r12,pc} 261 ldmia sp!,{r4-r12,pc}
261 #else 262 #else
262 ldmia sp!,{r4-r12,lr} 263 ldmia sp!,{r4-r12,lr}
263 tst lr,#1 264 tst lr,#1
264 moveq pc,lr @ be binary compatible with V4, yet 265 moveq pc,lr @ be binary compatible with V4, yet
265 .word 0xe12fff1e @ interoperable with Thumb ISA:- ) 266 .word 0xe12fff1e @ interoperable with Thumb ISA:- )
266 #endif 267 #endif
267 .size» AES_encrypt,.-AES_encrypt 268 .size» asm_AES_encrypt,.-asm_AES_encrypt
268 269
269 .type _armv4_AES_encrypt,%function 270 .type _armv4_AES_encrypt,%function
270 .align 2 271 .align 2
271 _armv4_AES_encrypt: 272 _armv4_AES_encrypt:
272 str lr,[sp,#-4]! @ push lr 273 str lr,[sp,#-4]! @ push lr
273 ldmia r11!,{r4-r7} 274 ldmia r11!,{r4-r7}
274 eor r0,r0,r4 275 eor r0,r0,r4
275 ldr r12,[r11,#240-16] 276 ldr r12,[r11,#240-16]
276 eor r1,r1,r5 277 eor r1,r1,r5
277 eor r2,r2,r6 278 eor r2,r2,r6
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 397
397 eor r0,r0,r7 398 eor r0,r0,r7
398 eor r1,r1,r4 399 eor r1,r1,r4
399 eor r2,r2,r5 400 eor r2,r2,r5
400 eor r3,r3,r6 401 eor r3,r3,r6
401 402
402 sub r10,r10,#2 403 sub r10,r10,#2
403 ldr pc,[sp],#4 @ pop and return 404 ldr pc,[sp],#4 @ pop and return
404 .size _armv4_AES_encrypt,.-_armv4_AES_encrypt 405 .size _armv4_AES_encrypt,.-_armv4_AES_encrypt
405 406
406 .global AES_set_encrypt_key 407 .global asm_AES_set_encrypt_key
407 .type AES_set_encrypt_key,%function 408 .hidden asm_AES_set_encrypt_key
409 .type asm_AES_set_encrypt_key,%function
408 .align 5 410 .align 5
409 AES_set_encrypt_key: 411 asm_AES_set_encrypt_key:
410 _armv4_AES_set_encrypt_key: 412 _armv4_AES_set_encrypt_key:
411 #if __ARM_ARCH__<7 413 #if __ARM_ARCH__<7
412 » sub» r3,pc,#8» » @ AES_set_encrypt_key 414 » sub» r3,pc,#8» » @ asm_AES_set_encrypt_key
413 #else 415 #else
414 » adr» r3,AES_set_encrypt_key 416 » adr» r3,asm_AES_set_encrypt_key
415 #endif 417 #endif
416 teq r0,#0 418 teq r0,#0
417 #if __ARM_ARCH__>=7 419 #if __ARM_ARCH__>=7
418 itt eq @ Thumb2 thing, sanity check in ARM 420 itt eq @ Thumb2 thing, sanity check in ARM
419 #endif 421 #endif
420 moveq r0,#-1 422 moveq r0,#-1
421 beq .Labrt 423 beq .Labrt
422 teq r2,#0 424 teq r2,#0
423 #if __ARM_ARCH__>=7 425 #if __ARM_ARCH__>=7
424 itt eq @ Thumb2 thing, sanity check in ARM 426 itt eq @ Thumb2 thing, sanity check in ARM
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 .Ldone: mov r0,#0 698 .Ldone: mov r0,#0
697 ldmia sp!,{r4-r12,lr} 699 ldmia sp!,{r4-r12,lr}
698 .Labrt: 700 .Labrt:
699 #if defined(__thumb2__) && __ARM_ARCH__>=7 701 #if defined(__thumb2__) && __ARM_ARCH__>=7
700 .short 0x4770 @ .word 0xe12fff1e in Thumb2 encoding 702 .short 0x4770 @ .word 0xe12fff1e in Thumb2 encoding
701 #else 703 #else
702 tst lr,#1 704 tst lr,#1
703 moveq pc,lr @ be binary compatible with V4, yet 705 moveq pc,lr @ be binary compatible with V4, yet
704 .word 0xe12fff1e @ interoperable with Thumb ISA:- ) 706 .word 0xe12fff1e @ interoperable with Thumb ISA:- )
705 #endif 707 #endif
706 .size» AES_set_encrypt_key,.-AES_set_encrypt_key 708 .size» asm_AES_set_encrypt_key,.-asm_AES_set_encrypt_key
707 709
708 .global AES_set_decrypt_key 710 .global asm_AES_set_decrypt_key
709 .type AES_set_decrypt_key,%function 711 .hidden asm_AES_set_decrypt_key
712 .type asm_AES_set_decrypt_key,%function
710 .align 5 713 .align 5
711 AES_set_decrypt_key: 714 asm_AES_set_decrypt_key:
712 str lr,[sp,#-4]! @ push lr 715 str lr,[sp,#-4]! @ push lr
713 bl _armv4_AES_set_encrypt_key 716 bl _armv4_AES_set_encrypt_key
714 teq r0,#0 717 teq r0,#0
715 ldr lr,[sp],#4 @ pop lr 718 ldr lr,[sp],#4 @ pop lr
716 bne .Labrt 719 bne .Labrt
717 720
718 » mov» r0,r2» » » @ AES_set_encrypt_key preserves r2, 721 » mov» r0,r2» » » @ asm_AES_set_encrypt_key preserves r2,
719 mov r1,r2 @ which is AES_KEY *key 722 mov r1,r2 @ which is AES_KEY *key
720 b _armv4_AES_set_enc2dec_key 723 b _armv4_AES_set_enc2dec_key
721 .size» AES_set_decrypt_key,.-AES_set_decrypt_key 724 .size» asm_AES_set_decrypt_key,.-asm_AES_set_decrypt_key
722 725
723 @ 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)
724 .global AES_set_enc2dec_key 727 .global AES_set_enc2dec_key
728 .hidden AES_set_enc2dec_key
725 .type AES_set_enc2dec_key,%function 729 .type AES_set_enc2dec_key,%function
726 .align 5 730 .align 5
727 AES_set_enc2dec_key: 731 AES_set_enc2dec_key:
728 _armv4_AES_set_enc2dec_key: 732 _armv4_AES_set_enc2dec_key:
729 stmdb sp!,{r4-r12,lr} 733 stmdb sp!,{r4-r12,lr}
730 734
731 ldr r12,[r0,#240] 735 ldr r12,[r0,#240]
732 mov r7,r0 @ input 736 mov r7,r0 @ input
733 add r8,r0,r12,lsl#4 737 add r8,r0,r12,lsl#4
734 mov r11,r1 @ ouput 738 mov r11,r1 @ ouput
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 .byte 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31 916 .byte 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31
913 .byte 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f 917 .byte 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f
914 .byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d 918 .byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d
915 .byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef 919 .byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef
916 .byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0 920 .byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0
917 .byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 921 .byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61
918 .byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 922 .byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26
919 .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d 923 .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
920 .size AES_Td,.-AES_Td 924 .size AES_Td,.-AES_Td
921 925
922 @ void AES_decrypt(const unsigned char *in, unsigned char *out, 926 @ void asm_AES_decrypt(const unsigned char *in, unsigned char *out,
923 @ » » const AES_KEY *key) { 927 @ » » const AES_KEY *key) {
924 .global AES_decrypt 928 .global asm_AES_decrypt
925 .type AES_decrypt,%function 929 .hidden asm_AES_decrypt
930 .type asm_AES_decrypt,%function
926 .align 5 931 .align 5
927 AES_decrypt: 932 asm_AES_decrypt:
928 #if __ARM_ARCH__<7 933 #if __ARM_ARCH__<7
929 » sub» r3,pc,#8» » @ AES_decrypt 934 » sub» r3,pc,#8» » @ asm_AES_decrypt
930 #else 935 #else
931 » adr» r3,AES_decrypt 936 » adr» r3,asm_AES_decrypt
932 #endif 937 #endif
933 stmdb sp!,{r1,r4-r12,lr} 938 stmdb sp!,{r1,r4-r12,lr}
934 mov r12,r0 @ inp 939 mov r12,r0 @ inp
935 mov r11,r2 940 mov r11,r2
936 » sub» r10,r3,#AES_decrypt-AES_Td» » @ Td 941 » sub» r10,r3,#asm_AES_decrypt-AES_Td» » @ Td
937 #if __ARM_ARCH__<7 942 #if __ARM_ARCH__<7
938 ldrb r0,[r12,#3] @ load input data in endian-neutral 943 ldrb r0,[r12,#3] @ load input data in endian-neutral
939 ldrb r4,[r12,#2] @ manner... 944 ldrb r4,[r12,#2] @ manner...
940 ldrb r5,[r12,#1] 945 ldrb r5,[r12,#1]
941 ldrb r6,[r12,#0] 946 ldrb r6,[r12,#0]
942 orr r0,r0,r4,lsl#8 947 orr r0,r0,r4,lsl#8
943 ldrb r1,[r12,#7] 948 ldrb r1,[r12,#7]
944 orr r0,r0,r5,lsl#16 949 orr r0,r0,r5,lsl#16
945 ldrb r4,[r12,#6] 950 ldrb r4,[r12,#6]
946 orr r0,r0,r6,lsl#24 951 orr r0,r0,r6,lsl#24
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1020 strb r3,[r12,#15] 1025 strb r3,[r12,#15]
1021 #endif 1026 #endif
1022 #if __ARM_ARCH__>=5 1027 #if __ARM_ARCH__>=5
1023 ldmia sp!,{r4-r12,pc} 1028 ldmia sp!,{r4-r12,pc}
1024 #else 1029 #else
1025 ldmia sp!,{r4-r12,lr} 1030 ldmia sp!,{r4-r12,lr}
1026 tst lr,#1 1031 tst lr,#1
1027 moveq pc,lr @ be binary compatible with V4, yet 1032 moveq pc,lr @ be binary compatible with V4, yet
1028 .word 0xe12fff1e @ interoperable with Thumb ISA:- ) 1033 .word 0xe12fff1e @ interoperable with Thumb ISA:- )
1029 #endif 1034 #endif
1030 .size» AES_decrypt,.-AES_decrypt 1035 .size» asm_AES_decrypt,.-asm_AES_decrypt
1031 1036
1032 .type _armv4_AES_decrypt,%function 1037 .type _armv4_AES_decrypt,%function
1033 .align 2 1038 .align 2
1034 _armv4_AES_decrypt: 1039 _armv4_AES_decrypt:
1035 str lr,[sp,#-4]! @ push lr 1040 str lr,[sp,#-4]! @ push lr
1036 ldmia r11!,{r4-r7} 1041 ldmia r11!,{r4-r7}
1037 eor r0,r0,r4 1042 eor r0,r0,r4
1038 ldr r12,[r11,#240-16] 1043 ldr r12,[r11,#240-16]
1039 eor r1,r1,r5 1044 eor r1,r1,r5
1040 eor r2,r2,r6 1045 eor r2,r2,r6
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1171 eor r2,r2,r5 1176 eor r2,r2,r5
1172 eor r3,r3,r6 1177 eor r3,r3,r6
1173 1178
1174 sub r10,r10,#1024 1179 sub r10,r10,#1024
1175 ldr pc,[sp],#4 @ pop and return 1180 ldr pc,[sp],#4 @ pop and return
1176 .size _armv4_AES_decrypt,.-_armv4_AES_decrypt 1181 .size _armv4_AES_decrypt,.-_armv4_AES_decrypt
1177 .asciz "AES for ARMv4, CRYPTOGAMS by <appro@openssl.org>" 1182 .asciz "AES for ARMv4, CRYPTOGAMS by <appro@openssl.org>"
1178 .align 2 1183 .align 2
1179 1184
1180 #endif 1185 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698