Commit message:
cmd/compile: do not home mul/div results in HI/LO
On mips and mips64, multiply/divide results were tuple outputs in the
special HI/LO registers, and regalloc kept live values homed there.
Spilling such a value must route the data through REGTMP (there is no
direct store from HI/LO). When the stack frame is too large for a
16-bit offset, the assembler also materializes the spill slot address
in REGTMP:
MOVV LO, R23
LUI R23, $1
DADDU R23, R23, SP
SD R23, off(R23)
clobbering the value and silently storing SP+0x10000 instead.
Instead, make MULV/MULVU/DIVV/DIVVU (mips64) and MULT/MULTU/DIV/DIVU
(mips) produce their results in two general registers, moving out of
HI and LO as part of the op itself.
Since register-register moves do not depend on REGTMP it can't get
the dual use bug.
Fixes #80563