pentium updates
authorKen Raeburn <raeburn@cygnus>
Fri, 6 Oct 1995 01:43:38 +0000 (01:43 +0000)
committerKen Raeburn <raeburn@cygnus>
Fri, 6 Oct 1995 01:43:38 +0000 (01:43 +0000)
include/opcode/ChangeLog
include/opcode/i386.h

index 39155c88dcc856b462f3b77fcd4f6d5ced6b1673..ef4ea2cc6105eb2573322c3c20b140b79cf8f861 100644 (file)
@@ -1,5 +1,24 @@
+Thu Oct  5 18:03:36 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * i386.h: Add Pentium instructions wrmsr, rdtsc, rdmsr, cmpxchg8b,
+       and register cr4.
+
+Tue Sep 19 15:26:43 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * m68k.h: Change comment: split type P into types 0, 1 and 2.
+
+Wed Aug 30 13:50:55 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+       * sparc.h (sparc_{encode,decode}_prefetch): Declare.
+
+Tue Aug 29 15:34:58 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+       * sparc.h (sparc_{encode,decode}_{asi,membar}): Declare.
+
 Wed Aug  2 18:32:19 1995  Ian Lance Taylor  <ian@cygnus.com>
 
+       * m68kmri.h: Remove.
+
        * m68k.h: Move tables into opcodes/m68k-opc.c, leaving just the
        declarations.  Remove F_ALIAS and flag field of struct
        m68k_opcode.  Change arch field of struct m68k_opcode to unsigned
index e902a2b0cdcbdcd17485e3ab9dcae407464c11a5..7a395648ec370d7f7dc50cee71bddb6211a1ab75 100644 (file)
@@ -15,7 +15,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 static const template i386_optab[] = {
 
@@ -101,6 +101,8 @@ static const template i386_optab[] = {
 {"sahf", 0, 0x9e, _, NoModrm, { 0, 0, 0} },
 {"pushf", 0, 0x9c, _, NoModrm|Data32, { 0, 0, 0} },
 {"popf", 0, 0x9d, _, NoModrm|Data32, { 0, 0, 0} },
+{"pushfl", 0, 0x9c, _, NoModrm|Data32, { 0, 0, 0} },
+{"popfl", 0, 0x9d, _, NoModrm|Data32, { 0, 0, 0} },
 {"pushfw", 0, 0x9c, _, NoModrm|Data16, { 0, 0, 0} },
 {"popfw", 0, 0x9d, _, NoModrm|Data16, { 0, 0, 0} },
 {"stc", 0, 0xf9, _, NoModrm, { 0, 0, 0} },
@@ -280,8 +282,10 @@ static const template i386_optab[] = {
 {"lret", 1, 0xca, _, NoModrm|Data32, { Imm16, 0, 0} },
 {"lretw", 0, 0xcb, _, NoModrm|Data16, { 0, 0, 0} },
 {"lretw", 1, 0xca, _, NoModrm|Data16, { Imm16, 0, 0} },
-{"enter", 2, 0xc8, _, NoModrm, { Imm16, Imm8, 0} },
-{"leave", 0, 0xc9, _, NoModrm, { 0, 0, 0} },
+{"enter", 2, 0xc8, _, NoModrm|Data32, { Imm16, Imm8, 0} },
+{"leave", 0, 0xc9, _, NoModrm|Data32, { 0, 0, 0} },
+{"enterw", 2, 0xc8, _, NoModrm|Data16, { Imm16, Imm8, 0} },
+{"leavew", 0, 0xc9, _, NoModrm|Data16, { 0, 0, 0} },
 
 /* conditional jumps */
 {"jo", 1, 0x70, _, Jump, { Disp, 0, 0} },
@@ -444,7 +448,7 @@ static const template i386_optab[] = {
 {"into", 0, 0xce, _, NoModrm, { 0, 0, 0} },
 {"iret", 0, 0xcf, _, NoModrm|Data32, { 0, 0, 0} },
 {"iretw", 0, 0xcf, _, NoModrm|Data16, { 0, 0, 0} },
-/* i386sl (and i486sl?) only */
+/* i386sl, i486sl, later 486, and Pentium */
 {"rsm", 0, 0x0faa, _, NoModrm,{ 0, 0, 0} },
 
 {"boundl", 2, 0x62, _, Modrm|Data32, { Reg32, Mem, 0} },
@@ -744,6 +748,15 @@ static const template i386_optab[] = {
 {"wbinvd", 0, 0x0f09, _, NoModrm, { 0, 0, 0} },
 {"invlpg", 1, 0x0f01, 7, Modrm, { Mem, 0, 0} },
 
+/* 586 and late 486 extensions */
+{"cpuid", 0, 0x0fa2, _, NoModrm, { 0, 0, 0} },
+
+/* Pentium extensions */
+{"wrmsr", 0, 0x0f30, _, NoModrm, { 0, 0, 0} },
+{"rdtsc", 0, 0x0f31, _, NoModrm, { 0, 0, 0} },
+{"rdmsr", 0, 0x0f32, _, NoModrm, { 0, 0, 0} },
+{"cmpxchg8b", 1, 0x0fc7, _, Modrm, { Mem, 0, 0} },
+
 {"", 0, 0, 0, 0, { 0, 0, 0} }  /* sentinel */
 };
 #undef _
@@ -769,9 +782,12 @@ static const reg_entry i386_regtab[] = {
   {"ds", SReg2, 3}, {"fs", SReg3, 4}, {"gs", SReg3, 5},
   /* control registers */
   {"cr0", Control, 0},   {"cr2", Control, 2},   {"cr3", Control, 3},
+  {"cr4", Control, 4},
   /* debug registers */
   {"db0", Debug, 0},   {"db1", Debug, 1},   {"db2", Debug, 2},
   {"db3", Debug, 3},   {"db6", Debug, 6},   {"db7", Debug, 7},
+  {"dr0", Debug, 0},   {"dr1", Debug, 1},   {"dr2", Debug, 2},
+  {"dr3", Debug, 3},   {"dr6", Debug, 6},   {"dr7", Debug, 7},
   /* test registers */
   {"tr6", Test, 6}, {"tr7", Test, 7},
   /* float registers */