VirtualBox

Changeset 55048 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Mar 31, 2015 6:49:19 PM (10 years ago)
Author:
vboxsync
Message:

VMM,REM: Allocate the FPU/SSE/AVX/FUTURE state stuff. We need to use pointers to substates anyway and this will make CPUMCPU much smaller.

Location:
trunk/include/VBox/vmm
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/cpum.mac

    r55004 r55048  
    136136
    137137struc CPUMCTX
    138     .XState             resb    XSTATE_SIZE
    139138    .eax                resq    1
    140139    .ecx                resq    1
     
    235234    .msrKERNELGSBASE    resb    8
    236235    .msrApicBase        resb    8
    237     .au32SizePadding    resb    24
     236    alignb 8
     237    .pXStateR0      RTR0PTR_RES 1
     238    .pXStateR3      RTR3PTR_RES 1
     239    .pXStateRC      RTRCPTR_RES 1
     240    alignb 64
    238241endstruc
    239242
  • trunk/include/VBox/vmm/cpumctx.h

    r55004 r55048  
    247247typedef struct CPUMCTX
    248248{
    249     /** FPU state. (16-byte alignment)
    250      * @todo This doesn't have to be in X86FXSTATE on CPUs without fxsr - we need a type for the
    251      *       actual format or convert it (waste of time).  */
    252     X86XSAVEAREA        XState;
    253 
    254249    /** CPUMCTXCORE Part.
    255250     * @{ */
     
    404399    /** @} */
    405400
     401    /** Pointer to the FPU/SSE/AVX/XXXX state ring-0 mapping. */
     402    R0PTRTYPE(PX86XSAVEAREA)    pXStateR0;
     403    /** Pointer to the FPU/SSE/AVX/XXXX state ring-3 mapping. */
     404    R3PTRTYPE(PX86XSAVEAREA)    pXStateR3;
     405    /** Pointer to the FPU/SSE/AVX/XXXX state raw-mode mapping. */
     406    RCPTRTYPE(PX86XSAVEAREA)    pXStateRC;
     407
    406408    /** Size padding. */
    407     uint32_t        au32SizePadding[6];
     409    uint32_t        au32SizePadding[HC_ARCH_BITS == 32 ? 3 : 1];
    408410} CPUMCTX;
    409411#pragma pack()
  • trunk/include/VBox/vmm/ssm.h

    r50575 r55048  
    378378/** Saved using SSMR3PutMem, don't be too strict. */
    379379#define SSMSTRUCT_FLAGS_SAVED_AS_MEM        RT_BIT_32(3)
     380/** No introductory structure marker.  Use when splitting up structures.  */
     381#define SSMSTRUCT_FLAGS_NO_LEAD_MARKER      RT_BIT_32(4)
     382/** No trailing structure marker.  Use when splitting up structures.  */
     383#define SSMSTRUCT_FLAGS_NO_TAIL_MARKER      RT_BIT_32(5)
     384
    380385/** Band-aid for old SSMR3PutMem/SSMR3GetMem of structurs with host pointers.
    381386 * @remarks This type is normally only used up to the first changes to the
     
    390395                                              | SSMSTRUCT_FLAGS_NO_MARKERS  | SSMSTRUCT_FLAGS_SAVED_AS_MEM)
    391396/** Mask of the valid bits. */
    392 #define SSMSTRUCT_FLAGS_VALID_MASK          UINT32_C(0x0000000f)
     397#define SSMSTRUCT_FLAGS_VALID_MASK          UINT32_C(0x0000003f)
    393398/** @} */
    394399
  • trunk/include/VBox/vmm/vm.h

    r55034 r55048  
    246246        struct CPUMCPU      s;
    247247#endif
    248         uint8_t             padding[28672];      /* multiple of 4096 */
     248        uint8_t             padding[4096];      /* multiple of 4096 */
    249249    } cpum;
    250250
  • trunk/include/VBox/vmm/vm.mac

    r54898 r55048  
    148148    .pgm                    resb 4096
    149149    alignb 4096
    150     .cpum                   resb 28672
     150    .cpum                   resb 4096
    151151    alignb 4096
    152152endstruc
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