expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to bytes.
* expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to bytes. Reported by Kazu Hirata <kazu@hxi.com>. From-SVN: r41956
This commit is contained in:
parent
dac975d3d9
commit
f1eaaf73c5
@ -1,3 +1,8 @@
|
|||||||
|
2001-05-10 David Edelsohn <edelsohn@gnu.org>
|
||||||
|
|
||||||
|
* expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to
|
||||||
|
bytes. Reported by Kazu Hirata <kazu@hxi.com>.
|
||||||
|
|
||||||
2001-05-10 David Edelsohn <edelsohn@gnu.org>
|
2001-05-10 David Edelsohn <edelsohn@gnu.org>
|
||||||
|
|
||||||
* expr.c (emit_group_load): extract_bit_field requires a REG or
|
* expr.c (emit_group_load): extract_bit_field requires a REG or
|
||||||
|
@ -1511,7 +1511,7 @@ move_by_pieces (to, from, len, align)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Return number of insns required to move L bytes by pieces.
|
/* Return number of insns required to move L bytes by pieces.
|
||||||
ALIGN (in bytes) is maximum alignment we can assume. */
|
ALIGN (in bits) is maximum alignment we can assume. */
|
||||||
|
|
||||||
static unsigned HOST_WIDE_INT
|
static unsigned HOST_WIDE_INT
|
||||||
move_by_pieces_ninsns (l, align)
|
move_by_pieces_ninsns (l, align)
|
||||||
@ -3177,7 +3177,7 @@ emit_single_push_insn (mode, x, type)
|
|||||||
SIZE is an rtx for the size of data to be copied (in bytes),
|
SIZE is an rtx for the size of data to be copied (in bytes),
|
||||||
needed only if X is BLKmode.
|
needed only if X is BLKmode.
|
||||||
|
|
||||||
ALIGN is maximum alignment we can assume.
|
ALIGN (in bits) is maximum alignment we can assume.
|
||||||
|
|
||||||
If PARTIAL and REG are both nonzero, then copy that many of the first
|
If PARTIAL and REG are both nonzero, then copy that many of the first
|
||||||
words of X into registers starting with REG, and push the rest of X.
|
words of X into registers starting with REG, and push the rest of X.
|
||||||
@ -3280,7 +3280,8 @@ emit_push_insn (x, mode, type, size, align, partial, reg, extra,
|
|||||||
and such small pushes do rounding that causes trouble. */
|
and such small pushes do rounding that causes trouble. */
|
||||||
&& ((! SLOW_UNALIGNED_ACCESS (word_mode, align))
|
&& ((! SLOW_UNALIGNED_ACCESS (word_mode, align))
|
||||||
|| align >= BIGGEST_ALIGNMENT
|
|| align >= BIGGEST_ALIGNMENT
|
||||||
|| PUSH_ROUNDING (align) == align)
|
|| (PUSH_ROUNDING (align / BITS_PER_UNIT)
|
||||||
|
== (align / BITS_PER_UNIT)))
|
||||||
&& PUSH_ROUNDING (INTVAL (size)) == INTVAL (size))
|
&& PUSH_ROUNDING (INTVAL (size)) == INTVAL (size))
|
||||||
{
|
{
|
||||||
/* Push padding now if padding above and stack grows down,
|
/* Push padding now if padding above and stack grows down,
|
||||||
|
Loading…
Reference in New Issue
Block a user