VirtualBox

Changeset 19032 in vbox for trunk/src/recompiler_new


Ignore:
Timestamp:
Apr 20, 2009 3:03:08 PM (16 years ago)
Author:
vboxsync
Message:

Split TM for SMP guests.

Location:
trunk/src/recompiler_new
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/recompiler_new/VBoxREMWrapper.cpp

    r19015 r19032  
    11611161    { "STAMR3Register",                         (void *)(uintptr_t)&STAMR3Register,                 &g_aArgsSTAMR3Register[0],                  RT_ELEMENTS(g_aArgsSTAMR3Register),                    REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL },
    11621162    { "STAMR3Deregister",                       (void *)(uintptr_t)&STAMR3Deregister,               &g_aArgsSTAMR3Deregister[0],                RT_ELEMENTS(g_aArgsSTAMR3Deregister),                  REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL },
    1163     { "TMCpuTickGet",                           (void *)(uintptr_t)&TMCpuTickGet,                   &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(uint64_t),   NULL },
    1164     { "TMCpuTickPause",                         (void *)(uintptr_t)&TMCpuTickPause,                 &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL },
    1165     { "TMCpuTickResume",                        (void *)(uintptr_t)&TMCpuTickResume,                &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL },
    1166     { "TMNotifyEndOfExecution",                 (void *)(uintptr_t)&TMNotifyEndOfExecution,         &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_VOID,   0,                  NULL },
    1167     { "TMNotifyStartOfExecution",               (void *)(uintptr_t)&TMNotifyStartOfExecution,       &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_VOID,   0,                  NULL },
     1163    { "TMCpuTickGet",                           (void *)(uintptr_t)&TMCpuTickGet,                   &g_aArgsVMCPU[0],                           RT_ELEMENTS(g_aArgsVMCPU),                             REMFNDESC_FLAGS_RET_INT,    sizeof(uint64_t),   NULL },
     1164    { "TMCpuTickPause",                         (void *)(uintptr_t)&TMCpuTickPause,                 &g_aArgsVMCPU[0],                           RT_ELEMENTS(g_aArgsVMCPU),                             REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL },
     1165    { "TMCpuTickResume",                        (void *)(uintptr_t)&TMCpuTickResume,                &g_aArgsVMCPU[0],                           RT_ELEMENTS(g_aArgsVMCPU),                             REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL },
     1166    { "TMNotifyEndOfExecution",                 (void *)(uintptr_t)&TMNotifyEndOfExecution,         &g_aArgsVMCPU[0],                           RT_ELEMENTS(g_aArgsVMCPU),                             REMFNDESC_FLAGS_RET_VOID,   0,                  NULL },
     1167    { "TMNotifyStartOfExecution",               (void *)(uintptr_t)&TMNotifyStartOfExecution,       &g_aArgsVMCPU[0],                           RT_ELEMENTS(g_aArgsVMCPU),                             REMFNDESC_FLAGS_RET_VOID,   0,                  NULL },
    11681168    { "TMTimerPoll",                            (void *)(uintptr_t)&TMTimerPoll,                    &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(uint64_t),   NULL },
    11691169    { "TMR3TimerQueuesDo",                      (void *)(uintptr_t)&TMR3TimerQueuesDo,              &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_VOID,   0,                  NULL },
  • trunk/src/recompiler_new/VBoxRecompiler.c

    r19015 r19032  
    795795    if (rc == EXCP_DEBUG)
    796796    {
    797         TMCpuTickResume(pVM);
    798         TMCpuTickPause(pVM);
     797        TMCpuTickResume(pVCpu);
     798        TMCpuTickPause(pVCpu);
    799799        TMVirtualResume(pVM);
    800800        TMVirtualPause(pVM);
     
    924924         * Now we set the execute single instruction flag and enter the cpu_exec loop.
    925925         */
    926         TMNotifyStartOfExecution(pVM);
     926        TMNotifyStartOfExecution(pVCpu);
    927927        pVM->rem.s.Env.interrupt_request = CPU_INTERRUPT_SINGLE_INSTR;
    928928        rc = cpu_exec(&pVM->rem.s.Env);
    929         TMNotifyEndOfExecution(pVM);
     929        TMNotifyEndOfExecution(pVCpu);
    930930        switch (rc)
    931931        {
     
    10511051    Assert(pVM->rem.s.fInREM);
    10521052
    1053     TMNotifyStartOfExecution(pVM);
     1053    TMNotifyStartOfExecution(pVCpu);
    10541054    rc = cpu_exec(&pVM->rem.s.Env);
    1055     TMNotifyEndOfExecution(pVM);
     1055    TMNotifyEndOfExecution(pVCpu);
    10561056    switch (rc)
    10571057    {
     
    39953995{
    39963996    STAM_COUNTER_INC(&gStatCpuGetTSC);
    3997     return TMCpuTickGet(env->pVM);
     3997    return TMCpuTickGet(env->pVCpu);
    39983998}
    39993999
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