Revert section changes for ASM.
This change reverts the following commits:
72d9cba7cb78ddc9c8ec3f27a9367c407f7d0915
5b61b9ebc5ad0e25475f2aa633d3a6592dd65ba1
3f85e04f40c12282021241b393d94901e5c1027b
2ab24a2d40fd193a25d7c94072596a1180cbb460
Change-Id: I669b83f2269cf96aa71a649a346147b9407a811e
Reviewed-on: https://boringssl-review.googlesource.com/6056
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/aes/asm/aes-armv4.pl b/crypto/aes/asm/aes-armv4.pl
index 16ff990..882017a 100644
--- a/crypto/aes/asm/aes-armv4.pl
+++ b/crypto/aes/asm/aes-armv4.pl
@@ -82,7 +82,6 @@
# endif
#endif
-.pushsection .text.asm_AES_encrypt,"ax",%progbits
.type AES_Te,%object
.align 5
AES_Te:
@@ -188,7 +187,6 @@
.word 0x10000000, 0x20000000, 0x40000000, 0x80000000
.word 0x1B000000, 0x36000000, 0, 0, 0, 0, 0, 0
.size AES_Te,.-AES_Te
-.popsection
@ void asm_AES_encrypt(const unsigned char *in, unsigned char *out,
@ const AES_KEY *key) {
@@ -442,7 +440,7 @@
ldr pc,[sp],#4 @ pop and return
.size _armv4_AES_encrypt,.-_armv4_AES_encrypt
-.global_with_section asm_AES_set_encrypt_key, asm_AES_encrypt
+.global asm_AES_set_encrypt_key
.hidden asm_AES_set_encrypt_key
.type asm_AES_set_encrypt_key,%function
.align 5
@@ -868,7 +866,6 @@
#endif
.size AES_set_enc2dec_key,.-AES_set_enc2dec_key
-.pushsection .text.asm_AES_decrypt,"ax",%progbits
.type AES_Td,%object
.align 5
AES_Td:
@@ -970,7 +967,6 @@
.byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26
.byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
.size AES_Td,.-AES_Td
-.popsection
@ void asm_AES_decrypt(const unsigned char *in, unsigned char *out,
@ const AES_KEY *key) {
diff --git a/crypto/aes/asm/aesv8-armx.pl b/crypto/aes/asm/aesv8-armx.pl
index 4aa699e..121154a 100644
--- a/crypto/aes/asm/aesv8-armx.pl
+++ b/crypto/aes/asm/aesv8-armx.pl
@@ -71,13 +71,11 @@
$code.=<<___;
-.pushsection .text.${prefix}_set_encrypt_key,"ax",%progbits
.align 5
.Lrcon:
.long 0x01,0x01,0x01,0x01
.long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat
.long 0x1b,0x1b,0x1b,0x1b
-.popsection
.globl ${prefix}_set_encrypt_key
.type ${prefix}_set_encrypt_key,%function
diff --git a/crypto/aes/asm/bsaes-armv7.pl b/crypto/aes/asm/bsaes-armv7.pl
index 5fa3005..2617fef 100644
--- a/crypto/aes/asm/bsaes-armv7.pl
+++ b/crypto/aes/asm/bsaes-armv7.pl
@@ -2049,7 +2049,7 @@
.size bsaes_xts_encrypt,.-bsaes_xts_encrypt
-.global_with_section bsaes_xts_decrypt, bsaes_xts_encrypt
+.globl bsaes_xts_decrypt
.hidden bsaes_xts_decrypt
.type bsaes_xts_decrypt,%function
.align 4
diff --git a/crypto/bn/asm/armv4-mont.pl b/crypto/bn/asm/armv4-mont.pl
index d9487c7..4206fd8 100644
--- a/crypto/bn/asm/armv4-mont.pl
+++ b/crypto/bn/asm/armv4-mont.pl
@@ -85,11 +85,9 @@
.code 32
#if __ARM_MAX_ARCH__>=7
-.pushsection .text.bn_mul_mont,"ax",%progbits
.align 5
.LOPENSSL_armcap:
.word OPENSSL_armcap_P-.Lbn_mul_mont
-.popsection
#endif
.global bn_mul_mont
diff --git a/crypto/chacha/chacha_vec_arm.S b/crypto/chacha/chacha_vec_arm.S
index e1ec46e..0f82627 100644
--- a/crypto/chacha/chacha_vec_arm.S
+++ b/crypto/chacha/chacha_vec_arm.S
@@ -20,7 +20,7 @@
# This file was generated by chacha_vec_arm_generate.go using the following
# compiler command:
#
-# /opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -O3 -mcpu=cortex-a8 -mfpu=neon -fpic -ffunction-sections -DASM_GEN -I ../../include -S chacha_vec.c -o -
+# /opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -O3 -mcpu=cortex-a8 -mfpu=neon -fpic -DASM_GEN -I ../../include -S chacha_vec.c -o -
#if !defined(OPENSSL_NO_ASM)
#if defined(__arm__) || defined(__aarch64__)
@@ -52,7 +52,7 @@
.eabi_attribute 18, 4
.thumb
.file "chacha_vec.c"
- .section .text.CRYPTO_chacha_20_neon,"ax",%progbits
+ .text
.align 2
.global CRYPTO_chacha_20_neon
.hidden CRYPTO_chacha_20_neon
diff --git a/crypto/chacha/chacha_vec_arm_generate.go b/crypto/chacha/chacha_vec_arm_generate.go
index 1e185e5..6d167b9 100644
--- a/crypto/chacha/chacha_vec_arm_generate.go
+++ b/crypto/chacha/chacha_vec_arm_generate.go
@@ -36,7 +36,6 @@
"-mcpu=cortex-a8",
"-mfpu=neon",
"-fpic",
- "-ffunction-sections",
"-DASM_GEN",
"-I", "../../include",
"-S", "chacha_vec.c",
diff --git a/crypto/perlasm/arm-xlate.pl b/crypto/perlasm/arm-xlate.pl
index 32eeb25..706fa70 100755
--- a/crypto/perlasm/arm-xlate.pl
+++ b/crypto/perlasm/arm-xlate.pl
@@ -18,14 +18,6 @@
if ($flavour =~ /linux/) { ".arch\t".join(',',@_); }
else { ""; }
};
-my $pushsection = sub {
- if ($flavour !~ /ios/) { ".pushsection\t".join(',',@_); }
- else { ""; }
-};
-my $popsection = sub {
- if ($flavour !~ /ios/) { ".popsection"; }
- else { ""; }
-};
my $fpu = sub {
if ($flavour =~ /linux/) { ".fpu\t".join(',',@_); }
else { ""; }
@@ -52,8 +44,7 @@
$$global = $name;
$ret;
};
-my $in_section = 0;
-my $raw_globl = sub {
+my $globl = sub {
my $name = shift;
my $global = \$GLOBALS{$name};
my $ret;
@@ -68,39 +59,7 @@
$$global = $name;
$ret;
};
-my $globl = sub {
- my $name = shift;
-
- if ($flavour !~ /ios/) {
- if ($in_section == 1) {
- printf ".popsection\n";
- }
- $in_section = 1;
-
- printf ".pushsection .text.$name,\"ax\",%%progbits\n";
- }
- return $raw_globl->($name);
-
-};
my $global = $globl;
-my $global_with_section = sub {
- my $arg = shift;
-
- if ($arg =~ m/^([^,]*), *(.*)/) {
- if ($flavour !~ /ios/) {
- if ($in_section == 1) {
- printf ".popsection\n";
- }
- $in_section = 1;
-
- printf ".pushsection .text.$2,\"ax\",%%progbits\n";
- }
- return $raw_globl->($1);
- } else {
- printf STDERR "Expected two arguments to global_with_section\n";
- exit(1);
- }
-};
my $extern = sub {
&$globl(@_);
return; # return nothing
diff --git a/crypto/poly1305/poly1305_arm_asm.S b/crypto/poly1305/poly1305_arm_asm.S
index bbd9791..e16f83b 100644
--- a/crypto/poly1305/poly1305_arm_asm.S
+++ b/crypto/poly1305/poly1305_arm_asm.S
@@ -153,7 +153,6 @@
# qhasm: qpushenter crypto_onetimeauth_poly1305_neon2_blocks
.align 4
-.pushsection .text.openssl_poly1305_neon2_blocks,"ax",%progbits
.global openssl_poly1305_neon2_blocks
.hidden openssl_poly1305_neon2_blocks
.type openssl_poly1305_neon2_blocks STT_FUNC
@@ -1520,7 +1519,6 @@
mov sp,r12
vpop {q4,q5,q6,q7}
bx lr
-.popsection
# qhasm: int32 input_0
@@ -1614,7 +1612,6 @@
# qhasm: enter crypto_onetimeauth_poly1305_neon2_addmulmod
.align 2
-.pushsection .text.openssl_poly1305_neon2_addmulmod,"ax",%progbits
.global openssl_poly1305_neon2_addmulmod
.hidden openssl_poly1305_neon2_addmulmod
.type openssl_poly1305_neon2_addmulmod STT_FUNC
@@ -2014,6 +2011,5 @@
# qhasm: return
add sp,sp,#0
bx lr
-.popsection
#endif /* __arm__ && !OPENSSL_NO_ASM */
diff --git a/crypto/sha/asm/sha256-armv4.pl b/crypto/sha/asm/sha256-armv4.pl
index 490c74f..7e07147 100644
--- a/crypto/sha/asm/sha256-armv4.pl
+++ b/crypto/sha/asm/sha256-armv4.pl
@@ -187,7 +187,6 @@
# endif
#endif
-.pushsection .text.sha256_block_data_order,"ax",%progbits
.type K256,%object
.align 5
K256:
@@ -213,11 +212,10 @@
.LOPENSSL_armcap:
.word OPENSSL_armcap_P-.Lsha256_block_data_order
#endif
-.popsection
+.align 5
.global sha256_block_data_order
.type sha256_block_data_order,%function
-.align 5
sha256_block_data_order:
.Lsha256_block_data_order:
#if __ARM_ARCH__<7
@@ -473,7 +471,7 @@
.arch armv7-a
.fpu neon
-.global_with_section sha256_block_data_order_neon, sha256_block_data_order
+.global sha256_block_data_order_neon
.type sha256_block_data_order_neon,%function
.align 4
sha256_block_data_order_neon:
diff --git a/crypto/sha/asm/sha512-armv4.pl b/crypto/sha/asm/sha512-armv4.pl
index 4c1cbae..cd3662a 100644
--- a/crypto/sha/asm/sha512-armv4.pl
+++ b/crypto/sha/asm/sha512-armv4.pl
@@ -224,7 +224,6 @@
# endif
#endif
-.pushsection .text.sha512_block_data_order,"ax",%progbits
.type K512,%object
.align 5
K512:
@@ -276,7 +275,6 @@
#else
.skip 32
#endif
-.popsection
.global sha512_block_data_order
.type sha512_block_data_order,%function
@@ -604,7 +602,7 @@
.arch armv7-a
.fpu neon
-.global_with_section sha512_block_data_order_neon, sha512_block_data_order
+.global sha512_block_data_order_neon
.type sha512_block_data_order_neon,%function
.align 4
sha512_block_data_order_neon: