From db06afaa83f47c2ac6b7c852a91c637edcaf8edf Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 3 Apr 2000 11:19:51 +0000 Subject: [PATCH] Correct 2000-02-26 change. --- gas/ChangeLog | 7 +++++++ gas/config/tc-i386.c | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index b69efd3d7..c4aeb2a71 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 3a01bab56..7efd6dd18 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 ( -- 2.11.4.GIT