From: Richard Kenner Date: Sat, 20 Oct 2001 12:30:26 +0000 (+0000) Subject: emit-rtl.c (set_mem_attributes): Alignment is in bits. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d022d93eed072cd2cbb1585d18d77be6c27723cf;p=gcc.git emit-rtl.c (set_mem_attributes): Alignment is in bits. * emit-rtl.c (set_mem_attributes): Alignment is in bits. (adjust_address_1, offset_address): Likewise. From-SVN: r46378 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1368558f054..7e6a049abf7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Sat Oct 20 07:27:14 2001 Richard Kenner + * emit-rtl.c (set_mem_attributes): Alignment is in bits. + (adjust_address_1, offset_address): Likewise. + * final.c (output_asm_operand_names): New fcn, from output_asm_insn. (output_asm_insn): Call it for each line output. Don't record an operand more than once. diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 45fd406f4c9..82f37b61396 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1717,7 +1717,7 @@ set_mem_attributes (ref, t, objectp) /* If this is an INDIRECT_REF, we know its alignment. */ if (TREE_CODE (t) == INDIRECT_REF) - set_mem_align (ref, TYPE_ALIGN (type) / BITS_PER_UNIT); + set_mem_align (ref, TYPE_ALIGN (type)); /* Now see if we can say more about whether it's an aggregate or scalar. If we already know it's an aggregate, don't bother. */ @@ -1752,7 +1752,7 @@ set_mem_alias_set (mem, set) MEM_SIZE (mem), MEM_ALIGN (mem)); } -/* Set the alignment of MEM to ALIGN. */ +/* Set the alignment of MEM to ALIGN bits. */ void set_mem_align (mem, align) @@ -1866,7 +1866,7 @@ adjust_address_1 (memref, mode, offset, validate) lowest-order set bit in OFFSET, but don't change the alignment if OFFSET if zero. */ if (offset != 0) - memalign = MIN (memalign, offset & -offset); + memalign = MIN (memalign, (offset & -offset) * BITS_PER_UNIT); MEM_ATTRS (new) = get_mem_attrs (MEM_ALIAS_SET (memref), MEM_DECL (memref), memoffset, @@ -1896,7 +1896,8 @@ offset_address (memref, offset, pow2) /* Update the alignment to reflect the offset. Reset the offset, which we don't know. */ MEM_ATTRS (new) = get_mem_attrs (MEM_ALIAS_SET (memref), MEM_DECL (memref), - 0, 0, MIN (MEM_ALIGN (memref), pow2)); + 0, 0, MIN (MEM_ALIGN (memref), + pow2 * BITS_PER_UNIT)); return new; } diff --git a/gcc/expr.h b/gcc/expr.h index ad24cb7ae74..fbf12a04b2e 100644 --- a/gcc/expr.h +++ b/gcc/expr.h @@ -612,7 +612,7 @@ extern rtx memory_address_noforce PARAMS ((enum machine_mode, rtx)); /* Set the alias set of MEM to SET. */ extern void set_mem_alias_set PARAMS ((rtx, HOST_WIDE_INT)); -/* Set the alignment of MEM to ALIGN. */ +/* Set the alignment of MEM to ALIGN bits. */ extern void set_mem_align PARAMS ((rtx, unsigned int)); /* Return a memory reference like MEMREF, but with its mode changed diff --git a/gcc/rtl.h b/gcc/rtl.h index d6908e99a27..45b62ee3c39 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -95,7 +95,7 @@ typedef struct tree decl; /* decl corresponding to MEM. */ rtx offset; /* Offset from start of DECL, as CONST_INT. */ rtx size; /* Size in bytes, as a CONST_INT. */ - unsigned int align; /* Alignment of MEM in bytes. */ + unsigned int align; /* Alignment of MEM in bits. */ } mem_attrs; /* Common union for an element of an rtx. */ @@ -912,7 +912,7 @@ extern unsigned int subreg_regno PARAMS ((rtx)); is always a CONST_INT. */ #define MEM_SIZE(RTX) (MEM_ATTRS (RTX) == 0 ? 0 : MEM_ATTRS (RTX)->size) -/* For a MEM rtx, the alignment in bytes. */ +/* For a MEM rtx, the alignment in bits. */ #define MEM_ALIGN(RTX) (MEM_ATTRS (RTX) == 0 ? 1 : MEM_ATTRS (RTX)->align) /* Copy the attributes that apply to memory locations from RHS to LHS. */