ARM assembly pack: make it Windows-friendly.
authorAndy Polyakov <appro@openssl.org>
Fri, 15 Feb 2019 08:44:39 +0000 (09:44 +0100)
committerRichard Levitte <levitte@openssl.org>
Sat, 16 Feb 2019 15:59:23 +0000 (16:59 +0100)
commit3405db97e5448c784729b56837f3f8c776a01067
tree3038d1d73fb0964915fdfd6377bb717722c02ea7
parentb2b580fe445e064da50c13d3e00f71022da16ece
ARM assembly pack: make it Windows-friendly.

"Windows friendliness" means a) flipping .thumb and .text directives,
b) always generate Thumb-2 code when asked(*); c) Windows-specific
references to external OPENSSL_armcap_P.

(*) so far *some* modules were compiled as .code 32 even if Thumb-2
was targeted. It works at hardware level because processor can alternate
between the modes with no overhead. But clang --target=arm-windows's
builtin assembler just refuses to compile .code 32...

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8252)
16 files changed:
crypto/aes/asm/aes-armv4.pl
crypto/aes/asm/aesv8-armx.pl
crypto/aes/asm/bsaes-armv7.pl
crypto/armv4cpuid.pl
crypto/bn/asm/armv4-gf2m.pl
crypto/bn/asm/armv4-mont.pl
crypto/chacha/asm/chacha-armv4.pl
crypto/ec/asm/ecp_nistz256-armv4.pl
crypto/modes/asm/ghash-armv4.pl
crypto/modes/asm/ghashv8-armx.pl
crypto/perlasm/arm-xlate.pl
crypto/poly1305/asm/poly1305-armv4.pl
crypto/sha/asm/keccak1600-armv4.pl
crypto/sha/asm/sha1-armv4-large.pl
crypto/sha/asm/sha256-armv4.pl
crypto/sha/asm/sha512-armv4.pl