crosstool-ng/packages/gcc/9.2.0/0015-crystax.patch
Hans-Christian Noren Egtvedt a6c36d3e7d Update to gcc 9.2.0
Forward ported patches from GCC 8.3.0 to 9.2.0, refreshed to match
current sources.

In patch 0012-crystax.patch, removed changing sysv4.h header file for
rs6000, since it no longer defines LINK_EH_SPEC.

Removed the following patches because they are part of upstream:
- 0018-ARC-Add-multilib-support-for-linux-targets.patch
- 0020-ARM-fix-cmse.patch
- 0021-arm-Make-arm_cmse.h-C99-compatible.patch
- 0022-ARC-Update-fma-expansions.patch

Renamed 0019-isl-0.20.patch => 0018-isl-0.20.patch.

Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
2019-08-15 12:11:19 +02:00

34 lines
1.4 KiB
Diff

commit 8a66d422721ae5999737d7825701ff22097d287b
Author: Andrew Hsieh <andrewhsieh@google.com>
Date: Mon Apr 14 21:05:51 2014 -0700
[android] Fix ARM generates insufficient alignment for NEON vst/vld
See d909af3e2469aad87d5c3e79b93c778fd26c03a9
Change-Id: Ie1de9f946f397196bb6f1623f5add86933739484
Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
---
gcc/config/arm/arm.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -22781,9 +22781,13 @@ arm_print_operand (FILE *stream, rtx x,
memsize = MEM_SIZE (x);
/* Only certain alignment specifiers are supported by the hardware. */
- if (memsize == 32 && (align % 32) == 0)
+ /* Note that ARM EABI only guarentees 8-byte stack alignment. While GCC
+ honors stricter alignment of composite type in user code, it doesn't
+ observe the alignment of memory passed as an extra argument for function
+ returning large composite type. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57271 */
+ if (memsize == 32 && (align % 32) == 0 && !TARGET_AAPCS_BASED)
align_bits = 256;
- else if ((memsize == 16 || memsize == 32) && (align % 16) == 0)
+ else if ((memsize == 16 || memsize == 32) && (align % 16) == 0 && !TARGET_AAPCS_BASED)
align_bits = 128;
else if (memsize >= 8 && (align % 8) == 0)
align_bits = 64;