x86/Intel: fix operand checking for MOVSD
[deliverable/binutils-gdb.git] / gas / config / tc-i386-intel.c
index 418b930c0822c0ce70e03fd70a91bbf5619defad..1db778e858d4df887d7eb8518c241c5194aa2539 100644 (file)
@@ -821,6 +821,8 @@ i386_intel_operand (char *operand_string, int got_a_float)
           || intel_state.is_mem)
     {
       /* Memory operand.  */
+      if (i.mem_operands == 1 && !maybe_adjust_templates ())
+       return 0;
       if ((int) i.mem_operands
          >= 2 - !current_templates->start->opcode_modifier.isstring)
        {
@@ -983,6 +985,8 @@ i386_intel_operand (char *operand_string, int got_a_float)
        return 0;
 
       i.types[this_operand].bitfield.mem = 1;
+      if (i.mem_operands == 0)
+       i.memop1_string = xstrdup (operand_string);
       ++i.mem_operands;
     }
   else
This page took 0.027077 seconds and 4 git commands to generate.