Bug in operands to IA32 cvtps2dq instruction in gnu as

amodra@one.net.au amodra@one.net.au
Sat May 12 02:55:00 GMT 2001


On Fri, May 11, 2001 at 05:55:02PM -0700, Phil Karn wrote:
> The operand table for this instruction probably needs fixing.

Indeed.  Looks to me that movdq2q and movq2dq are wrong too.

include/opcode/ChangeLog
	* i386.h (i386_optab): Second operand of cvtps2dq is an xmm reg,
	not an mmx reg.  Swap xmm/mmx regs on both movdq2q and movq2dq,
	and use InvMem as these insns must have register operands.

opcodes/ChangeLog
	* i386-dis.c (prefix_user_table): Correct movq2dq, movdq2q, and
	movq operands.

gas/testsuite/ChangeLog
	* gas/i386/sse2.s: Correct cvtps2dq, movdq2q, and movq2dq
	* gas/i386/sse2.d: Likewise.  Fix pmuludq too.

	* gas/i386/ssemmx2.d: Correct movq.

-- 
Alan Modra



More information about the Binutils mailing list