aes/asm/{aes-armv4|bsaes-armv7}.pl: make it work with binutils-2.29.
It's not clear if it's a feature or bug, but binutils-2.29[.1] interprets 'adr' instruction with Thumb2 code reference differently, in a way that affects calculation of addresses of constants' tables. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/4669)
This commit is contained in:
parent
976b0388d0
commit
b82acc3c1a
2 changed files with 6 additions and 6 deletions
|
@ -200,7 +200,7 @@ AES_encrypt:
|
||||||
#ifndef __thumb2__
|
#ifndef __thumb2__
|
||||||
sub r3,pc,#8 @ AES_encrypt
|
sub r3,pc,#8 @ AES_encrypt
|
||||||
#else
|
#else
|
||||||
adr r3,AES_encrypt
|
adr r3,.
|
||||||
#endif
|
#endif
|
||||||
stmdb sp!,{r1,r4-r12,lr}
|
stmdb sp!,{r1,r4-r12,lr}
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
|
@ -450,7 +450,7 @@ _armv4_AES_set_encrypt_key:
|
||||||
#ifndef __thumb2__
|
#ifndef __thumb2__
|
||||||
sub r3,pc,#8 @ AES_set_encrypt_key
|
sub r3,pc,#8 @ AES_set_encrypt_key
|
||||||
#else
|
#else
|
||||||
adr r3,AES_set_encrypt_key
|
adr r3,.
|
||||||
#endif
|
#endif
|
||||||
teq r0,#0
|
teq r0,#0
|
||||||
#ifdef __thumb2__
|
#ifdef __thumb2__
|
||||||
|
@ -976,7 +976,7 @@ AES_decrypt:
|
||||||
#ifndef __thumb2__
|
#ifndef __thumb2__
|
||||||
sub r3,pc,#8 @ AES_decrypt
|
sub r3,pc,#8 @ AES_decrypt
|
||||||
#else
|
#else
|
||||||
adr r3,AES_decrypt
|
adr r3,.
|
||||||
#endif
|
#endif
|
||||||
stmdb sp!,{r1,r4-r12,lr}
|
stmdb sp!,{r1,r4-r12,lr}
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
|
|
|
@ -740,7 +740,7 @@ $code.=<<___;
|
||||||
.type _bsaes_decrypt8,%function
|
.type _bsaes_decrypt8,%function
|
||||||
.align 4
|
.align 4
|
||||||
_bsaes_decrypt8:
|
_bsaes_decrypt8:
|
||||||
adr $const,_bsaes_decrypt8
|
adr $const,.
|
||||||
vldmia $key!, {@XMM[9]} @ round 0 key
|
vldmia $key!, {@XMM[9]} @ round 0 key
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
adr $const,.LM0ISR
|
adr $const,.LM0ISR
|
||||||
|
@ -839,7 +839,7 @@ _bsaes_const:
|
||||||
.type _bsaes_encrypt8,%function
|
.type _bsaes_encrypt8,%function
|
||||||
.align 4
|
.align 4
|
||||||
_bsaes_encrypt8:
|
_bsaes_encrypt8:
|
||||||
adr $const,_bsaes_encrypt8
|
adr $const,.
|
||||||
vldmia $key!, {@XMM[9]} @ round 0 key
|
vldmia $key!, {@XMM[9]} @ round 0 key
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
adr $const,.LM0SR
|
adr $const,.LM0SR
|
||||||
|
@ -947,7 +947,7 @@ $code.=<<___;
|
||||||
.type _bsaes_key_convert,%function
|
.type _bsaes_key_convert,%function
|
||||||
.align 4
|
.align 4
|
||||||
_bsaes_key_convert:
|
_bsaes_key_convert:
|
||||||
adr $const,_bsaes_key_convert
|
adr $const,.
|
||||||
vld1.8 {@XMM[7]}, [$inp]! @ load round 0 key
|
vld1.8 {@XMM[7]}, [$inp]! @ load round 0 key
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
adr $const,.LM0
|
adr $const,.LM0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue