content: I wonder if there are spurious bugs caused by [branch prediction]  No, because the predicted path is executed speculatively; none of the results/memory writes are allowed to commit until the branch condition is resolved. Except of course any effects on what gets cached. I'm assuming Intel is similar, but on PowerPC there was a way to mark a section of memory as I/O (e.g. registers for hardware) so that speculative execution would never access it (not even read it, which would be a disaster e.g. when a register reads the next byte out of a hardware buffer).