VirtualBox

Changeset 54898 in vbox for trunk/src/VBox/VMM/VMMSwitcher


Ignore:
Timestamp:
Mar 22, 2015 11:47:07 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
99113
Message:

CPUMCTX,CPUMHOST: Replaced the fpu (X86FXSAVE) member with an XState (X86XSAVEAREA) member.

Location:
trunk/src/VBox/VMM/VMMSwitcher
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMSwitcher/AMD64andLegacy.mac

    r54707 r54898  
    11441144    mov     cr0, rcx
    11451145
    1146     fxsave  [rdx + r8 + CPUMCPU.Guest.fpu]
    1147     o64 fxrstor [rdx + r8 + CPUMCPU.Host.fpu]       ; Restore 64-bit host FPU state. See @bugref{7138}
     1146    fxsave  [rdx + r8 + CPUMCPU.Guest.XState]
     1147    o64 fxrstor [rdx + r8 + CPUMCPU.Host.XState]    ; Restore 64-bit host FPU state. See @bugref{7138}
    11481148    jmp short gth_fpu_no
    11491149
  • trunk/src/VBox/VMM/VMMSwitcher/LegacyandAMD64.mac

    r54862 r54898  
    665665    mov     cr0, rax
    666666    ; Use explicit REX prefix. See @bugref{6398}.
    667     o64 fxrstor [rdx + CPUMCPU.Guest.fpu]
     667    o64 fxrstor [rdx + CPUMCPU.Guest.XState]
    668668    mov     cr0, rcx                    ; and restore old CR0 again
    669669
     
    725725    ; parameter for all helper functions (pCtx)
    726726    DEBUG64_CHAR('9')
    727     lea     rsi, [rdx + CPUMCPU.Guest.fpu]
     727    lea     rsi, [rdx + CPUMCPU.Guest.XState]
    728728    lea     rax, [htg_return wrt rip]
    729729    push    rax                         ; return address
     
    12591259
    12601260    ; Use explicit REX prefix. See @bugref{6398}.
    1261     o64 fxsave  [rsi + CPUMCTX.fpu]
     1261    o64 fxsave  [rsi + CPUMCTX.XState]
    12621262
    12631263    mov     cr0, rcx                    ; and restore old CR0 again
  • trunk/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac

    r54546 r54898  
    991991
    992992    FIXUP FIX_NO_FXSAVE_JMP, 0, gth_no_fxsave - NAME(Start) ; this will insert a jmp gth_no_fxsave if fxsave isn't supported.
    993     fxsave  [edx + CPUMCPU.Guest.fpu]
    994     fxrstor [edx + CPUMCPU.Host.fpu]
     993    fxsave  [edx + CPUMCPU.Guest.XState]
     994    fxrstor [edx + CPUMCPU.Host.XState]
    995995    jmp near gth_fpu_no
    996996
    997997gth_no_fxsave:
    998     fnsave  [edx + CPUMCPU.Guest.fpu]
    999     mov     eax, [edx + CPUMCPU.Host.fpu]    ; control word
     998    fnsave  [edx + CPUMCPU.Guest.XState]
     999    mov     eax, [edx + CPUMCPU.Host.XState] ; control word
    10001000    not     eax                            ; 1 means exception ignored (6 LS bits)
    10011001    and     eax, byte 03Fh                 ; 6 LS bits only
    1002     test    eax, [edx + CPUMCPU.Host.fpu + 4] ; status word
     1002    test    eax, [edx + CPUMCPU.Host.XState + 4] ; status word
    10031003    jz      gth_no_exceptions_pending
    10041004
    10051005    ; technically incorrect, but we certainly don't want any exceptions now!!
    1006     and     dword [edx + CPUMCPU.Host.fpu + 4], ~03Fh
     1006    and     dword [edx + CPUMCPU.Host.XState + 4], ~03Fh
    10071007
    10081008gth_no_exceptions_pending:
    1009     frstor  [edx + CPUMCPU.Host.fpu]
     1009    frstor  [edx + CPUMCPU.Host.XState]
    10101010    jmp short gth_fpu_no
    10111011
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