conditional branching, arithmetic expressions and register allocation