summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/i386-dis.c15
2 files changed, 11 insertions, 10 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index a34ca0a2aa..7b57e5b738 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2005-05-25 Jan Beulich <jbeulich@novell.com>
+
+ * i386-dis.c (prefix_name): Remove pointless mode_64bit check.
+ (OP_E): Remove redundant REX_EXTZ handling. Remove pointless
+ masking of 'rm' in 16-bit memory address handling.
+
2005-05-19 Anton Blanchard <anton@samba.org>
* ppc-dis.c (powerpc_dialect): Handle "-Mpower5".
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 15f43c30b2..9a8b73f48c 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -1895,7 +1895,7 @@ prefix_name (int pref, int sizeflag)
if (mode_64bit)
return (sizeflag & AFLAG) ? "addr32" : "addr64";
else
- return ((sizeflag & AFLAG) && !mode_64bit) ? "addr16" : "addr32";
+ return (sizeflag & AFLAG) ? "addr16" : "addr32";
case FWAIT_OPCODE:
return "fwait";
default:
@@ -3214,13 +3214,11 @@ OP_E (int bytemode, int sizeflag)
scale = (*codep >> 6) & 3;
base = *codep & 7;
USED_REX (REX_EXTY);
- USED_REX (REX_EXTZ);
if (rex & REX_EXTY)
index += 8;
- if (rex & REX_EXTZ)
- base += 8;
codep++;
}
+ base += add;
switch (mod)
{
@@ -3316,9 +3314,6 @@ OP_E (int bytemode, int sizeflag)
if (intel_syntax && riprel)
oappend ("rip + ");
*obufp = '\0';
- USED_REX (REX_EXTZ);
- if (!havesib && (rex & REX_EXTZ))
- base += 8;
if (havebase)
oappend (mode_64bit && (sizeflag & AFLAG)
? names64[base] : names32[base]);
@@ -3384,7 +3379,7 @@ OP_E (int bytemode, int sizeflag)
switch (mod)
{
case 0:
- if ((rm & 7) == 6)
+ if (rm == 6)
{
disp = get16 ();
if ((disp & 0x8000) != 0)
@@ -3405,13 +3400,13 @@ OP_E (int bytemode, int sizeflag)
}
if (!intel_syntax)
- if (mod != 0 || (rm & 7) == 6)
+ if (mod != 0 || rm == 6)
{
print_operand_value (scratchbuf, 0, disp);
oappend (scratchbuf);
}
- if (mod != 0 || (rm & 7) != 6)
+ if (mod != 0 || rm != 6)
{
*obufp++ = open_char;
*obufp = '\0';