VirtualBox

Changeset 41906 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Jun 24, 2012 3:44:03 PM (13 years ago)
Author:
vboxsync
Message:

CPUM: Combined the visible and hidden selector register data into one structure. Preparing for lazily resolving+caching of hidden registers in raw-mode.

Location:
trunk/src/VBox/VMM/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/CPUMInternal.mac

    r41905 r41906  
    115115    .Hyper.r14                resq    1
    116116    .Hyper.r15                resq    1
    117     .Hyper.es                 resw    1
    118     .Hyper.esPadding          resw    3
    119     .Hyper.esHid.u64Base      resq    1
    120     .Hyper.esHid.u32Limit     resd    1
    121     .Hyper.esHid.Attr         resd    1
    122     .Hyper.cs                 resw    1
    123     .Hyper.csPadding          resw    3
    124     .Hyper.csHid.u64Base      resq    1
    125     .Hyper.csHid.u32Limit     resd    1
    126     .Hyper.csHid.Attr         resd    1
    127     .Hyper.ss                 resw    1
    128     .Hyper.ssPadding          resw    3
    129     .Hyper.ssHid.u64Base      resq    1
    130     .Hyper.ssHid.u32Limit     resd    1
    131     .Hyper.ssHid.Attr         resd    1
    132     .Hyper.ds                 resw    1
    133     .Hyper.dsPadding          resw    3
    134     .Hyper.dsHid.u64Base      resq    1
    135     .Hyper.dsHid.u32Limit     resd    1
    136     .Hyper.dsHid.Attr         resd    1
    137     .Hyper.fs                 resw    1
    138     .Hyper.fsPadding          resw    3
    139     .Hyper.fsHid.u64Base      resq    1
    140     .Hyper.fsHid.u32Limit     resd    1
    141     .Hyper.fsHid.Attr         resd    1
    142     .Hyper.gs                 resw    1
    143     .Hyper.gsPadding          resw    3
    144     .Hyper.gsHid.u64Base      resq    1
    145     .Hyper.gsHid.u32Limit     resd    1
    146     .Hyper.gsHid.Attr         resd    1
     117    .Hyper.es.Sel             resw    1
     118    .Hyper.es.PaddingSel      resw    1
     119    .Hyper.es.ValidSel        resw    1
     120    .Hyper.es.fFlags          resw    1
     121    .Hyper.es.u64Base         resq    1
     122    .Hyper.es.u32Limit        resd    1
     123    .Hyper.es.Attr            resd    1
     124    .Hyper.cs.Sel             resw    1
     125    .Hyper.cs.PaddingSel      resw    1
     126    .Hyper.cs.ValidSel        resw    1
     127    .Hyper.cs.fFlags          resw    1
     128    .Hyper.cs.u64Base         resq    1
     129    .Hyper.cs.u32Limit        resd    1
     130    .Hyper.cs.Attr            resd    1
     131    .Hyper.ss.Sel             resw    1
     132    .Hyper.ss.PaddingSel      resw    1
     133    .Hyper.ss.ValidSel        resw    1
     134    .Hyper.ss.fFlags          resw    1
     135    .Hyper.ss.u64Base         resq    1
     136    .Hyper.ss.u32Limit        resd    1
     137    .Hyper.ss.Attr            resd    1
     138    .Hyper.ds.Sel             resw    1
     139    .Hyper.ds.PaddingSel      resw    1
     140    .Hyper.ds.ValidSel        resw    1
     141    .Hyper.ds.fFlags          resw    1
     142    .Hyper.ds.u64Base         resq    1
     143    .Hyper.ds.u32Limit        resd    1
     144    .Hyper.ds.Attr            resd    1
     145    .Hyper.fs.Sel             resw    1
     146    .Hyper.fs.PaddingSel      resw    1
     147    .Hyper.fs.ValidSel        resw    1
     148    .Hyper.fs.fFlags          resw    1
     149    .Hyper.fs.u64Base         resq    1
     150    .Hyper.fs.u32Limit        resd    1
     151    .Hyper.fs.Attr            resd    1
     152    .Hyper.gs.Sel             resw    1
     153    .Hyper.gs.PaddingSel      resw    1
     154    .Hyper.gs.ValidSel        resw    1
     155    .Hyper.gs.fFlags          resw    1
     156    .Hyper.gs.u64Base         resq    1
     157    .Hyper.gs.u32Limit        resd    1
     158    .Hyper.gs.Attr            resd    1
    147159    .Hyper.eip                resq    1
    148160    .Hyper.eflags             resq    1
     
    160172    .Hyper.idtr.cbIdt         resw    1
    161173    .Hyper.idtr.pIdt          resq    1
    162     .Hyper.ldtr               resw    1
    163     .Hyper.ldtrPadding        resw    3
    164     .Hyper.ldtrHid.u64Base    resq    1
    165     .Hyper.ldtrHid.u32Limit   resd    1
    166     .Hyper.ldtrHid.Attr       resd    1
    167     .Hyper.tr                 resw    1
    168     .Hyper.trPadding          resw    3
    169     .Hyper.trHid.u64Base      resq    1
    170     .Hyper.trHid.u32Limit     resd    1
    171     .Hyper.trHid.Attr         resd    1
     174    .Hyper.ldtr.Sel           resw    1
     175    .Hyper.ldtr.PaddingSel    resw    1
     176    .Hyper.ldtr.ValidSel      resw    1
     177    .Hyper.ldtr.fFlags        resw    1
     178    .Hyper.ldtr.u64Base       resq    1
     179    .Hyper.ldtr.u32Limit      resd    1
     180    .Hyper.ldtr.Attr          resd    1
     181    .Hyper.tr.Sel             resw    1
     182    .Hyper.tr.PaddingSel      resw    1
     183    .Hyper.tr.ValidSel        resw    1
     184    .Hyper.tr.fFlags          resw    1
     185    .Hyper.tr.u64Base         resq    1
     186    .Hyper.tr.u32Limit        resd    1
     187    .Hyper.tr.Attr            resd    1
    172188    .Hyper.SysEnter.cs        resb    8
    173189    .Hyper.SysEnter.eip       resb    8
     
    319335    .Guest.r14                resq    1
    320336    .Guest.r15                resq    1
    321     .Guest.es                 resw    1
    322     .Guest.esPadding          resw    3
    323     .Guest.esHid.u64Base      resq    1
    324     .Guest.esHid.u32Limit     resd    1
    325     .Guest.esHid.Attr         resd    1
    326     .Guest.cs                 resw    1
    327     .Guest.csPadding          resw    3
    328     .Guest.csHid.u64Base      resq    1
    329     .Guest.csHid.u32Limit     resd    1
    330     .Guest.csHid.Attr         resd    1
    331     .Guest.ss                 resw    1
    332     .Guest.ssPadding          resw    3
    333     .Guest.ssHid.u64Base      resq    1
    334     .Guest.ssHid.u32Limit     resd    1
    335     .Guest.ssHid.Attr         resd    1
    336     .Guest.ds                 resw    1
    337     .Guest.dsPadding          resw    3
    338     .Guest.dsHid.u64Base      resq    1
    339     .Guest.dsHid.u32Limit     resd    1
    340     .Guest.dsHid.Attr         resd    1
    341     .Guest.fs                 resw    1
    342     .Guest.fsPadding          resw    3
    343     .Guest.fsHid.u64Base      resq    1
    344     .Guest.fsHid.u32Limit     resd    1
    345     .Guest.fsHid.Attr         resd    1
    346     .Guest.gs                 resw    1
    347     .Guest.gsPadding          resw    3
    348     .Guest.gsHid.u64Base      resq    1
    349     .Guest.gsHid.u32Limit     resd    1
    350     .Guest.gsHid.Attr         resd    1
     337    .Guest.es.Sel             resw    1
     338    .Guest.es.PaddingSel      resw    1
     339    .Guest.es.ValidSel        resw    1
     340    .Guest.es.fFlags          resw    1
     341    .Guest.es.u64Base         resq    1
     342    .Guest.es.u32Limit        resd    1
     343    .Guest.es.Attr            resd    1
     344    .Guest.cs.Sel             resw    1
     345    .Guest.cs.PaddingSel      resw    1
     346    .Guest.cs.ValidSel        resw    1
     347    .Guest.cs.fFlags          resw    1
     348    .Guest.cs.u64Base         resq    1
     349    .Guest.cs.u32Limit        resd    1
     350    .Guest.cs.Attr            resd    1
     351    .Guest.ss.Sel             resw    1
     352    .Guest.ss.PaddingSel      resw    1
     353    .Guest.ss.ValidSel        resw    1
     354    .Guest.ss.fFlags          resw    1
     355    .Guest.ss.u64Base         resq    1
     356    .Guest.ss.u32Limit        resd    1
     357    .Guest.ss.Attr            resd    1
     358    .Guest.ds.Sel             resw    1
     359    .Guest.ds.PaddingSel      resw    1
     360    .Guest.ds.ValidSel        resw    1
     361    .Guest.ds.fFlags          resw    1
     362    .Guest.ds.u64Base         resq    1
     363    .Guest.ds.u32Limit        resd    1
     364    .Guest.ds.Attr            resd    1
     365    .Guest.fs.Sel             resw    1
     366    .Guest.fs.PaddingSel      resw    1
     367    .Guest.fs.ValidSel        resw    1
     368    .Guest.fs.fFlags          resw    1
     369    .Guest.fs.u64Base         resq    1
     370    .Guest.fs.u32Limit        resd    1
     371    .Guest.fs.Attr            resd    1
     372    .Guest.gs.Sel             resw    1
     373    .Guest.gs.PaddingSel      resw    1
     374    .Guest.gs.ValidSel        resw    1
     375    .Guest.gs.fFlags          resw    1
     376    .Guest.gs.u64Base         resq    1
     377    .Guest.gs.u32Limit        resd    1
     378    .Guest.gs.Attr            resd    1
    351379    .Guest.eip                resq    1
    352380    .Guest.eflags             resq    1
     
    364392    .Guest.idtr.cbIdt         resw    1
    365393    .Guest.idtr.pIdt          resq    1
    366     .Guest.ldtr               resw    1
    367     .Guest.ldtrPadding        resw    3
    368     .Guest.ldtrHid.u64Base    resq    1
    369     .Guest.ldtrHid.u32Limit   resd    1
    370     .Guest.ldtrHid.Attr       resd    1
    371     .Guest.tr                 resw    1
    372     .Guest.trPadding          resw    3
    373     .Guest.trHid.u64Base      resq    1
    374     .Guest.trHid.u32Limit     resd    1
    375     .Guest.trHid.Attr         resd    1
     394    .Guest.ldtr.Sel           resw    1
     395    .Guest.ldtr.PaddingSel    resw    1
     396    .Guest.ldtr.ValidSel      resw    1
     397    .Guest.ldtr.fFlags        resw    1
     398    .Guest.ldtr.u64Base       resq    1
     399    .Guest.ldtr.u32Limit      resd    1
     400    .Guest.ldtr.Attr          resd    1
     401    .Guest.tr.Sel             resw    1
     402    .Guest.tr.PaddingSel      resw    1
     403    .Guest.tr.ValidSel        resw    1
     404    .Guest.tr.fFlags          resw    1
     405    .Guest.tr.u64Base         resq    1
     406    .Guest.tr.u32Limit        resd    1
     407    .Guest.tr.Attr            resd    1
    376408    .Guest.SysEnter.cs        resb    8
    377409    .Guest.SysEnter.eip       resb    8
  • trunk/src/VBox/VMM/include/EMHandleRCTmpl.h

    r41804 r41906  
    112112        case VINF_PATM_HC_MMIO_PATCH_READ:
    113113            rc = PATMR3InstallPatch(pVM, SELMToFlat(pVM, DISSELREG_CS, CPUMCTX2CORE(pCtx), pCtx->eip),
    114                                     PATMFL_MMIO_ACCESS | ((SELMGetCpuModeFromSelector(pVCpu, pCtx->eflags, pCtx->cs, &pCtx->csHid) == DISCPUMODE_32BIT) ? PATMFL_CODE32 : 0));
     114                                      PATMFL_MMIO_ACCESS
     115                                    | (    SELMGetCpuModeFromSelector(pVCpu, pCtx->eflags, pCtx->cs.Sel, &pCtx->cs)
     116                                        == DISCPUMODE_32BIT ? PATMFL_CODE32 : 0));
    115117            if (RT_FAILURE(rc))
    116118                rc = emR3ExecuteInstruction(pVM, pVCpu, "MMIO");
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