https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117238

--- Comment #3 from John David Anglin <danglin at gcc dot gnu.org> ---
Not quite.  As things currently stand, it's theoretically possible
to hold up to two OI mode values in registers.

As far as I can tell, it doesn't seem possible to handle SUBREG spills
in pa_emit_move_sequence.  There is some code to replace a SUBREG with
equivalent memory.  But with LRA, the MEM always seems to be NULL.  This
code was effectively disabled with legacy reload as pa_secondary_reload
returns NO_REGS when it is passed rclass GENERAL_REGS and a SUBREG.
Thus, it appears LRA has to handle SUBREG spills itself.

I tried revising PA_HARD_REGNO_MODE_OK so OImode isn't allowed.  This
seems to help but it looks as if I may also have to drop TImode on this 
target.

Reply via email to