PATCH to get SCO OSR5 COFF building again

Mark Mitchell mark@codesourcery.com
Sun Oct 24 23:31:00 GMT 1999


This patch gets the SCO OSR5 COFF compiler building again.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>

	* i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.

Index: i386.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.95
diff -c -p -r1.95 i386.md
*** i386.md	1999/10/22 15:59:21	1.95
--- i386.md	1999/10/24 18:34:38
***************
*** 3687,3697 ****
  		 (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?
    "@
     imul{l}\\t{%2, %1, %0|%0, %1, %2}
!    imul{l}\\t{%2, %0|%0, %2}
     imul{l}\\t{%2, %0|%0, %2}"
    [(set_attr "type" "imul")
     (set_attr "length" "2,3,2")])
--- 3687,3707 ----
  		 (match_operand:SI 2 "general_operand" "K,i,mr")))
     (clobber (reg:CC 17))]
    ""
!   ; 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 assembler, don't handle the first form.
    "@
     imul{l}\\t{%2, %1, %0|%0, %1, %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")])


More information about the Gcc-patches mailing list