Pentium Pro changes
John Hassey
hassey@dg-rtp.dg.com
Thu Dec 28 10:42:00 GMT 1995
Here are some diffs which add Pentium Pro instruction support.
Could someone with access to the sources install these and send
me e-mail.
thanks,
john.
diff -rc2 gas-951221.orig/gas/ChangeLog gas-951221/gas/ChangeLog
*** gas-951221.orig/gas/ChangeLog Thu Dec 21 04:28:58 1995
--- gas-951221/gas/ChangeLog Thu Dec 28 13:27:02 1995
***************
*** 1,2 ****
--- 1,7 ----
+ Thu Dec 28 13:22:59 1995 John Hassey <hassey@rtp.dg.com>
+
+ * config/tc-i386.c (md_assemble): Fixed test against registers
+ when trying to determine operand size from destination register.
+
Wed Dec 20 14:57:17 1995 Ian Lance Taylor <ian@cygnus.com>
diff -rc2 gas-951221.orig/gas/config/tc-i386.c gas-951221/gas/config/tc-i386.c
*** gas-951221.orig/gas/config/tc-i386.c Tue Nov 28 14:21:17 1995
--- gas-951221/gas/config/tc-i386.c Thu Dec 28 13:36:14 1995
***************
*** 1,4 ****
/* i386.c -- Assemble code for the Intel 80386
! Copyright (C) 1989, 1991, 1992, 1993 Free Software Foundation.
This file is part of GAS, the GNU Assembler.
--- 1,4 ----
/* i386.c -- Assemble code for the Intel 80386
! Copyright (C) 1989, 1991, 1992, 1993, 1995 Free Software Foundation.
This file is part of GAS, the GNU Assembler.
***************
*** 1155,1161 ****
if (i.types[op] & Reg)
{
! i.suffix = ((i.types[op] == Reg8) ? BYTE_OPCODE_SUFFIX :
! (i.types[op] == Reg16) ? WORD_OPCODE_SUFFIX :
! DWORD_OPCODE_SUFFIX);
}
}
--- 1155,1161 ----
if (i.types[op] & Reg)
{
! i.suffix = ((i.types[op] & Reg8) ? BYTE_OPCODE_SUFFIX :
! (i.types[op] & Reg16) ? WORD_OPCODE_SUFFIX :
! (i.types[op] & Reg32) ? DWORD_OPCODE_SUFFIX : 0);
}
}
diff -rc2 gas-951221.orig/include/opcode/ChangeLog gas-951221/include/opcode/ChangeLog
*** gas-951221.orig/include/opcode/ChangeLog Thu Dec 21 04:30:26 1995
--- gas-951221/include/opcode/ChangeLog Thu Dec 28 13:35:17 1995
***************
*** 1,2 ****
--- 1,6 ----
+ Thu Dec 28 13:27:53 1995 John Hassey <hassey@rtp.dg.com>
+
+ * i386.h: Added Pentium Pro instructions.
+
Thu Nov 2 22:59:22 1995 Ian Lance Taylor <ian@cygnus.com>
diff -rc2 gas-951221.orig/include/opcode/i386.h gas-951221/include/opcode/i386.h
*** gas-951221.orig/include/opcode/i386.h Fri Oct 20 18:22:05 1995
--- gas-951221/include/opcode/i386.h Thu Dec 28 13:36:20 1995
***************
*** 758,761 ****
--- 758,795 ----
{"cmpxchg8b", 1, 0x0fc7, 1, Modrm, { Mem, 0, 0} },
+ /* Pentium Pro extensions */
+ {"rdpmc", 0, 0x0f33, _, NoModrm, { 0, 0, 0} },
+
+ {"cmovo", 2, 0x0f40, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovno", 2, 0x0f41, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovb", 2, 0x0f42, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovae", 2, 0x0f43, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmove", 2, 0x0f44, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovne", 2, 0x0f45, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovbe", 2, 0x0f46, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmova", 2, 0x0f47, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovs", 2, 0x0f48, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovns", 2, 0x0f49, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovp", 2, 0x0f4a, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovnp", 2, 0x0f4b, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovl", 2, 0x0f4c, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovge", 2, 0x0f4d, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovle", 2, 0x0f4e, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+ {"cmovg", 2, 0x0f4f, _, W|Modrm|ReverseRegRegmem, { WordReg|WordMem, WordReg, 0} },
+
+ {"fcmovb", 2, 0xdac0, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fcmove", 2, 0xdac8, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fcmovbe",2, 0xdad0, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fcmovu", 2, 0xdad8, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fcmovnb", 2, 0xdbc0, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fcmovne", 2, 0xdbc8, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fcmovnbe",2, 0xdbd0, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fcmovnu", 2, 0xdbd8, _, ShortForm, { FloatReg, FloatAcc, 0} },
+
+ {"fcomi", 2, 0xdbf0, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fucomi", 2, 0xdbe8, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fcomip", 2, 0xdff0, _, ShortForm, { FloatReg, FloatAcc, 0} },
+ {"fucomip",2, 0xdfe8, _, ShortForm, { FloatReg, FloatAcc, 0} },
+
{"", 0, 0, 0, 0, { 0, 0, 0} } /* sentinel */
};
diff -rc2 gas-951221.orig/opcodes/ChangeLog gas-951221/opcodes/ChangeLog
*** gas-951221.orig/opcodes/ChangeLog Thu Dec 21 04:32:55 1995
--- gas-951221/opcodes/ChangeLog Thu Dec 28 13:35:25 1995
***************
*** 1,2 ****
--- 1,6 ----
+ Thu Dec 28 13:29:19 1995 John Hassey <hassey@rtp.dg.com>
+
+ * i386-dis.c: Added Pentium Pro instructions.
+
Tue Dec 19 22:56:35 1995 Michael Meissner <meissner@tiktok.cygnus.com>
diff -rc2 gas-951221.orig/opcodes/i386-dis.c gas-951221/opcodes/i386-dis.c
*** gas-951221.orig/opcodes/i386-dis.c Thu Oct 5 22:18:18 1995
--- gas-951221/opcodes/i386-dis.c Thu Dec 28 13:36:27 1995
***************
*** 525,529 ****
{ "invd" },
{ "wbinvd" },
! { "(bad)" }, { "(bad)" },
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 10 */
--- 525,529 ----
{ "invd" },
{ "wbinvd" },
! { "(bad)" }, { "ud2a" },
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 10 */
***************
*** 547,551 ****
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 30 */
! { "wrmsr" }, { "rdtsc" }, { "rdmsr" }, { "(bad)" },
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 38 */
--- 547,551 ----
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 30 */
! { "wrmsr" }, { "rdtsc" }, { "rdmsr" }, { "rdpmc" },
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 38 */
***************
*** 553,561 ****
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 40 */
! { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
! { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 48 */
! { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
! { "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 50 */
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
--- 553,561 ----
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
/* 40 */
! { "cmovo", Gv,Ev }, { "cmovno", Gv,Ev }, { "cmovb", Gv,Ev }, { "cmovae", Gv,Ev },
! { "cmove", Gv,Ev }, { "cmovne", Gv,Ev }, { "cmovbe", Gv,Ev }, { "cmova", Gv,Ev },
/* 48 */
! { "cmovs", Gv,Ev }, { "cmovns", Gv,Ev }, { "cmovp", Gv,Ev }, { "cmovnp", Gv,Ev },
! { "cmovl", Gv,Ev }, { "cmovge", Gv,Ev }, { "cmovle", Gv,Ev }, { "cmovg", Gv,Ev },
/* 50 */
{ "(bad)" }, { "(bad)" }, { "(bad)" }, { "(bad)" },
***************
*** 640,645 ****
{ "movzwS", Gv, Ew },
/* b8 */
{ "(bad)" },
- { "(bad)" },
{ GRP8 },
{ "btcS", Ev, Gv },
--- 640,645 ----
{ "movzwS", Gv, Ew },
/* b8 */
+ { "ud2b" },
{ "(bad)" },
{ GRP8 },
{ "btcS", Ev, Gv },
***************
*** 1271,1279 ****
/* da */
{
{ "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
- { "(bad)" },
{ FGRPda_5 },
{ "(bad)" },
--- 1271,1279 ----
/* da */
{
+ { "fcmovb", ST, STi },
+ { "fcmove", ST, STi },
+ { "fcmovbe",ST, STi },
+ { "fcmovu", ST, STi },
{ "(bad)" },
{ FGRPda_5 },
{ "(bad)" },
***************
*** 1282,1293 ****
/* db */
{
! { "(bad)" },
! { "(bad)" },
! { "(bad)" },
! { "(bad)" },
{ FGRPdb_4 },
{ "(bad)" },
- { "(bad)" },
- { "(bad)" },
},
/* dc */
--- 1282,1293 ----
/* db */
{
! { "fcmovnb",ST, STi },
! { "fcmovne",ST, STi },
! { "fcmovnbe",ST, STi },
! { "fcmovnu",ST, STi },
{ FGRPdb_4 },
+ { "fucomi", ST, STi },
+ { "fcomi", ST, STi },
{ "(bad)" },
},
/* dc */
***************
*** 1331,1336 ****
{ "(bad)" },
{ FGRPdf_4 },
! { "(bad)" },
! { "(bad)" },
{ "(bad)" },
},
--- 1331,1336 ----
{ "(bad)" },
{ FGRPdf_4 },
! { "fucomip",ST, STi },
! { "fcomip", ST, STi },
{ "(bad)" },
},
More information about the Gas2
mailing list