On Tue, Nov 12, 2013 at 01:11:04PM -0800, Mike Stump wrote: > Alignments are stored in a byte, large alignments don't actually work nicely. > This caps the alignment to 128, as most ports would define BIGGEST_ALIGNMENT > to be smaller than this. The competing change would to be to make it a > short, but, I'd be happy to punt that until such time as someone actually > needs that. > > Ports break down this way currently: > > 12 #define BIGGEST_ALIGNMENT 64 > 10 #define BIGGEST_ALIGNMENT 32 > 6 #define BIGGEST_ALIGNMENT 128 > 3 #define BIGGEST_ALIGNMENT 8 > 8 #define BIGGEST_ALIGNMENT 16
You are missing i386 that has BIGGEST_ALIGNMENT 512 (or less, depending on compiler options). So this doesn't look right. > --- a/gcc/genmodes.c > +++ b/gcc/genmodes.c > @@ -1178,7 +1178,7 @@ emit_mode_base_align (void) > alignment); > > for_all_modes (c, m) > - tagged_printf ("%u", m->alignment, m->name); > + tagged_printf ("%u", m->alignment > 128 ? 128 : m->alignment, m->name); > > print_closer (); > } Jakub