aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sparc/sparc.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2017-12-13 23:16:56 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2017-12-13 23:16:56 +0000
commitb9f92c0bb7fc0c319b0a2d54b6a74e8f49c469bd (patch)
tree6a7f304d8ee14fef74899d293496f9f886e83325 /gcc/config/sparc/sparc.c
parentf4615940b171c449a0e799195dbd28041f677f35 (diff)
downloadgcc-b9f92c0bb7fc0c319b0a2d54b6a74e8f49c469bd.zip
gcc-b9f92c0bb7fc0c319b0a2d54b6a74e8f49c469bd.tar.gz
gcc-b9f92c0bb7fc0c319b0a2d54b6a74e8f49c469bd.tar.bz2
re PR middle-end/78468 (libgomp.c/reduction-10.c and many more FAIL)
PR middle-end/78468 * emit-rtl.c (init_emit): Remove ??? comment. * explow.c (get_dynamic_stack_size): Take known alignment of stack pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY. * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the alignment of 3 virtual registers to BITS_PER_WORD. * config/sparc/sparc.c (sparc_compute_frame_size): Simplify. Co-Authored-By: Dominik Vogt <vogt@linux.vnet.ibm.com> From-SVN: r255616
Diffstat (limited to 'gcc/config/sparc/sparc.c')
-rw-r--r--gcc/config/sparc/sparc.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index a8d363c..890bde9 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -5483,10 +5483,8 @@ sparc_compute_frame_size (HOST_WIDE_INT size, int leaf_function)
frame_size = apparent_frame_size = 0;
else
{
- /* We subtract TARGET_STARTING_FRAME_OFFSET, remember it's negative. */
- apparent_frame_size
- = ROUND_UP (size - targetm.starting_frame_offset (), 8);
- apparent_frame_size += n_global_fp_regs * 4;
+ /* Start from the apparent frame size. */
+ apparent_frame_size = ROUND_UP (size, 8) + n_global_fp_regs * 4;
/* We need to add the size of the outgoing argument area. */
frame_size = apparent_frame_size + ROUND_UP (args_size, 8);