This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
RE: sh4 abi doc
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: "Clarke, Stephen" <stephen dot clarke at superh dot com>
- Cc: "Elena Zannoni" <ezannoni at redhat dot com>, <gdb at sources dot redhat dot com>
- Date: Thu, 26 Sep 2002 13:43:18 -0400
- Subject: RE: sh4 abi doc
- References: <287E4644B5249D449C56FA5409A874AE03EFB9@sh-us-ex01.us.w2k.superh.com>
Clarke, Stephen writes:
>
>
> > From: Elena Zannoni [mailto:ezannoni@redhat.com]
> > Sent: Thursday, September 26, 2002 9:51 AM
>
> > in the meantime, do you know what is the official rule for returning
> > results on the stack, instead of in the return register?
> > Seems that gdb and gcc are disagreeing on this.
> > Gdb expects structs to be returned on the stack if their size is > 1.
>
> Here's what we have:
>
> "Aggregate types not bigger than 8 bytes that have the same size and
> alignment as one of the integer scalar types are returned in the same
> registers as the integer type they match.
>
> "For example, a 2-byte aligned structure with size 2 bytes has the
> same size and alignment as a short int, and will be returned in R0.
> A 4-byte aligned structure with size 8 bytes has the same size and
> alignment as a long long int, and will be returned in R0 and R1.
>
> "When an aggregate type is returned in R0 and R1, R0 contains the first
> four bytes of the aggregate, and R1 contains the remainder. If the size
> of the aggregate type is not a multiple of 4 bytes, the aggregate is
> tail-padded up to a multiple of 4 bytes. The value of the padding is
> undefined.
>
> "All other aggregate types are returned by address. The caller function
> passes the address of an area large enough to hold the aggregate value
> in R2. The called function stores the result in this location."
>
Ah, so gdb is wrong. The cutoff is 8 bytes.
> I hope that makes sense, it was difficult to describe both clearly and
> accurately!
>
yes. except for BE/LE differences. But you clarified that already.
> Actually, the SH-4 ABI documentation that Red Hat supplies with
> the gnupro tools says the same thing in fewer words, but (IMO)
> not as clearly.
>
Doh, I should have thought about that.
Elena
> Steve.