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