more register allocation stuff