[gnu.gcc.bug] i386.md, divsi3 and udivsi3, clarification requested

tpf@jdyx.UUCP (Tom Friedel) (09/30/89)

In 1.36 the i386 file appears to (still) be missing the entries
for divsi3 and udivsi3.  
My limited understanding is that if they are not found in the
template file, gcc will get them from gnulib.  This does not
seem to be the case (i386-sysv) as I often see unresolved external
__divsi3, perhaps more when trying to link cc and gcc programs 
together.

Could a knowledgeable person post the correct fix to i386.md
as well as make a statement about the following from a few months
ago by James R. Van Artsdalen (james@bigtex.cactus.org).

In <590@everex.UUCP>, mb@everex.UUCP (Michael Burg) wrote:

	(define_insn "udivsi3"
	   [(set (match_operand:SI 0 "general_operand" "=&a")
		(udiv:SI (match_operand:SI 1 "general_operand" "0")
			(match_operand:SI 2 "general_operand" "rm")))
		(clobber (reg:SI 1))]
	  ""
>>>	  "cltd\;div%L0 %2")

Oops: I don't think you want to sign extend the operands to an
unsigned division.  Might do something like "xor%L0 %%edx,%%edx\;div%L0 %2"
instead.
-- 
Tom
-- 
Tom Friedel  (404) 320-7624 tpf@jdyx.UUCP
also:  tpf@jdyx.atlanta.ga.us ...gatech!emory!jdyx!tpf 
Public Access Unix BBS:  (404) 321-5020                  
"Live simply, so that others may simply live."