------- Comment #1 from hp at gcc dot gnu dot org  2005-11-09 02:23 -------
I should mention that
(plus:SI (sign_extend:SI (reg:HI 10 r10)) (reg:SI 1 r1))
is not a valid address, but
(plus:SI (sign_extend:SI (sign_extend:SI (mem:HI (post_inc:SI (reg/f:SI 12
r12)))))
         (reg:SI 1 r1))
is; the problem seems related to reload choosing to reload inner MEM
expressions
replacing them with REG even though that's not needed and sometimes
(i.e. for some targets) not valid.  The "real" need is just to reload SRP.
Or perhaps that SRP was chosen as part of an address in the first place.
Or both.  Or maybe we should just bail out and declare
LEGITIMIZE_RELOAD_ADDRESS
as a sometimes actually *necessary* macro rather than just for optimization,
for
certain cases, like when a MEM inside an expression can't be validly replaced
with a REG.


-- 

hp at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-11-09 02:23:16
               date|                            |


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

Reply via email to