From c93f06c12f10c07cea935abd78a07a037e27f155 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Mon, 13 Feb 2017 18:16:16 +0100 Subject: [PATCH] ARMv4 assembly pack: harmonize Thumb-ification of iOS build. Three modules were left behind in a285992763f3961f69a8d86bf7dfff020a08cef9. Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/2617) --- crypto/aes/asm/aesv8-armx.pl | 9 ++++++--- crypto/armv4cpuid.pl | 1 + crypto/modes/asm/ghashv8-armx.pl | 6 +++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/crypto/aes/asm/aesv8-armx.pl b/crypto/aes/asm/aesv8-armx.pl index 954c041f1e..a7947af486 100755 --- a/crypto/aes/asm/aesv8-armx.pl +++ b/crypto/aes/asm/aesv8-armx.pl @@ -59,9 +59,12 @@ $code=<<___; .text ___ $code.=".arch armv8-a+crypto\n" if ($flavour =~ /64/); -$code.=".arch armv7-a\n.fpu neon\n.code 32\n" if ($flavour !~ /64/); - #^^^^^^ this is done to simplify adoption by not depending - # on latest binutils. +$code.=<<___ if ($flavour !~ /64/); +.arch armv7-a // don't confuse not-so-latest binutils with argv8 :-) +.fpu neon +.code 32 +#undef __thumb2__ +___ # Assembler mnemonics are an eclectic mix of 32- and 64-bit syntax, # NEON is mostly 32-bit mnemonics, integer - mostly 64. Goal is to diff --git a/crypto/armv4cpuid.pl b/crypto/armv4cpuid.pl index 33c893d0e4..f7d31a698a 100644 --- a/crypto/armv4cpuid.pl +++ b/crypto/armv4cpuid.pl @@ -27,6 +27,7 @@ $code.=<<___; .thumb #else .code 32 +#undef __thumb2__ #endif .align 5 diff --git a/crypto/modes/asm/ghashv8-armx.pl b/crypto/modes/asm/ghashv8-armx.pl index cb4537b221..dcd5f595d2 100644 --- a/crypto/modes/asm/ghashv8-armx.pl +++ b/crypto/modes/asm/ghashv8-armx.pl @@ -67,7 +67,11 @@ $code=<<___; .text ___ $code.=".arch armv8-a+crypto\n" if ($flavour =~ /64/); -$code.=".fpu neon\n.code 32\n" if ($flavour !~ /64/); +$code.=<<___ if ($flavour !~ /64/); +.fpu neon +.code 32 +#undef __thumb2__ +___ ################################################################################ # void gcm_init_v8(u128 Htable[16],const u64 H[2]); -- 2.25.1