Gas for IA64 does not correctly detect dependencies in auto mode

Jim Wilson wilson@tuliptree.org
Sun Apr 6 15:32:00 GMT 2003


> > When using auto mode for IA64 assembly, gas does not correctly detect
> > register dependencies.
> >	  .auto
> >       ldfs  f8=[r32]
> >       stfd  [r33]=f8

This is a bug in the Intel supplied Dependency Violation (DV) tables.

In the Intel Itanium Architecture Software Developer's Manual (IIASDM),
vol 3, revision 2.1, page 342, table 5-2, says that there is a RAW DV
for a FR% register if fr-writers is followed by fr-readers.

fr-readers is defined on page 352, table 5-5.  It includes arith
operations (e.g. add), non-arith operations (e.g. and), and a few other
things, but it does not include stf.  This looks like a bug in the Intel
documentation.

We need to report this bug to Intel, and get a documentation errata or
update, and then feed the change back into the binutils sources.  I will
try to start the process by sending mail to ia64-linux@linuxia64.org.

Meanwhile, we can make a reasonable guess about what Intel will do to
solve the problem.  I have included a patch to opcodes/ia64-ic.tbl that
solves the problem below.

I don't have access to Itanium hardware at the moment, so I can't test
this other than with a binutils make check.  This passes.

This patch requires regenerating opcodes/ia64-asmtab.c.  I haven't
included a patch for that.  (The easy way to regenerate it is to edit
opcodes/Makefile and delete the # comment char in the ia64-asmtab.c
rule.)

I am leaving tomorrow on a 4000 km international move, so I will be
offline for a week or two.

Jim

-------------- next part --------------
A non-text attachment was scrubbed...
Name: tmp.file.2
Type: text/x-troff-man
Size: 2646 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20030406/dba0d48a/attachment.bin>


More information about the Binutils mailing list