On 06/01/18 16:48, Anton Aylward wrote:
The SPARC processor usually contains as many as 160 general purpose registers. According to the "Oracle SPARC Architecture 2015" specification an "implementation may contain from 72 to 640 general-purpose 64-bit" registers.[3] At any point, only 32 of them are immediately visible to software — 8 are a set of global registers (one of which, g0, is hard-wired to zero, so only seven of them are usable as registers) and the other 24 are from the stack of registers. These 24 registers form what is called a register window, and at function call/return, this window is moved up and down the register stack. Each window has 8 local registers and shares 8 registers with each of the adjacent windows.
This sounds to me a bit like the NatSemi 32000 line - it used main memory iirc as its registers, and to save the current settings, you just pushed the base address onto the stack and then moved said base address. But as I said in my other post, the increasing clock speed of cpu's means that more and more stuff has had to move into the cpu chip itself. That said, the ability to do a complete context shift just by changing the value of one offset sounds a very nice thing to have... Cheers, Wol -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org