Commit d072107f by Richard Kenner

*** empty log message ***

From-SVN: r1125
parent f0a45d37
...@@ -638,8 +638,9 @@ struct rt_cargs {int gregs, fregs; }; ...@@ -638,8 +638,9 @@ struct rt_cargs {int gregs, fregs; };
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
(! (NAMED) ? 0 \ (! (NAMED) ? 0 \
: USE_FP_REG(MODE,CUM) ? gen_rtx(REG, (MODE),(CUM.fregs) + 17) \ : ((TYPE) != 0 && TREE_CODE (TYPE_CODE (TYPE)) != INTEGER_CST) \
: (CUM).gregs < 4 ? gen_rtx(REG, (MODE), 2 + (CUM).gregs) : 0) : USE_FP_REG(MODE,CUM) ? gen_rtx(REG, (MODE),(CUM.fregs) + 17) \
: (CUM).gregs < 4 ? gen_rtx(REG, (MODE), 2 + (CUM).gregs) : 0)
/* For an arg passed partly in registers and partly in memory, /* For an arg passed partly in registers and partly in memory,
this is the number of registers used. this is the number of registers used.
......
...@@ -714,7 +714,8 @@ struct rs6000_args {int words, fregno, nargs_prototype; }; ...@@ -714,7 +714,8 @@ struct rs6000_args {int words, fregno, nargs_prototype; };
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ #define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
(! (NAMED) ? 0 \ (! (NAMED) ? 0 \
: USE_FP_FOR_ARG_P (CUM, MODE, TYPE) \ : ((TYPE) != 0 && TREE_CODE (TYPE_CODE (TYPE)) != INTEGER_CST) \
: USE_FP_FOR_ARG_P (CUM, MODE, TYPE) \
? ((CUM).nargs_prototype > 0 \ ? ((CUM).nargs_prototype > 0 \
? gen_rtx (REG, MODE, (CUM).fregno) \ ? gen_rtx (REG, MODE, (CUM).fregno) \
: ((CUM).words < 8 \ : ((CUM).words < 8 \
......
...@@ -751,18 +751,21 @@ emit_stack_save (save_level, psave, after) ...@@ -751,18 +751,21 @@ emit_stack_save (save_level, psave, after)
abort (); abort ();
} }
if (sa != 0)
sa = validize_mem (sa);
if (after) if (after)
{ {
rtx seq; rtx seq;
start_sequence (); start_sequence ();
emit_insn (fcn (validize_mem (sa), stack_pointer_rtx)); emit_insn (fcn (sa, stack_pointer_rtx));
seq = gen_sequence (); seq = gen_sequence ();
end_sequence (); end_sequence ();
emit_insn_after (seq, after); emit_insn_after (seq, after);
} }
else else
emit_insn (fcn (validize_mem (sa), stack_pointer_rtx)); emit_insn (fcn (sa, stack_pointer_rtx));
} }
/* Restore the stack pointer for the purpose in SAVE_LEVEL. SA is the save /* Restore the stack pointer for the purpose in SAVE_LEVEL. SA is the save
...@@ -804,18 +807,21 @@ emit_stack_restore (save_level, sa, after) ...@@ -804,18 +807,21 @@ emit_stack_restore (save_level, sa, after)
#endif #endif
} }
if (sa != 0)
sa = validize_mem (sa);
if (after) if (after)
{ {
rtx seq; rtx seq;
start_sequence (); start_sequence ();
emit_insn (fcn (stack_pointer_rtx, validize_mem (sa))); emit_insn (fcn (stack_pointer_rtx, sa));
seq = gen_sequence (); seq = gen_sequence ();
end_sequence (); end_sequence ();
emit_insn_after (seq, after); emit_insn_after (seq, after);
} }
else else
emit_insn (fcn (stack_pointer_rtx, validize_mem (sa))); emit_insn (fcn (stack_pointer_rtx, sa));
} }
/* Return an rtx representing the address of an area of memory dynamically /* Return an rtx representing the address of an area of memory dynamically
......
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