cfgexpand.c (expand_stack_alignment): Assert that stack_realign_drap and drap_rtx must match.
2008-08-01 H.J. Lu <hongjiu.lu@intel.com> * cfgexpand.c (expand_stack_alignment): Assert that stack_realign_drap and drap_rtx must match. * function.c (instantiate_new_reg): If DRAP is used to realign stack, replace virtual_incoming_args_rtx with internal arg pointer. From-SVN: r138524
This commit is contained in:
parent
678e7c6504
commit
d015f7cc65
@ -1,3 +1,12 @@
|
||||
2008-08-01 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* cfgexpand.c (expand_stack_alignment): Assert that
|
||||
stack_realign_drap and drap_rtx must match.
|
||||
|
||||
* function.c (instantiate_new_reg): If DRAP is used to realign
|
||||
stack, replace virtual_incoming_args_rtx with internal arg
|
||||
pointer.
|
||||
|
||||
2008-08-01 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
|
||||
|
@ -2226,6 +2226,9 @@ expand_stack_alignment (void)
|
||||
gcc_assert (targetm.calls.get_drap_rtx != NULL);
|
||||
drap_rtx = targetm.calls.get_drap_rtx ();
|
||||
|
||||
/* stack_realign_drap and drap_rtx must match. */
|
||||
gcc_assert ((stack_realign_drap != 0) == (drap_rtx != NULL));
|
||||
|
||||
/* Do nothing if NULL is returned, which means DRAP is not needed. */
|
||||
if (NULL != drap_rtx)
|
||||
{
|
||||
|
@ -1215,10 +1215,10 @@ instantiate_new_reg (rtx x, HOST_WIDE_INT *poffset)
|
||||
|
||||
if (x == virtual_incoming_args_rtx)
|
||||
{
|
||||
/* Replace virtual_incoming_args_rtx to internal arg pointer here */
|
||||
if (crtl->args.internal_arg_pointer != virtual_incoming_args_rtx)
|
||||
if (stack_realign_drap)
|
||||
{
|
||||
gcc_assert (stack_realign_drap);
|
||||
/* Replace virtual_incoming_args_rtx with internal arg
|
||||
pointer if DRAP is used to realign stack. */
|
||||
new = crtl->args.internal_arg_pointer;
|
||||
offset = 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user