changes to register allocation and spilling