i'm trying to formulate the optimal way to do comparison testing for mips 16. on mips32 there are no condition codes. you can test a<b and place the result in a register in mip32. on mips16 you can do the same, however, the register is always T8==24. T8 is not directly accessible by most mips16 instructions, but can be directly moved to a generally accessible mips16 register, and can also used in tests for a conditional branch. later you can conditionally branch based on this register it's possible for me to make a pseudo instruction which needs a virtual register and always do something like: T8 = a < b; VR = T8; But that can be very inefficient. if (a < b) ... Does not need a virtual register since the condition branch is going to implicitly use T8. Also, there is the problem of spilling T8. Spilling these non directly accessible mips16 registers presents a problem because you need to move them to a generally accessible register first in order to do that. Then there is the possibility of b = a < b; if (b).... .... if (b) ... possibly never storing b and just keep testing against T8.