summaryrefslogtreecommitdiffstats
path: root/gnu
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1997-07-15 07:56:53 +0000
committerdyson <dyson@FreeBSD.org>1997-07-15 07:56:53 +0000
commitf2a897ade1515c71fddbefaa1d4c0cd22287fba2 (patch)
tree475e57331a2f9e8a8e50ca3fdb72b02b033c6878 /gnu
parent7df57a5f44d2b8e3309bcc1ffbad0933d632e7b1 (diff)
downloadFreeBSD-src-f2a897ade1515c71fddbefaa1d4c0cd22287fba2.zip
FreeBSD-src-f2a897ade1515c71fddbefaa1d4c0cd22287fba2.tar.gz
Add some Pentium and PentiumPro opcodes and registers.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/usr.bin/as/opcode/i386.h46
1 files changed, 45 insertions, 1 deletions
diff --git a/gnu/usr.bin/as/opcode/i386.h b/gnu/usr.bin/as/opcode/i386.h
index 26a5b6a..6a9e9c9 100644
--- a/gnu/usr.bin/as/opcode/i386.h
+++ b/gnu/usr.bin/as/opcode/i386.h
@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with GAS; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-/* $Id$ */
+/* $Id: i386.h,v 1.7 1997/02/22 15:44:29 peter Exp $ */
static const template i386_optab[] = {
@@ -732,6 +732,49 @@ static const template i386_optab[] = {
/* Pentium and late-model 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, 1, Modrm, Mem, 0, 0},
+
+/* Pentium Pro extensions */
+{"rdpmc", 0, 0x0f33, _, NoModrm, 0, 0, 0},
+
+{"ud2", 0, 0x0fff, _, NoModrm, 0, 0, 0}, /* official undefined instr. */
+
+{"cmovo", 2, 0x0f40, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovno", 2, 0x0f41, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovb", 2, 0x0f42, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovae", 2, 0x0f43, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmove", 2, 0x0f44, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovne", 2, 0x0f45, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovbe", 2, 0x0f46, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmova", 2, 0x0f47, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovs", 2, 0x0f48, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovns", 2, 0x0f49, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovp", 2, 0x0f4a, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovnp", 2, 0x0f4b, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovl", 2, 0x0f4c, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovge", 2, 0x0f4d, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovle", 2, 0x0f4e, _, Modrm|ReverseRegRegmem, WordReg|WordMem, WordReg, 0},
+{"cmovg", 2, 0x0f4f, _, 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} /* sentinal */
};
#undef _
@@ -764,6 +807,7 @@ static const reg_entry i386_regtab[] = {
{"dr0", Debug, 0}, {"dr1", Debug, 1}, {"dr2", Debug, 2},
{"dr3", Debug, 3}, {"dr6", Debug, 6}, {"dr7", Debug, 7},
/* test registers */
+ {"tr3", Test, 3}, {"tr4", Test, 4}, {"tr5", Test, 5},
{"tr6", Test, 6}, {"tr7", Test, 7},
/* float registers */
{"st(0)", FloatReg|FloatAcc, 0},
OpenPOWER on IntegriCloud