[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gas for itanium: ia64-ic.tbl: dependency bug due to error in the itanium

From: Lars
Subject: gas for itanium: ia64-ic.tbl: dependency bug due to error in the itanium specification
Date: Thu, 02 Aug 2007 14:18:06 +0200
User-agent: Thunderbird (X11/20070728)

hi all,

i think i discovered an error in on of the specification files for gas
for the intel itanium platform, namely in the ia64-ic.tbl file, which
leads to wrong dependency information

ia64-ic.tbl specifies which instructions depend on which resources and
is supposably based on Intel Itanium Architecture Software Developer's
Manual (IIASDM), vol 3, revision 2.2, page 3:371, table 5-5.

for xmpy, which is a pseudo-instruction mapping to xma, it is not
mentioned that floating-point registers are read and written.
(xmpy f4=f2,f3 stands for  xma f4=f2,f3,f0, cp p.3:255)

in the group 'fp-non-arith', xma is listed, but not xmpy. hence simply
adding also xmpy there will do the trick.

the error manifests itself as follows:

this program:

  setf.sig f6 = r15   // copy to floating point registers
  setf.sig f7 = r16
  xmpy.l f5 = f6, f7  // MUL
  getf.sig r14 = f5   // get result

gets translated to (objdump output)

   0:   0e 30 3c 00 e1 18       [MMF]       setf.sig f6=r15
   6:   70 80 00 c2 31 a0                   setf.sig f7=r16
   c:   00 30 1c e8                         xmpy.l f5=f6,f7
  10:   01 70 14 00 e1 10       [MII]       getf.sig r14=f5
  16:   00 00 00 02 00 00                   nop.i 0x0
  1c:   00 00 04 00                         nop.i 0x0;;

there should be stops surrounding xmpy.
with xma, everything works alright.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]