From: David Edelsohn Date: Fri, 11 May 2001 01:56:12 +0000 (+0000) Subject: expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to bytes. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f1eaaf73c5b21ea690559422b3b14ed4e46ad2a6;p=gcc.git 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 . From-SVN: r41956 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 41ca4032911..59c8e2f9fb5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-05-10 David Edelsohn + + * expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to + bytes. Reported by Kazu Hirata . + 2001-05-10 David Edelsohn * expr.c (emit_group_load): extract_bit_field requires a REG or diff --git a/gcc/expr.c b/gcc/expr.c index cdabeddece7..0f75b6912f9 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -1511,7 +1511,7 @@ move_by_pieces (to, from, len, align) } /* 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 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), 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 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. */ && ((! SLOW_UNALIGNED_ACCESS (word_mode, align)) || align >= BIGGEST_ALIGNMENT - || PUSH_ROUNDING (align) == align) + || (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,