Commit 8d6f415e by Richard Stallman

(output_cbranch): In forward/long branch case...

(output_cbranch): In forward/long branch case, only
nullify if the delay slot was empty or if the delay slot
was explicitly nullified.

(output_bb): Likewise.

From-SVN: r4608
parent d0ca05ef
......@@ -3225,9 +3225,12 @@ output_cbranch (operands, nullify, length, negated, insn)
strcat (buf, "%S3");
else
strcat (buf, "%B3");
/* Regardless of whether or not this branch got its slot
filled we can nullify the following instruction and
avoid emitting a nop. */
/* Nullify the delay slot if the delay slot was explicitly
nullified by the delay branch scheduler or if no insn
could be placed in the delay slot. */
if (nullify)
strcat (buf, " %2,%1,0\n\tbl,n %0,0");
else
strcat (buf, " %2,%1,0\n\tbl%* %0,0");
break;
......@@ -3308,10 +3311,14 @@ output_bb (operands, nullify, length, negated, insn, which)
strcat (buf, "<");
else
strcat (buf, ">=");
/* Regardless of whether or not this branch got its slot
filled we can nullify the following instruction and
avoid emitting a nop. */
if (negated)
/* Nullify the delay slot if the delay slot was explicitly
nullified by the delay branch scheduler or if no insn
could be placed in the delay slot. */
if (nullify && negated)
strcat (buf, " %0,%1,1,0\n\tbl,n %3,0");
else if (nullify && ! negated)
strcat (buf, " %0,%1,1,0\n\tbl,n %2,0");
else if (negated)
strcat (buf, " %0,%1,1,0\n\tbl%* %3,0");
else
strcat (buf, " %0,%1,1,0\n\tbl%* %2,0");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment