[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 2.0.0.6 (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:
.auto
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.
regards
lars
- gas for itanium: ia64-ic.tbl: dependency bug due to error in the itanium specification,
Lars <=