672f6fc248
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. See also https://github.com/openssl/openssl/pull/5431 in OpenSSL. Bug: chromium:124610 Change-Id: I5e7a0c8c0f54a3f65cc324ad599a41883675f368 Reviewed-on: https://boringssl-review.googlesource.com/26164 Commit-Queue: Steven Valdez <svaldez@google.com> Reviewed-by: Steven Valdez <svaldez@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> |
||
---|---|---|
.. | ||
aes-586.pl | ||
aes-armv4.pl | ||
aes-x86_64.pl | ||
aesni-x86_64.pl | ||
aesni-x86.pl | ||
aesp8-ppc.pl | ||
aesv8-armx.pl | ||
bsaes-armv7.pl | ||
bsaes-x86_64.pl | ||
vpaes-x86_64.pl | ||
vpaes-x86.pl |