openssl/crypto/aes/asm
David Benjamin 8a5d8bc4bc Always use adr with __thumb2__.
Thumb2 addresses are a bit a mess, depending on whether a label is
interpreted as a function pointer value (for use with BX and BLX) or as
a program counter value (for use with PC-relative addressing). Clang's
integrated assembler mis-assembles this code. See
https://crbug.com/124610#c54 for details.

Instead, use the ADR pseudo-instruction which has clear semantics and
should be supported by every assembler that handles the OpenSSL Thumb2
code. (In other files, the ADR vs SUB conditionals are based on
__thumb2__ already. For some reason, this one is based on __APPLE__, I'm
guessing to deal with an older version of clang assembler.)

It's unclear to me which of clang or binutils is "correct" or if this is
even a well-defined notion beyond "whatever binutils does". But I will
note that https://github.com/openssl/openssl/pull/4669 suggests binutils
has also changed behavior around this before.

Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5431)
2018-02-27 18:46:33 -05:00
..
aes-586.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
aes-armv4.pl Always use adr with __thumb2__. 2018-02-27 18:46:33 -05:00
aes-c64xplus.pl Add OpenSSL copyright to .pl files 2016-05-21 08:23:39 -04:00
aes-ia64.S Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
aes-mips.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
aes-parisc.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
aes-ppc.pl Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
aes-s390x.pl Update copyright years on all files merged since Jan 1st 2018 2018-01-09 05:49:01 +01:00
aes-sparcv9.pl Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
aes-x86_64.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
aesfx-sparcv9.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
aesni-mb-x86_64.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
aesni-sha1-x86_64.pl aes/asm/aesni-sha*-x86_64.pl: add SHAEXT performance results. 2017-07-24 23:29:46 +02:00
aesni-sha256-x86_64.pl aes/asm/aesni-sha*-x86_64.pl: add SHAEXT performance results. 2017-07-24 23:29:46 +02:00
aesni-x86.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
aesni-x86_64.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
aesp8-ppc.pl aes/asm/aesp8-ppc.pl: improve [backward] portability. 2016-11-10 12:58:35 +00:00
aest4-sparcv9.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
aesv8-armx.pl ARMv8 assembly pack: add Qualcomm Kryo results. 2017-11-13 11:13:00 +01:00
bsaes-armv7.pl Always use adr with __thumb2__. 2018-02-27 18:46:33 -05:00
bsaes-x86_64.pl aes/asm/*-x86_64.pl: add CFI annotations. 2017-02-13 21:17:29 +01:00
vpaes-armv8.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
vpaes-ppc.pl PPC assembler pack: add some PPC970/G5 performance data. 2016-11-11 13:24:52 +01:00
vpaes-x86.pl Remove filename argument to x86 asm_init. 2017-05-11 17:00:23 -04:00
vpaes-x86_64.pl x86_64 assembly pack: add Goldmont performance results. 2016-10-24 13:01:13 +02:00