This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: support tnat instruction on IA-64. error occurs in bundling. help
- From: Jim Wilson <wilson at specifix dot com>
- To: ÎâêØ <wu dot andrew dot xi at gmail dot com>
- Cc: gcc <gcc at gcc dot gnu dot org>
- Date: Tue, 25 Sep 2007 16:33:17 -0700
- Subject: Re: support tnat instruction on IA-64. error occurs in bundling. help
- References: <f63285730709250804n4c85ae9ft4712e98c96080cd0@mail.gmail.com>
ÎâêØ wrote:
[(set_attr "itanium_class" "tnat")])
The itanium_class names are based on info from the Itanium Processor
Microprocessor Reference by the way.
I believe the problem is that you didn't add info to the DFA scheduler
dscriptions in the itanium1.md and itanium2.md files for this new
instruction class. Normally the DFA scheduler info is optional.
However, for itanium, we also use the scheduler for bundling, and hence
proper DFA scheduler info for each instruction class is required.
It appears that the tnat instruction schedules and bundles the same as
the tbit instruction, so just use the existing tbit class instead of
trying to add a new one. The docs are a bit unclear here though, since
some places mention tbit and tnat, and other places just mention tbit.
For your purposes, this isn't important.
Modifying the DFA scheduler descriptions is complicated. It is best to
avoid that if you can.
Specifying that tnat is an I type instruction isn't enough for bundling
purposes, since a lot of instructions have further restrictions. In
this case, for instance, tnat can only go into an I0 slot, not an I1
slot. This detail is handled in the DFA scheduler descriptions.
--
Jim Wilson, GNU Tools Support, http://www.specifix.com