machmode.h (get_mode_alignment): Declare.

* machmode.h (get_mode_alignment): Declare.
	(GET_MODE_ALIGNMENT): Call it.
	* stor-layout.c (get_mode_alignment): New function. Make
	sure alignment is always power of 2.

From-SVN: r32134
This commit is contained in:
Nathan Sidwell 2000-02-24 10:07:32 +00:00 committed by Nathan Sidwell
parent da3a471976
commit 36c265b175
3 changed files with 27 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2000-02-24 Nathan Sidwell <nathan@codesourcery.com>
* machmode.h (get_mode_alignment): Declare.
(GET_MODE_ALIGNMENT): Call it.
* stor-layout.c (get_mode_alignment): New function. Make
sure alignment is always power of 2.
2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
* i386.h: Remove useless definition of "I386" and misleading

View File

@ -125,9 +125,9 @@ extern enum machine_mode get_best_mode PARAMS ((int, int, unsigned int,
/* Determine alignment, 1<=result<=BIGGEST_ALIGNMENT. */
#define GET_MODE_ALIGNMENT(MODE) \
(unsigned int) MIN (BIGGEST_ALIGNMENT, \
MAX (1, (GET_MODE_UNIT_SIZE (MODE) * BITS_PER_UNIT)))
extern unsigned get_mode_alignment PARAMS ((enum machine_mode));
#define GET_MODE_ALIGNMENT(MODE) get_mode_alignment (MODE)
/* For each class, get the narrowest mode in that class. */

View File

@ -1528,6 +1528,23 @@ get_best_mode (bitsize, bitpos, align, largest_mode, volatilep)
return mode;
}
/* Return the alignment of MODE. This will be bounded by 1 and
BIGGEST_ALIGNMENT. */
unsigned get_mode_alignment (mode)
enum machine_mode mode;
{
unsigned alignment = GET_MODE_UNIT_SIZE (mode);
/* Extract the LSB of the size. */
alignment = alignment & -alignment;
alignment *= BITS_PER_UNIT;
alignment = MIN (BIGGEST_ALIGNMENT, MAX (1, alignment));
return alignment;
}
/* This function is run once to initialize stor-layout.c. */
void