sh4 abi doc
Andrew Cagney
ac131313@redhat.com
Thu Sep 26 12:54:00 GMT 2002
> Clarke, Stephen writes:
> > > From: Elena Zannoni [mailto:ezannoni@redhat.com]
> > > Sent: Thursday, September 26, 2002 10:43 AM
> > >
> > > The cutoff is 8 bytes.
> >
> > Yes: anything bigger than 8 bytes is definitely
> > returned in memory.
> >
> > But the cutoff is not "clean", because structs smaller
> > than this could also be returned in memory, if they
> > don't pass the "same size and alignment as an integer
> > type" rule.
> >
> > For example, in
> >
> > struct s { char c[3]; } wibble;
> > struct s foo(void) { return wibble; }
> >
> > the return value from foo() will be in memory, not
> > in R0, because there is no 3-byte integer type.
> >
> > Sorry if that was obvious already, I just wanted to
> > be sure.
> >
> > Steve.
>
>
> Very helpful. I hadn't noticed this variant, indeed.
Ah, the ``gcc struct return'' rule. Perhaphs we need a generic function
that specifies this.
enjoy,
Andrew
More information about the Gdb
mailing list