On 18 Sep 08:02, NEGISHI, Kiyoshi <negishi <at> usa.net> wrote: > Hi, > > I believe that encoding old INTEL AVX FMA and AMD FMA4 is different > specifications. > > in gas format: > vfmaddpd %xmm4,%xmm6,%xmm2,%xmm7 > > operand order is > vfmaddpd src3, src2, src1, dest > > that's right? > > gas encoding this is > c4 e3 c9 69 fc 20 > > this means > ModRM.reg=%xmm7 VEX.vvvv=%xmm6 ModRM.r/m=%xmm4 imm8[7:4]=%xmm2 > > This is AVX FMA encoding because src1=imm8[7:4]. > > The AMD FMA4 encoding is src1=VEX.vvvv, so right: > c4 e3 e9 69 fc 60 > > ModRM.reg=%xmm7 VEX.vvvv=%xmm2 ModRM.r/m=%xmm4 imm8[7:4]=%xmm6 > > Negishi.
HI Negishi Can you post the version, inputs, and options used? I can't reproduce the problem. Using trunk from two days ago with this input (see t1 below) vfmaddpd %xmm4,%xmm6,%xmm2,%xmm7 encoded as c4 e3 ed 69 fc 60 When I feed it this input (t2.s below, note the register arguments) vfmaddpd %xmm4,%xmm2,%xmm6,%xmm7 it is encoded as c4 e3 c9 69 fc 20 -- Quentin --------------- t1 --------------- $ /home/qneill/wk/binutils/trunk.git/bld.trunk/gas/as-new --version GNU assembler (GNU Binutils) 2.20.51.20101101 Copyright 2010 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `x86_64-unknown-linux-gnu'. $ $ cat t1.s .text _start: vfmaddpd %xmm4,%xmm6,%xmm2,%xmm7 $ $ /home/qneill/wk/binutils/trunk.git/bld.trunk/gas/as-new -msyntax=att --64 t1.s -o t1-att-64.o $ /home/qneill/wk/binutils/trunk.git/bld.trunk/binutils/objdump -dw -Matt,64 t1-att-64.o t1-att-64.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <_start>: 0: c4 e3 e9 69 fc 60 vfmaddpd %xmm4,%xmm6,%xmm2,%xmm7 --------------- t2 --------------- $ /home/qneill/wk/binutils/trunk.git/bld.trunk/gas/as-new --version GNU assembler (GNU Binutils) 2.20.51.20101101 Copyright 2010 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `x86_64-unknown-linux-gnu'. $ $ cat t2.s .text _start: vfmaddpd %xmm4,%xmm2,%xmm6,%xmm7 $ $ /home/qneill/wk/binutils/trunk.git/bld.trunk/gas/as-new -msyntax=att --64 t2.s -o t2-att-64.o $ /home/qneill/wk/binutils/trunk.git/bld.trunk/binutils/objdump -dw -Matt,64 t2-att-64.o t2-att-64.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <_start>: 0: c4 e3 c9 69 fc 20 vfmaddpd %xmm4,%xmm2,%xmm6,%xmm7 _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils