VirtualBox

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


Ignore:
Timestamp:
Jun 24, 2012 1:19:25 AM (13 years ago)
Author:
vboxsync
Message:

CPUMCTX++: Rearranging the CPUMCTX structure in preparation of some hidden selector register improvments.

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

Legend:

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

    r41271 r41905  
    329329    RTHCPTR                 pvApicBase;
    330330    uint32_t                fApicDisVectors;
    331     uint8_t                 abPadding3[HC_ARCH_BITS == 32 ? 56 : 52];
    332 #endif
    333 
    334     /**
    335      * Guest context on raw mode entry. 64-byte aligned!
    336      * This a debug feature, see CPUMR3SaveEntryCtx.
    337      */
    338     CPUMCTX                 GuestEntry;
     331    uint8_t                 abPadding3[4];
     332#endif
    339333} CPUM;
    340334/** Pointer to the CPUM instance data residing in the shared VM structure. */
  • trunk/src/VBox/VMM/include/CPUMInternal.mac

    r40234 r41905  
    9090    .pvApicBase           RTR0PTR_RES 1
    9191    .fApicDisVectors      resd    1
    92 %endif
    93 
    94     alignb 64
    95     ; CPUMCTX debug stuff...
    96     .GuestEntry           resb   1024
     92    .abPadding3           resb    4
     93%endif
    9794endstruc
    9895
     
    10198    ; Hypervisor Context.
    10299    ;
    103     alignb 64                           ; the padding
    104     .Hyper.fpu            resb    FPUSTATE_SIZE
    105 
    106     .Hyper.edi            resq    1
    107     .Hyper.esi            resq    1
    108     .Hyper.ebp            resq    1
    109     .Hyper.eax            resq    1
    110     .Hyper.ebx            resq    1
    111     .Hyper.edx            resq    1
    112     .Hyper.ecx            resq    1
    113     .Hyper.esp            resq    1
    114     .Hyper.lss_esp        resd    1
    115     .Hyper.ss             resw    1
    116     .Hyper.ssPadding      resw    1
    117     .Hyper.gs             resw    1
    118     .Hyper.gsPadding      resw    1
    119     .Hyper.fs             resw    1
    120     .Hyper.fsPadding      resw    1
    121     .Hyper.es             resw    1
    122     .Hyper.esPadding      resw    1
    123     .Hyper.ds             resw    1
    124     .Hyper.dsPadding      resw    1
    125     .Hyper.cs             resw    1
    126     .Hyper.csPadding      resw    3
    127     .Hyper.eflags         resq    1
    128     .Hyper.eip            resq    1
    129     .Hyper.r8             resq    1
    130     .Hyper.r9             resq    1
    131     .Hyper.r10            resq    1
    132     .Hyper.r11            resq    1
    133     .Hyper.r12            resq    1
    134     .Hyper.r13            resq    1
    135     .Hyper.r14            resq    1
    136     .Hyper.r15            resq    1
    137 
     100    .Hyper.fpu                resb    512
     101    .Hyper.eax                resq    1
     102    .Hyper.ecx                resq    1
     103    .Hyper.edx                resq    1
     104    .Hyper.ebx                resq    1
     105    .Hyper.esp                resq    1
     106    .Hyper.ebp                resq    1
     107    .Hyper.esi                resq    1
     108    .Hyper.edi                resq    1
     109    .Hyper.r8                 resq    1
     110    .Hyper.r9                 resq    1
     111    .Hyper.r10                resq    1
     112    .Hyper.r11                resq    1
     113    .Hyper.r12                resq    1
     114    .Hyper.r13                resq    1
     115    .Hyper.r14                resq    1
     116    .Hyper.r15                resq    1
     117    .Hyper.es                 resw    1
     118    .Hyper.esPadding          resw    3
    138119    .Hyper.esHid.u64Base      resq    1
    139120    .Hyper.esHid.u32Limit     resd    1
    140121    .Hyper.esHid.Attr         resd    1
    141 
     122    .Hyper.cs                 resw    1
     123    .Hyper.csPadding          resw    3
    142124    .Hyper.csHid.u64Base      resq    1
    143125    .Hyper.csHid.u32Limit     resd    1
    144126    .Hyper.csHid.Attr         resd    1
    145 
     127    .Hyper.ss                 resw    1
     128    .Hyper.ssPadding          resw    3
    146129    .Hyper.ssHid.u64Base      resq    1
    147130    .Hyper.ssHid.u32Limit     resd    1
    148131    .Hyper.ssHid.Attr         resd    1
    149 
     132    .Hyper.ds                 resw    1
     133    .Hyper.dsPadding          resw    3
    150134    .Hyper.dsHid.u64Base      resq    1
    151135    .Hyper.dsHid.u32Limit     resd    1
    152136    .Hyper.dsHid.Attr         resd    1
    153 
     137    .Hyper.fs                 resw    1
     138    .Hyper.fsPadding          resw    3
    154139    .Hyper.fsHid.u64Base      resq    1
    155140    .Hyper.fsHid.u32Limit     resd    1
    156141    .Hyper.fsHid.Attr         resd    1
    157 
     142    .Hyper.gs                 resw    1
     143    .Hyper.gsPadding          resw    3
    158144    .Hyper.gsHid.u64Base      resq    1
    159145    .Hyper.gsHid.u32Limit     resd    1
    160146    .Hyper.gsHid.Attr         resd    1
    161 
    162     .Hyper.cr0            resq    1
    163     .Hyper.cr2            resq    1
    164     .Hyper.cr3            resq    1
    165     .Hyper.cr4            resq    1
    166 
    167     .Hyper.dr             resq    8
    168 
    169     .Hyper.gdtr           resb    10          ; GDT limit + linear address
    170     .Hyper.gdtrPadding    resw    1
    171     .Hyper.idtr           resb    10          ; IDT limit + linear address
    172     .Hyper.idtrPadding    resw    1
    173     .Hyper.ldtr           resw    1
    174     .Hyper.ldtrPadding    resw    1
    175     .Hyper.tr             resw    1
    176     .Hyper.trPadding      resw    1
    177 
     147    .Hyper.eip                resq    1
     148    .Hyper.eflags             resq    1
     149    .Hyper.cr0                resq    1
     150    .Hyper.cr2                resq    1
     151    .Hyper.cr3                resq    1
     152    .Hyper.cr4                resq    1
     153    .Hyper.dr                 resq    8
     154    .Hyper.gdtrPadding        resw    3
     155    .Hyper.gdtr               resw    0
     156    .Hyper.gdtr.cbGdt         resw    1
     157    .Hyper.gdtr.pGdt          resq    1
     158    .Hyper.idtrPadding        resw    3
     159    .Hyper.idtr               resw    0
     160    .Hyper.idtr.cbIdt         resw    1
     161    .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
    178172    .Hyper.SysEnter.cs        resb    8
    179173    .Hyper.SysEnter.eip       resb    8
    180174    .Hyper.SysEnter.esp       resb    8
    181 
    182175    .Hyper.msrEFER            resb    8
    183176    .Hyper.msrSTAR            resb    8
     
    188181    .Hyper.msrKERNELGSBASE    resb    8
    189182
    190     .Hyper.ldtrHid.u64Base    resq    1
    191     .Hyper.ldtrHid.u32Limit   resd    1
    192     .Hyper.ldtrHid.Attr       resd    1
    193 
    194     .Hyper.trHid.u64Base      resq    1
    195     .Hyper.trHid.u32Limit     resd    1
    196     .Hyper.trHid.Attr         resd    1
    197 
    198183    ;
    199184    ; Host context state
    200185    ;
     186    alignb 64
    201187    .Host.fpu            resb    FPUSTATE_SIZE
    202188
     
    316302    ;
    317303    alignb 64
    318     .Guest.fpu            resb    FPUSTATE_SIZE
    319 
    320     .Guest.edi            resq    1
    321     .Guest.esi            resq    1
    322     .Guest.ebp            resq    1
    323     .Guest.eax            resq    1
    324     .Guest.ebx            resq    1
    325     .Guest.edx            resq    1
    326     .Guest.ecx            resq    1
    327     .Guest.esp            resq    1
    328     .Guest.lss_esp        resd    1
    329     .Guest.ss             resw    1
    330     .Guest.ssPadding      resw    1
    331     .Guest.gs             resw    1
    332     .Guest.gsPadding      resw    1
    333     .Guest.fs             resw    1
    334     .Guest.fsPadding      resw    1
    335     .Guest.es             resw    1
    336     .Guest.esPadding      resw    1
    337     .Guest.ds             resw    1
    338     .Guest.dsPadding      resw    1
    339     .Guest.cs             resw    1
    340     .Guest.csPadding      resw    3
    341     .Guest.eflags         resq    1
    342     .Guest.eip            resq    1
    343     .Guest.r8             resq    1
    344     .Guest.r9             resq    1
    345     .Guest.r10            resq    1
    346     .Guest.r11            resq    1
    347     .Guest.r12            resq    1
    348     .Guest.r13            resq    1
    349     .Guest.r14            resq    1
    350     .Guest.r15            resq    1
    351 
     304    .Guest.fpu                resb    512
     305    .Guest.eax                resq    1
     306    .Guest.ecx                resq    1
     307    .Guest.edx                resq    1
     308    .Guest.ebx                resq    1
     309    .Guest.esp                resq    1
     310    .Guest.ebp                resq    1
     311    .Guest.esi                resq    1
     312    .Guest.edi                resq    1
     313    .Guest.r8                 resq    1
     314    .Guest.r9                 resq    1
     315    .Guest.r10                resq    1
     316    .Guest.r11                resq    1
     317    .Guest.r12                resq    1
     318    .Guest.r13                resq    1
     319    .Guest.r14                resq    1
     320    .Guest.r15                resq    1
     321    .Guest.es                 resw    1
     322    .Guest.esPadding          resw    3
    352323    .Guest.esHid.u64Base      resq    1
    353324    .Guest.esHid.u32Limit     resd    1
    354325    .Guest.esHid.Attr         resd    1
    355 
     326    .Guest.cs                 resw    1
     327    .Guest.csPadding          resw    3
    356328    .Guest.csHid.u64Base      resq    1
    357329    .Guest.csHid.u32Limit     resd    1
    358330    .Guest.csHid.Attr         resd    1
    359 
     331    .Guest.ss                 resw    1
     332    .Guest.ssPadding          resw    3
    360333    .Guest.ssHid.u64Base      resq    1
    361334    .Guest.ssHid.u32Limit     resd    1
    362335    .Guest.ssHid.Attr         resd    1
    363 
     336    .Guest.ds                 resw    1
     337    .Guest.dsPadding          resw    3
    364338    .Guest.dsHid.u64Base      resq    1
    365339    .Guest.dsHid.u32Limit     resd    1
    366340    .Guest.dsHid.Attr         resd    1
    367 
     341    .Guest.fs                 resw    1
     342    .Guest.fsPadding          resw    3
    368343    .Guest.fsHid.u64Base      resq    1
    369344    .Guest.fsHid.u32Limit     resd    1
    370345    .Guest.fsHid.Attr         resd    1
    371 
     346    .Guest.gs                 resw    1
     347    .Guest.gsPadding          resw    3
    372348    .Guest.gsHid.u64Base      resq    1
    373349    .Guest.gsHid.u32Limit     resd    1
    374350    .Guest.gsHid.Attr         resd    1
    375 
    376     .Guest.cr0            resq    1
    377     .Guest.cr2            resq    1
    378     .Guest.cr3            resq    1
    379     .Guest.cr4            resq    1
    380 
    381     .Guest.dr             resq    8
    382 
    383     .Guest.gdtr.cbGdt     resw    1
    384     .Guest.gdtr.pGdt      resq    1
    385     .Guest.gdtrPadding    resw    1
    386     .Guest.idtr.cbIdt     resw    1
    387     .Guest.idtr.pIdt      resq    1
    388     .Guest.idtrPadding    resw    1
    389     .Guest.ldtr           resw    1
    390     .Guest.ldtrPadding    resw    1
    391     .Guest.tr             resw    1
    392     .Guest.trPadding      resw    1
    393 
     351    .Guest.eip                resq    1
     352    .Guest.eflags             resq    1
     353    .Guest.cr0                resq    1
     354    .Guest.cr2                resq    1
     355    .Guest.cr3                resq    1
     356    .Guest.cr4                resq    1
     357    .Guest.dr                 resq    8
     358    .Guest.gdtrPadding        resw    3
     359    .Guest.gdtr               resw    0
     360    .Guest.gdtr.cbGdt         resw    1
     361    .Guest.gdtr.pGdt          resq    1
     362    .Guest.idtrPadding        resw    3
     363    .Guest.idtr               resw    0
     364    .Guest.idtr.cbIdt         resw    1
     365    .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
    394376    .Guest.SysEnter.cs        resb    8
    395377    .Guest.SysEnter.eip       resb    8
    396378    .Guest.SysEnter.esp       resb    8
    397 
    398379    .Guest.msrEFER            resb    8
    399380    .Guest.msrSTAR            resb    8
     
    404385    .Guest.msrKERNELGSBASE    resb    8
    405386
    406     .Guest.ldtrHid.u64Base    resq    1
    407     .Guest.ldtrHid.u32Limit   resd    1
    408     .Guest.ldtrHid.Attr       resd    1
    409 
    410     .Guest.trHid.u64Base      resq    1
    411     .Guest.trHid.u32Limit     resd    1
    412     .Guest.trHid.Attr         resd    1
    413 
     387
     388    alignb 64
    414389    .GuestMsrs.au64           resq    64
    415390
     
    417392    ; Other stuff.
    418393    ;
    419     alignb 64
    420394    ; hypervisor core context.
    421395    .pHyperCoreR3         RTR3PTR_RES   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