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. -- H.J.