[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Bug target/34091] [4.2/4.3 Regression] ICE in reload_cse_simplify_operands, at postreload.c:392




------- Comment #9 from ebotcazou at gcc dot gnu dot org  2007-11-24 20:31 -------
> This probably means I don't have the change quite right.  I also have a
> problem with paradoxical SUBREGS when the inner register is spilled.  I'm
> not clear on how this is to be handled on a big endian target with strict
> alignment.  The documentation says reload is supposed to prevent this from
> happening, but it doesn't seem to.  I see this with the testcase from this
> PR.  It's combine that creates the paradoxical SUBREG.

Here is how the SPARC port deals with this specific case:

/* Return the register class of a scratch register needed to load IN into
   a register of class CLASS in MODE.

   We need a temporary when loading/storing a HImode/QImode value
   between memory and the FPU registers.  This can happen when combine puts
   a paradoxical subreg in a float/fix conversion insn.

   We need a temporary when loading/storing a DFmode value between
   unaligned memory and the upper FPU registers.  */

#define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, IN)           \

[...]

#define SECONDARY_OUTPUT_RELOAD_CLASS(CLASS, MODE, IN)          \


-- 

ebotcazou at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ebotcazou at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34091

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



Reply to: