tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ABI issues with gcc



On Fri, Jan 24, 2014 at 18:41:19 +0000, Christos Zoulas wrote:

> In article <20140124052002.GF6425%pony.stderr.spb.ru@localhost>,
> Valery Ushakov  <uwe%stderr.spb.ru@localhost> wrote:
> >On Thu, Jan 23, 2014 at 10:42:40 -0500, Christos Zoulas wrote:
> >
[...]
> >>    3. fix our ABI so for those archs we have a STACK_BOUNDAY of 8
> >
> >Is it really the case for sh3?
> >
> >#define STACK_BOUNDARY  BIGGEST_ALIGNMENT
> >#define BIGGEST_ALIGNMENT  (TARGET_ALIGN_DOUBLE ? 64 : 32)
> >#define TARGET_ALIGN_DOUBLE ((target_flags & MASK_ALIGN_DOUBLE) != 0
> >
> >And the only occurence of MASK_ALIGN_DOUBLE is:
> >
> >  if (TARGET_SH5)
> >    {
> >      sh_cpu = PROCESSOR_SH5;
> >      target_flags |= MASK_ALIGN_DOUBLE;
> 
> Does the test program in the gcc PR fail?

I don't have gcc 4.8 handy.  With current system compiler:

$ cat stack.c
#include <stdio.h>

int
main()
{
        long long ll;
        printf("%p\n", &ll);
        return 0;
}
$ cc stack.c 
$ ./a.out 
0x7fffdcac

As you can see, that long long is only 4 bytes aligned.

-uwe


Home | Main Index | Thread Index | Old Index