if a binary operation is performed on the same register, I must use the SAME value for each operand rather than doing a cartesian product of possible values. This lead to some weird misbehavior surrounding jump tables.