This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]