From 09e07be6d7e6d66b2d48fc20516ce0385cfb268e Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 16 Aug 2001 19:03:36 -0700 Subject: [PATCH] varasm.c (force_const_mem): Keep pool alignment in bits. * varasm.c (force_const_mem): Keep pool alignment in bits. (output_constant_pool): Use assemble_align. From-SVN: r44952 --- gcc/ChangeLog | 5 +++++ gcc/varasm.c | 13 +++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 93b902d0ad81..e0c4c105b134 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-08-16 Richard Henderson + + * varasm.c (force_const_mem): Keep pool alignment in bits. + (output_constant_pool): Use assemble_align. + 2001-08-16 Zack Weinberg * doc/tm.texi: Remove extra @table command. diff --git a/gcc/varasm.c b/gcc/varasm.c index 57c3aab07a45..4a65020abb77 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -3513,16 +3513,14 @@ force_const_mem (mode, x) const_rtx_hash_table[hash] = desc; /* Align the location counter as required by EXP's data type. */ - align = (mode == VOIDmode) ? UNITS_PER_WORD : GET_MODE_SIZE (mode); - if (align > BIGGEST_ALIGNMENT / BITS_PER_UNIT) - align = BIGGEST_ALIGNMENT / BITS_PER_UNIT; + align = GET_MODE_ALIGNMENT (mode == VOIDmode ? word_mode : mode); #ifdef CONSTANT_ALIGNMENT align = CONSTANT_ALIGNMENT (make_tree (type_for_mode (mode, 0), x), - align * BITS_PER_UNIT) / BITS_PER_UNIT; + align); #endif - pool_offset += align - 1; - pool_offset &= ~ (align - 1); + pool_offset += (align / BITS_PER_UNIT) - 1; + pool_offset &= ~ ((align / BITS_PER_UNIT) - 1); if (GET_CODE (x) == LABEL_REF) LABEL_PRESERVE_P (XEXP (x, 0)) = 1; @@ -3731,8 +3729,7 @@ output_constant_pool (fnname, fndecl) pool->align, pool->labelno, done); #endif - if (pool->align > 1) - ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (pool->align)); + assemble_align (pool->align); /* Output the label. */ ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "LC", pool->labelno);