aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2000-03-30 13:46:05 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2000-03-30 08:46:05 -0500
commitbdb429a5a1c6a4d93565277c658ddca7893905d0 (patch)
tree4604157a949437de045f5e4819a744fa071efad5 /gcc/expr.c
parent068feaa95538472dfdb0244ef4899a86e73db86e (diff)
downloadgcc-bdb429a5a1c6a4d93565277c658ddca7893905d0.zip
gcc-bdb429a5a1c6a4d93565277c658ddca7893905d0.tar.gz
gcc-bdb429a5a1c6a4d93565277c658ddca7893905d0.tar.bz2
calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
* calls.c (expand_call): Pass bit alignment to mark_reg_pointer. * explow.c (memory_address, allocate_dynamic_stack_space): Likewise. * function.c (assign_parms): Likewise. * integrate.c (expand_inline_function): Likewise. * stmt.c (expand_decl): Likewise. (copy_rtx_and_substitute): Likewise. * expr.c (expand_expr, expand_expr_unaligned): Likewise. (clear_by_pieces): Fix error in last change. * emit-rtl.c (init_emit): Set known registers alignment in bits. * function.h (regno_pointer_align): Now unsigned. * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN is in bits. * config/i386/i386.c (aligned_operand): Likewise. * config/sparc/sparc.c (mem_min_alignment): Likewise. * config/alpha/alpha.c (aligned_memory_operand): Likewise. (unaligned_memory_operand): Likewise. (alpha_expand_block_move, alpha_expand_block_clear): Likewise. Also make alignments and sizes unsigned and some whitespace cleanup. (alpha_va_start): Do nothing if VALIST's type is error_mark_node. From-SVN: r32829
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index dd95760..21daef7 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2291,7 +2291,7 @@ clear_by_pieces (to, len, align)
if (! SLOW_UNALIGNED_ACCESS (word_mode, align)
|| align > MOVE_MAX * BITS_PER_UNIT || align >= BIGGEST_ALIGNMENT)
- align = MOVE_MAX;
+ align = MOVE_MAX * BITS_PER_UNIT;
/* First move what we can in the largest integer mode, then go to
successively smaller modes. */
@@ -5973,8 +5973,7 @@ expand_expr (exp, target, tmode, modifier)
if (temp != 0)
{
if (GET_CODE (temp) == MEM && GET_CODE (XEXP (temp, 0)) == REG)
- mark_reg_pointer (XEXP (temp, 0),
- DECL_ALIGN (exp) / BITS_PER_UNIT);
+ mark_reg_pointer (XEXP (temp, 0), DECL_ALIGN (exp));
return temp;
}
@@ -6801,7 +6800,7 @@ expand_expr (exp, target, tmode, modifier)
op0 = validize_mem (op0);
if (GET_CODE (op0) == MEM && GET_CODE (XEXP (op0, 0)) == REG)
- mark_reg_pointer (XEXP (op0, 0), alignment / BITS_PER_UNIT);
+ mark_reg_pointer (XEXP (op0, 0), alignment);
op0 = extract_bit_field (op0, bitsize, bitpos,
unsignedp, target, ext_mode, ext_mode,
@@ -6852,7 +6851,7 @@ expand_expr (exp, target, tmode, modifier)
MEM_ALIAS_SET (op0) = get_alias_set (exp);
if (GET_CODE (XEXP (op0, 0)) == REG)
- mark_reg_pointer (XEXP (op0, 0), alignment / BITS_PER_UNIT);
+ mark_reg_pointer (XEXP (op0, 0), alignment);
MEM_SET_IN_STRUCT_P (op0, 1);
MEM_VOLATILE_P (op0) |= volatilep;
@@ -8278,7 +8277,7 @@ expand_expr (exp, target, tmode, modifier)
if (GET_CODE (op0) == REG
&& ! REG_USERVAR_P (op0))
- mark_reg_pointer (op0, TYPE_ALIGN (TREE_TYPE (type)) / BITS_PER_UNIT);
+ mark_reg_pointer (op0, TYPE_ALIGN (TREE_TYPE (type)));
/* If we might have had a temp slot, add an equivalent address
for it. */
@@ -8758,7 +8757,7 @@ expand_expr_unaligned (exp, palign)
alignment >>= 1;
if (GET_CODE (XEXP (op0, 0)) == REG)
- mark_reg_pointer (XEXP (op0, 0), alignment / BITS_PER_UNIT);
+ mark_reg_pointer (XEXP (op0, 0), alignment);
MEM_IN_STRUCT_P (op0) = 1;
MEM_VOLATILE_P (op0) |= volatilep;