aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2007-09-19 17:52:21 +0000
committerH.J. Lu <hjl.tools@gmail.com>2007-09-19 17:52:21 +0000
commit0f7da3979d1e0e3696266abe279fe4d549e34d61 (patch)
tree822fc47514658ea35e4fe840da4fb0fea069e6da /opcodes/i386-dis.c
parent835965e64631fe41583002282267fdfb7c614106 (diff)
downloadgdb-0f7da3979d1e0e3696266abe279fe4d549e34d61.zip
gdb-0f7da3979d1e0e3696266abe279fe4d549e34d61.tar.gz
gdb-0f7da3979d1e0e3696266abe279fe4d549e34d61.tar.bz2
gas/testsuite/gas/
2007-09-19 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/intelok.s: Add tests for memory without base. * gas/i386/intelok.d: Updated. * gas/i386/intelok.e: Likewise. opcodes/ 2007-09-19 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (OP_E_extended): Always display scale for memory.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r--opcodes/i386-dis.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 82b2bcb..19b13d0 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -6303,12 +6303,14 @@ OP_E_extended (int bytemode, int sizeflag, int has_drex)
int havedisp;
int havesib;
int havebase;
+ int haveindex;
int base;
int index = 0;
int scale = 0;
havesib = 0;
havebase = 1;
+ haveindex = 0;
base = modrm.rm;
if (base == 4)
@@ -6323,6 +6325,7 @@ OP_E_extended (int bytemode, int sizeflag, int has_drex)
USED_REX (REX_X);
if (rex & REX_X)
index += 8;
+ haveindex = index != 4;
codep++;
}
base += add;
@@ -6357,7 +6360,7 @@ OP_E_extended (int bytemode, int sizeflag, int has_drex)
break;
}
- havedisp = havebase || (havesib && (index != 4 || scale != 0));
+ havedisp = havebase || (havesib && (haveindex || scale != 0));
if (!intel_syntax)
if (modrm.mod != 0 || (base & 7) == 5)
@@ -6388,7 +6391,7 @@ OP_E_extended (int bytemode, int sizeflag, int has_drex)
? names64[base] : names32[base]);
if (havesib)
{
- if (index != 4)
+ if (haveindex)
{
if (!intel_syntax || havebase)
{
@@ -6399,7 +6402,7 @@ OP_E_extended (int bytemode, int sizeflag, int has_drex)
&& (sizeflag & AFLAG)
? names64[index] : names32[index]);
}
- if (scale != 0 || (!intel_syntax && index != 4))
+ if (scale != 0 || haveindex)
{
*obufp++ = scale_char;
*obufp = '\0';