On 12/07/2015 02:18 PM, Steve Ellcey wrote:
On Mon, 2015-12-07 at 12:30 -0700, Jeff Law wrote:
On 12/07/2015 12:28 PM, Bernd Schmidt wrote:
On 12/07/2015 07:54 PM, Steve Ellcey  wrote:
         if (must_annul)
-        used_annul = 1;
+        {
+          /* Frame related instructions cannot go into annulled delay
+         slots, it messes up the dwarf info.  */
+          if (RTX_FRAME_RELATED_P (trial))
+        return;

Don't you need to use break rather than return?

+      else if (!RTX_FRAME_RELATED_P (trial) \

Stray backslash
Other than that I think this is OK. There are some preexisting tests for
frame related insns already in this code.
Also note there's probably port cleanup that could happen once this goes
in.  IIRC the PA port (for example) explicitly disallows frame related
insns from many (most, all?) delay slots.  Other targets may be doing
something similar.

jeff

If I had remembered/seen that code in pa.md earlier I might have fixed
MIPS the same way.  Oh well, I guess changing reorg.c is the better way
to do it since it can be shared now.
Agreed.

executed when the branch is taken (vs. untaken).  I think
steal_delay_list_from_fallthrough is only going to be used when the
delay slot is executed on a branch-not-taken.  Are there any machines
like that?
? I don't think it's restricted to cases where the delay slot is executed only on a branch-not-taken.

Jeff

Reply via email to