Commit 78bcf3dc by Eric Botcazou Committed by Eric Botcazou

re PR middle-end/78700 (gccgo testcases stack.go, recover.go, crypto/tls fails)

	PR middle-end/78700
	* calls.c (expand_call): Move back call to prepare_call_address.

From-SVN: r243322
parent a5a56d88
2016-12-06 Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/78700
* calls.c (expand_call): Move back call to prepare_call_address.
2016-12-06 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/78658
......@@ -3427,13 +3427,6 @@ expand_call (tree exp, rtx target, int ignore)
if (STRICT_ALIGNMENT)
store_unaligned_arguments_into_pseudos (args, num_actuals);
/* Prepare the address of the call. This must be done before any
register parameters is loaded for find_first_parameter_load to
work properly in the presence of descriptors. */
funexp = prepare_call_address (fndecl ? fndecl : fntype, funexp,
static_chain_value, &call_fusage,
reg_parm_seen, flags);
/* Now store any partially-in-registers parm.
This is the last place a block-move can happen. */
if (reg_parm_seen)
......@@ -3544,6 +3537,9 @@ expand_call (tree exp, rtx target, int ignore)
}
after_args = get_last_insn ();
funexp = prepare_call_address (fndecl ? fndecl : fntype, funexp,
static_chain_value, &call_fusage,
reg_parm_seen, flags);
load_register_parameters (args, num_actuals, &call_fusage, flags,
pass == 0, &sibcall_failure);
......
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