Commit 76e048a8 by Kyrylo Tkachov Committed by Kyrylo Tkachov

[calls.c] Remove #ifdef checks on STACK_GROWS_DOWNWARD

	* calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
	(mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
	STACK_GROWS_DOWNWARD as normal if.
	(expand_call): Likewise.

From-SVN: r223347
parent d0ae0f51
2015-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
(mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
STACK_GROWS_DOWNWARD as normal if.
(expand_call): Likewise.
2015-05-19 Oleg Endo <olegendo@gcc.gnu.org> 2015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
PR target/54236 PR target/54236
......
...@@ -81,6 +81,15 @@ along with GCC; see the file COPYING3. If not see ...@@ -81,6 +81,15 @@ along with GCC; see the file COPYING3. If not see
#include "tree-chkp.h" #include "tree-chkp.h"
#include "rtl-chkp.h" #include "rtl-chkp.h"
/* Redefine STACK_GROWS_DOWNWARD in terms of 0 or 1. */
#ifdef STACK_GROWS_DOWNWARD
# undef STACK_GROWS_DOWNWARD
# define STACK_GROWS_DOWNWARD 1
#else
# define STACK_GROWS_DOWNWARD 0
#endif
/* Like PREFERRED_STACK_BOUNDARY but in units of bytes, not bits. */ /* Like PREFERRED_STACK_BOUNDARY but in units of bytes, not bits. */
#define STACK_BYTES (PREFERRED_STACK_BOUNDARY / BITS_PER_UNIT) #define STACK_BYTES (PREFERRED_STACK_BOUNDARY / BITS_PER_UNIT)
...@@ -1980,11 +1989,12 @@ mem_overlaps_already_clobbered_arg_p (rtx addr, unsigned HOST_WIDE_INT size) ...@@ -1980,11 +1989,12 @@ mem_overlaps_already_clobbered_arg_p (rtx addr, unsigned HOST_WIDE_INT size)
return true; return true;
else else
i = INTVAL (val); i = INTVAL (val);
#ifdef STACK_GROWS_DOWNWARD
i -= crtl->args.pretend_args_size; if (STACK_GROWS_DOWNWARD)
#else i -= crtl->args.pretend_args_size;
i += crtl->args.pretend_args_size; else
#endif i += crtl->args.pretend_args_size;
if (ARGS_GROW_DOWNWARD) if (ARGS_GROW_DOWNWARD)
i = -i - size; i = -i - size;
...@@ -2914,12 +2924,13 @@ expand_call (tree exp, rtx target, int ignore) ...@@ -2914,12 +2924,13 @@ expand_call (tree exp, rtx target, int ignore)
if (pass == 0) if (pass == 0)
{ {
argblock = crtl->args.internal_arg_pointer; argblock = crtl->args.internal_arg_pointer;
argblock if (STACK_GROWS_DOWNWARD)
#ifdef STACK_GROWS_DOWNWARD argblock
= plus_constant (Pmode, argblock, crtl->args.pretend_args_size); = plus_constant (Pmode, argblock, crtl->args.pretend_args_size);
#else else
= plus_constant (Pmode, argblock, -crtl->args.pretend_args_size); argblock
#endif = plus_constant (Pmode, argblock, -crtl->args.pretend_args_size);
stored_args_map = sbitmap_alloc (args_size.constant); stored_args_map = sbitmap_alloc (args_size.constant);
bitmap_clear (stored_args_map); bitmap_clear (stored_args_map);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment