On 09/25/11 19:16, Richard Sandiford wrote: > The last bit is indirect, via a new HARD_REG_SET called operand_reg_set. > And this set is the reason why I'm sending the patch now. The MIPS16 port > has always had a problem with the HI and LO registers: they can only be > set by multiplication and division instructions, and only read by MFHI > and MFLO. Unlike normal MIPS, there are no MTHI and MTLO instructions. [...] > Now that we use pressure classes > instead (a good thing), I'm finally going to try to fix this "properly". > And that means (a) fixing HI and LO and (b) stopping them from being > treated as register operands. (b) is important because if we start > out with this (valid) instruction before reload:
The only slightly nonobvious thing about this is that mfhi/mflo can't have their operand represented using a register_operand. I haven't looked; I assume that's the case. Ok. Bernd