===================================================================
@@ -1356,13 +1356,18 @@ allocate_dynamic_stack_space (rtx size,
#endif
/* The __morestack_allocate_stack_space function will allocate
- memory using malloc. We don't know that the alignment of the
- memory returned by malloc will meet REQUIRED_ALIGN. Increase
- SIZE to make sure we allocate enough space. */
- ask = expand_binop (Pmode, add_optab, size,
- GEN_INT (required_align / BITS_PER_UNIT - 1),
- NULL_RTX, 1, OPTAB_LIB_WIDEN);
- must_align = true;
+ memory using malloc. If the alignment of the memory returned
+ by malloc does not meet REQUIRED_ALIGN, we increase SIZE to
+ make sure we allocate enough space. */
+ if (MALLOC_ABI_ALIGNMENT <= required_align)
+ ask = size;
+ else
+ {
+ ask = expand_binop (Pmode, add_optab, size,
+ GEN_INT (required_align / BITS_PER_UNIT - 1),
+ NULL_RTX, 1, OPTAB_LIB_WIDEN);
+ must_align = true;
+ }
func = init_one_libfunc ("__morestack_allocate_stack_space");