aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2000-04-03 11:19:51 +0000
committerAlan Modra <amodra@gmail.com>2000-04-03 11:19:51 +0000
commit726c5dcddf8bf027a3f625ac931037e36725e745 (patch)
tree28502407ec1eebce66e1ac9f832262e14e540b3d /gas
parent9d6d78f25971d3f312043d5d06bf4244c20bb6b2 (diff)
downloadbinutils-726c5dcddf8bf027a3f625ac931037e36725e745.zip
binutils-726c5dcddf8bf027a3f625ac931037e36725e745.tar.gz
binutils-726c5dcddf8bf027a3f625ac931037e36725e745.tar.bz2
Correct 2000-02-26 change.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-i386.c8
2 files changed, 11 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index b69efd3..c4aeb2a 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2000-04-03 Alan Modra <alan@linuxcare.com.au>
+
+ * config/tc-i386.c (i386_immediate): Don't assume a constant
+ immediate is necessarily 16 bits when in 16 bit code mode.
+ (md_assemble): Instead set guess_suffix here after we have checked
+ registers.
+
2000-04-02 Richard Henderson <rth@cygnus.com>
* config/tc-d30v.c (check_range): Allow signed or unsigned 32-bit
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 3a01bab..7efd6dd 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1331,6 +1331,9 @@ md_assemble (line)
break;
}
}
+ else if (flag_16bit_code ^ (i.prefix[DATA_PREFIX] != 0))
+ guess_suffix = WORD_MNEM_SUFFIX;
+
for (op = i.operands; --op >= 0; )
if ((i.types[op] & Imm)
&& i.op[op].imms->X_op == O_constant)
@@ -2584,10 +2587,7 @@ i386_immediate (imm_start)
if (exp->X_op == O_constant)
{
- int bigimm = Imm32;
- if (flag_16bit_code ^ (i.prefix[DATA_PREFIX] != 0))
- bigimm = Imm16;
- i.types[this_operand] |= bigimm;
+ i.types[this_operand] |= Imm32; /* Size it properly later. */
}
#if (defined (OBJ_AOUT) || defined (OBJ_MAYBE_AOUT))
else if (