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.