VirtualBox

Changeset 100810 in vbox for trunk


Ignore:
Timestamp:
Aug 5, 2023 9:38:20 AM (17 months ago)
Author:
vboxsync
Message:

VMM/IEM: Corrected flat-32-bit mode detection. Clear rcPassUp at the end of iemExecStatusCodeFiddling. bugref:10369

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMInline.h

    r100804 r100810  
    123123    }
    124124
     125    /* Just clear it here as well. */
     126    pVCpu->iem.s.rcPassUp = VINF_SUCCESS;
     127
    125128    return rcStrict;
    126129}
     
    184187{
    185188    AssertCompile(X86_SEL_TYPE_DOWN == X86_SEL_TYPE_CONF);
    186     return (  (  pVCpu->cpum.GstCtx.es.Attr.u
     189    return (  (    pVCpu->cpum.GstCtx.es.Attr.u
    187190                 | pVCpu->cpum.GstCtx.cs.Attr.u
    188191                 | pVCpu->cpum.GstCtx.ss.Attr.u
    189192                 | pVCpu->cpum.GstCtx.ds.Attr.u)
    190               & (X86_SEL_TYPE_ACCESSED | X86_SEL_TYPE_DOWN | X86DESCATTR_UNUSABLE | X86DESCATTR_G | X86DESCATTR_D | X86DESCATTR_P))
    191            ==   (X86_SEL_TYPE_ACCESSED | X86_SEL_TYPE_DOWN | X86DESCATTR_UNUSABLE | X86DESCATTR_G | X86DESCATTR_D | X86DESCATTR_P)
     193              & (X86_SEL_TYPE_ACCESSED | X86DESCATTR_G | X86DESCATTR_D | X86DESCATTR_P | X86_SEL_TYPE_DOWN | X86DESCATTR_UNUSABLE))
     194           ==   (X86_SEL_TYPE_ACCESSED | X86DESCATTR_G | X86DESCATTR_D | X86DESCATTR_P)
    192195        &&    (  (pVCpu->cpum.GstCtx.es.u32Limit + 1)
    193196               | (pVCpu->cpum.GstCtx.cs.u32Limit + 1)
     
    219222{
    220223    AssertCompile(X86_SEL_TYPE_DOWN == X86_SEL_TYPE_CONF);
    221     return (  (  pVCpu->cpum.GstCtx.es.Attr.u
     224    return (  (    pVCpu->cpum.GstCtx.es.Attr.u
    222225                 | pVCpu->cpum.GstCtx.ds.Attr.u)
    223               & (X86_SEL_TYPE_ACCESSED | X86_SEL_TYPE_DOWN | X86DESCATTR_UNUSABLE | X86DESCATTR_G | X86DESCATTR_D | X86DESCATTR_P))
    224            ==   (X86_SEL_TYPE_ACCESSED | X86_SEL_TYPE_DOWN | X86DESCATTR_UNUSABLE | X86DESCATTR_G | X86DESCATTR_D | X86DESCATTR_P)
     226              & (X86_SEL_TYPE_ACCESSED | X86DESCATTR_G | X86DESCATTR_D | X86DESCATTR_P | X86_SEL_TYPE_DOWN | X86DESCATTR_UNUSABLE))
     227           ==   (X86_SEL_TYPE_ACCESSED | X86DESCATTR_G | X86DESCATTR_D | X86DESCATTR_P)
    225228        &&    (  (pVCpu->cpum.GstCtx.es.u32Limit + 1)
    226229               | (pVCpu->cpum.GstCtx.ds.u32Limit + 1))
Note: See TracChangeset for help on using the changeset viewer.

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