>>34
As if MIPS' completely separate result registers and arcane timing requirements are any better? And ARM didn't even have a divide instruction until very recently...
Neither did the Z80, which is why x86's divide is such a kludge. They kept the ugly divide which almost always needs a stack operation or register spill because of its unusual requirements. With register renaming there is no special accumulator, but people have to pretend it exists and make unnecessary memory writes.
So what? If the language doesn't let you use the full functionality of the CPU then it's the language's fault.
It's computed with every single arithmetic instruction just to be thrown away. Why not add things to the CPU to help with languages instead of the other way around?
Again, it's the compiler writers that need to get smarter. And if anything, stack-based ISAs are far easier to generate code for than register-based.
Automatic stacks are easier, not a fixed 8-item stack with manual management. Look at source for GCC, the JVM, or any other portable compiler. They have to add kludges for x87 compared to all other supported targets.
So what?
Partial flags register updates, ADD and INC are different, SUB and DEC are different, and all of those other quirks, just because that's how the 8008/8080/Z80 did it. You get compilers that do
add eax, 1 instead of
inc eax to avoid a partial flags stall.
So what? You get backwards compatibility for free, and can switch into protected mode if needed; it's only 4 instructions or so, and you get to decide what the GDT should be. Intel did try making a CPU that booted in protected mode, the 80376, and it failed miserably: you still needed to setup the protected mode stuff, and lost the ability to run existing code, so there was absolutely no advantage.
Intel/AMD dropped most of segmentation to phase out the "legacy" modes. If it still boots in real mode, they'll have to keep that stuff forever.
Ever tried DOS benchmarks on a late-model i7? No L3 cache misses at all, so it's bloody fast. Fun.
It's fast, but you're only using 1/1000 of your RAM and have no hardware support (floppy disk and ISA cards are gone).