VirtualBox

Changeset 45727 in vbox


Ignore:
Timestamp:
Apr 25, 2013 11:15:38 AM (12 years ago)
Author:
vboxsync
Message:

REM/VBoxRecompiler: Fixed translating pending events to TRPM on REMR3StateBack() for traps.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/recompiler/VBoxRecompiler.c

    r45701 r45727  
    27712771        &&  pVM->rem.s.Env.exception_index < 256)
    27722772    {
     2773        /* This cannot be a hardware-interrupt because exception_index < EXCP_INTERRUPT. */
    27732774        int rc;
    27742775
    27752776        Log(("REMR3StateBack: Pending trap %x %d\n", pVM->rem.s.Env.exception_index, pVM->rem.s.Env.exception_is_int));
    2776         rc = TRPMAssertTrap(pVCpu, pVM->rem.s.Env.exception_index, (pVM->rem.s.Env.exception_is_int) ? TRPM_SOFTWARE_INT : TRPM_HARDWARE_INT);
     2777        TRPMEVENT enmType = pVM->rem.s.Env.exception_is_int ? TRPM_SOFTWARE_INT : TRPM_TRAP;
     2778        rc = TRPMAssertTrap(pVCpu, pVM->rem.s.Env.exception_index, enmType);
    27772779        AssertRC(rc);
    2778         switch (pVM->rem.s.Env.exception_index)
     2780        if (enmType == TRPM_TRAP)
    27792781        {
    2780             case X86_XCPT_PF:
    2781                 TRPMSetFaultAddress(pVCpu, pCtx->cr2);
    2782                 /* fallthru */
    2783             case X86_XCPT_TS: case X86_XCPT_NP: case X86_XCPT_SS: case X86_XCPT_GP:
    2784             case X86_XCPT_AC: case X86_XCPT_DF: /* 0 */
    2785                 TRPMSetErrorCode(pVCpu, pVM->rem.s.Env.error_code);
    2786                 break;
     2782            switch (pVM->rem.s.Env.exception_index)
     2783            {
     2784                case X86_XCPT_PF:
     2785                    TRPMSetFaultAddress(pVCpu, pCtx->cr2);
     2786                    /* fallthru */
     2787                case X86_XCPT_TS: case X86_XCPT_NP: case X86_XCPT_SS: case X86_XCPT_GP:
     2788                case X86_XCPT_AC: case X86_XCPT_DF: /* 0 */
     2789                    TRPMSetErrorCode(pVCpu, pVM->rem.s.Env.error_code);
     2790                    break;
     2791            }
    27872792        }
    2788 
    27892793    }
    27902794
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