diff options
author | dyson <dyson@FreeBSD.org> | 1997-07-15 07:56:53 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1997-07-15 07:56:53 +0000 |
commit | f2a897ade1515c71fddbefaa1d4c0cd22287fba2 (patch) | |
tree | 475e57331a2f9e8a8e50ca3fdb72b02b033c6878 /gnu | |
parent | 7df57a5f44d2b8e3309bcc1ffbad0933d632e7b1 (diff) | |
download | FreeBSD-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.h | 46 |
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}, |