VirtualBox

Changeset 13375 in vbox for trunk/src/recompiler


Ignore:
Timestamp:
Oct 17, 2008 2:18:29 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
38101
Message:

some (disabled) VMI bits

Location:
trunk/src/recompiler
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/recompiler/Makefile.kmk

    r13363 r13375  
    104104# The VBoxREM.[dll|so|..] or VBoxREM2.rel.
    105105#
    106 $(REM_MOD)_DEFS             = IN_REM_R3 REM_INCLUDE_CPU_H
    107 $(REM_MOD)_DEFS            += REM_PHYS_ADDR_IN_TLB
     106$(REM_MOD)_DEFS             = \
     107        IN_REM_R3 REM_INCLUDE_CPU_H REM_PHYS_ADDR_IN_TLB \
     108        $(if $(VBOX_WITH_VMI),VBOX_WITH_VMI,)
     109
    108110#$(REM_MOD)_DEFS          += DEBUG_ALL_LOGGING DEBUG_DISAS DEBUG_PCALL DEBUG_EXEC DEBUG_FLUSH DEBUG_IOPORT DEBUG_SIGNAL DEBUG_TLB_CHECK DEBUG_TB_INVALIDATE DEBUG_TLB  # Enables huge amounts of debug logging.
    109111
  • trunk/src/recompiler/VBoxREMWrapper.cpp

    r13306 r13375  
    624624    { REMPARMDESC_FLAGS_INT,        sizeof(uint32_t *), NULL }
    625625};
     626#ifdef VBOX_WITH_VMI
     627static const REMPARMDESC g_aArgsPARAVIsBiosCall[] =
     628{
     629    { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL },
     630    { REMPARMDESC_FLAGS_GCPTR,      sizeof(RTGCPTR), NULL },
     631    { REMPARMDESC_FLAGS_INT,        sizeof(uint32_t), NULL }
     632};
     633#endif
    626634static const REMPARMDESC g_aArgsPDMApicGetBase[] =
    627635{
     
    10751083    { "PATMR3QueryPatchMemGC",                  (void *)(uintptr_t)&PATMR3QueryPatchMemGC,          &g_aArgsPATMR3QueryPatchMem[0],             RT_ELEMENTS(g_aArgsPATMR3QueryPatchMem),               REMFNDESC_FLAGS_RET_INT,    sizeof(RTGCPTR),    NULL },
    10761084    { "PATMR3QueryPatchMemHC",                  (void *)(uintptr_t)&PATMR3QueryPatchMemHC,          &g_aArgsPATMR3QueryPatchMem[0],             RT_ELEMENTS(g_aArgsPATMR3QueryPatchMem),               REMFNDESC_FLAGS_RET_INT,    sizeof(void *),     NULL },
     1085#ifdef VBOX_WITH_VMI
     1086    { "PARAVIsBiosCall",                        (void *)(uintptr_t)&PARAVIsBiosCall,                &g_aArgsPARAVIsBiosCall[0],                 RT_ELEMENTS(g_aArgsPARAVIsBiosCall),                   REMFNDESC_FLAGS_RET_INT,    sizeof(bool),       NULL },
     1087#endif
    10771088    { "PDMApicGetBase",                         (void *)(uintptr_t)&PDMApicGetBase,                 &g_aArgsPDMApicGetBase[0],                  RT_ELEMENTS(g_aArgsPDMApicGetBase),                    REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL },
    10781089    { "PDMApicGetTPR",                          (void *)(uintptr_t)&PDMApicGetTPR,                  &g_aArgsPDMApicGetTPR[0],                   RT_ELEMENTS(g_aArgsPDMApicGetTPR),                     REMFNDESC_FLAGS_RET_INT,    sizeof(int),        NULL },
  • trunk/src/recompiler/VBoxRecompiler.c

    r13185 r13375  
    10701070            rc = VINF_EM_RESCHEDULE_HWACC;
    10711071            break;
     1072
     1073#ifdef VBOX_WITH_VMI
     1074        /*
     1075         *
     1076         */
     1077        case EXCP_PARAV_CALL:
     1078            Log2(("REMR3Run: cpu_exec -> EXCP_PARAV_CALL\n"));
     1079            rc = VINF_EM_RESCHEDULE_PARAV;
     1080            break;
     1081#endif
    10721082
    10731083        /*
  • trunk/src/recompiler/cpu-defs.h

    r11982 r13375  
    9090#define EXCP_SINGLE_INSTR   0x11026 /* executed single instruction. */
    9191#define EXCP_RC             0x11027 /* a EM rc was raised (VMR3Reset/Suspend/PowerOff). */
     92#ifdef VBOX
     93#define EXCP_PARAV_CALL     0x11028 /* VMI BIOS call */
     94#endif
    9295#endif /* VBOX */
    9396#define MAX_BREAKPOINTS 32
  • trunk/src/recompiler/target-i386/helper.c

    r13117 r13375  
    2929#ifdef VBOX
    3030# include <VBox/err.h>
     31# include <VBox/parav.h>
    3132#endif
    3233#include "exec.h"
     
    625626
    626627#ifdef VBOX
     628# ifdef VBOX_WITH_VMI
     629    if (   intno == 6
     630        && PARAVIsBiosCall(env->pVM, (RTRCPTR)next_eip, env->regs[R_EAX]))
     631    {
     632        env->exception_index = EXCP_PARAV_CALL;
     633        cpu_loop_exit();
     634    }
     635# endif
    627636    if (remR3NotifyTrap(env, intno, error_code, next_eip) != VINF_SUCCESS)
    628637        cpu_loop_exit();
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette