aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1997-08-26 16:22:36 +0000
committerIan Lance Taylor <ian@airs.com>1997-08-26 16:22:36 +0000
commitc2367582a07222fc86ed7b8cb3f0d0804e0bc279 (patch)
tree364128c8e459c772028ce7bcbf078da870283667
parent3f1a33d6736d504f6935087905db07a5c908ea5e (diff)
downloadgdb-c2367582a07222fc86ed7b8cb3f0d0804e0bc279.zip
gdb-c2367582a07222fc86ed7b8cb3f0d0804e0bc279.tar.gz
gdb-c2367582a07222fc86ed7b8cb3f0d0804e0bc279.tar.bz2
* i386.h (JUMP_ON_CX_ZERO): Uncomment (define again).
(JUMP_ON_EXC_ZERO): Remove commented out macro.
-rw-r--r--include/opcode/ChangeLog5
-rw-r--r--include/opcode/i386.h18
2 files changed, 12 insertions, 11 deletions
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index be09a38..0d49961 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,8 @@
+Tue Aug 26 12:21:52 1997 Ian Lance Taylor <ian@cygnus.com>
+
+ * i386.h (JUMP_ON_CX_ZERO): Uncomment (define again).
+ (JUMP_ON_EXC_ZERO): Remove commented out macro.
+
Fri Aug 22 10:38:29 1997 Nick Clifton <nickc@cygnus.com>
* v850.h (V850_NOT_R0): New flag.
diff --git a/include/opcode/i386.h b/include/opcode/i386.h
index e4b7579..08b4fe7 100644
--- a/include/opcode/i386.h
+++ b/include/opcode/i386.h
@@ -343,17 +343,10 @@ static const template i386_optab[] = {
{"jnle", 1, 0x7f, _, Jump, { Disp, 0, 0} },
{"jg", 1, 0x7f, _, Jump, { Disp, 0, 0} },
-#if 0 /* XXX where are these macros used?
- To get them working again, they need to take
- an entire template as the parameter,
- and check for Data16/Data32 flags. */
-/* these turn into pseudo operations when disp is larger than 8 bits */
#define IS_JUMP_ON_CX_ZERO(o) \
- (o == 0x66e3)
-#define IS_JUMP_ON_ECX_ZERO(o) \
(o == 0xe3)
-#endif
+/* jcxz vs. jecxz is chosen on the basis of the address size prefix. */
{"jcxz", 1, 0xe3, _, JumpByte|Data16, { Disp, 0, 0} },
{"jecxz", 1, 0xe3, _, JumpByte|Data32, { Disp, 0, 0} },
@@ -535,6 +528,7 @@ static const template i386_optab[] = {
/* comparison (with pop) */
{"fcomp", 1, 0xd8d8, _, ShortForm, { FloatReg, 0, 0} },
+{"fcomp", 0, 0xd8d9, _, NoModrm, {0, 0, 0} }, /* fcomp %st, %st(1) */
{"fcomps", 1, 0xd8, 3, Modrm, { Mem, 0, 0} }, /* compare %st0, mem float */
{"ficompl", 1, 0xda, 3, Modrm, { Mem, 0, 0} }, /* compare %st0, mem word */
{"fcompl", 1, 0xdc, 3, Modrm, { Mem, 0, 0} }, /* compare %st0, mem double */
@@ -777,6 +771,8 @@ static const template i386_optab[] = {
/* 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} },
@@ -811,8 +807,8 @@ static const template i386_optab[] = {
/* MMX instructions. */
{"emms", 0, 0x0f77, _, NoModrm, { 0, 0, 0 } },
-{"movd", 2, 0x0f6e, _, Modrm, { WordReg|WordMem, RegMMX, 0 } },
-{"movd", 2, 0x0f7e, _, Modrm, { RegMMX, WordReg|WordMem, 0 } },
+{"movd", 2, 0x0f6e, _, Modrm, { Reg32|WordMem, RegMMX, 0 } },
+{"movd", 2, 0x0f7e, _, Modrm, { RegMMX, Reg32|WordMem, 0 } },
{"movq", 2, 0x0f6f, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },
{"movq", 2, 0x0f7f, _, Modrm, { RegMMX, RegMMX|WordMem, 0 } },
{"packssdw", 2, 0x0f6b, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },
@@ -825,7 +821,7 @@ static const template i386_optab[] = {
{"paddsw", 2, 0x0fed, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },
{"paddusb", 2, 0x0fdc, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },
{"paddusw", 2, 0x0fdd, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },
-{"pand", 2, 0x0fda, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },
+{"pand", 2, 0x0fdb, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },
{"pandn", 2, 0x0fdf, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },
{"pcmpeqb", 2, 0x0f74, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },
{"pcmpeqw", 2, 0x0f75, _, Modrm, { RegMMX|WordMem, RegMMX, 0 } },