I had a feeling the conclusion would be "it's hardware-related", but I think there's also a possibility it might be SMM (http://en.wikipedia.org/wiki/System_Management_Mode ) or some broken interrupt handler, as both of those can also unexpectedly modify registers and memory. While hardware/firmware bugs are relatively rare, it's always good to keep in mind all the other layers of hardware and software that must be correct when debugging, as any bug in those could easily lead you down a wrong path.