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 _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils