Show Navigation
Conversation
Notices
-
The 8087 chip co-processor approach is at the same time interesting and horrifying. Because the only communication between the processors is through main memory there were subtle race conditions where, if I understand correctly, if you weren't careful you could write a float to a value, read it as an int and depending on DMA timing would get either the old or the new value. I had always understood strict-aliasing as purely a performance feature but reading about this makes me suspect the C standard made it undefined behavior because under certain circumstances using a float pointer as an int pointer gave actual unpredictable results on the hardware.