This is the mail archive of the
mailing list for the GCC project.
Re: short integer multiplication problem on IA64
- From: Richard Henderson <rth at redhat dot com>
- To: Reva Cuthbertson <reva at cup dot hp dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 26 Feb 2002 10:25:31 -0800
- Subject: Re: short integer multiplication problem on IA64
- References: <200202261712.JAA17827@gclef.atl.hp.com>
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?
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);
If this isn't working, you should find out why.