This is the mail archive of the gas2@sourceware.cygnus.com mailing list for the gas2 project.


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

Re: Question re fstsww fstcww fnstsww && fldcww i386pei /* note RETURN address */


   From: jeffdbREMOVETHIS@goodnet.com (Mikey)
   Date: Thu, 03 Dec 1998 22:28:41 GMT

   is there a reason that support was dropped
   for these instructions, or to put it another way
   that the size suffix is no longer recognized?

   my binutils is 980705, so this may have been
   fixed in more recent. ;^)

   #define fstsww fstsw
   #define fstcww fstcw
   #define fnstsww fnstsw
   #define fldcww fldcw

Although the size suffix is redundant for these instructions, I can't
think of any reason that gas should reject it.  I checked in the
appended patch.

Ian

Index: i386.h
===================================================================
RCS file: /cvs/cvsfiles/devo/include/opcode/i386.h,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -r1.66 -r1.67
--- i386.h	1998/11/11 05:58:08	1.66
+++ i386.h	1998/12/06 18:22:56	1.67
@@ -674,15 +674,15 @@
 /* processor control */
 {"fninit", 0, 0xdbe3, X, FP,			{ 0, 0, 0} },
 {"finit",  0, 0xdbe3, X, FP|FWait,		{ 0, 0, 0} },
-{"fldcw",  1,	0xd9, 5, FP|Modrm,		{ ShortMem, 0, 0} },
-{"fnstcw", 1,	0xd9, 7, FP|Modrm,		{ ShortMem, 0, 0} },
-{"fstcw",  1,	0xd9, 7, FP|FWait|Modrm,	{ ShortMem, 0, 0} },
-{"fnstsw", 1, 0xdfe0, X, FP,			{ Acc, 0, 0} },
-{"fnstsw", 1,	0xdd, 7, FP|Modrm,		{ ShortMem, 0, 0} },
-{"fnstsw", 0, 0xdfe0, X, FP,			{ 0, 0, 0} },
-{"fstsw",  1, 0xdfe0, X, FP|FWait,		{ Acc, 0, 0} },
-{"fstsw",  1,	0xdd, 7, FP|FWait|Modrm,	{ ShortMem, 0, 0} },
-{"fstsw",  0, 0xdfe0, X, FP|FWait,		{ 0, 0, 0} },
+{"fldcw",  1,	0xd9, 5, w_Suf|IgnoreSize|Modrm,	{ ShortMem, 0, 0} },
+{"fnstcw", 1,	0xd9, 7, w_Suf|IgnoreSize|Modrm,	{ ShortMem, 0, 0} },
+{"fstcw",  1,	0xd9, 7, w_Suf|IgnoreSize|FWait|Modrm,	{ ShortMem, 0, 0} },
+{"fnstsw", 1, 0xdfe0, X, w_Suf|IgnoreSize,		{ Acc, 0, 0} },
+{"fnstsw", 1,	0xdd, 7, w_Suf|IgnoreSize|Modrm,	{ ShortMem, 0, 0} },
+{"fnstsw", 0, 0xdfe0, X, w_Suf|IgnoreSize,		{ 0, 0, 0} },
+{"fstsw",  1, 0xdfe0, X, w_Suf|IgnoreSize|FWait,	{ Acc, 0, 0} },
+{"fstsw",  1,	0xdd, 7, w_Suf|IgnoreSize|FWait|Modrm,	{ ShortMem, 0, 0} },
+{"fstsw",  0, 0xdfe0, X, w_Suf|IgnoreSize|FWait,	{ 0, 0, 0} },
 {"fnclex", 0, 0xdbe2, X, FP,			{ 0, 0, 0} },
 {"fclex",  0, 0xdbe2, X, FP|FWait,		{ 0, 0, 0} },
 /* Short forms of fldenv, fstenv use data size prefix.