This resolves an edge-case where mul.i128 with an input that continues to be live after the instruction could cause an invalid regalloc constraint (basically, the regalloc did not previously support an instruction use and def both being constrained to the same physical reg; and the "mul" variant used for mul.i128 on x64 was the only instance of such operands in Cranelift). Causes two extra move instructions in the mul.i128 filetest, but that's the price to pay for the slightly more general (works in all cases) handling of the constraints.
This crate contains the core Cranelift code generator. It translates code from an intermediate representation into executable machine code.