aboutsummaryrefslogtreecommitdiff
path: root/gcc/explow.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-05-25 06:28:09 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1992-05-25 06:28:09 -0400
commit3b998c11fb4b43c4547bb7aa3f714ce89fe0c922 (patch)
tree20a3a7c01f2515050b05f012690cb27e34ff094a /gcc/explow.c
parent1ce634c39faa75856b8a0468b6f39943a6c8e687 (diff)
downloadgcc-3b998c11fb4b43c4547bb7aa3f714ce89fe0c922.zip
gcc-3b998c11fb4b43c4547bb7aa3f714ce89fe0c922.tar.gz
gcc-3b998c11fb4b43c4547bb7aa3f714ce89fe0c922.tar.bz2
*** empty log message ***
From-SVN: r1079
Diffstat (limited to 'gcc/explow.c')
-rw-r--r--gcc/explow.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/gcc/explow.c b/gcc/explow.c
index 50b0582..c01c21b 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -846,14 +846,18 @@ allocate_dynamic_stack_space (size, target, known_align)
#ifdef MUST_ALIGN
- if (GET_CODE (size) == CONST_INT)
- size = gen_rtx (CONST_INT, VOIDmode,
- INTVAL (size) + (BIGGEST_ALIGNMENT / BITS_PER_UNIT - 1));
- else
- size = expand_binop (Pmode, add_optab, size,
- gen_rtx (CONST_INT, VOIDmode,
- BIGGEST_ALIGNMENT / BITS_PER_UNIT - 1),
- 0, 1, OPTAB_LIB_WIDEN);
+ if (known_align % BIGGEST_ALIGNMENT != 0)
+ {
+ if (GET_CODE (size) == CONST_INT)
+ size = gen_rtx (CONST_INT, VOIDmode,
+ (INTVAL (size)
+ + (BIGGEST_ALIGNMENT / BITS_PER_UNIT - 1)));
+ else
+ size = expand_binop (Pmode, add_optab, size,
+ gen_rtx (CONST_INT, VOIDmode,
+ BIGGEST_ALIGNMENT / BITS_PER_UNIT - 1),
+ 0, 1, OPTAB_LIB_WIDEN);
+ }
#endif
#ifdef SETJMP_VIA_SAVE_AREA