Since that time, register allocation, figuring out how to take a fixed number of registers and move data in from a stack in main memory and vice versa can be orchestrated very effectively and very efficiently by the compiler. 