OSDN Git Service

* expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 11 May 2001 01:56:12 +0000 (01:56 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 11 May 2001 01:56:12 +0000 (01:56 +0000)
        bytes.  Reported by Kazu Hirata <kazu@hxi.com>.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41956 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/expr.c

index 41ca403..59c8e2f 100644 (file)
@@ -1,5 +1,10 @@
 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>
+
        * expr.c (emit_group_load): extract_bit_field requires a REG or
        MEM as an argument.
 
index cdabedd..0f75b69 100644 (file)
@@ -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,