ARMv4 assembly pack: harmonize Thumb-ification of iOS build.
authorAndy Polyakov <appro@openssl.org>
Mon, 13 Feb 2017 17:16:16 +0000 (18:16 +0100)
committerAndy Polyakov <appro@openssl.org>
Wed, 15 Feb 2017 22:16:01 +0000 (23:16 +0100)
Three modules were left behind in a285992763f3961f69a8d86bf7dfff020a08cef9.

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2617)

crypto/aes/asm/aesv8-armx.pl
crypto/armv4cpuid.pl
crypto/modes/asm/ghashv8-armx.pl

index 954c041f1e0c14e9745332c13916f16c8833b1db..a7947af4860f1da6d9a75f0b79d7c2f793208c77 100755 (executable)
@@ -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
index 33c893d0e460f7e901240f68456712fbb968ecbd..f7d31a698ae7f06197dd0dba462d39523e3604ef 100644 (file)
@@ -27,6 +27,7 @@ $code.=<<___;
 .thumb
 #else
 .code  32
+#undef __thumb2__
 #endif
 
 .align 5
index cb4537b2217c7e9f5909ddefe46cd1a981d60909..dcd5f595d21af4adf94830b22b3925563972fbef 100644 (file)
@@ -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]);