Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!rutgers!usc!cs.utexas.edu!oakhill!joh From: joh@oakhill.UUCP (Joe Hollinger) Newsgroups: gnu.gcc Subject: insn question Message-ID: <2224@otis.oakhill.UUCP> Date: 20 Jul 89 16:09:58 GMT Organization: Motorola Inc. Austin, Tx Lines: 29 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