diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2007-10-03 19:30:44 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2007-10-03 19:30:44 +0000 |
commit | 9b60702d0cd0fb96a19a426b39e982f2bb8db26b (patch) | |
tree | ffc2bf81146b50eaf1723c150d142768c58b0e1b /opcodes | |
parent | 458fa39293d524ea898ec43fd4a6be8e31b850d6 (diff) | |
download | binutils-9b60702d0cd0fb96a19a426b39e982f2bb8db26b.zip binutils-9b60702d0cd0fb96a19a426b39e982f2bb8db26b.tar.gz binutils-9b60702d0cd0fb96a19a426b39e982f2bb8db26b.tar.bz2 |
2007-10-03 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (OP_REG): Set add to 0 only when needed.
(OP_C): Likewise.
(OP_D): Likewise.
(OP_MMX): Likewise.
(OP_XMM): Likewise.
(OP_EM): Likewise.
(OP_MXC): Likewise.
(OP_EX): Likewise.
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 11 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 28 |
2 files changed, 32 insertions, 7 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index bee9fe7..64d7e76 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,16 @@ 2007-10-03 H.J. Lu <hongjiu.lu@intel.com> + * i386-dis.c (OP_REG): Set add to 0 only when needed. + (OP_C): Likewise. + (OP_D): Likewise. + (OP_MMX): Likewise. + (OP_XMM): Likewise. + (OP_EM): Likewise. + (OP_MXC): Likewise. + (OP_EX): Likewise. + +2007-10-03 H.J. Lu <hongjiu.lu@intel.com> + * i386-opc.tbl: Update SSE comments. 2007-10-01 H.J. Lu <hongjiu.lu@intel.com> diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 968c0a2..84572b2 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -6896,10 +6896,12 @@ static void OP_REG (int code, int sizeflag) { const char *s; - int add = 0; + int add; USED_REX (REX_B); if (rex & REX_B) add = 8; + else + add = 0; switch (code) { @@ -7372,7 +7374,7 @@ OP_DSreg (int code, int sizeflag) static void OP_C (int dummy ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED) { - int add = 0; + int add; if (rex & REX_R) { USED_REX (REX_R); @@ -7384,6 +7386,8 @@ OP_C (int dummy ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED) used_prefixes |= PREFIX_LOCK; add = 8; } + else + add = 0; sprintf (scratchbuf, "%%cr%d", modrm.reg + add); oappend (scratchbuf + intel_syntax); } @@ -7391,10 +7395,12 @@ OP_C (int dummy ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED) static void OP_D (int dummy ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED) { - int add = 0; + int add; USED_REX (REX_R); if (rex & REX_R) add = 8; + else + add = 0; if (intel_syntax) sprintf (scratchbuf, "db%d", modrm.reg + add); else @@ -7424,10 +7430,12 @@ OP_MMX (int bytemode ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED) used_prefixes |= (prefixes & PREFIX_DATA); if (prefixes & PREFIX_DATA) { - int add = 0; + int add; USED_REX (REX_R); if (rex & REX_R) add = 8; + else + add = 0; sprintf (scratchbuf, "%%xmm%d", modrm.reg + add); } else @@ -7438,10 +7446,12 @@ OP_MMX (int bytemode ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED) static void OP_XMM (int bytemode ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED) { - int add = 0; + int add; USED_REX (REX_R); if (rex & REX_R) add = 8; + else + add = 0; sprintf (scratchbuf, "%%xmm%d", modrm.reg + add); oappend (scratchbuf + intel_syntax); } @@ -7466,11 +7476,13 @@ OP_EM (int bytemode, int sizeflag) used_prefixes |= (prefixes & PREFIX_DATA); if (prefixes & PREFIX_DATA) { - int add = 0; + int add; USED_REX (REX_B); if (rex & REX_B) add = 8; + else + add = 0; sprintf (scratchbuf, "%%xmm%d", modrm.rm + add); } else @@ -7516,7 +7528,7 @@ OP_MXC (int bytemode ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED) static void OP_EX (int bytemode, int sizeflag) { - int add = 0; + int add; if (modrm.mod != 3) { OP_E (bytemode, sizeflag); @@ -7525,6 +7537,8 @@ OP_EX (int bytemode, int sizeflag) USED_REX (REX_B); if (rex & REX_B) add = 8; + else + add = 0; /* Skip mod/rm byte. */ MODRM_CHECK; |