Commit 6f673359 by Jim Wilson

(mips_expand_prologue): Handle types that need constructing.

(mips_expand_prologue): Handle types that need
constructing.  Rename TYPE to PASSED_TYPE and use consistently.

From-SVN: r8264
parent 252b87c7
...@@ -4802,12 +4802,17 @@ mips_expand_prologue () ...@@ -4802,12 +4802,17 @@ mips_expand_prologue ()
for (cur_arg = fnargs; cur_arg != (tree)0; cur_arg = next_arg) for (cur_arg = fnargs; cur_arg != (tree)0; cur_arg = next_arg)
{ {
tree type = DECL_ARG_TYPE (cur_arg); tree passed_type = DECL_ARG_TYPE (cur_arg);
enum machine_mode passed_mode = TYPE_MODE (type); enum machine_mode passed_mode = TYPE_MODE (passed_type);
rtx entry_parm = FUNCTION_ARG (args_so_far, rtx entry_parm;
passed_mode,
DECL_ARG_TYPE (cur_arg), if (TYPE_NEEDS_CONSTRUCTING (passed_type))
1); {
passed_type = build_pointer_type (passed_type);
passed_mode = Pmode;
}
entry_parm = FUNCTION_ARG (args_so_far, passed_mode, passed_type, 1);
if (entry_parm) if (entry_parm)
{ {
...@@ -4815,7 +4820,7 @@ mips_expand_prologue () ...@@ -4815,7 +4820,7 @@ mips_expand_prologue ()
/* passed in a register, so will get homed automatically */ /* passed in a register, so will get homed automatically */
if (GET_MODE (entry_parm) == BLKmode) if (GET_MODE (entry_parm) == BLKmode)
words = (int_size_in_bytes (type) + 3) / 4; words = (int_size_in_bytes (passed_type) + 3) / 4;
else else
words = (GET_MODE_SIZE (GET_MODE (entry_parm)) + 3) / 4; words = (GET_MODE_SIZE (GET_MODE (entry_parm)) + 3) / 4;
...@@ -4827,10 +4832,7 @@ mips_expand_prologue () ...@@ -4827,10 +4832,7 @@ mips_expand_prologue ()
break; break;
} }
FUNCTION_ARG_ADVANCE (args_so_far, FUNCTION_ARG_ADVANCE (args_so_far, passed_mode, passed_type, 1);
passed_mode,
DECL_ARG_TYPE (cur_arg),
1);
next_arg = TREE_CHAIN (cur_arg); next_arg = TREE_CHAIN (cur_arg);
if (next_arg == (tree)0) if (next_arg == (tree)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