This is the mail archive of the gcc-patches@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]

Re: fix for explicit SET modes



  In message <199808141538.IAA20069@dm.cobaltmicro.com>you write:
  >    Date: Fri, 14 Aug 1998 09:29:06 -0600
  >    From: Jeffrey A Law <law@hurl.cygnus.com>
  > 
  >    This is definitely wrong for the PA.
  > 
  > This is why I sent the patch out for scurtiny :-)
:-)

  > 
  >    The DImode is used to distinguish between two patterns which have the
  >    same RTL form (a simple jump), but which must have different code at
  >    assembly time because one appears inside a jump table.
  > 
  >    We can certainly look for another way to solve the PA specific issue,
  >    but first I want to know exactly why this is important.
  > 
  > If reload sees a SET that happens to be in DImode, it does funny stuff
  > like marking destination registers dead at all such DImode SETs etc.
Ah.   Shouldn't be a problem for this particular case since it's just
(set (pc) (label)).


  > Just stick an unspec in there for this PA case...
Well, we want to avoid that since it'll disable a variety of opts in
jump.c.

Basically we want the RTL to look like any other jump so that all the
usual opts happen.  The difference is at assembly time, if we have an
unfilled delay slot we need to emit a nop instead of nullifying the
delay slot.

I think we emit markers now to delimit the start/end of jump tables,
so we could search for those markers now instead of relying on the
DImode hack.

jeff


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