summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebbie Wiles <debs@dwiles.demon.co.uk>2002-06-08 19:30:14 +0000
committerDebbie Wiles <debs@dwiles.demon.co.uk>2002-06-08 19:30:14 +0000
commit0f65f885a4d1ffb374a2f0d8380381d8c3d58b64 (patch)
tree7d8ef90778c55a23ea9172990209461f69a52719
parent059647580c71d0e0e8711aa25fa32bb79a3e383e (diff)
downloadnasm-0f65f885a4d1ffb374a2f0d8380381d8c3d58b64.tar.gz
Added *1 case support for NOSPLIT ([NOSPLIT EAX] to generate SIB with dword offset 0x0
-rw-r--r--assemble.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/assemble.c b/assemble.c
index e30be18f..94a2af01 100644
--- a/assemble.c
+++ b/assemble.c
@@ -1291,6 +1291,9 @@ static ea *process_ea (operand *input, ea *output, int addrbits, int rfield,
if (((s==2 && i!=R_ESP && !(input->eaflags & EAF_TIMESTWO)) ||
s==3 || s==5 || s==9) && b==-1)
b = i, s--; /* convert 3*EAX to EAX+2*EAX */
+ if (i==-1 && b!=R_ESP && (input->eaflags & EAF_TIMESTWO))
+ i = b, b = -1, s = 1;
+ /* convert [NOSPLIT EAX] to sib format with 0x0 displacement */
if (s==1 && i==R_ESP) /* swap ESP into base if scale is 1 */
i = b, b = R_ESP;
if (i==R_ESP || (s!=1 && s!=2 && s!=4 && s!=8 && i!=-1))