VirtualBox

Changeset 18650 in vbox for trunk/src/recompiler_new


Ignore:
Timestamp:
Apr 2, 2009 4:26:48 PM (16 years ago)
Author:
vboxsync
Message:

remR3changeCpuMode: deal with rescheduling status codes from PGMChangeMode (i.e. handling suspend status when the swithcing to PAE without having enabled PAE support).

File:
1 edited

Legend:

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

    r18597 r18650  
    15141514void remR3ChangeCpuMode(CPUState *env)
    15151515{
    1516     int rc;
    1517     PVM pVM = env->pVM;
    1518     PCPUMCTX pCtx;
     1516    PVM         pVM = env->pVM;
     1517    uint64_t    efer;
     1518    PCPUMCTX    pCtx;
     1519    int         rc;
    15191520
    15201521    /*
     
    15381539
    15391540#ifdef TARGET_X86_64
    1540     rc = PGMChangeMode(pVM, env->cr[0], env->cr[4], env->efer);
     1541    efer = env->efer;
     1542#else
     1543    efer = 0;
     1544#endif
     1545    rc = PGMChangeMode(pVM, env->cr[0], env->cr[4], efer);
    15411546    if (rc != VINF_SUCCESS)
    1542         cpu_abort(env, "PGMChangeMode(, %RX64, %RX64, %RX64) -> %Rrc\n", env->cr[0], env->cr[4], env->efer, rc);
    1543 #else
    1544     rc = PGMChangeMode(pVM, env->cr[0], env->cr[4], 0);
    1545     if (rc != VINF_SUCCESS)
    1546         cpu_abort(env, "PGMChangeMode(, %RX64, %RX64, %RX64) -> %Rrc\n", env->cr[0], env->cr[4], 0LL, rc);
    1547 #endif
     1547    {
     1548        if (rc >= VINF_EM_FIRST && rc <= VINF_EM_LAST)
     1549        {
     1550            Log(("PGMChangeMode(, %RX64, %RX64, %RX64) -> %Rrc -> remR3RaiseRC\n", env->cr[0], env->cr[4], efer, rc));
     1551            remR3RaiseRC(env->pVM, rc);
     1552        }
     1553        else
     1554            cpu_abort(env, "PGMChangeMode(, %RX64, %RX64, %RX64) -> %Rrc\n", env->cr[0], env->cr[4], efer, rc);
     1555    }
    15481556}
    15491557
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