re PR target/48860 (r173265 breaks bootstrap on x86_64-apple-darwin10)
[gcc.git] / gcc / config / i386 / i386.md
index bf042488fd401f4a2df75e3cec91f6d1614a0970..3b9b7f562520bac21eea2f8b923b62bb584630d7 100644 (file)
     case TYPE_SSEMOV:
       if (get_attr_mode (insn) == MODE_TI)
        return "%vmovdqa\t{%1, %0|%0, %1}";
+      /* Handle broken assemblers that reqire movd instead of movq.  */
+      if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
+       return "%vmovd\t{%1, %0|%0, %1}";
       return "%vmovq\t{%1, %0|%0, %1}";
 
     case TYPE_MMXMOV:
-      /* Moves from and into integer register is done using movd
-        opcode with REX prefix.  */
+      /* Handle broken assemblers that reqire movd instead of movq.  */
       if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
        return "movd\t{%1, %0|%0, %1}";
       return "movq\t{%1, %0|%0, %1}";
 
     case 11:
     case 12:
-    return "%vmovd\t{%1, %0|%0, %1}";
+      /* Handle broken assemblers that reqire movd instead of movq.  */
+      return "%vmovd\t{%1, %0|%0, %1}";
 
     default:
       gcc_unreachable();
 
     case 9: case 10: case 14: case 15:
       return "movd\t{%1, %0|%0, %1}";
-    case 12: case 13:
-      return "%vmovd\t{%1, %0|%0, %1}";
 
     case 11:
       return "movq\t{%1, %0|%0, %1}";
 
+    case 12: case 13:
+      return "%vmovd\t{%1, %0|%0, %1}";
+
     default:
       gcc_unreachable ();
     }