From: Alan Modra Date: Mon, 4 Aug 2003 12:03:49 +0000 (+0000) Subject: * config/tc-i386.c (i386_intel_operand): Always call i386_index_check X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a4622f4072f910a3ac1cf4f0ecd6c9bd487a79c7;p=binutils-gdb.git * config/tc-i386.c (i386_intel_operand): Always call i386_index_check for memory operands. Pass the full operand_string to i386_index_check. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 908810a0052..a6d2d489887 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2003-08-04 Alan Modra + + * config/tc-i386.c (i386_intel_operand): Always call i386_index_check + for memory operands. Pass the full operand_string to i386_index_check. + 2003-08-01 Jason Eckhardt * config/tc-i860.c: Remove SYNTAX_SVR4 macro and occurrences. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index da747e3332f..9f511ab42dc 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1417,13 +1417,13 @@ md_assemble (line) if ((i.tm.cpu_flags & CpuPNI) && i.operands > 0) { - /* These Intel Precott New Instructions have the fixed + /* These Intel Precott New Instructions have the fixed operands with an opcode suffix which is coded in the same place as an 8-bit immediate field would be. Here we check those operands and remove them afterwards. */ unsigned int x; - for (x = 0; x < i.operands; x++) + for (x = 0; x < i.operands; x++) if (i.op[x].regs->reg_num != x) as_bad (_("can't use register '%%%s' as operand %d in '%s'."), i.op[x].regs->reg_name, x + 1, i.tm.name); @@ -5621,8 +5621,9 @@ i386_intel_operand (operand_string, got_a_float) /* Add the displacement expression. */ if (*s != '\0') - ret = i386_displacement (s, s + strlen (s)) - && i386_index_check (s); + ret = i386_displacement (s, s + strlen (s)); + if (ret) + ret = i386_index_check (operand_string); } }