| Index: third_party/boringssl/linux-arm/crypto/aes/aes-armv4.S
|
| diff --git a/third_party/boringssl/linux-arm/crypto/aes/aes-armv4.S b/third_party/boringssl/linux-arm/crypto/aes/aes-armv4.S
|
| index 0b7d1938d1d30082422341b2e15ffa32cbbecdb7..113502037cabfb727c25a38d1172eb191086bfbf 100644
|
| --- a/third_party/boringssl/linux-arm/crypto/aes/aes-armv4.S
|
| +++ b/third_party/boringssl/linux-arm/crypto/aes/aes-armv4.S
|
| @@ -43,7 +43,7 @@
|
| .code 32
|
| #else
|
| .syntax unified
|
| -# ifdef __thumb2__
|
| +# if defined(__thumb2__) && !defined(__APPLE__)
|
| .thumb
|
| # else
|
| .code 32
|
| @@ -158,9 +158,9 @@ AES_Te:
|
|
|
| @ void asm_AES_encrypt(const unsigned char *in, unsigned char *out,
|
| @ const AES_KEY *key) {
|
| -.global asm_AES_encrypt
|
| -.hidden asm_AES_encrypt
|
| -.type asm_AES_encrypt,%function
|
| +.globl asm_AES_encrypt
|
| +.hidden asm_AES_encrypt
|
| +.type asm_AES_encrypt,%function
|
| .align 5
|
| asm_AES_encrypt:
|
| #if __ARM_ARCH__<7
|
| @@ -168,10 +168,14 @@ asm_AES_encrypt:
|
| #else
|
| adr r3,asm_AES_encrypt
|
| #endif
|
| - stmdb sp!,{r1,r4-r12,lr}
|
| + stmdb sp!,{r1,r4-r12,lr}
|
| +#ifdef __APPLE__
|
| + adr r10,AES_Te
|
| +#else
|
| + sub r10,r3,#asm_AES_encrypt-AES_Te @ Te
|
| +#endif
|
| mov r12,r0 @ inp
|
| mov r11,r2
|
| - sub r10,r3,#asm_AES_encrypt-AES_Te @ Te
|
| #if __ARM_ARCH__<7
|
| ldrb r0,[r12,#3] @ load input data in endian-neutral
|
| ldrb r4,[r12,#2] @ manner...
|
| @@ -258,20 +262,20 @@ asm_AES_encrypt:
|
| strb r3,[r12,#15]
|
| #endif
|
| #if __ARM_ARCH__>=5
|
| - ldmia sp!,{r4-r12,pc}
|
| + ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
|
| #else
|
| - ldmia sp!,{r4-r12,lr}
|
| + ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
|
| tst lr,#1
|
| moveq pc,lr @ be binary compatible with V4, yet
|
| - .word 0xe12fff1e @ interoperable with Thumb ISA:-)
|
| +.word 0xe12fff1e @ interoperable with Thumb ISA:-)
|
| #endif
|
| .size asm_AES_encrypt,.-asm_AES_encrypt
|
|
|
| -.type _armv4_AES_encrypt,%function
|
| +.type _armv4_AES_encrypt,%function
|
| .align 2
|
| _armv4_AES_encrypt:
|
| str lr,[sp,#-4]! @ push lr
|
| - ldmia r11!,{r4-r7}
|
| + ldmia r11!,{r4,r5,r6,r7}
|
| eor r0,r0,r4
|
| ldr r12,[r11,#240-16]
|
| eor r1,r1,r5
|
| @@ -404,9 +408,9 @@ _armv4_AES_encrypt:
|
| ldr pc,[sp],#4 @ pop and return
|
| .size _armv4_AES_encrypt,.-_armv4_AES_encrypt
|
|
|
| -.global asm_AES_set_encrypt_key
|
| -.hidden asm_AES_set_encrypt_key
|
| -.type asm_AES_set_encrypt_key,%function
|
| +.globl asm_AES_set_encrypt_key
|
| +.hidden asm_AES_set_encrypt_key
|
| +.type asm_AES_set_encrypt_key,%function
|
| .align 5
|
| asm_AES_set_encrypt_key:
|
| _armv4_AES_set_encrypt_key:
|
| @@ -439,13 +443,17 @@ _armv4_AES_set_encrypt_key:
|
| movne r0,#-1
|
| bne .Labrt
|
|
|
| -.Lok: stmdb sp!,{r4-r12,lr}
|
| - sub r10,r3,#_armv4_AES_set_encrypt_key-AES_Te-1024 @ Te4
|
| -
|
| +.Lok: stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
|
| mov r12,r0 @ inp
|
| mov lr,r1 @ bits
|
| mov r11,r2 @ key
|
|
|
| +#ifdef __APPLE__
|
| + adr r10,AES_Te+1024 @ Te4
|
| +#else
|
| + sub r10,r3,#_armv4_AES_set_encrypt_key-AES_Te-1024 @ Te4
|
| +#endif
|
| +
|
| #if __ARM_ARCH__<7
|
| ldrb r0,[r12,#3] @ load input data in endian-neutral
|
| ldrb r4,[r12,#2] @ manner...
|
| @@ -696,20 +704,20 @@ _armv4_AES_set_encrypt_key:
|
|
|
| .align 2
|
| .Ldone: mov r0,#0
|
| - ldmia sp!,{r4-r12,lr}
|
| + ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
|
| .Labrt:
|
| -#if defined(__thumb2__) && __ARM_ARCH__>=7
|
| - .short 0x4770 @ .word 0xe12fff1e in Thumb2 encoding
|
| +#if __ARM_ARCH__>=5
|
| + bx lr @ .word 0xe12fff1e
|
| #else
|
| tst lr,#1
|
| moveq pc,lr @ be binary compatible with V4, yet
|
| - .word 0xe12fff1e @ interoperable with Thumb ISA:-)
|
| +.word 0xe12fff1e @ interoperable with Thumb ISA:-)
|
| #endif
|
| .size asm_AES_set_encrypt_key,.-asm_AES_set_encrypt_key
|
|
|
| -.global asm_AES_set_decrypt_key
|
| -.hidden asm_AES_set_decrypt_key
|
| -.type asm_AES_set_decrypt_key,%function
|
| +.globl asm_AES_set_decrypt_key
|
| +.hidden asm_AES_set_decrypt_key
|
| +.type asm_AES_set_decrypt_key,%function
|
| .align 5
|
| asm_AES_set_decrypt_key:
|
| str lr,[sp,#-4]! @ push lr
|
| @@ -724,13 +732,13 @@ asm_AES_set_decrypt_key:
|
| .size asm_AES_set_decrypt_key,.-asm_AES_set_decrypt_key
|
|
|
| @ void AES_set_enc2dec_key(const AES_KEY *inp,AES_KEY *out)
|
| -.global AES_set_enc2dec_key
|
| +.globl AES_set_enc2dec_key
|
| .hidden AES_set_enc2dec_key
|
| .type AES_set_enc2dec_key,%function
|
| .align 5
|
| AES_set_enc2dec_key:
|
| _armv4_AES_set_enc2dec_key:
|
| - stmdb sp!,{r4-r12,lr}
|
| + stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
|
|
|
| ldr r12,[r0,#240]
|
| mov r7,r0 @ input
|
| @@ -812,12 +820,12 @@ _armv4_AES_set_enc2dec_key:
|
|
|
| mov r0,#0
|
| #if __ARM_ARCH__>=5
|
| - ldmia sp!,{r4-r12,pc}
|
| + ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
|
| #else
|
| - ldmia sp!,{r4-r12,lr}
|
| + ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
|
| tst lr,#1
|
| moveq pc,lr @ be binary compatible with V4, yet
|
| - .word 0xe12fff1e @ interoperable with Thumb ISA:-)
|
| +.word 0xe12fff1e @ interoperable with Thumb ISA:-)
|
| #endif
|
| .size AES_set_enc2dec_key,.-AES_set_enc2dec_key
|
|
|
| @@ -925,9 +933,9 @@ AES_Td:
|
|
|
| @ void asm_AES_decrypt(const unsigned char *in, unsigned char *out,
|
| @ const AES_KEY *key) {
|
| -.global asm_AES_decrypt
|
| -.hidden asm_AES_decrypt
|
| -.type asm_AES_decrypt,%function
|
| +.globl asm_AES_decrypt
|
| +.hidden asm_AES_decrypt
|
| +.type asm_AES_decrypt,%function
|
| .align 5
|
| asm_AES_decrypt:
|
| #if __ARM_ARCH__<7
|
| @@ -935,10 +943,14 @@ asm_AES_decrypt:
|
| #else
|
| adr r3,asm_AES_decrypt
|
| #endif
|
| - stmdb sp!,{r1,r4-r12,lr}
|
| + stmdb sp!,{r1,r4-r12,lr}
|
| +#ifdef __APPLE__
|
| + adr r10,AES_Td
|
| +#else
|
| + sub r10,r3,#asm_AES_decrypt-AES_Td @ Td
|
| +#endif
|
| mov r12,r0 @ inp
|
| mov r11,r2
|
| - sub r10,r3,#asm_AES_decrypt-AES_Td @ Td
|
| #if __ARM_ARCH__<7
|
| ldrb r0,[r12,#3] @ load input data in endian-neutral
|
| ldrb r4,[r12,#2] @ manner...
|
| @@ -1025,20 +1037,20 @@ asm_AES_decrypt:
|
| strb r3,[r12,#15]
|
| #endif
|
| #if __ARM_ARCH__>=5
|
| - ldmia sp!,{r4-r12,pc}
|
| + ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
|
| #else
|
| - ldmia sp!,{r4-r12,lr}
|
| + ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
|
| tst lr,#1
|
| moveq pc,lr @ be binary compatible with V4, yet
|
| - .word 0xe12fff1e @ interoperable with Thumb ISA:-)
|
| +.word 0xe12fff1e @ interoperable with Thumb ISA:-)
|
| #endif
|
| .size asm_AES_decrypt,.-asm_AES_decrypt
|
|
|
| -.type _armv4_AES_decrypt,%function
|
| +.type _armv4_AES_decrypt,%function
|
| .align 2
|
| _armv4_AES_decrypt:
|
| str lr,[sp,#-4]! @ push lr
|
| - ldmia r11!,{r4-r7}
|
| + ldmia r11!,{r4,r5,r6,r7}
|
| eor r0,r0,r4
|
| ldr r12,[r11,#240-16]
|
| eor r1,r1,r5
|
| @@ -1179,7 +1191,8 @@ _armv4_AES_decrypt:
|
| sub r10,r10,#1024
|
| ldr pc,[sp],#4 @ pop and return
|
| .size _armv4_AES_decrypt,.-_armv4_AES_decrypt
|
| -.asciz "AES for ARMv4, CRYPTOGAMS by <appro@openssl.org>"
|
| +.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
|
| +.align 2
|
| .align 2
|
|
|
| #endif
|
|
|