VirtualBox

Changeset 65304 in vbox


Ignore:
Timestamp:
Jan 16, 2017 7:59:38 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
112875
Message:

IEM: 286 only needs to fetch 6 bytes of descriptors.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r65191 r65304  
    1025510255     * required.
    1025610256     */
    10257     VBOXSTRICTRC rcStrict = iemMemFetchSysU64(pVCpu, &pDesc->Legacy.u, UINT8_MAX, GCPtrBase + (uSel & X86_SEL_MASK));
     10257    VBOXSTRICTRC rcStrict;
     10258    if (IEM_GET_TARGET_CPU(pVCpu) > IEMTARGETCPU_286)
     10259        rcStrict = iemMemFetchSysU64(pVCpu, &pDesc->Legacy.u, UINT8_MAX, GCPtrBase + (uSel & X86_SEL_MASK));
     10260    else
     10261    {
     10262        rcStrict = iemMemFetchSysU16(pVCpu, &pDesc->Legacy.au16[0], UINT8_MAX, GCPtrBase + (uSel & X86_SEL_MASK) + 0);
     10263        if (rcStrict != VINF_SUCCESS)
     10264            return rcStrict;
     10265        rcStrict = iemMemFetchSysU16(pVCpu, &pDesc->Legacy.au16[1], UINT8_MAX, GCPtrBase + (uSel & X86_SEL_MASK) + 2);
     10266        if (rcStrict != VINF_SUCCESS)
     10267            return rcStrict;
     10268        rcStrict = iemMemFetchSysU16(pVCpu, &pDesc->Legacy.au16[2], UINT8_MAX, GCPtrBase + (uSel & X86_SEL_MASK) + 4);
     10269    }
     10270
    1025810271    if (rcStrict == VINF_SUCCESS)
    1025910272    {
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette