This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: short integer multiplication problem on IA64


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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]