short integer multiplication problem on IA64
Richard Henderson
rth@redhat.com
Tue Feb 26 10:47:00 GMT 2002
On Tue, Feb 26, 2002 at 09:12:23AM -0800, Reva Cuthbertson wrote:
> 1. Is this the right approach? Am I doing the
> right thing in ia64_add_mmmul_delay() and is
> it being called from the right places?
No.
ia64_emit_nops merely fills in the blanks that we know we
left in the instruction stream so that we're certain that the
assembler will produce exactly the bundles that we expect.
There are no new stop bits added at this time.
There is code that is supposed to handle the nop padding already:
if (REG_NOTE_KIND (link) != REG_DEP_OUTPUT
&& REG_NOTE_KIND (link) != REG_DEP_ANTI)
{
rtx other = XEXP (link, 0);
enum attr_itanium_class t0 = ia64_safe_itanium_class (other);
if (t0 == ITANIUM_CLASS_MMSHF
|| t0 == ITANIUM_CLASS_MMMUL)
{
nop_cycles_until (clock_var, sched_verbose ? dump : NULL);
goto out;
}
If this isn't working, you should find out why.
r~
More information about the Gcc
mailing list