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]

 



On 4/2/19 2:45 PM, William Tambe wrote:
> 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
Note that in the first two examples we generate a REG rtx with the given
mode.  If the given mode is larger than a single word, that's fine.  It
means a register pair (or quad or octa depending on the size of the mode).

So on a typical 32bit target you might have

(reg:SI 0)  for returning 32 bit objects
(reg:DI 0)  for returning 64 bit objects
(reg:TI 0)  for returning 128 bit objects

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