This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] expr.c:emit_push_insn
- To: Mark Mitchell <mark at codesourcery dot com>
- Subject: [PATCH] expr.c:emit_push_insn
- From: David Edelsohn <dje at watson dot ibm dot com>
- Date: Thu, 10 May 2001 17:54:19 -0400
- cc: gcc-patches at gcc dot gnu dot org
emit_push_insn() appears to be passing an alignment in bits as an
argument to PUSH_ROUNDING, which expects units of bytes. Okay to commit?
David
Index: expr.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/expr.c,v
retrieving revision 1.295.2.8
diff -c -p -r1.295.2.8 expr.c
*** expr.c 2001/05/10 21:33:31 1.295.2.8
--- expr.c 2001/05/10 21:51:03
*************** move_by_pieces (to, from, len, align)
*** 1506,1512 ****
}
/* Return number of insns required to move L bytes by pieces.
! ALIGN (in bytes) is maximum alignment we can assume. */
static unsigned HOST_WIDE_INT
move_by_pieces_ninsns (l, align)
--- 1506,1512 ----
}
/* Return number of insns required to move L bytes by pieces.
! ALIGN (in bits) is maximum alignment we can assume. */
static unsigned HOST_WIDE_INT
move_by_pieces_ninsns (l, align)
*************** emit_push_insn (x, mode, type, size, ali
*** 3183,3189 ****
and such small pushes do rounding that causes trouble. */
&& ((! SLOW_UNALIGNED_ACCESS (word_mode, align))
|| align >= BIGGEST_ALIGNMENT
! || PUSH_ROUNDING (align) == align)
&& PUSH_ROUNDING (INTVAL (size)) == INTVAL (size))
{
/* Push padding now if padding above and stack grows down,
--- 3183,3190 ----
and such small pushes do rounding that causes trouble. */
&& ((! SLOW_UNALIGNED_ACCESS (word_mode, align))
|| align >= BIGGEST_ALIGNMENT
! || (PUSH_ROUNDING (align / BITS_PER_UNIT)
! == (align / BITS_PER_UNIT)))
&& PUSH_ROUNDING (INTVAL (size)) == INTVAL (size))
{
/* Push padding now if padding above and stack grows down,