VirtualBox

Changeset 47319 in vbox


Ignore:
Timestamp:
Jul 22, 2013 4:53:15 PM (11 years ago)
Author:
vboxsync
Message:

IEM: More 64-bit fixes.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r47307 r47319  
    24662466    if (RT_UNLIKELY(rcStrict != VINF_SUCCESS))
    24672467        return rcStrict;
    2468     Log(("iemiemRaiseXcptOrIntInLongMode: vec=%#x P=%u DPL=%u DT=%u:%u IST=%u %04x:%08x%04x%04x\n",
     2468    Log(("iemRaiseXcptOrIntInLongMode: vec=%#x P=%u DPL=%u DT=%u:%u IST=%u %04x:%08x%04x%04x\n",
    24692469         u8Vector, Idte.Gate.u1Present, Idte.Gate.u2Dpl, Idte.Gate.u1DescType, Idte.Gate.u4Type,
    24702470         Idte.Gate.u3IST, Idte.Gate.u16Sel, Idte.Gate.u32OffsetTop, Idte.Gate.u16OffsetHigh, Idte.Gate.u16OffsetLow));
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm

    r47307 r47319  
    883883        PROLOGUE_4_ARGS
    884884        IEM_MAYBE_LOAD_FLAGS A3, (X86_EFL_ZF | X86_EFL_CF | X86_EFL_PF | X86_EFL_AF | X86_EFL_SF | X86_EFL_OF), 0 ; clobbers T0 (eax)
    885         mov     ax, [A1]
     885        mov     rax, [A1]
    886886        %1 cmpxchg [A0], A2
    887         mov     [A1], ax
     887        mov     [A1], rax
    888888        IEM_SAVE_FLAGS       A3, (X86_EFL_ZF | X86_EFL_CF | X86_EFL_PF | X86_EFL_AF | X86_EFL_SF | X86_EFL_OF), 0 ; clobbers T0+T1 (eax, r11/edi)
    889889        EPILOGUE_4_ARGS
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r47293 r47319  
    18511851    /* Calculate the intermediate RSP from RBP and the stack attributes. */
    18521852    RTUINT64U       NewRsp;
    1853     if (pCtx->ss.Attr.n.u1Long)
     1853    if (pCtx->ss.Attr.n.u1Long || pCtx->ss.Attr.n.u1Unusable)
    18541854        NewRsp.u = pCtx->rbp;
    18551855    else if (pCtx->ss.Attr.n.u1DefBig)
     
    24882488    if (rcStrict != VINF_SUCCESS)
    24892489        return rcStrict;
     2490    Log2(("iretq stack: cs:rip=%04x:%016RX16 rflags=%016RX16 ss:rsp=%04x:%016RX16\n",
     2491          uNewCs, uNewRip, uNewFlags, uNewSs, uNewRsp));
    24902492
    24912493    /*
     
    26632665        pCtx->ss.u32Limit   = UINT32_MAX;
    26642666        pCtx->ss.u64Base    = 0;
     2667        Log2(("iretq new SS: NULL\n"));
    26652668    }
    26662669    else
     
    26702673        pCtx->ss.u32Limit   = cbLimitSs;
    26712674        pCtx->ss.u64Base    = X86DESC_BASE(&DescSS.Legacy);
     2675        Log2(("iretq new SS: base=%#RX64 lim=%#x attr=%#x\n", pCtx->ss.u64Base, pCtx->ss.u32Limit, pCtx->ss.Attr.u));
    26722676    }
    26732677
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