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