[Bug target/56592] [SH] Add vector ABI

olegendo at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Mar 17 14:20:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56592

--- Comment #2 from Oleg Endo <olegendo at gcc dot gnu.org> 2013-03-17 14:19:55 UTC ---
Regarding multi-word arguments:

> 'double' values are passed in DR registers, where the high 32 bits are passed
> in FR(n*2) and the low 32 bits in FR(n*2+1) regardless of the endian setting.
> 
> 4D 'float' vectors are passed in FV registers, i.e. FR(n*4), in order to avoid
> reg copies before vector insns (fipr, ftrv).

Multi-word integer values should be passed in little endian word order.  E.g.
'long long' (64 bit) would be passed in r1:r0, where r1 are the high 32 bits
and r0 are the low 32 bits.  This would make it easier to write endian neutral
asm code.



More information about the Gcc-bugs mailing list