This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: i386 Intel synax assembler is broken.


On Tue, Aug 15, 2000 at 07:03:13PM -0700, H . J . Lu wrote:
> Did you run "make check" before and after you checked in this patch?
> I got a failure on Intel synax test. Back out your patch fixes it.
> Could you please fix it?
> 
> Thanks.
> 
> 
> -- 
> H.J. Lu (hjl@gnu.org)
> --
> Wed Aug  9 16:28:21 EDT 2000	Diego Novillo <dnovillo@cygnus.com>
> 
> 	* tc-i386.c (md_assemble): Skip suffix check if the opcode modifier
> 	has the IgnoreSize bit set.
> 

This patch seems to work for me. I don't know if it is entirely correct.


H.J.
---
2000-08-15  H.J. Lu  <hjl@gnu.org>

	* i386.h: Swap the Intel syntax "movsx"/"movzx" due to the
	IgnoreSize change.

Index: i386.h
===================================================================
RCS file: /work/cvs/gnu/binutils/include/opcode/i386.h,v
retrieving revision 1.1.1.14
diff -u -p -r1.1.1.14 i386.h
--- i386.h	2000/05/30 05:35:57	1.1.1.14
+++ i386.h	2000/08/16 03:42:30
@@ -108,15 +108,15 @@ static const template i386_optab[] = {
 {"movsbw", 2, 0x0fbe, X, Cpu386, NoSuf|Modrm,			{ Reg8|ByteMem, Reg16, 0} },
 {"movswl", 2, 0x0fbf, X, Cpu386, NoSuf|Modrm,			{ Reg16|ShortMem, Reg32, 0} },
 /* Intel Syntax next 2 insns */
-{"movsx",  2, 0x0fbf, X, Cpu386, w_Suf|Modrm|IgnoreSize,	{ Reg16|ShortMem, Reg32, 0} },
 {"movsx",  2, 0x0fbe, X, Cpu386, b_Suf|Modrm,			{ Reg8|ByteMem, WordReg, 0} },
+{"movsx",  2, 0x0fbf, X, Cpu386, w_Suf|Modrm|IgnoreSize,	{ Reg16|ShortMem, Reg32, 0} },
 
 /* Move with zero extend.  */
 {"movzb",  2, 0x0fb6, X, Cpu386, wl_Suf|Modrm,			{ Reg8|ByteMem, WordReg, 0} },
 {"movzwl", 2, 0x0fb7, X, Cpu386, NoSuf|Modrm,			{ Reg16|ShortMem, Reg32, 0} },
 /* Intel Syntax next 2 insns */
-{"movzx",  2, 0x0fb7, X, Cpu386, w_Suf|Modrm|IgnoreSize,	{ Reg16|ShortMem, Reg32, 0} },
 {"movzx",  2, 0x0fb6, X, Cpu386, b_Suf|Modrm,			{ Reg8|ByteMem, WordReg, 0} },
+{"movzx",  2, 0x0fb7, X, Cpu386, w_Suf|Modrm|IgnoreSize,	{ Reg16|ShortMem, Reg32, 0} },
 
 /* Push instructions.  */
 {"push",   1,	0x50, X, 0,	 wl_Suf|ShortForm|DefaultSize,	{ WordReg, 0, 0 } },

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]