[prev] [thread] [next] [lurker] [Date index for 2007/01/29]
On Jan 29, 2007, at 9:23 AM, Martin Ebourne wrote: > Funny, I seemed to find all 8 local registers usable. Not if you're a C compiler. > And all 8 input > registers unless you needed the values. Likewise all 8 output registers > were usable unless you call a function. So I make that 16-24 depending > on circumstance. OK, I make that 23, if you're a compiler. Which would have been great for 1970, good for 1980, and it's still hateful for 1990. Year* CPU Bits Non-dedicated integer registers ~1970 PDP-11 16 6 (8 registers - r6(sp) & r7(pc)) 1980 68000 32 8+7 (8 data, 8 address - a7(sp)) ~1978 VAX-11 32 16 1990? Sparc 32 23(22?) (8 local, 8 in - frame pointer, 8 out (- stack pointer?)) 1990? MIPS 32 27 (32 - constant 0 & various pointers) 1990? i960 32 32 1990 Power 32 32 1994 Alpha 64 31 (32 - constant 0) But what's really hateful about it is what the register stack does to performance on a context switch. And all the stupid complexity later Sparcs had to pay for in chip real estate to hide that. The result is that Sparc was always the trailing edge RISC processor in the performance race. > And if you're not interfacing to C then you've got 6 of > the global registers available anywhere, as you say. It's compilers that really suffer from register starvation. > I find that better than ARM, and 68k. I've never programmed ARM, but the 68k isn't even vaguely a RISC... it's definitely a CISC. It's not as clean as the PDP-11 but is otherwise reminiscent of a 32-bit PDP-11 with a mild case of cooties. 8+8 registers is OK for a 1980 design, I guess. > As for intel, well that's a laugh. x86 isn't RISC, it's not really CISC either. It's more like a snapshot of 1976 state-of-the-art in micros with 50,000 volts pumped through it. The 6809 was really the first micro that had enough real estate for the luxury of an "instruction set architecture" rather than "what can we fit in here". > Never programmed MIPS or the other risc chips. That explains it. > Of course, the 256 registers on the 6502 are much missed(*). If the 6502 has 256 registers, then the PDP-11 has almost 65536. On the other hand the Alpha had 256 bytes of integer registers and 256 bytes of floating point registers. :) I don't know what software Carly's brain is running, but what Carly and Curly did to Alpha is hateful.There's stuff above here
Generated at 23:01 on 06 Feb 2007 by mariachi 0.52