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:
David Edelsohn 2001-05-11 01:56:12 +00:00 committed by David Edelsohn
parent dac975d3d9
commit f1eaaf73c5
2 changed files with 9 additions and 3 deletions

View File

@ -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

View File

@ -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,