Commit 04572513 by Jakub Jelinek Committed by David S. Miller

calls.c (save_fixed_argument_area): If save_mode is BLKmode, always use…

calls.c (save_fixed_argument_area): If save_mode is BLKmode, always use move_by_pieces to avoid infinite recursion.

	* calls.c (save_fixed_argument_area): If save_mode is BLKmode,
	always use move_by_pieces to avoid infinite recursion.
	(restore_fixed_argument_area): Likewise.

From-SVN: r30805
parent 50352c9c
......@@ -13,6 +13,10 @@
* config/sparc/sparc.c (input_operand): Allow HImode and QImode
valid sethi operations when TARGET_ARCH64.
* calls.c (save_fixed_argument_area): If save_mode is BLKmode,
always use move_by_pieces to avoid infinite recursion.
(restore_fixed_argument_area): Likewise.
Mon Dec 6 12:24:52 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* fold-const.c (optimize_bit_field_compare): Only use one mode
......
......@@ -743,8 +743,10 @@ save_fixed_argument_area (reg_parm_stack_space, argblock,
if (save_mode == BLKmode)
{
save_area = assign_stack_temp (BLKmode, num_to_save, 0);
emit_block_move (validize_mem (save_area), stack_area,
GEN_INT (num_to_save),
/* Cannot use emit_block_move here because it can be done by a library
call which in turn gets into this place again and deadly infinite
recursion happens. */
move_by_pieces (validize_mem (save_area), stack_area, num_to_save,
PARM_BOUNDARY / BITS_PER_UNIT);
}
else
......@@ -781,8 +783,11 @@ restore_fixed_argument_area (save_area, argblock, high_to_save, low_to_save)
if (save_mode != BLKmode)
emit_move_insn (stack_area, save_area);
else
emit_block_move (stack_area, validize_mem (save_area),
GEN_INT (high_to_save - low_to_save + 1),
/* Cannot use emit_block_move here because it can be done by a library
call which in turn gets into this place again and deadly infinite
recursion happens. */
move_by_pieces (stack_area, validize_mem (save_area),
high_to_save - low_to_save + 1,
PARM_BOUNDARY / BITS_PER_UNIT);
}
#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