This is the mail archive of the
mailing list for the GCC project.
Re: fix for explicit SET modes
- To: "David S. Miller" <davem at dm dot cobaltmicro dot com>
- Subject: Re: fix for explicit SET modes
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Fri, 14 Aug 1998 09:47:27 -0600
- cc: egcs-patches at cygnus dot com, rth at cygnus dot com, wilson at cygnus dot com, scox at cygnus dot com
- Reply-To: law at cygnus dot com
In message <199808141538.IAA20069@dm.cobaltmicro.com>you write:
> Date: Fri, 14 Aug 1998 09:29:06 -0600
> From: Jeffrey A Law <email@example.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
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
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