This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
FP registers alignment on SPARC64
- From: Eric Botcazou <ebotcazou at libertysurf dot fr>
- To: Richard Henderson <rth at redhat dot com>
- Cc: Andrew Over <andrew dot over at cs dot anu dot edu dot au>,gcc at gcc dot gnu dot org
- Date: Mon, 12 Jan 2004 08:48:05 +0100
- Subject: 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