Note that the cleaning up and reordering in revision 1.19 actually fixed a
nasty bug. The comparison to tset for an instruciton with the $0xf prefix should have jumped down to the next non-prefix instruction test. Instead, it jumped down to the next instruction test, which happened to be prefixed instruction test. This test assumed that the earlier test had succeeded, thus in some rare cases, this test would actually succeed, and we would actually attempt to emulate a RDMSR instruction instead of the instruction we were supposed to be emulating. Since %ecx usually did not contain a valid MSR index at the time of the trap, this usually resulted in a #GP due to an invalid MSR address and a lovely BTX fault when one tried to boot the machine. Noticed by: unfurl and others
This commit is contained in:
parent
5badeabaca
commit
44bb7ac654
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=62251