Commit fd28789a by Richard Stallman

(expand_inline_function): Don't call push_temp_slots...

(expand_inline_function): Don't call
push_temp_slots, free_temp_slots, and pop_temp_slots when handling
parameters, because they might end up in a temp slot.

From-SVN: r5999
parent 57590b41
...@@ -1353,7 +1353,9 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add ...@@ -1353,7 +1353,9 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add
register number fits in const_equiv_map. Then we store all non-register register number fits in const_equiv_map. Then we store all non-register
parameters into their memory location. */ parameters into their memory location. */
push_temp_slots (); /* Don't try to free temp stack slots here, because we may put one of the
parameters into a temp stack slot. */
for (i = 0; i < nargs; i++) for (i = 0; i < nargs; i++)
{ {
rtx copy = arg_vals[i]; rtx copy = arg_vals[i];
...@@ -1422,9 +1424,6 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add ...@@ -1422,9 +1424,6 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add
} }
else else
abort (); abort ();
/* Free any temporaries we made setting up this parameter. */
free_temp_slots ();
} }
/* Now do the parameters that will be placed in memory. */ /* Now do the parameters that will be placed in memory. */
...@@ -1454,14 +1453,9 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add ...@@ -1454,14 +1453,9 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add
if (! memory_address_p (GET_MODE (temp), XEXP (temp, 0))) if (! memory_address_p (GET_MODE (temp), XEXP (temp, 0)))
temp = change_address (temp, VOIDmode, XEXP (temp, 0)); temp = change_address (temp, VOIDmode, XEXP (temp, 0));
store_expr (arg_trees[i], temp, 0); store_expr (arg_trees[i], temp, 0);
/* Free any temporaries we made setting up this parameter. */
free_temp_slots ();
} }
} }
pop_temp_slots ();
/* Deal with the places that the function puts its result. /* Deal with the places that the function puts its result.
We are driven by what is placed into DECL_RESULT. We are driven by what is placed into DECL_RESULT.
......
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