3 ms·
Everything Old Is New Again, and a Compiler Bug
- Annatar 10y agoThe author of the article is obviously very experienced and extremely talented. Personally, I find it a tragedy that he is wasting his time on Windows, on a platform, which in his own words, in the crazy world of Windows there are a lot of programs that think that injecting their DLLs into all processes is a good idea. Whether malware or anti-malware or something else these injected DLLs end up causing a good portion of all of Chrome’s crashes. And in this case one of these injected DLLs decided that changing the FPU exception flags in somebody else’s process was a good idea. The fld instruction is part of the x87 FPU and it loads a floating-point value onto the x87’s peculiar eight-register stack, so it seems initially plausible that it could have caused a FLT_STACK check. Who designs a stack with just eight entries? Intel. It must have seemed like a good idea at the time. Not to mention something those of us who grew up on Motorola MOS 6502, MC68000, SPARC, UltraSPARC and MIPS families always knew: intel might be really fast now, but under the hood, the architecture was and still is really, really shoddy. It's covered up by raw speed, but woe to one if they have to work with things "under the hood". I chuckled, half in amusement and half in grotesque disgust, when I read the bit about the stack with only eight entries, because the first thing I thought of when I read that was of UltraSPARC and register windows, effectively giving one 256 stacks by means of i0-i7 and o0-o7 registers (which in reality are part of the r0-r31 physical registers). I'm kind of comparing apples to oranges, but the difference in design approaches is striking. What a contrast! intel designers were always bad, even from the very first 4004, through 8008 to 8086. Their two shots at making things right, the i960 and Itanium RISC processors were both epic failures. They are so bad at designing clean, elegant architectures, that a competitor, Advanced Micro Devices, had to implement 64-bit extensions on their processors, and then intel had to license that from them. How much longer is intel going to be the mainstream, I wonder? Is there any will for change of the status quo?