Changeset 18650 in vbox for trunk/src/recompiler
- Timestamp:
- Apr 2, 2009 4:26:48 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/recompiler/VBoxRecompiler.c
r17538 r18650 1576 1576 void remR3ChangeCpuMode(CPUState *env) 1577 1577 { 1578 int rc; 1579 PVM pVM = env->pVM; 1578 PVM pVM = env->pVM; 1579 uint64_t efer; 1580 PCPUMCTX pCtx; 1581 int rc; 1580 1582 1581 1583 /* … … 1591 1593 * as it may need to map whatever cr3 is pointing to. 1592 1594 */ 1593 PCPUMCTXpCtx = (PCPUMCTX)pVM->rem.s.pCtx;1595 pCtx = (PCPUMCTX)pVM->rem.s.pCtx; 1594 1596 pCtx->cr0 = env->cr[0]; 1595 1597 pCtx->cr3 = env->cr[3]; … … 1599 1601 1600 1602 #ifdef TARGET_X86_64 1601 rc = PGMChangeMode(pVM, env->cr[0], env->cr[4], env->efer); 1603 efer = env->efer; 1604 #else 1605 efer = 0; 1606 #endif 1607 rc = PGMChangeMode(pVM, env->cr[0], env->cr[4], efer); 1602 1608 if (rc != VINF_SUCCESS) 1603 cpu_abort(env, "PGMChangeMode(, %RX64, %RX64, %RX64) -> %Rrc\n", env->cr[0], env->cr[4], env->efer, rc); 1604 #else 1605 rc = PGMChangeMode(pVM, env->cr[0], env->cr[4], 0); 1606 if (rc != VINF_SUCCESS) 1607 cpu_abort(env, "PGMChangeMode(, %RX64, %RX64, %RX64) -> %Rrc\n", env->cr[0], env->cr[4], 0LL, rc); 1608 #endif 1609 { 1610 if (rc >= VINF_EM_FIRST && rc <= VINF_EM_LAST) 1611 { 1612 Log(("PGMChangeMode(, %RX64, %RX64, %RX64) -> %Rrc -> remR3RaiseRC\n", env->cr[0], env->cr[4], efer, rc)); 1613 remR3RaiseRC(env->pVM, rc); 1614 } 1615 else 1616 cpu_abort(env, "PGMChangeMode(, %RX64, %RX64, %RX64) -> %Rrc\n", env->cr[0], env->cr[4], efer, rc); 1617 } 1609 1618 } 1610 1619
Note:
See TracChangeset
for help on using the changeset viewer.