This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: New target macro, STRUCT_FORCE_BLK
Richard Henderson writes:
> On Thu, Jan 06, 2000 at 12:18:01PM +1300, Michael Hayes wrote:
> > We generate poor code for the c4x if a small structure containing a
> > floating point field (for example, a complex float) is stored in an
> > integer mode.
>
> Why? Might this be solved by some of the regclass work Jan
> has been doing?
No, I don't think so.
Eseentially the problem is that on the c4x the general registers can
hold both integer and floating point values but you cannot load a
floating point value using an integer load instruction.
For example, the RTL to access a floating field in a small structure
that fits in HImode: (set (reg:QF r2) (subreg:QF (reg:HI r0) 0) needs
to perform an integer store to memory followed by a floating point
load from memory.
Michael.