From: Alan Modra Date: Mon, 3 Apr 2000 11:19:51 +0000 (+0000) Subject: Correct 2000-02-26 change. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=726c5dcddf8bf027a3f625ac931037e36725e745;p=binutils-gdb.git Correct 2000-02-26 change. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index b69efd3d724..c4aeb2a71c4 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2000-04-03 Alan Modra + + * 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 * 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 3a01bab565b..7efd6dd180e 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 (