|
|
|
|
|
by fl7305
813 days ago
|
|
Yeah, I think I remember seeing the sysops load the VAX CPU microcode using a floppy on the front panel (?) I don't disagree in general. Writing a disassembler must have been a real challenge. It's a waste of gates in the CPU. You put a lot of unnecessary combinatorical logic on the critical path, which limits the clock speed. RISC chips remove everything that is not needed for the output of a C compiler, making the chip smaller and faster. But from the perspective of Stallman writing a C compiler and having to generate and read lots of assembly code, I can see how the VAX assembly was easy to deal with. He could skip past a lot of stuff like BCD/CRC. I'm not intimately familiar with 386 assembly, but my impression is that you have a lot of interdependencies and special cases? That can't be fun when writing a compiler. But at least it's not an accumulator-based CPU architecture like the 6502 or the PIC16, where everything has to be done through a single register. |
|
It's a waste of gates in the CPU.
Couple of things. First, VAX was designed when lots of stuff was still written in assembly, so they threw the kitchen sink at it. You didn't have a stdlib, you had huge numbers of assembly instructions. That wasn't how things evolved, but hindsight is 20-20, as they say. Second, C wasn't top-of-mind when designing VAX. The DEC systems programming language equivalent was BLISS, which is quite different than C. And FORTRAN & COBOL were probably more important.
And, yes, the folks who came up with RISC often cite the baroque nature of the VAX instruction set as inspiration for stripping things down. But there again, not driven by C per se; the first VLSI RISC, the IBM 801 (later PC RT), was targeted for a language called PL.8, a descendant of PL/I.