summaryrefslogtreecommitdiff
path: root/assemble.c
diff options
context:
space:
mode:
authorJin Kyu Song <jin.kyu.song@intel.com>2013-12-18 21:28:41 -0800
committerJin Kyu Song <jin.kyu.song@intel.com>2013-12-18 22:37:30 -0800
commit3d06af2bd998cd06c99b7e63a8166a11f7ac798f (patch)
treea311e40f48642d86103d3a1b9628a36bc63238d2 /assemble.c
parent97f6faec62979ef5db9c0f4b42e127f4f913115e (diff)
downloadnasm-3d06af2bd998cd06c99b7e63a8166a11f7ac798f.tar.gz
nasm-3d06af2bd998cd06c99b7e63a8166a11f7ac798f.tar.bz2
nasm-3d06af2bd998cd06c99b7e63a8166a11f7ac798f.zip
nosplit: Limit the effect of NOSPLIT
[nosplit eax+eax] was encoded [eax*2] previously but this seems against the user's intention. So in this case, nosplit is ignored now and [eax+eax] will be generated. Document is also updated accordingly. Signed-off-by: Jin Kyu Song <jin.kyu.song@intel.com>
Diffstat (limited to 'assemble.c')
-rw-r--r--assemble.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/assemble.c b/assemble.c
index 9184800..fbd7caf 100644
--- a/assemble.c
+++ b/assemble.c
@@ -2629,7 +2629,7 @@ static enum ea_type process_ea(operand *input, ea *output, int bits,
}
} else {
if (((s == 2 && it != REG_NUM_ESP &&
- !(eaflags & EAF_TIMESTWO)) ||
+ (!(eaflags & EAF_TIMESTWO) || (ht == EAH_SUMMED))) ||
s == 3 || s == 5 || s == 9) && bt == -1) {
/* convert 3*EAX to EAX+2*EAX */
bt = it, bx = ix, s--;