[gnu.gcc] insn question

joh@oakhill.UUCP (Joe Hollinger) (07/20/89)

Here is another insn question that I sure has been asked before, but ...
Is there any way to force gcc to allocate distinct registers for each 
operand of an insn? I need to be able to define an insn similar to the
one below, but I need to avoid the case where the compiler allocates
the result register to be the same as one of the inputs. i. e.
r0 = r0 / r1. It appears that the lifetime analysis will mark both of
the input operands as dead an thus available for reallocation in the
insn that actually describes the divide. make_safe_from does not seem to
work because it only deals with psuedo registers not thier reloaded 
values.

( define_insn "divsi3"
  [ ( set ( match_operand:SI 0 "register_operand" "=r" )
	( div:SI ( match_operand:SI 1 "register_operand" "r" )
		 ( match_operand:SI 2 "register_operand" "r" ) ) ) ]
  ""
  .
  .
  .
  .


Also, what is the best way to allocate a temp register for use in an
insn?


					Thanks, joe hollinger