Commit b564df06 by Jeffrey A Law Committed by Jeff Law

calls.c (store_one_arg): Mark any slots used for the argument as in-use…

calls.c (store_one_arg): Mark any slots used for the argument as in-use immediately after we're done...

        * calls.c (store_one_arg): Mark any slots used for the argument
        as in-use immediately after we're done saving any slots which
        will be overwritten by this argument.

From-SVN: r25256
parent 6756293c
Tue Feb 16 21:29:38 1999 Jeffrey A Law (law@cygnus.com)
* calls.c (store_one_arg): Mark any slots used for the argument
as in-use immediately after we're done saving any slots which
will be overwritten by this argument.
Tue Feb 16 21:02:07 1999 Anton Hartl <toni@devsoft.com> Tue Feb 16 21:02:07 1999 Anton Hartl <toni@devsoft.com>
* rs6000.md (call_value): Fix typo. * rs6000.md (call_value): Fix typo.
......
...@@ -3558,6 +3558,14 @@ store_one_arg (arg, argblock, may_be_alloca, variable_size, ...@@ -3558,6 +3558,14 @@ store_one_arg (arg, argblock, may_be_alloca, variable_size,
} }
} }
} }
/* Now that we have saved any slots that will be overwritten by this
store, mark all slots this store will use. We must do this before
we actually expand the argument since the expansion itself may
trigger library calls which might need to use the same stack slot. */
if (argblock && ! variable_size && arg->stack)
for (i = lower_bound; i < upper_bound; i++)
stack_usage_map[i] = 1;
#endif #endif
/* If this isn't going to be placed on both the stack and in registers, /* If this isn't going to be placed on both the stack and in registers,
...@@ -3733,11 +3741,4 @@ store_one_arg (arg, argblock, may_be_alloca, variable_size, ...@@ -3733,11 +3741,4 @@ store_one_arg (arg, argblock, may_be_alloca, variable_size,
preserve_temp_slots (NULL_RTX); preserve_temp_slots (NULL_RTX);
free_temp_slots (); free_temp_slots ();
pop_temp_slots (); pop_temp_slots ();
#ifdef ACCUMULATE_OUTGOING_ARGS
/* Now mark the segment we just used. */
if (argblock && ! variable_size && arg->stack)
for (i = lower_bound; i < upper_bound; i++)
stack_usage_map[i] = 1;
#endif
} }
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