(ppc_adjust_cost): New function. Adjust for TYPE_JMPREG.

From-SVN: r6535
This commit is contained in:
Torbjorn Granlund 1994-02-12 01:07:04 +00:00
parent 324e52cc5b
commit a251ffd0ce

View File

@ -1999,3 +1999,37 @@ output_function_profiler (file, labelno)
for (i = 3, j = 30; i <= last_parm_reg; i++, j--)
fprintf (file, "\tai %d,%d,0\n", i, j);
}
/* Adjust the cost of a scheduling dependency. Return the new cost of
a dependency LINK or INSN on DEP_INSN. COST is the current cost. */
int
ppc_adjust_cost (insn, link, dep_insn, cost)
rtx insn;
rtx link;
rtx dep_insn;
int cost;
{
if (! recog_memoized (insn))
return 0;
if (REG_NOTE_KIND (link) != 0)
return 0;
if (REG_NOTE_KIND (link) == 0)
{
/* Data dependency; DEP_INSN writes a register that INSN reads some
cycles later. */
/* Tell the first scheduling pass about the latency between a mtctr
and bctr (and mtlr and br/blr). The first scheduling pass will not
know about this latency since the mtctr instruction, which has the
latency associated to it, will be generated by reload. */
if (get_attr_type (insn) == TYPE_JMPREG)
return TARGET_POWER ? 5 : 4;
/* Fall out to return default cost. */
}
return cost;
}