2013/8/29 H.J. Lu <hjl.to...@gmail.com>:
> On Thu, Aug 29, 2013 at 7:33 AM, Ilya Enkovich <enkovich....@gmail.com> wrote:
>> Hi,
>>
>> function_value_regno_p hook implementation for i386 target
>> (ix86_function_value_regno_p) always returns false for DX register.
>> But DX register is used to return 128 bit values an AX:DX. Is it
>> intentional or a bug?
>>
>> I'm asking because it causes problem with mode switching which fails
>> if see 'use' insn at the end of the function whose argument is not a
>> register holding returned value. I'm choosing what should be fixed
>> here, a mode switching or a hook implementation.
>>
>
> It is not just %dx.  %st1 and %xmm1 are used to return
> complex value.  You need to check hard_regno_nregs for
> how many hard registers are used.

It assumes returned value is always store in consecutive registers,
right?. In MPX when we return structure in ax:dx with bounds in
bnd0:bnd1, it does not work.

Ilya

>
> --
> H.J.

Reply via email to