better temp register allocation