- Timestamp:
- Sep 17, 2018 1:49:35 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/HMVMXAll.cpp
r74289 r74310 565 565 ("%#x\n", pSel->Attr.u), false); 566 566 567 /* DPL must equal RPL.568 Note! This is also a hard requirement like above. */569 AssertMsgReturn(pSel->Attr.n.u2Dpl == (pSel->Sel & X86_SEL_RPL),570 ("u2Dpl=%u Sel=%#x\n", pSel->Attr.n.u2Dpl, pSel->Sel), false);571 572 567 /* 573 * The following two requirements are VT-x specific: 574 * - G bit must be set if any high limit bits are set. 575 * - G bit must be clear if any low limit bits are clear. 568 * DPL must equal RPL. But in real mode or soon after enabling protected 569 * mode, it might not be. 576 570 */ 577 if ( ((pSel->u32Limit & 0xfff00000) == 0x00000000 || pSel->Attr.n.u1Granularity) 578 && ((pSel->u32Limit & 0x00000fff) == 0x00000fff || !pSel->Attr.n.u1Granularity)) 579 return true; 571 if (pSel->Attr.n.u2Dpl == (pSel->Sel & X86_SEL_RPL)) 572 { 573 /* 574 * The following two requirements are VT-x specific: 575 * - G bit must be set if any high limit bits are set. 576 * - G bit must be clear if any low limit bits are clear. 577 */ 578 if ( ((pSel->u32Limit & 0xfff00000) == 0x00000000 || pSel->Attr.n.u1Granularity) 579 && ((pSel->u32Limit & 0x00000fff) == 0x00000fff || !pSel->Attr.n.u1Granularity)) 580 return true; 581 } 580 582 return false; 581 583 }
Note:
See TracChangeset
for help on using the changeset viewer.