* i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
authorMark Mitchell <mark@codesourcery.com>
Mon, 25 Oct 1999 06:30:37 +0000 (06:30 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Mon, 25 Oct 1999 06:30:37 +0000 (06:30 +0000)
From-SVN: r30153

gcc/ChangeLog
gcc/config/i386/i386.md

index b02d218826d17687e028a1b598829afc12a755d0..a2713d9aa0c6a05da2957d1d9521b29200094fc2 100644 (file)
@@ -1,3 +1,7 @@
+Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
+
+       * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
+
 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
 
        * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
index 7807b7bbd97fe267f01786067dac5a5b06b6e1d2..5f903b64c2183aaeb5bc96e0947ec0a89ff8d3aa 100644 (file)
                 (match_operand:SI 2 "general_operand" "K,i,mr")))
    (clobber (reg:CC 17))]
   ""
-  ; %%% There was a note about "Assembler has weird restrictions",
-  ; concerning alternative 1 when op1 == op0.  True?
+  ; For the {r,0,i} alternative (i.e., register <- register * immediate),
+  ; there are two ways of writing the exact same machine instruction
+  ; in assembly language.  One, for example, is:
+  ;
+  ;   imul $12, %eax
+  ;
+  ; while the other is:
+  ;
+  ;   imul $12, %eax, %eax
+  ;
+  ; The first is simply short-hand for the latter.  But, some assemblers,
+  ; like the SCO OSR5 COFF assembler, don't handle the first form.
   "@
    imul{l}\\t{%2, %1, %0|%0, %1, %2}
-   imul{l}\\t{%2, %0|%0, %2}
+   imul{l}\\t{%2, %1, %0|%0, %1, %2}
    imul{l}\\t{%2, %0|%0, %2}"
   [(set_attr "type" "imul")
    (set_attr "length" "2,3,2")])