VirtualBox

Changeset 23487 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
Oct 1, 2009 2:57:14 PM (15 years ago)
Author:
vboxsync
Message:

VMM: Saved and restore the [R|E]FLAGS register in the cmmR3CallRing3SetJmp/Long code.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/VMMR0JmpA-amd64.asm

    r20992 r23487  
    101101    movdqa  [xDX + VMMR0JMPBUF.xmm15], xmm15
    102102 %endif
     103    pushf
     104    pop     xAX
     105    mov     [xDX + VMMR0JMPBUF.rflags], xAX
    103106
    104107    ;
     
    172175    and     qword [xDX + VMMR0JMPBUF.rip], byte 0 ; used for valid check.
    173176    mov     rsp, [xDX + VMMR0JMPBUF.rsp]
     177    push    qword [xDX + VMMR0JMPBUF.rflags]
     178    popf
    174179    jmp     xCX
    175180
     
    399404    mov     rcx, [xDX + VMMR0JMPBUF.rip]
    400405    mov     rsp, [xDX + VMMR0JMPBUF.rsp]
    401     ;; @todo flags????
     406    push    qword [xDX + VMMR0JMPBUF.rflags]
     407    popf
    402408    jmp     rcx
    403409
  • trunk/src/VBox/VMM/VMMR0/VMMR0JmpA-x86.asm

    r20875 r23487  
    7070    lea     ecx, [esp + 4]              ; (used in resume)
    7171    mov     [xDX + VMMR0JMPBUF.esp], ecx
     72    pushf
     73    pop     xAX
     74    mov     [xDX + VMMR0JMPBUF.eflags], xAX
    7275
    7376    ;
     
    175178    and     dword [xDX + VMMR0JMPBUF.eip], byte 0 ; used for valid check.
    176179    mov     esp, [xDX + VMMR0JMPBUF.esp]
     180    push    dword [xDX + VMMR0JMPBUF.eflags]
     181    popf
    177182    jmp     xCX
    178183
     
    352357    mov     ecx, [xDX + VMMR0JMPBUF.eip]
    353358    mov     esp, [xDX + VMMR0JMPBUF.esp]
     359    push    dword [xDX + VMMR0JMPBUF.eflags]
     360    popf
    354361    jmp     ecx
    355362
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