Re: Any idea why some 32bits architectures return in register value larger than the register ?

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

 



is that still ok even when TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE
and TARGET_FUNCTION_VALUE_REGNO_P are defined for a single register
that can only hold a single-word object ? ie:

https://github.com/gcc-mirror/gcc/blob/gcc-8_3_0-release/gcc/config/moxie/moxie.c#L75
https://github.com/gcc-mirror/gcc/blob/gcc-8_3_0-release/gcc/config/moxie/moxie.c#L86
https://github.com/gcc-mirror/gcc/blob/gcc-8_3_0-release/gcc/config/moxie/moxie.c#L94

On Tue, Apr 2, 2019 at 3:37 PM Jeff Law <law@xxxxxxxxxx> wrote:
>
> On 4/2/19 2:30 PM, William Tambe wrote:
> > When looking at backends for moxie and ft32, which are cpus for which
> > the return register is 32bits, TARGET_ RETURN_IN_MEMORY is implemented
> > such that the function value is returned in a register even when its
> > size is 64bits. ie:
> >
> > https://github.com/gcc-mirror/gcc/blob/gcc-8_3_0-release/gcc/config/ft32/ft32.c#L63
> >
> > https://github.com/gcc-mirror/gcc/blob/gcc-8_3_0-release/gcc/config/moxie/moxie.c#L60
> >
> > Any idea why it is implemented that way ?
> >
> Could be that's how the ABI is defined.  It's often the case that ABI's
> define double-word objects as being passed and returned in register
> pairs for efficiency.
>
> jeff



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux