This is the mail archive of the gcc@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]
Other format: [Raw text]

FP registers alignment on SPARC64


Hello Richard,

Do you remember the problem with FP registers alignment on SPARC64 we briefly 
discussed back in June?  We eventually agreed that the right fix would be to 
re-structure the FP register classes:

   http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00639.html

Andrew recently worked on the problem and found these lines in the manual:

  When a value occupying several consecutive registers is expected in a
certain class, all the registers used must belong to that class.
Therefore, register classes cannot be used to enforce a requirement for
a register pair to start with an even-numbered register.  The way to
specify this requirement is with `HARD_REGNO_MODE_OK'.

This appears to explicitly rule out the strategy based on classes and may 
explain why you ran into problems with your prototype patch.

What to do?  HARD_REGNO_MODE_OK is already correct on SPARC64 so it seems to 
me that the existing machinery meant to enforce registers alignement is 
lacking proper handling of paradoxical subregs (p. subregs are involved in 
the two PRs for these issue).  In which case my patch could be a step in the 
right direction (Andrew also has a patch for the global reg-alloc, but I'm 
under the impression they are redundant).

-- 
Eric Botcazou


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