This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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: gas for itanium: ia64-ic.tbl: dependency bug due to error in the itanium specification


On Thu, 2007-08-02 at 14:18 +0200, Lars wrote:
> in the group 'fp-non-arith', xma is listed, but not xmpy. hence simply
> adding also xmpy there will do the trick.

This is correct.  This is a bug in the Intel documentation.  HJ, can you
report this internally within Intel to get the docs fixed?

Additionally, I noticed that the class pr-readers-nobr-nomovpr contains
fp-non-arith in addition to xma and xmpy which is redundant.  The xma
and xmpy could be deleted here.  This is a harmless error though.

I wrote a patch to fix gas.  I just fixed the fp-non-arith problem, I
didn't bother with the other one as it doesn't matter.  With this patch,
I now get the following objdump -d output for the assembled testcase,
which is correct.
   0:   0f 30 3c 00 e1 18       [MMF]       setf.sig f6=r15
   6:   70 80 00 c2 31 00                   setf.sig f7=r16
   c:   00 00 04 00                         nop.f 0x0;;
  10:   0d 00 00 00 01 00       [MFI]       nop.m 0x0
  16:   50 00 18 0e 74 00                   xmpy.l f5=f6,f7
  1c:   00 00 04 00                         nop.i 0x0;;
  20:   01 70 14 00 e1 10       [MII]       getf.sig r14=f5
  26:   00 00 00 02 00 00                   nop.i 0x0
  2c:   00 00 04 00                         nop.i 0x0;;

When regenerating ia64-asmtab.c, I noticed that a newline was
accidentally deleted when the copyright messages were updated, so I
included that in my patch too.

The patch was tested with make check on an x86_64-linux host and checked
in.
-- 
Jim Wilson, GNU Tools Support, http://www.specifix.com

2007-08-03  James E. Wilson  <wilson@specifix.com>

	* ia64-gen.c: (main): Add missing newline to copyright message.
	* ia64-ic.tbl (fp-non-arith): Add xmpy.
	* ia64-asmtab.c: Regenerate.
	
Index: ia64-gen.c
===================================================================
RCS file: /cvs/src/src/opcodes/ia64-gen.c,v
retrieving revision 1.21
diff -p -r1.21 ia64-gen.c
*** ia64-gen.c	5 Jul 2007 09:49:01 -0000	1.21
--- ia64-gen.c	3 Aug 2007 18:45:25 -0000
*************** main (int argc, char **argv)
*** 2872,2878 ****
     You should have received a copy of the GNU General Public License\n\
     along with this program; see the file COPYING.  If not, write to the\n\
     Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA\n\
!    02110-1301, USA.  */");
  
    print_string_table ();
    print_dependency_table ();
--- 2872,2878 ----
     You should have received a copy of the GNU General Public License\n\
     along with this program; see the file COPYING.  If not, write to the\n\
     Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA\n\
!    02110-1301, USA.  */\n");
  
    print_string_table ();
    print_dependency_table ();
Index: ia64-ic.tbl
===================================================================
RCS file: /cvs/src/src/opcodes/ia64-ic.tbl,v
retrieving revision 1.9
diff -p -r1.9 ia64-ic.tbl
*** ia64-ic.tbl	23 Feb 2006 00:17:24 -0000	1.9
--- ia64-ic.tbl	3 Aug 2007 18:45:25 -0000
*************** fp-arith-s0;	IC:fp-arith[Field(sf)==s0]
*** 15,21 ****
  fp-arith-s1;	IC:fp-arith[Field(sf)==s1]
  fp-arith-s2;	IC:fp-arith[Field(sf)==s2]
  fp-arith-s3;	IC:fp-arith[Field(sf)==s3]
! fp-non-arith;	fabs, fand, fandcm, fclass, fcvt.xf, fmerge, fmix, fneg, fnegabs, for, fpabs, fpmerge, fpack, fpneg, fpnegabs, fselect, fswap, fsxt, fxor, xma
  fpcmp-s0;	fpcmp[Field(sf)==s0]
  fpcmp-s1;	fpcmp[Field(sf)==s1]
  fpcmp-s2;	fpcmp[Field(sf)==s2]
--- 15,21 ----
  fp-arith-s1;	IC:fp-arith[Field(sf)==s1]
  fp-arith-s2;	IC:fp-arith[Field(sf)==s2]
  fp-arith-s3;	IC:fp-arith[Field(sf)==s3]
! fp-non-arith;	fabs, fand, fandcm, fclass, fcvt.xf, fmerge, fmix, fneg, fnegabs, for, fpabs, fpmerge, fpack, fpneg, fpnegabs, fselect, fswap, fsxt, fxor, xma, xmpy
  fpcmp-s0;	fpcmp[Field(sf)==s0]
  fpcmp-s1;	fpcmp[Field(sf)==s1]
  fpcmp-s2;	fpcmp[Field(sf)==s2]

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