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]
Other format: [Raw text]

Cyrix EMMI patch


Hello,

I'd like to contribute a support for the Cyrix MII extended multimedia instructions
to the binutils package. Please let me know what you think...

-Petr

diff -ur binutils-2.13.90.0.14~/gas/config/tc-i386.c binutils-2.13.90.0.14/gas/config/tc-i386.c
--- binutils-2.13.90.0.14~/gas/config/tc-i386.c	Sat Oct 12 18:02:23 2002
+++ binutils-2.13.90.0.14/gas/config/tc-i386.c	Tue Dec 10 13:03:21 2002
@@ -411,6 +411,7 @@
   {"k6",	Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuK6|CpuMMX|Cpu3dnow },
   {"athlon",	Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuAthlon|CpuMMX|Cpu3dnow },
   {"sledgehammer",Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuK6|CpuAthlon|CpuSledgehammer|CpuMMX|Cpu3dnow|CpuSSE|CpuSSE2 },
+  {"cyrix",	Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuMMX|CpuCxMMX},
   {NULL, 0 }
 };
 
diff -ur binutils-2.13.90.0.14~/gas/config/tc-i386.h binutils-2.13.90.0.14/gas/config/tc-i386.h
--- binutils-2.13.90.0.14~/gas/config/tc-i386.h	Tue Dec 10 13:07:41 2002
+++ binutils-2.13.90.0.14/gas/config/tc-i386.h	Tue Dec 10 13:08:28 2002
@@ -243,13 +243,14 @@
 #define CpuSSE	       0x1000	/* Streaming SIMD extensions required */
 #define CpuSSE2	       0x2000	/* Streaming SIMD extensions 2 required */
 #define Cpu3dnow       0x4000	/* 3dnow! support required */
+#define CpuEMMI        0x8000	/* Cyrix EMMI support required */
 
   /* These flags are set by gas depending on the flag_code.  */
 #define Cpu64	     0x4000000   /* 64bit support required  */
 #define CpuNo64      0x8000000   /* Not supported in the 64bit mode  */
 
   /* The default value for unknown CPUs - enable all features to avoid problems.  */
-#define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuSledgehammer|CpuMMX|CpuSSE|CpuSSE2|Cpu3dnow|CpuK6|CpuAthlon)
+#define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuSledgehammer|CpuMMX|CpuSSE|CpuSSE2|Cpu3dnow|CpuEMMI|CpuK6|CpuAthlon)
 
   /* the bits in opcode_modifier are used to generate the final opcode from
      the base_opcode.  These bits also are used to detect alternate forms of
diff -ur binutils-2.13.90.0.14~/include/opcode/i386.h binutils-2.13.90.0.14/include/opcode/i386.h
--- binutils-2.13.90.0.14~/include/opcode/i386.h	Wed Jul 17 20:38:29 2002
+++ binutils-2.13.90.0.14/include/opcode/i386.h	Tue Dec 10 13:09:14 2002
@@ -1337,6 +1337,21 @@
 {"sysret",   0, 0x0f07,    X, CpuK6,	lq_Suf|DefaultSize,	{ 0, 0, 0} },
 {"swapgs",   0, 0x0f01, 0xf8, Cpu64,	NoSuf|ImmExt,		{ 0, 0, 0} },
 
+/* Cyrix MII Extended MMX */
+{"paddsiw",  2, 0x0f51, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"paveb",    2, 0x0f50, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pdistib",  2, 0x0f54, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pmachriw", 2, 0x0f5e, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pmagw",    2, 0x0f52, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pmagw",    2, 0x0f52, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pmulhrw",  2, 0x0f59, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pmulhriw", 2, 0x0f5d, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pmvzb",    2, 0x0f58, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pmvnzb",   2, 0x0f5a, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pmvlzb",   2, 0x0f5b, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"pmvgezb",  2, 0x0f5c, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+{"psubsiw",  2, 0x0f55, X, CpuEMMI, FP|Modrm,		{ RegMMX|LongMem, RegMMX, 0 } },
+
 /* sentinel */
 {NULL, 0, 0, 0, 0, 0, { 0, 0, 0} }
 };

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