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]

Reloading failes


Hi,
I'm developing a new port of GCC, and do need some help.

I'm getting an unrecognizable insn that I can't get rid of. The recognizable
insn
(set (reg:SI 2 r3)
     (mem/s:SI (plus:SI (reg/v/f:SI 104)
                        (const_int 4))))
is changed in reload() in reload1.c. The pseudo register 104 is replaced
by a memory address, and the result is becoming
(set (reg:SI 2 r3)
     (mem/s:SI (plus:SI (mem:SI (plus:SI (reg/f:SI 6 r7)
                                         (const_int -16)))
                        (const_int 4))))
which is an illegal pattern. How can I tell GCC that this pattern isn't
legal or needs reloading? I have defined SECONDARY_RELOAD_CLASS and GO_IF_LEGITIMATE_ADDRESS,
but they are only used earlier in the compilation phase.

Anders


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