New target macro, STRUCT_FORCE_BLK

Michael Hayes m.hayes@elec.canterbury.ac.nz
Thu Jan 6 14:40:00 GMT 2000


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.



More information about the Gcc-patches mailing list