On Mon, 15 Apr 2013 05:28:44 +0000 Ekanathan, Saravanan wrote: > Hi Tom Horsley, > Binutils and AMD manual looks ok.
Yea, I eventually figured out that the 'V' form of the operand couldn't possibly go with the 'reg' field being used as to decode the operator. I think that Vdq in the summary table should actually be a Udq (which would be an easy transcription error to make when someone was filling in the tables). > PFB, the snippet from "AMD64 Architecture Programmer's Manual - Volume 3: > General-Purpose and System Instructions" (Page 22 under Instruction Encoding): > ...... > Note that the addressing mode mod = 11b is a register-direct mode, that is, > the operand is contained in > the specified register, while the modes mod = [00b:10b] specify different > addressing modes for a > memory-based operand. > > For mod = 11b, the register containing the operand is specified by the r/m > field. For the other modes > (mod = [00b:10b]), the mod and r/m fields are combined to specify the > addressing mode for the > memory-based operand. Most are register-indirect addressing modes meaning > that the address of the > memory-based operand is contained in the register specified by r/m. For these > register-indirect modes, > mod = 01b and mod = 10b include an offset encoded in the displacement field > of the instruction. > ..... > Regards, > Saravanan. > > -----Original Message----- > From: bug-binutils-bounces+saravanan.ekanathan=amd....@gnu.org > [mailto:bug-binutils-bounces+saravanan.ekanathan=amd....@gnu.org] On Behalf > Of Tom Horsley > Sent: Thursday, April 11, 2013 8:12 PM > To: bug-binutils@gnu.org > Subject: extrq wrong operand? > > If I'm reading the AMD manuals correctly, the extrq instruction has one form > with operands described in the table as Vdq,Ib,Ib. > The V in Vdq is described as being the ModRM reg field. If I disassemble an > example with objdump, I see this: > > objdump: 40356c: 66 0f 78 c1 02 04 extrq $0x4,$0x2,%xmm1 > > modrm byte is 0xc1 > mod = 3 > reg = 0 > rm = 1 > > So objdump seems to be picking %xmm1 from the rm field, not the reg field. > > Are the binutils busted, or are the AMD manuals busted? > > _______________________________________________ > bug-binutils mailing list > bug-binutils@gnu.org > https://lists.gnu.org/mailman/listinfo/bug-binutils > > _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils