not too big an alignment
Jakub Jelinek
jakub@redhat.com
Tue Nov 12 22:12:00 GMT 2013
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
More information about the Gcc-patches
mailing list