more on register allocation