Exit qualification VMCS field has an incorrect value

Exit qualification VMCS field has an incorrect value

Hi, I'm a developer of a simple and tiny hypervisor. Now I have a huge trouble with behavior of VMCS' "Exit qualification" field.For example, this guest assembly code... ... mov eax, CR4_PSE_BIT mov cr4, eax ... ... causes #VMEXIT with exit reason 0x1C.At the next step my hypervisor analizes a value of "Exit qualification" field to determine a type of instruction and registers' numbers.And its value is wrong. For "mov cr4, eax" this is 0x13, but it's an incorrect value (it's correct for "mov eax, cr3"). When I change an instruction in guest to another "MOV CR" instruction this value changes, but often it isn't correct too.Can anybody help me? What's the probable reason of such behavior?My hypervisor works with EPT and Unrestricted guest extensions.

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

After searching for the information, I founda section in the System Programming Guide, Part 2 of Volume 3B that talks about the Exit qualification. This may provide you some hints.

Leave a Comment

Please sign in to add a comment. Not a member? Join today