Commit 5ba53785 by Uros Bizjak Committed by Uros Bizjak

re PR rtl-optimization/66891 (ICE in expand_call, at calls.c:3407)

	PR rtl-optimization/66891
	* calls.c (expand_call): Wrap precompute_register_parameters with
	NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.

testsuite/ChangeLog:

	PR target/66891
	* gcc.target/i386/pr66891.c: New test.

From-SVN: r225918
parent 92d30ce6
2015-07-17 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/66891
* calls.c (expand_call): Wrap precompute_register_parameters with
NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
2015-07-16 Nathan Sidwell <nathan@codesourcery.com>
* config/nvptx/mkoffload.c (process): Constify mapping variables.
......
......@@ -3144,6 +3144,10 @@ expand_call (tree exp, rtx target, int ignore)
compute_argument_addresses (args, argblock, num_actuals);
/* Stack is properly aligned, pops can't safely be deferred during
the evaluation of the arguments. */
NO_DEFER_POP;
/* Precompute all register parameters. It isn't safe to compute
anything once we have started filling any specific hard regs.
TLS symbols sometimes need a call to resolve. Precompute
......@@ -3151,6 +3155,8 @@ expand_call (tree exp, rtx target, int ignore)
to avoid unaligned stack in the called function. */
precompute_register_parameters (num_actuals, args, &reg_parm_seen);
OK_DEFER_POP;
/* Perform stack alignment before the first push (the last arg). */
if (argblock == 0
&& adjusted_args_size.constant > reg_parm_stack_space
......
2015-07-17 Uros Bizjak <ubizjak@gmail.com>
PR target/66891
* gcc.target/i386/pr66891.c: New test.
2015-07-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* gcc.target/arm/no-volatile-in-it.c: Skip if -mcpu is overriden.
......
/* { dg-do compile { target ia32 } } */
/* { dg-options "-O2" } */
__attribute__((__stdcall__)) void fn1();
int a;
static void fn2() {
for (;;)
;
}
void fn3() {
fn1(0);
fn2(a == 0);
}
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