VirtualBox

Changeset 13382 in vbox for trunk/src


Ignore:
Timestamp:
Oct 19, 2008 8:45:30 PM (16 years ago)
Author:
vboxsync
Message:

more MSVC-related stuff

Location:
trunk/src/recompiler_new
Files:
13 edited

Legend:

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

    r13358 r13382  
    245245    uint32_t u32Dummy;
    246246    unsigned i;
     247    int rc;
    247248
    248249    /*
     
    276277
    277278    /* ctx. */
    278     int rc = CPUMQueryGuestCtxPtr(pVM, &pVM->rem.s.pCtx);
     279    rc = CPUMQueryGuestCtxPtr(pVM, &pVM->rem.s.pCtx);
    279280    if (VBOX_FAILURE(rc))
    280281    {
     
    451452static DECLCALLBACK(int) remR3Save(PVM pVM, PSSMHANDLE pSSM)
    452453{
    453     LogFlow(("remR3Save:\n"));
    454 
    455454    /*
    456455     * Save the required CPU Env bits.
     
    458457     */
    459458    PREM pRem = &pVM->rem.s;
     459    LogFlow(("remR3Save:\n"));
    460460    Assert(!pRem->fInREM);
    461461    SSMR3PutU32(pSSM,   pRem->Env.hflags);
     
    482482    uint32_t u32Dummy;
    483483    uint32_t fRawRing0 = false;
     484    uint32_t u32Sep;
     485    int rc;
     486    PREM pRem;
    484487    LogFlow(("remR3Load:\n"));
    485488
     
    509512     * (Not much because we're never in REM when doing the save.)
    510513     */
    511     PREM pRem = &pVM->rem.s;
     514    pRem = &pVM->rem.s;
    512515    Assert(!pRem->fInREM);
    513516    SSMR3GetU32(pSSM,   &pRem->Env.hflags);
     
    519522    }
    520523
    521     uint32_t u32Sep;
    522     int rc = SSMR3GetU32(pSSM, &u32Sep);            /* separator */
     524    rc = SSMR3GetU32(pSSM, &u32Sep);            /* separator */
    523525    if (VBOX_FAILURE(rc))
    524526        return rc;
     
    536538    if (u32Version == REM_SAVED_STATE_VERSION_VER1_6)
    537539    {
     540        unsigned i;
     541   
    538542        /*
    539543         * Load the REM stuff.
     
    547551            return VERR_SSM_DATA_UNIT_FORMAT_CHANGED;
    548552        }
    549         unsigned i;
    550553        for (i = 0; i < pRem->cInvalidatedPages; i++)
    551554            SSMR3GetGCPtr(pSSM, &pRem->aGCPtrInvalidatedPages[i]);
     
    608611REMR3DECL(int) REMR3Step(PVM pVM)
    609612{
     613    int         rc, interrupt_request;
     614    RTGCPTR     GCPtrPC;
     615    bool        fBp;
     616 
    610617    /*
    611618     * Lock the REM - we don't wanna have anyone interrupting us
     
    613620     * pending interrupts and suchlike.
    614621     */
    615     int interrupt_request = pVM->rem.s.Env.interrupt_request;
     622    interrupt_request = pVM->rem.s.Env.interrupt_request;
    616623    Assert(!(interrupt_request & ~(CPU_INTERRUPT_HARD | CPU_INTERRUPT_EXIT | CPU_INTERRUPT_EXITTB | CPU_INTERRUPT_TIMER  | CPU_INTERRUPT_EXTERNAL_HARD | CPU_INTERRUPT_EXTERNAL_EXIT | CPU_INTERRUPT_EXTERNAL_TIMER)));
    617624    pVM->rem.s.Env.interrupt_request = 0;
     
    621628     * If we're standing at a breakpoint, that have to be disabled before we start stepping.
    622629     */
    623     RTGCPTR     GCPtrPC = pVM->rem.s.Env.eip + pVM->rem.s.Env.segs[R_CS].base;
    624     bool        fBp = !cpu_breakpoint_remove(&pVM->rem.s.Env, GCPtrPC);
     630    GCPtrPC = pVM->rem.s.Env.eip + pVM->rem.s.Env.segs[R_CS].base;
     631    fBp = !cpu_breakpoint_remove(&pVM->rem.s.Env, GCPtrPC);
    625632
    626633    /*
     
    629636     * just flip it on and off to make sure it moves
    630637     */
    631     int rc = cpu_exec(&pVM->rem.s.Env);
     638    rc = cpu_exec(&pVM->rem.s.Env);
    632639    if (rc == EXCP_DEBUG)
    633640    {
     
    728735REMR3DECL(int) REMR3EmulateInstruction(PVM pVM)
    729736{
     737    int rc, rc2;
    730738    Log2(("REMR3EmulateInstruction: (cs:eip=%04x:%08x)\n", CPUMGetGuestCS(pVM), CPUMGetGuestEIP(pVM)));
    731739
     
    739747     * Sync the state and enable single instruction / single stepping.
    740748     */
    741     int rc = REMR3State(pVM, false /* no need to flush the TBs; we always compile. */);
     749    rc = REMR3State(pVM, false /* no need to flush the TBs; we always compile. */);
    742750    if (VBOX_SUCCESS(rc))
    743751    {
     
    951959#endif
    952960        pVM->rem.s.Env.interrupt_request = interrupt_request;
    953         int rc2 = REMR3StateBack(pVM);
     961        rc2 = REMR3StateBack(pVM);
    954962        AssertRC(rc2);
    955963    }
     
    975983REMR3DECL(int) REMR3Run(PVM pVM)
    976984{
     985    int rc;
    977986    Log2(("REMR3Run: (cs:eip=%04x:%VGv)\n", pVM->rem.s.Env.segs[R_CS].selector, pVM->rem.s.Env.eip));
    978987    Assert(pVM->rem.s.fInREM);
    979988
    980989    TMNotifyStartOfExecution(pVM);
    981     int rc = cpu_exec(&pVM->rem.s.Env);
     990    rc = cpu_exec(&pVM->rem.s.Env);
    982991    TMNotifyEndOfExecution(pVM);
    983992    switch (rc)
     
    11041113    /* !!! THIS MUST BE IN SYNC WITH emR3Reschedule !!! */
    11051114    /* !!! THIS MUST BE IN SYNC WITH emR3Reschedule !!! */
     1115    uint32_t u32CR0;
    11061116
    11071117    /* Update counter. */
     
    11101120    if (HWACCMIsEnabled(env->pVM))
    11111121    {
     1122        CPUMCTX Ctx;
     1123
    11121124        env->state |= CPU_RAW_HWACC;
    11131125
     
    11151127         * Create partial context for HWACCMR3CanExecuteGuest
    11161128         */
    1117         CPUMCTX Ctx;
    11181129        Ctx.cr0            = env->cr[0];
    11191130        Ctx.cr3            = env->cr[3];
     
    12151226    }
    12161227
    1217     uint32_t u32CR0 = env->cr[0];
     1228    u32CR0 = env->cr[0];
    12181229    if ((u32CR0 & (X86_CR0_PG | X86_CR0_PE)) != (X86_CR0_PG | X86_CR0_PE))
    12191230    {
     
    13441355{
    13451356    PVM pVM = env->pVM;
     1357    PCPUMCTX pCtx;
     1358    int rc;
    13461359
    13471360    /*
     
    13591372     * Update the control registers before calling PGMFlushPage.
    13601373     */
    1361     PCPUMCTX pCtx = (PCPUMCTX)pVM->rem.s.pCtx;
     1374    pCtx = (PCPUMCTX)pVM->rem.s.pCtx;
    13621375    pCtx->cr0 = env->cr[0];
    13631376    pCtx->cr3 = env->cr[3];
     
    13671380     * Let PGM do the rest.
    13681381     */
    1369     int rc = PGMInvalidatePage(pVM, GCPtr);
     1382    rc = PGMInvalidatePage(pVM, GCPtr);
    13701383    if (VBOX_FAILURE(rc))
    13711384    {
     
    14261439{
    14271440    PVM pVM = env->pVM;
     1441    PCPUMCTX pCtx;
    14281442
    14291443    /*
     
    14451459     * Update the control registers before calling PGMR3FlushTLB.
    14461460     */
    1447     PCPUMCTX pCtx = (PCPUMCTX)pVM->rem.s.pCtx;
     1461    pCtx = (PCPUMCTX)pVM->rem.s.pCtx;
    14481462    pCtx->cr0 = env->cr[0];
    14491463    pCtx->cr3 = env->cr[3];
     
    14661480    int rc;
    14671481    PVM pVM = env->pVM;
     1482    PCPUMCTX pCtx;
    14681483
    14691484    /*
     
    14791494     * as it may need to map whatever cr3 is pointing to.
    14801495     */
    1481     PCPUMCTX pCtx = (PCPUMCTX)pVM->rem.s.pCtx;
     1496    pCtx = (PCPUMCTX)pVM->rem.s.pCtx;
    14821497    pCtx->cr0 = env->cr[0];
    14831498    pCtx->cr3 = env->cr[3];
     
    16281643REMR3DECL(int)  REMR3State(PVM pVM, bool fFlushTBs)
    16291644{
     1645    register const CPUMCTX *pCtx;
     1646    register unsigned       fFlags;
     1647    bool                    fHiddenSelRegsValid;
     1648    unsigned                i;
     1649    TRPMEVENT               enmType;
     1650    uint8_t                 u8TrapNo;
     1651    int                     rc;
     1652
    16301653    Log2(("REMR3State:\n"));
    16311654    STAM_PROFILE_START(&pVM->rem.s.StatsState, a);
    1632     register const CPUMCTX *pCtx = pVM->rem.s.pCtx;
    1633     register unsigned       fFlags;
    1634     bool                    fHiddenSelRegsValid = CPUMAreHiddenSelRegsValid(pVM);
    1635     unsigned                i;
     1655         
     1656    pCtx = pVM->rem.s.pCtx;
     1657    fHiddenSelRegsValid = CPUMAreHiddenSelRegsValid(pVM);
    16361658
    16371659    Assert(!pVM->rem.s.fInREM);
     
    17161738    if (pVM->rem.s.cInvalidatedPages)
    17171739    {
     1740        RTUINT i;
     1741       
    17181742        pVM->rem.s.fIgnoreInvlPg = true;
    1719         RTUINT i;
    17201743        for (i = 0; i < pVM->rem.s.cInvalidatedPages; i++)
    17211744        {
     
    19761999     */
    19772000    pVM->rem.s.Env.exception_index = -1; /** @todo this won't work :/ */
    1978     TRPMEVENT   enmType;
    1979     uint8_t     u8TrapNo;
    1980     int rc = TRPMQueryTrap(pVM, &u8TrapNo, &enmType);
     2001    rc = TRPMQueryTrap(pVM, &u8TrapNo, &enmType);
    19812002    if (VBOX_SUCCESS(rc))
    19822003    {
     
    20762097REMR3DECL(int) REMR3StateBack(PVM pVM)
    20772098{
     2099    register PCPUMCTX pCtx = pVM->rem.s.pCtx;
     2100    unsigned          i;
     2101
    20782102    Log2(("REMR3StateBack:\n"));
    20792103    Assert(pVM->rem.s.fInREM);
    20802104    STAM_PROFILE_START(&pVM->rem.s.StatsStateBack, a);
    2081     register PCPUMCTX pCtx = pVM->rem.s.pCtx;
    2082     unsigned          i;
    2083 
    2084     /*
     2105        /*
    20852106     * Copy back the registers.
    20862107     * This is done in the order they are declared in the CPUMCTX structure.
     
    22692290        &&  pVM->rem.s.Env.exception_index < 256)
    22702291    {
     2292        int rc;
     2293
    22712294        Log(("REMR3StateBack: Pending trap %x %d\n", pVM->rem.s.Env.exception_index, pVM->rem.s.Env.exception_is_int));
    2272         int rc = TRPMAssertTrap(pVM, pVM->rem.s.Env.exception_index, (pVM->rem.s.Env.exception_is_int) ? TRPM_SOFTWARE_INT : TRPM_HARDWARE_INT);
     2295        rc = TRPMAssertTrap(pVM, pVM->rem.s.Env.exception_index, (pVM->rem.s.Env.exception_is_int) ? TRPM_SOFTWARE_INT : TRPM_HARDWARE_INT);
    22732296        AssertRC(rc);
    22742297        switch (pVM->rem.s.Env.exception_index)
     
    23012324static void remR3StateUpdate(PVM pVM)
    23022325{
    2303     Assert(pVM->rem.s.fInREM);
    23042326    register PCPUMCTX pCtx = pVM->rem.s.pCtx;
    23052327    unsigned          i;
    23062328
     2329    Assert(pVM->rem.s.fInREM);
     2330   
    23072331    /*
    23082332     * Copy back the registers.
     
    24922516REMR3DECL(void) REMR3A20Set(PVM pVM, bool fEnable)
    24932517{
     2518    bool fSaved;
     2519
    24942520    LogFlow(("REMR3A20Set: fEnable=%d\n", fEnable));
    24952521    VM_ASSERT_EMT(pVM);
    24962522
    2497     bool fSaved = pVM->rem.s.fIgnoreAll; /* just in case. */
     2523    fSaved = pVM->rem.s.fIgnoreAll; /* just in case. */
    24982524    pVM->rem.s.fIgnoreAll = fSaved || !pVM->rem.s.fInREM;
    24992525
     
    25122538REMR3DECL(void) REMR3ReplayInvalidatedPages(PVM pVM)
    25132539{
     2540    RTUINT i;
     2541   
    25142542    VM_ASSERT_EMT(pVM);
    25152543
     
    25262554     */
    25272555    pVM->rem.s.fIgnoreInvlPg = true;
    2528     RTUINT i;
    25292556    for (i = 0; i < pVM->rem.s.cInvalidatedPages; i++)
    25302557    {
     
    25452572REMR3DECL(void) REMR3ReplayHandlerNotifications(PVM pVM)
    25462573{
     2574    /*
     2575     * Replay the flushes.
     2576     */
     2577    RTUINT i;
     2578    const RTUINT c = pVM->rem.s.cHandlerNotifications;
     2579   
    25472580    LogFlow(("REMR3ReplayInvalidatedPages:\n"));
    25482581    VM_ASSERT_EMT(pVM);
    25492582
    2550     /*
    2551      * Replay the flushes.
    2552      */
    2553     RTUINT i;
    2554     const RTUINT c = pVM->rem.s.cHandlerNotifications;
    25552583    pVM->rem.s.cHandlerNotifications = 0;
    25562584    for (i = 0; i < c; i++)
     
    27452773    int rc;
    27462774    PVM pVM = cpu_single_env->pVM;
     2775    const RTGCPHYS GCPhys = physaddr;
    27472776
    27482777    LogFlow(("remR3GrowDynRange %VGp\n", physaddr));
    2749     const RTGCPHYS GCPhys = physaddr;
    27502778    rc = PGM3PhysGrowRange(pVM, &GCPhys);
    27512779    if (VBOX_SUCCESS(rc))
     
    32743302static void     remR3MMIOWriteU8(void *pvVM, target_phys_addr_t GCPhys, uint32_t u32)
    32753303{
     3304    int rc;
    32763305    Log2(("remR3MMIOWriteU8: GCPhys=%VGp u32=%#x\n", GCPhys, u32));
    3277     int rc = IOMMMIOWrite((PVM)pvVM, GCPhys, u32, 1);
     3306    rc = IOMMMIOWrite((PVM)pvVM, GCPhys, u32, 1);
    32783307    AssertMsg(rc == VINF_SUCCESS, ("rc=%Vrc\n", rc)); NOREF(rc);
    32793308}
     
    32823311static void     remR3MMIOWriteU16(void *pvVM, target_phys_addr_t GCPhys, uint32_t u32)
    32833312{
     3313    int rc;
    32843314    Log2(("remR3MMIOWriteU16: GCPhys=%VGp u32=%#x\n", GCPhys, u32));
    3285     int rc = IOMMMIOWrite((PVM)pvVM, GCPhys, u32, 2);
     3315    rc = IOMMMIOWrite((PVM)pvVM, GCPhys, u32, 2);
    32863316    AssertMsg(rc == VINF_SUCCESS, ("rc=%Vrc\n", rc)); NOREF(rc);
    32873317}
     
    32903320static void     remR3MMIOWriteU32(void *pvVM, target_phys_addr_t GCPhys, uint32_t u32)
    32913321{
     3322    int rc;
    32923323    Log2(("remR3MMIOWriteU32: GCPhys=%VGp u32=%#x\n", GCPhys, u32));
    3293     int rc = IOMMMIOWrite((PVM)pvVM, GCPhys, u32, 4);
     3324    rc = IOMMMIOWrite((PVM)pvVM, GCPhys, u32, 4);
    32943325    AssertMsg(rc == VINF_SUCCESS, ("rc=%Vrc\n", rc)); NOREF(rc);
    32953326}
     
    33033334static uint32_t remR3HandlerReadU8(void *pvVM, target_phys_addr_t GCPhys)
    33043335{
     3336    uint8_t u8;
    33053337    Log2(("remR3HandlerReadU8: GCPhys=%VGp\n", GCPhys));
    3306     uint8_t u8;
    33073338    PGMPhysRead((PVM)pvVM, GCPhys, &u8, sizeof(u8));
    33083339    return u8;
     
    33113342static uint32_t remR3HandlerReadU16(void *pvVM, target_phys_addr_t GCPhys)
    33123343{
     3344    uint16_t u16;
    33133345    Log2(("remR3HandlerReadU16: GCPhys=%VGp\n", GCPhys));
    3314     uint16_t u16;
    33153346    PGMPhysRead((PVM)pvVM, GCPhys, &u16, sizeof(u16));
    33163347    return u16;
     
    33193350static uint32_t remR3HandlerReadU32(void *pvVM, target_phys_addr_t GCPhys)
    33203351{
     3352    uint32_t u32;
    33213353    Log2(("remR3HandlerReadU32: GCPhys=%VGp\n", GCPhys));
    3322     uint32_t u32;
    33233354    PGMPhysRead((PVM)pvVM, GCPhys, &u32, sizeof(u32));
    33243355    return u32;
     
    34343465bool remR3DisasBlock(CPUState *env, int f32BitCode, int nrInstructions, char *pszPrefix)
    34353466{
    3436     int i;
     3467    int           i, rc;
     3468    RTGCPTR       GCPtrPC;
     3469    uint8_t       *pvPC;
     3470    RTINTPTR      off;
     3471    DISCPUSTATE   Cpu;
    34373472
    34383473    /*
     
    34463481     * We don't care to much about cross page correctness presently.
    34473482     */
    3448     RTGCPTR    GCPtrPC = env->segs[R_CS].base + env->eip;
    3449     void      *pvPC;
     3483    GCPtrPC = env->segs[R_CS].base + env->eip;
    34503484    if (f32BitCode && (env->cr[0] & (X86_CR0_PE | X86_CR0_PG)) == (X86_CR0_PE | X86_CR0_PG))
    34513485    {
     
    34533487
    34543488        /* convert eip to physical address. */
    3455         int rc = PGMPhysGCPtr2HCPtrByGstCR3(env->pVM,
    3456                                             GCPtrPC,
    3457                                             env->cr[3],
    3458                                             env->cr[4] & (X86_CR4_PSE | X86_CR4_PAE), /** @todo add longmode flag */
    3459                                             &pvPC);
     3489        rc = PGMPhysGCPtr2HCPtrByGstCR3(env->pVM,
     3490                                        GCPtrPC,
     3491                                        env->cr[3],
     3492                                        env->cr[4] & (X86_CR4_PSE | X86_CR4_PAE), /** @todo add longmode flag */
     3493                                        &pvPC);
    34603494        if (VBOX_FAILURE(rc))
    34613495        {
     
    34693503    {
    34703504        /* physical address */
    3471         int rc = PGMPhysGCPhys2HCPtr(env->pVM, (RTGCPHYS)GCPtrPC, nrInstructions * 16, &pvPC);
     3505        rc = PGMPhysGCPhys2HCPtr(env->pVM, (RTGCPHYS)GCPtrPC, nrInstructions * 16, &pvPC);
    34723506        if (VBOX_FAILURE(rc))
    34733507            return false;
     
    34773511     * Disassemble.
    34783512     */
    3479     RTINTPTR        off = env->eip - (RTGCUINTPTR)pvPC;
    3480     DISCPUSTATE     Cpu;
     3513    off = env->eip - (RTGCUINTPTR)pvPC;
    34813514    Cpu.mode = f32BitCode ? CPUMODE_32BIT : CPUMODE_16BIT;
    34823515    Cpu.pfnReadBytes = NULL;            /** @todo make cs:eip reader for the disassembler. */
     
    35183551{
    35193552#ifdef USE_OLD_DUMP_AND_DISASSEMBLY
    3520     PVM pVM = env->pVM;
     3553    PVM         pVM =   env->pVM;
     3554    RTGCPTR     GCPtrPC;
     3555    uint8_t     *pvPC;
     3556    char        szOutput[256];
     3557    uint32_t    cbOp;
     3558    RTINTPTR    off;
     3559    DISCPUSTATE Cpu;
     3560                         
    35213561
    35223562    /* Doesn't work in long mode. */
     
    35433583     * We don't care to much about cross page correctness presently.
    35443584     */
    3545     RTGCPTR    GCPtrPC = env->segs[R_CS].base + env->eip;
    3546     void      *pvPC;
     3585    GCPtrPC = env->segs[R_CS].base + env->eip;
    35473586    if ((env->cr[0] & (X86_CR0_PE | X86_CR0_PG)) == (X86_CR0_PE | X86_CR0_PG))
    35483587    {
     
    35733612     * Disassemble.
    35743613     */
    3575     RTINTPTR        off = env->eip - (RTGCUINTPTR)pvPC;
    3576     DISCPUSTATE     Cpu;
     3614    off = env->eip - (RTGCUINTPTR)pvPC;
    35773615    Cpu.mode = f32BitCode ? CPUMODE_32BIT : CPUMODE_16BIT;
    35783616    Cpu.pfnReadBytes = NULL;            /** @todo make cs:eip reader for the disassembler. */
     
    35803618    //Cpu.dwUserData[1] = (uintptr_t)pvPC;
    35813619    //Cpu.dwUserData[2] = GCPtrPC;
    3582     char szOutput[256];
    3583     uint32_t    cbOp;
    35843620    if (RT_FAILURE(DISInstr(&Cpu, (uintptr_t)pvPC, off, &cbOp, &szOutput[0])))
    35853621        return false;
     
    36913727    {
    36923728        PVM pVM = cpu_single_env->pVM;
     3729        RTSEL cs;
     3730        RTGCUINTPTR eip;
    36933731
    36943732        /*
     
    37013739         */
    37023740        RTLogPrintf("Guest Code: PC=%VGp #VGp (%VGp) bytes fFlags=%d\n", uCode, cb, cb, fFlags);
    3703         RTSEL cs = cpu_single_env->segs[R_CS].selector;
    3704         RTGCUINTPTR eip = uCode - cpu_single_env->segs[R_CS].base;
     3741        cs = cpu_single_env->segs[R_CS].selector;
     3742        eip = uCode - cpu_single_env->segs[R_CS].base;
    37053743        for (;;)
    37063744        {
     
    41204158void cpu_outb(CPUState *env, int addr, int val)
    41214159{
     4160    int rc;
     4161
    41224162    if (addr != 0x80 && addr != 0x70 && addr != 0x61)
    41234163        Log2(("cpu_outb: addr=%#06x val=%#x\n", addr, val));
    41244164
    4125     int rc = IOMIOPortWrite(env->pVM, (RTIOPORT)addr, val, 1);
     4165    rc = IOMIOPortWrite(env->pVM, (RTIOPORT)addr, val, 1);
    41264166    if (RT_LIKELY(rc == VINF_SUCCESS))
    41274167        return;
     
    41524192void cpu_outl(CPUState *env, int addr, int val)
    41534193{
     4194    int rc;
    41544195    Log2(("cpu_outl: addr=%#06x val=%#x\n", addr, val));
    4155     int rc = IOMIOPortWrite(env->pVM, (RTIOPORT)addr, val, 4);
     4196    rc = IOMIOPortWrite(env->pVM, (RTIOPORT)addr, val, 4);
    41564197    if (RT_LIKELY(rc == VINF_SUCCESS))
    41574198        return;
     
    42864327void cpu_abort(CPUState *env, const char *pszFormat, ...)
    42874328{
     4329    va_list args;
     4330    PVM pVM;
     4331   
    42884332    /*
    42894333     * Bitch about it.
    42904334     */
     4335#ifndef _MSC_VER
     4336    /** @todo: MSVC is right - it's not valid C */
    42914337    RTLogFlags(NULL, "nodisabled nobuffered");
    4292     va_list args;
     4338#endif
    42934339    va_start(args, pszFormat);
    42944340    RTLogPrintf("fatal error in recompiler cpu: %N\n", pszFormat, &args);
     
    43024348     * the EMs failure handling.
    43034349     */
    4304     PVM pVM = cpu_single_env->pVM;
     4350    pVM = cpu_single_env->pVM;
    43054351    if (pVM->rem.s.fInREM)
    43064352        REMR3StateBack(pVM);
     
    43184364static void remAbort(int rc, const char *pszTip)
    43194365{
     4366    PVM pVM;
     4367
    43204368    /*
    43214369     * Bitch about it.
     
    43274375     * Jump back to where we entered the recompiler.
    43284376     */
    4329     PVM pVM = cpu_single_env->pVM;
     4377    pVM = cpu_single_env->pVM;
    43304378    if (pVM->rem.s.fInREM)
    43314379        REMR3StateBack(pVM);
  • trunk/src/recompiler_new/bswap.h

    r2422 r13382  
    7979
    8080#ifndef bswap16 /* BSD endian.h clash */
     81#ifndef VBOX
    8182static inline uint16_t bswap16(uint16_t x)
     83#else
     84DECLINLINE(uint16_t) bswap16(uint16_t x)
     85#endif
    8286{
    8387    return bswap_16(x);
     
    8690
    8791#ifndef bswap32 /* BSD endian.h clash */
     92#ifndef VBOX
    8893static inline uint32_t bswap32(uint32_t x)
     94#else
     95DECLINLINE(uint32_t) bswap32(uint32_t x)
     96#endif
    8997{
    9098    return bswap_32(x);
     
    93101
    94102#ifndef bswap64 /* BSD endian.h clash. */
     103#ifndef VBOX
    95104static inline uint64_t bswap64(uint64_t x)
     105#else
     106DECLINLINE(uint64_t) bswap64(uint64_t x)
     107#endif
    96108{
    97109    return bswap_64(x);
     
    99111#endif
    100112
     113#ifndef VBOX
    101114static inline void bswap16s(uint16_t *s)
     115#else
     116DECLINLINE(void) bswap16s(uint16_t *s)
     117#endif
    102118{
    103119    *s = bswap16(*s);
    104120}
    105121
     122#ifndef VBOX
    106123static inline void bswap32s(uint32_t *s)
     124#else
     125DECLINLINE(void) bswap32s(uint32_t *s)
     126#endif
    107127{
    108128    *s = bswap32(*s);
    109129}
    110130
     131#ifndef VBOX
    111132static inline void bswap64s(uint64_t *s)
     133#else
     134DECLINLINE(void) bswap64s(uint64_t *s)
     135#endif
    112136{
    113137    *s = bswap64(*s);
     
    126150#endif
    127151
     152#ifndef VBOX
    128153#define CPU_CONVERT(endian, size, type)\
    129154static inline type endian ## size ## _to_cpu(type v)\
     
    156181     *p = cpu_to_ ## endian ## size(v);\
    157182}
     183#else  /* VBOX */
     184#define CPU_CONVERT(endian, size, type)\
     185DECLINLINE(type) endian ## size ## _to_cpu(type v)\
     186{\
     187    return endian ## _bswap(v, size);\
     188}\
     189\
     190DECLINLINE(type) cpu_to_ ## endian ## size(type v)\
     191{\
     192    return endian ## _bswap(v, size);\
     193}\
     194\
     195DECLINLINE(void) endian ## size ## _to_cpus(type *p)\
     196{\
     197    endian ## _bswaps(p, size)\
     198}\
     199\
     200DECLINLINE(void) cpu_to_ ## endian ## size ## s(type *p)\
     201{\
     202    endian ## _bswaps(p, size)\
     203}\
     204\
     205DECLINLINE(type) endian ## size ## _to_cpup(const type *p)\
     206{\
     207    return endian ## size ## _to_cpu(*p);\
     208}\
     209\
     210DECLINLINE(void) cpu_to_ ## endian ## size ## w(type *p, type v)\
     211{\
     212     *p = cpu_to_ ## endian ## size(v);\
     213}
     214#endif /* VBOX */
    158215
    159216CPU_CONVERT(be, 16, uint16_t)
  • trunk/src/recompiler_new/cpu-all.h

    r13230 r13382  
    3232#ifdef VBOX
    3333# ifndef LOG_GROUP
    34 #  include <VBox/log.h>
    3534#  define LOG_GROUP LOG_GROUP_REM
    3635# endif
     36# include <VBox/log.h>
    3737# include <VBox/pgm.h> /* PGM_DYNAMIC_RAM_ALLOC */
    3838#endif
     
    9595#else
    9696
     97#ifndef VBOX
    9798static inline uint16_t tswap16(uint16_t s)
     99#else
     100DECLINLINE(uint16_t) tswap16(uint16_t s)
     101#endif
    98102{
    99103    return s;
    100104}
    101105
     106#ifndef VBOX
    102107static inline uint32_t tswap32(uint32_t s)
     108#else
     109DECLINLINE(uint32_t) tswap32(uint32_t s)
     110#endif
    103111{
    104112    return s;
    105113}
    106114
     115#ifndef VBOX
    107116static inline uint64_t tswap64(uint64_t s)
     117#else
     118DECLINLINE(uint64_t) tswap64(uint64_t s)
     119#endif
    108120{
    109121    return s;
    110122}
    111123
     124#ifndef VBOX
    112125static inline void tswap16s(uint16_t *s)
    113 {
    114 }
    115 
     126#else
     127DECLINLINE(void) tswap16s(uint16_t *s)
     128#endif
     129{
     130}
     131
     132#ifndef VBOX
    116133static inline void tswap32s(uint32_t *s)
    117 {
    118 }
    119 
     134#else
     135DECLINLINE(void) tswap32s(uint32_t *s)
     136#endif
     137{
     138}
     139
     140#ifndef VBOX
    120141static inline void tswap64s(uint64_t *s)
     142#else
     143DECLINLINE(void) tswap64s(uint64_t *s)
     144#endif
    121145{
    122146}
     
    249273#endif
    250274
    251 static inline int ldub_p(void *ptr)
     275DECLINLINE(int) ldub_p(void *ptr)
    252276{
    253277    VBOX_CHECK_ADDR(ptr);
     
    255279}
    256280
    257 static inline int ldsb_p(void *ptr)
     281DECLINLINE(int) ldsb_p(void *ptr)
    258282{
    259283    VBOX_CHECK_ADDR(ptr);
     
    261285}
    262286
    263 static inline void stb_p(void *ptr, int v)
     287DECLINLINE(void) stb_p(void *ptr, int v)
    264288{
    265289    VBOX_CHECK_ADDR(ptr);
     
    267291}
    268292
    269 static inline int lduw_le_p(void *ptr)
     293DECLINLINE(int) lduw_le_p(void *ptr)
    270294{
    271295    VBOX_CHECK_ADDR(ptr);
     
    273297}
    274298
    275 static inline int ldsw_le_p(void *ptr)
     299DECLINLINE(int) ldsw_le_p(void *ptr)
    276300{
    277301    VBOX_CHECK_ADDR(ptr);
     
    279303}
    280304
    281 static inline void stw_le_p(void *ptr, int v)
     305DECLINLINE(void) stw_le_p(void *ptr, int v)
    282306{
    283307    VBOX_CHECK_ADDR(ptr);
     
    285309}
    286310
    287 static inline int ldl_le_p(void *ptr)
     311DECLINLINE(int) ldl_le_p(void *ptr)
    288312{
    289313    VBOX_CHECK_ADDR(ptr);
     
    291315}
    292316
    293 static inline void stl_le_p(void *ptr, int v)
     317DECLINLINE(void) stl_le_p(void *ptr, int v)
    294318{
    295319    VBOX_CHECK_ADDR(ptr);
     
    297321}
    298322
    299 static inline void stq_le_p(void *ptr, uint64_t v)
     323DECLINLINE(void) stq_le_p(void *ptr, uint64_t v)
    300324{
    301325    VBOX_CHECK_ADDR(ptr);
     
    303327}
    304328
    305 static inline uint64_t ldq_le_p(void *ptr)
     329DECLINLINE(uint64_t) ldq_le_p(void *ptr)
    306330{
    307331    VBOX_CHECK_ADDR(ptr);
     
    313337/* float access */
    314338
    315 static inline float32 ldfl_le_p(void *ptr)
     339DECLINLINE(float32) ldfl_le_p(void *ptr)
    316340{
    317341    union {
     
    323347}
    324348
    325 static inline void stfl_le_p(void *ptr, float32 v)
     349DECLINLINE(void) stfl_le_p(void *ptr, float32 v)
    326350{
    327351    union {
     
    333357}
    334358
    335 static inline float64 ldfq_le_p(void *ptr)
     359DECLINLINE(float64) ldfq_le_p(void *ptr)
    336360{
    337361    CPU_DoubleU u;
    338362    u.l.lower = ldl_le_p(ptr);
    339     u.l.upper = ldl_le_p(ptr + 4);
     363    u.l.upper = ldl_le_p((uint8_t*)ptr + 4);
    340364    return u.d;
    341365}
    342366
    343 static inline void stfq_le_p(void *ptr, float64 v)
     367DECLINLINE(void) stfq_le_p(void *ptr, float64 v)
    344368{
    345369    CPU_DoubleU u;
    346370    u.d = v;
    347371    stl_le_p(ptr, u.l.lower);
    348     stl_le_p(ptr + 4, u.l.upper);
     372    stl_le_p((uint8_t*)ptr + 4, u.l.upper);
    349373}
    350374
     
    549573#if !defined(WORDS_BIGENDIAN) || defined(WORDS_ALIGNED)
    550574
     575#ifndef VBOX
    551576static inline int lduw_be_p(void *ptr)
    552577{
     
    563588#endif
    564589}
    565 
     590#else /* VBOX */
     591DECLINLINE(int) lduw_be_p(void *ptr)
     592{
     593#if defined(__i386__) && !defined(_MSC_VER)
     594    int val;
     595    asm volatile ("movzwl %1, %0\n"
     596                  "xchgb %b0, %h0\n"
     597                  : "=q" (val)
     598                  : "m" (*(uint16_t *)ptr));
     599    return val;
     600#else
     601    uint8_t *b = (uint8_t *) ptr;
     602    return ((b[0] << 8) | b[1]);
     603#endif
     604}
     605#endif
     606
     607#ifndef VBOX
    566608static inline int ldsw_be_p(void *ptr)
    567609{
     
    578620#endif
    579621}
    580 
     622#else
     623DECLINLINE(int) ldsw_be_p(void *ptr)
     624{
     625#if defined(__i386__) && !defined(_MSC_VER)
     626    int val;
     627    asm volatile ("movzwl %1, %0\n"
     628                  "xchgb %b0, %h0\n"
     629                  : "=q" (val)
     630                  : "m" (*(uint16_t *)ptr));
     631    return (int16_t)val;
     632#else
     633    uint8_t *b = (uint8_t *) ptr;
     634    return (int16_t)((b[0] << 8) | b[1]);
     635#endif
     636}
     637#endif
     638
     639#ifndef VBOX
    581640static inline int ldl_be_p(void *ptr)
    582641{
     
    593652#endif
    594653}
    595 
     654#else
     655DECLINLINE(int) ldl_be_p(void *ptr)
     656{
     657#if (defined(__i386__) || defined(__x86_64__)) && !defined(_MSC_VER)
     658    int val;
     659    asm volatile ("movl %1, %0\n"
     660                  "bswap %0\n"
     661                  : "=r" (val)
     662                  : "m" (*(uint32_t *)ptr));
     663    return val;
     664#else
     665    uint8_t *b = (uint8_t *) ptr;
     666    return (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3];
     667#endif
     668}
     669#endif
     670
     671#ifndef VBOX
    596672static inline uint64_t ldq_be_p(void *ptr)
     673#else
     674DECLINLINE(uint64_t) ldq_be_p(void *ptr)
     675#endif
    597676{
    598677    uint32_t a,b;
    599678    a = ldl_be_p(ptr);
    600     b = ldl_be_p(ptr+4);
     679    b = ldl_be_p((uint8_t*)ptr+4);
    601680    return (((uint64_t)a<<32)|b);
    602681}
    603682
     683#ifndef VBOX
    604684static inline void stw_be_p(void *ptr, int v)
    605685{
     
    615695#endif
    616696}
    617 
     697#else
     698DECLINLINE(void) stw_be_p(void *ptr, int v)
     699{
     700#if defined(__i386__) && !defined(_MSC_VER)
     701    asm volatile ("xchgb %b0, %h0\n"
     702                  "movw %w0, %1\n"
     703                  : "=q" (v)
     704                  : "m" (*(uint16_t *)ptr), "0" (v));
     705#else
     706    uint8_t *d = (uint8_t *) ptr;
     707    d[0] = v >> 8;
     708    d[1] = v;
     709#endif
     710}
     711
     712#endif /* VBOX */
     713
     714#ifndef VBOX
    618715static inline void stl_be_p(void *ptr, int v)
    619716{
     
    631728#endif
    632729}
    633 
     730#else
     731DECLINLINE(void) stl_be_p(void *ptr, int v)
     732{
     733#if !defined(_MSC_VER) && (defined(__i386__) || defined(__x86_64__))
     734    asm volatile ("bswap %0\n"
     735                  "movl %0, %1\n"
     736                  : "=r" (v)
     737                  : "m" (*(uint32_t *)ptr), "0" (v));
     738#else
     739    uint8_t *d = (uint8_t *) ptr;
     740    d[0] = v >> 24;
     741    d[1] = v >> 16;
     742    d[2] = v >> 8;
     743    d[3] = v;
     744#endif
     745}
     746#endif /* VBOX */
     747
     748#ifndef VBOX
    634749static inline void stq_be_p(void *ptr, uint64_t v)
     750#else
     751DECLINLINE(void) stq_be_p(void *ptr, uint64_t v)
     752#endif
    635753{
    636754    stl_be_p(ptr, v >> 32);
    637     stl_be_p(ptr + 4, v);
     755    stl_be_p((uint8_t*)ptr + 4, v);
    638756}
    639757
    640758/* float access */
    641 
     759#ifndef VBOX
    642760static inline float32 ldfl_be_p(void *ptr)
     761#else
     762DECLINLINE(float32) ldfl_be_p(void *ptr)
     763#endif
    643764{
    644765    union {
     
    650771}
    651772
     773#ifndef VBOX
    652774static inline void stfl_be_p(void *ptr, float32 v)
     775#else
     776DECLINLINE(void) stfl_be_p(void *ptr, float32 v)
     777#endif
    653778{
    654779    union {
     
    660785}
    661786
     787#ifndef VBOX
    662788static inline float64 ldfq_be_p(void *ptr)
     789#else
     790DECLINLINE(float64) ldfq_be_p(void *ptr)
     791#endif
    663792{
    664793    CPU_DoubleU u;
    665794    u.l.upper = ldl_be_p(ptr);
    666     u.l.lower = ldl_be_p(ptr + 4);
     795    u.l.lower = ldl_be_p((uint8_t*)ptr + 4);
    667796    return u.d;
    668797}
    669798
     799#ifndef VBOX
    670800static inline void stfq_be_p(void *ptr, float64 v)
     801#else
     802DECLINLINE(void) stfq_be_p(void *ptr, float64 v)
     803#endif
    671804{
    672805    CPU_DoubleU u;
    673806    u.d = v;
    674807    stl_be_p(ptr, u.l.upper);
    675     stl_be_p(ptr + 4, u.l.lower);
     808    stl_be_p((uint8_t*)ptr + 4, u.l.lower);
    676809}
    677810
     
    11031236void cpu_physical_memory_rw(target_phys_addr_t addr, uint8_t *buf,
    11041237                            int len, int is_write);
     1238#ifndef VBOX
    11051239static inline void cpu_physical_memory_read(target_phys_addr_t addr,
    11061240                                            uint8_t *buf, int len)
     1241#else
     1242DECLINLINE(void) cpu_physical_memory_read(target_phys_addr_t addr,
     1243                                          uint8_t *buf, int len)
     1244#endif
    11071245{
    11081246    cpu_physical_memory_rw(addr, buf, len, 0);
    11091247}
     1248#ifndef VBOX
    11101249static inline void cpu_physical_memory_write(target_phys_addr_t addr,
    11111250                                             const uint8_t *buf, int len)
     1251#else
     1252DECLINLINE(void) cpu_physical_memory_write(target_phys_addr_t addr,
     1253                                           const uint8_t *buf, int len)
     1254#endif
    11121255{
    11131256    cpu_physical_memory_rw(addr, (uint8_t *)buf, len, 1);
     
    11351278
    11361279/* read dirty bit (return 0 or 1) */
     1280#ifndef VBOX
    11371281static inline int cpu_physical_memory_is_dirty(ram_addr_t addr)
    11381282{
    1139 #ifdef VBOX
     1283    return phys_ram_dirty[addr >> TARGET_PAGE_BITS] == 0xff;
     1284}
     1285#else
     1286DECLINLINE(int) cpu_physical_memory_is_dirty(ram_addr_t addr)
     1287{
    11401288    if (RT_UNLIKELY((addr >> TARGET_PAGE_BITS) >= phys_ram_dirty_size))
    11411289    {
     
    11441292        return 0;
    11451293    }
    1146 #endif
    11471294    return phys_ram_dirty[addr >> TARGET_PAGE_BITS] == 0xff;
    11481295}
    1149 
     1296#endif
     1297
     1298#ifndef VBOX
    11501299static inline int cpu_physical_memory_get_dirty(ram_addr_t addr,
    11511300                                                int dirty_flags)
    11521301{
    1153 #ifdef VBOX
     1302    return phys_ram_dirty[addr >> TARGET_PAGE_BITS] & dirty_flags;
     1303}
     1304#else
     1305DECLINLINE(int) cpu_physical_memory_get_dirty(ram_addr_t addr,
     1306                                              int dirty_flags)
     1307{
    11541308    if (RT_UNLIKELY((addr >> TARGET_PAGE_BITS) >= phys_ram_dirty_size))
    11551309    {
     
    11581312        return 0xff & dirty_flags; /** @todo I don't think this is the right thing to return, fix! */
    11591313    }
    1160 #endif
    11611314    return phys_ram_dirty[addr >> TARGET_PAGE_BITS] & dirty_flags;
    11621315}
    1163 
     1316#endif
     1317
     1318#ifndef VBOX
    11641319static inline void cpu_physical_memory_set_dirty(ram_addr_t addr)
    11651320{
    1166 #ifdef VBOX
     1321    phys_ram_dirty[addr >> TARGET_PAGE_BITS] = 0xff;
     1322}
     1323#else
     1324DECLINLINE(void) cpu_physical_memory_set_dirty(ram_addr_t addr)
     1325{
    11671326    if (RT_UNLIKELY((addr >> TARGET_PAGE_BITS) >= phys_ram_dirty_size))
    11681327    {
     
    11711330        return;
    11721331    }
    1173 #endif
    11741332    phys_ram_dirty[addr >> TARGET_PAGE_BITS] = 0xff;
    11751333}
     1334#endif
    11761335
    11771336void cpu_physical_memory_reset_dirty(ram_addr_t start, ram_addr_t end,
     
    11891348/* host CPU ticks (if available) */
    11901349
    1191 #if defined(__powerpc__)
     1350#ifdef VBOX
     1351
     1352DECLINLINE(int64_t) cpu_get_real_ticks(void)
     1353{
     1354    return  ASMReadTSC();
     1355}
     1356
     1357#elif defined(__powerpc__)
    11921358
    11931359static inline uint32_t get_tbl(void)
  • trunk/src/recompiler_new/cpu-exec.c

    r13301 r13382  
    169169}
    170170
     171#ifndef VBOX
    171172static inline TranslationBlock *tb_find_fast(void)
     173#else
     174DECLINLINE(TranslationBlock *) tb_find_fast(void)
     175#endif
    172176{
    173177    TranslationBlock *tb;
  • trunk/src/recompiler_new/exec-all.h

    r13337 r13382  
    112112                      target_phys_addr_t paddr, int prot,
    113113                      int mmu_idx, int is_softmmu);
     114#ifndef VBOX
    114115static inline int tlb_set_page(CPUState *env1, target_ulong vaddr,
    115116                               target_phys_addr_t paddr, int prot,
    116117                               int mmu_idx, int is_softmmu)
     118#else
     119DECLINLINE(int) tlb_set_page(CPUState *env1, target_ulong vaddr,
     120                               target_phys_addr_t paddr, int prot,
     121                               int mmu_idx, int is_softmmu)
     122#endif
    117123{
    118124    if (prot & PAGE_READ)
     
    190196};
    191197
     198#ifndef VBOX
    192199static inline unsigned int tb_jmp_cache_hash_page(target_ulong pc)
     200#else
     201DECLINLINE(unsigned int) tb_jmp_cache_hash_page(target_ulong pc)
     202#endif
    193203{
    194204    target_ulong tmp;
     
    197207}
    198208
     209#ifndef VBOX
    199210static inline unsigned int tb_jmp_cache_hash_func(target_ulong pc)
     211#else
     212DECLINLINE(unsigned int) tb_jmp_cache_hash_func(target_ulong pc)
     213#endif
     214
    200215{
    201216    target_ulong tmp;
     
    205220}
    206221
     222#ifndef VBOX
    207223static inline unsigned int tb_phys_hash_func(unsigned long pc)
     224#else
     225DECLINLINE(unsigned int) tb_phys_hash_func(unsigned long pc)
     226#endif
    208227{
    209228    return pc & (CODE_GEN_PHYS_HASH_SIZE - 1);
     
    265284
    266285/* set the jump target */
     286#ifndef VBOX
    267287static inline void tb_set_jmp_target(TranslationBlock *tb,
    268288                                     int n, unsigned long addr)
     289#else
     290DECLINLINE(void) tb_set_jmp_target(TranslationBlock *tb,
     291                                   int n, unsigned long addr)
     292#endif
    269293{
    270294    tb->tb_next[n] = addr;
     
    273297#endif
    274298
     299#ifndef VBOX
    275300static inline void tb_add_jump(TranslationBlock *tb, int n,
    276301                               TranslationBlock *tb_next)
     302#else
     303DECLINLINE(void) tb_add_jump(TranslationBlock *tb, int n,
     304                             TranslationBlock *tb_next)
     305#endif
    277306{
    278307    /* NOTE: this test is only needed for thread safety */
     
    361390/* NOTE2: the returned address is not exactly the physical address: it
    362391   is the offset relative to phys_ram_base */
     392#ifndef VBOX
    363393static inline target_ulong get_phys_addr_code(CPUState *env, target_ulong addr)
     394#else
     395DECLINLINE(target_ulong) get_phys_addr_code(CPUState *env, target_ulong addr)
     396#endif
    364397{
    365398    int is_user, index, pd;
     
    381414#error unimplemented CPU
    382415#endif
     416#ifndef VBOX
    383417    if (__builtin_expect(env->tlb_table[is_user][index].addr_code !=
    384418                         (addr & TARGET_PAGE_MASK), 0)) {
     419#else
     420    if (RT_UNLIKELY(env->tlb_table[is_user][index].addr_code !=
     421                         (addr & TARGET_PAGE_MASK))) {
     422#endif
    385423        ldub_code(addr);
    386424    }
     
    406444/* Deterministic execution requires that IO only be performed on the last
    407445   instruction of a TB so that interrupts take effect immediately.  */
     446#ifndef VBOX
    408447static inline int can_do_io(CPUState *env)
     448#else
     449DECLINLINE(int) can_do_io(CPUState *env)
     450#endif
    409451{
    410452    if (!use_icount)
  • trunk/src/recompiler_new/exec.c

    r13337 r13382  
    4545# include <stdlib.h>
    4646# include <stdio.h>
    47 # include <inttypes.h>
    4847# include <iprt/alloc.h>
    4948# include <iprt/string.h>
     
    102101spinlock_t tb_lock = SPIN_LOCK_UNLOCKED;
    103102
     103#ifndef VBOX
    104104#if defined(__arm__) || defined(__sparc_v9__)
    105105/* The prologue must be reachable with a direct jump. ARM and Sparc64
     
    113113    __attribute__((aligned (32)))
    114114#endif
    115 
    116115uint8_t code_gen_prologue[1024] code_gen_section;
     116
     117#else /* VBOX */
     118ALIGNED_MEMBER(uint8_t, code_gen_prologue[1024], 32);
     119#endif /* VBOX */
     120
    117121static uint8_t *code_gen_buffer;
    118122static unsigned long code_gen_buffer_size;
     
    331335}
    332336
     337#ifndef VBOX
    333338static inline PageDesc **page_l1_map(target_ulong index)
     339#else
     340DECLINLINE(PageDesc **) page_l1_map(target_ulong index)
     341#endif
    334342{
    335343#if TARGET_LONG_BITS > 32
     
    342350}
    343351
     352#ifndef VBOX
    344353static inline PageDesc *page_find_alloc(target_ulong index)
     354#else
     355DECLINLINE(PageDesc *) page_find_alloc(target_ulong index)
     356#endif
    345357{
    346358    PageDesc **lp, *p;
     
    373385}
    374386
     387#ifndef VBOX
    375388static inline PageDesc *page_find(target_ulong index)
     389#else
     390DECLINLINE(PageDesc *) page_find(target_ulong index)
     391#endif
    376392{
    377393    PageDesc **lp, *p;
     
    430446}
    431447
     448#ifndef VBOX
    432449static inline PhysPageDesc *phys_page_find(target_phys_addr_t index)
     450#else
     451DECLINLINE(PhysPageDesc *) phys_page_find(target_phys_addr_t index)
     452#endif
    433453{
    434454    return phys_page_find_alloc(index, 0);
     
    624644}
    625645
     646#ifndef VBOX
    626647static inline void invalidate_page_bitmap(PageDesc *p)
     648#else
     649DECLINLINE(void) invalidate_page_bitmap(PageDesc *p)
     650#endif
    627651{
    628652    if (p->code_bitmap) {
     
    737761
    738762/* invalidate one TB */
     763#ifndef VBOX
    739764static inline void tb_remove(TranslationBlock **ptb, TranslationBlock *tb,
    740765                             int next_offset)
     766#else
     767DECLINLINE(void) tb_remove(TranslationBlock **ptb, TranslationBlock *tb,
     768                           int next_offset)
     769#endif
    741770{
    742771    TranslationBlock *tb1;
     
    751780}
    752781
     782#ifndef VBOX
    753783static inline void tb_page_remove(TranslationBlock **ptb, TranslationBlock *tb)
     784#else
     785DECLINLINE(void) tb_page_remove(TranslationBlock **ptb, TranslationBlock *tb)
     786#endif
    754787{
    755788    TranslationBlock *tb1;
     
    768801}
    769802
     803#ifndef VBOX
    770804static inline void tb_jmp_remove(TranslationBlock *tb, int n)
     805#else
     806DECLINLINE(void) tb_jmp_remove(TranslationBlock *tb, int n)
     807#endif
    771808{
    772809    TranslationBlock *tb1, **ptb;
     
    798835/* reset the jump entry 'n' of a TB so that it is not chained to
    799836   another TB */
     837#ifndef VBOX
    800838static inline void tb_reset_jump(TranslationBlock *tb, int n)
     839#else
     840DECLINLINE(void) tb_reset_jump(TranslationBlock *tb, int n)
     841#endif
    801842{
    802843    tb_set_jmp_target(tb, n, (unsigned long)(tb->tc_ptr + tb->tb_next_offset[n]));
     
    907948#endif /* VBOX */
    908949
     950#ifndef VBOX
    909951static inline void set_bits(uint8_t *tab, int start, int len)
     952#else
     953DECLINLINE(void) set_bits(uint8_t *tab, int start, int len)
     954#endif
    910955{
    911956    int end, mask, end1;
     
    11201165
    11211166/* len must be <= 8 and start must be a multiple of len */
     1167#ifndef VBOX
    11221168static inline void tb_invalidate_phys_page_fast(target_phys_addr_t start, int len)
     1169#else
     1170DECLINLINE(void) tb_invalidate_phys_page_fast(target_phys_addr_t start, int len)
     1171#endif
    11231172{
    11241173    PageDesc *p;
     
    12181267
    12191268/* add the tb in the target page and protect it if necessary */
     1269#ifndef VBOX
    12201270static inline void tb_alloc_page(TranslationBlock *tb,
    12211271                                 unsigned int n, target_ulong page_addr)
     1272#else
     1273DECLINLINE(void) tb_alloc_page(TranslationBlock *tb,
     1274                                 unsigned int n, target_ulong page_addr)                   
     1275#endif
    12221276{
    12231277    PageDesc *p;
     
    13711425static void tb_reset_jump_recursive(TranslationBlock *tb);
    13721426
     1427#ifndef VBOX
    13731428static inline void tb_reset_jump_recursive2(TranslationBlock *tb, int n)
     1429#else
     1430DECLINLINE(void) tb_reset_jump_recursive2(TranslationBlock *tb, int n)
     1431#endif
    13741432{
    13751433    TranslationBlock *tb1, *tb_next, **ptb;
     
    17481806#if !defined(CONFIG_USER_ONLY)
    17491807
     1808#ifndef VBOX
    17501809static inline void tlb_flush_jmp_cache(CPUState *env, target_ulong addr)
     1810#else
     1811DECLINLINE(void) tlb_flush_jmp_cache(CPUState *env, target_ulong addr)
     1812#endif
    17511813{
    17521814    unsigned int i;
     
    18141876}
    18151877
     1878#ifndef VBOX
    18161879static inline void tlb_flush_entry(CPUTLBEntry *tlb_entry, target_ulong addr)
     1880#else
     1881DECLINLINE(void) tlb_flush_entry(CPUTLBEntry *tlb_entry, target_ulong addr)
     1882#endif
    18171883{
    18181884    if (addr == (tlb_entry->addr_read &
     
    18831949}
    18841950
     1951#ifndef VBOX
    18851952static inline void tlb_reset_dirty_range(CPUTLBEntry *tlb_entry,
    18861953                                         unsigned long start, unsigned long length)
     1954#else
     1955DECLINLINE(void) tlb_reset_dirty_range(CPUTLBEntry *tlb_entry,
     1956                                       unsigned long start, unsigned long length)
     1957#endif
    18871958{
    18881959    unsigned long addr;
     
    19682039#endif
    19692040
     2041#ifndef VBOX
    19702042static inline void tlb_update_dirty(CPUTLBEntry *tlb_entry)
     2043#else
     2044DECLINLINE(void) tlb_update_dirty(CPUTLBEntry *tlb_entry)
     2045#endif
    19712046{
    19722047    ram_addr_t ram_addr;
     
    20062081}
    20072082
     2083#ifndef VBOX
    20082084static inline void tlb_set_dirty1(CPUTLBEntry *tlb_entry, target_ulong vaddr)
     2085#else
     2086DECLINLINE(void) tlb_set_dirty1(CPUTLBEntry *tlb_entry, target_ulong vaddr)
     2087#endif
    20092088{
    20102089    if (tlb_entry->addr_write == (vaddr | TLB_NOTDIRTY))
     
    20152094/* update the TLB corresponding to virtual page vaddr and phys addr
    20162095   addr so that it is no longer dirty */
     2096#ifndef VBOX
    20172097static inline void tlb_set_dirty(CPUState *env,
    20182098                                 unsigned long addr, target_ulong vaddr)
     2099#else
     2100DECLINLINE(void) tlb_set_dirty(CPUState *env,
     2101                               unsigned long addr, target_ulong vaddr)
     2102#endif
    20192103{
    20202104    int i;
  • trunk/src/recompiler_new/hostregs_helper.h

    r11982 r13382  
    3737#if defined(DECLARE_HOST_REGS)
    3838
     39#ifndef VBOX
    3940#define DO_REG(REG)                                     \
    4041    register host_reg_t reg_AREG##REG asm(AREG##REG);   \
    4142    volatile host_reg_t saved_AREG##REG;
     43#else
     44#define DO_REG(REG)                                                \
     45    REGISTER_BOUND_GLOBAL(host_reg_t, reg_AREG##REG, AREG##REG);   \
     46    volatile host_reg_t saved_AREG##REG;
     47#endif
    4248
    4349#elif defined(SAVE_HOST_REGS)
    4450
     51#ifndef VBOX
    4552#define DO_REG(REG)                                     \
    4653    __asm__ __volatile__ ("" : "=r" (reg_AREG##REG));   \
    4754    saved_AREG##REG = reg_AREG##REG;
     55#else /* VBOX */
     56#define DO_REG(REG)                                     \
     57    SAVE_GLOBAL_REGISTER(REG, reg_AREG##REG);           \
     58    saved_AREG##REG = reg_AREG##REG;
     59#endif /* VBOX */
    4860
    4961#else
    5062
     63#ifndef VBOX
    5164#define DO_REG(REG)                                     \
    5265    reg_AREG##REG = saved_AREG##REG;                    \
    5366    __asm__ __volatile__ ("" : : "r" (reg_AREG##REG));
     67#else /* VBOX */
     68#define DO_REG(REG)                                     \
     69    reg_AREG##REG = saved_AREG##REG;                    \
     70    RESTORE_GLOBAL_REGISTER(REG, reg_AREG##REG);
     71#endif
    5472
    5573#endif
  • trunk/src/recompiler_new/osdep.h

    r13370 r13382  
    111111
    112112#ifdef __i386__
     113#ifdef _MSC_VER
     114/** @todo: maybe wrong, or slow */
     115#define REGPARM
     116#else
    113117#define REGPARM __attribute((regparm(3)))
     118#endif
    114119#else
    115120#define REGPARM
     
    123128#endif
    124129
     130#ifndef VBOX
    125131void *qemu_memalign(size_t alignment, size_t size);
    126132void *qemu_vmalloc(size_t size);
    127133void qemu_vfree(void *ptr);
    128134
    129 #ifndef VBOX
    130135int qemu_create_pidfile(const char *filename);
    131136
     
    144149#endif /* !VBOX */
    145150
     151#ifdef VBOX
     152#ifdef _MSC_VER
     153#define ALIGNED_MEMBER(type, name, bytes) type name
     154#define ALIGNED_MEMBER_DEF(type, name) type name 
     155#define PACKED_STRUCT(name) struct name
     156#define REGISTER_BOUND_GLOBAL(type, var, reg) type var
     157#define SAVE_GLOBAL_REGISTER(reg, var)
     158#define RESTORE_GLOBAL_REGISTER(reg, var)
     159#define DECLALWAYSINLINE(type) DECLINLINE(type)
     160#else /* ! _MSC_VER */
     161#define ALIGNED_MEMBER(type, name, bytes) type name __attribute__((aligned(bytes)))
     162#define ALIGNED_MEMBER_DEF(type, name) type name __attribute__((aligned()))
     163#define PACKED_STRUCT(name) struct __attribute__ ((__packed__)) name
     164#define REGISTER_BOUND_GLOBAL(type, var, reg) register type var asm(reg)
     165#define SAVE_GLOBAL_REGISTER(reg, var)     __asm__ __volatile__ ("" : "=r" (var))
     166#define RESTORE_GLOBAL_REGISTER(reg, var) __asm__ __volatile__ ("" : : "r" (var))
     167#define DECLALWAYSINLINE(type) static always_inline type
     168#endif /* !_MSC_VER */
     169#endif /* VBOX */
     170
    146171#endif
  • trunk/src/recompiler_new/softmmu_header.h

    r13337 r13382  
    8686/* generic store macro */
    8787
    88 static inline void glue(glue(st, SUFFIX), MEMSUFFIX)(target_ulong ptr, RES_TYPE v)
     88DELCINLINE(void) glue(glue(st, SUFFIX), MEMSUFFIX)(target_ulong ptr, RES_TYPE v)
    8989{
    9090    int index;
     
    162162/* generic load/store macros */
    163163
     164#ifndef VBOX
    164165static inline RES_TYPE glue(glue(ld, USUFFIX), MEMSUFFIX)(target_ulong ptr)
     166#else
     167DECLINLINE(RES_TYPE) glue(glue(ld, USUFFIX), MEMSUFFIX)(target_ulong ptr)
     168#endif
    165169{
    166170    int index;
     
    173177    index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
    174178    is_user = CPU_MMU_INDEX;
     179#ifndef VBOX
    175180    if (__builtin_expect(env->tlb_table[is_user][index].ADDR_READ !=
    176181                         (addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))), 0)) {
     182#else
     183    if  (RT_UNLIKELY(env->tlb_table[is_user][index].ADDR_READ !=
     184                         (addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))))) {
     185#endif
    177186        res = glue(glue(__ld, SUFFIX), MMUSUFFIX)(addr, is_user);
    178187    } else {
     
    184193
    185194#if DATA_SIZE <= 2
     195#ifndef VBOX
    186196static inline int glue(glue(lds, SUFFIX), MEMSUFFIX)(target_ulong ptr)
     197#else
     198DECLINLINE(int) glue(glue(lds, SUFFIX), MEMSUFFIX)(target_ulong ptr)
     199#endif
    187200{
    188201    int res, index;
     
    194207    index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
    195208    is_user = CPU_MMU_INDEX;
     209#ifndef VBOX
    196210    if (__builtin_expect(env->tlb_table[is_user][index].ADDR_READ !=
    197211                         (addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))), 0)) {
     212#else
     213    if (RT_UNLIKELY(env->tlb_table[is_user][index].ADDR_READ !=
     214                         (addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))))) {
     215#endif
    198216        res = (DATA_STYPE)glue(glue(__ld, SUFFIX), MMUSUFFIX)(addr, is_user);
    199217    } else {
     
    208226
    209227/* generic store macro */
    210 
     228#ifndef VBOX
    211229static inline void glue(glue(st, SUFFIX), MEMSUFFIX)(target_ulong ptr, RES_TYPE v)
     230#else
     231DECLINLINE(void) glue(glue(st, SUFFIX), MEMSUFFIX)(target_ulong ptr, RES_TYPE v)
     232#endif
    212233{
    213234    int index;
     
    219240    index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
    220241    is_user = CPU_MMU_INDEX;
     242#ifndef VBOX
    221243    if (__builtin_expect(env->tlb_table[is_user][index].addr_write !=
    222244                         (addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))), 0)) {
     245#else
     246    if (RT_UNLIKELY(env->tlb_table[is_user][index].addr_write !=
     247                         (addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))))) {
     248#endif
    223249        glue(glue(__st, SUFFIX), MMUSUFFIX)(addr, v, is_user);
    224250    } else {
     
    235261
    236262#if DATA_SIZE == 8
     263#ifndef VBOX
    237264static inline float64 glue(ldfq, MEMSUFFIX)(target_ulong ptr)
     265#else
     266DECLINLINE(float64) glue(ldfq, MEMSUFFIX)(target_ulong ptr)
     267#endif
    238268{
    239269    union {
     
    245275}
    246276
     277#ifndef VBOX
    247278static inline void glue(stfq, MEMSUFFIX)(target_ulong ptr, float64 v)
     279#else
     280DECLINLINE(void) glue(stfq, MEMSUFFIX)(target_ulong ptr, float64 v)
     281#endif
    248282{
    249283    union {
     
    257291
    258292#if DATA_SIZE == 4
     293#ifndef VBOX
    259294static inline float32 glue(ldfl, MEMSUFFIX)(target_ulong ptr)
     295#else
     296DECLINLINE(float32) glue(ldfl, MEMSUFFIX)(target_ulong ptr)
     297#endif
    260298{
    261299    union {
     
    267305}
    268306
     307#ifndef VBOX
    269308static inline void glue(stfl, MEMSUFFIX)(target_ulong ptr, float32 v)
     309#else
     310DECLINLINE(void) glue(stfl, MEMSUFFIX)(target_ulong ptr, float32 v)
     311#endif
    270312{
    271313    union {
  • trunk/src/recompiler_new/softmmu_template.h

    r13337 r13382  
    6060                                                        int is_user,
    6161                                                        void *retaddr);
     62#ifndef VBOX
    6263static inline DATA_TYPE glue(io_read, SUFFIX)(target_phys_addr_t physaddr,
    6364                                              target_ulong addr,
    6465                                              void *retaddr)
     66#else
     67DECLINLINE(DATA_TYPE) glue(io_read, SUFFIX)(target_phys_addr_t physaddr,
     68                                            target_ulong addr,
     69                                            void *retaddr)
     70#endif
    6571{
    6672    DATA_TYPE res;
     
    204210                                                   void *retaddr);
    205211
     212#ifndef VBOX
    206213static inline void glue(io_write, SUFFIX)(target_phys_addr_t physaddr,
    207214                                          DATA_TYPE val,
    208215                                          target_ulong addr,
    209216                                          void *retaddr)
     217#else
     218DECLINLINE(void) glue(io_write, SUFFIX)(target_phys_addr_t physaddr,
     219                                        DATA_TYPE val,
     220                                        target_ulong addr,
     221                                        void *retaddr)
     222#endif
    210223{
    211224    int index;
  • trunk/src/recompiler_new/target-i386/cpu.h

    r13337 r13382  
    569569    union {
    570570#ifdef USE_X86LDOUBLE
     571#ifndef VBOX
    571572        CPU86_LDouble d __attribute__((aligned(16)));
     573#else
     574        ALIGNED_MEMBER(CPU86_LDouble, d, 16);
     575#endif
    572576#else
    573577        CPU86_LDouble d;
     
    729733    union {
    730734#ifdef USE_X86LDOUBLE
     735#ifndef VBOX
    731736        CPU86_LDouble d __attribute__((aligned(16)));
     737#else
     738        ALIGNED_MEMBER(CPU86_LDouble, d, 16);
     739#endif
    732740#else
    733741        CPU86_LDouble d;
     
    805813/* this function must always be used to load data in the segment
    806814   cache: it synchronizes the hflags with the segment cache values */
     815#ifndef VBOX
    807816static inline void cpu_x86_load_seg_cache(CPUX86State *env,
    808817                                          int seg_reg, unsigned int selector,
     
    810819                                          unsigned int limit,
    811820                                          unsigned int flags)
     821#else
     822DECLINLINE(void)  cpu_x86_load_seg_cache(CPUX86State *env,
     823                                          int seg_reg, unsigned int selector,
     824                                          target_ulong base,
     825                                          unsigned int limit,
     826                                          unsigned int flags)
     827
     828#endif
    812829{
    813830    SegmentCache *sc;
     
    866883
    867884/* wrapper, just in case memory mappings must be changed */
     885#ifndef VBOX
    868886static inline void cpu_x86_set_cpl(CPUX86State *s, int cpl)
     887#else
     888DECLINLINE(void) cpu_x86_set_cpl(CPUX86State *s, int cpl)
     889#endif
    869890{
    870891#if HF_CPL_MASK == 3
     
    956977#define MMU_MODE1_SUFFIX _user
    957978#define MMU_USER_IDX 1
     979#ifndef VBOX
    958980static inline int cpu_mmu_index (CPUState *env)
     981#else
     982DECLINLINE(int) cpu_mmu_index (CPUState *env)
     983#endif
    959984{
    960985    return (env->hflags & HF_CPL_MASK) == 3 ? 1 : 0;
  • trunk/src/recompiler_new/target-i386/exec.h

    r13230 r13382  
    3939#include "cpu-defs.h"
    4040
     41#ifndef VBOX
    4142/* at least 4 register variables are defined */
    4243register struct CPUX86State *env asm(AREG0);
    43 
    44 #ifndef VBOX
     44#else
     45REGISTER_BOUND_GLOBAL(struct CPUX86State*, env, AREG0);
     46#endif /* VBOX */
     47
    4548#include "qemu-log.h"
    46 #endif
    4749
    4850#ifndef reg_EAX
     
    113115
    114116/* n must be a constant to be efficient */
     117#ifndef VBOX
    115118static inline target_long lshift(target_long x, int n)
     119#else
     120DECLINLINE(target_long) lshift(target_long x, int n)
     121#endif
    116122{
    117123    if (n >= 0)
     
    123129#include "helper.h"
    124130
     131#ifndef VBOX
    125132static inline void svm_check_intercept(uint32_t type)
     133#else
     134DECLINLINE(void) svm_check_intercept(uint32_t type)
     135#endif
    126136{
    127137    helper_svm_check_intercept_param(type, 0);
     
    139149#include "softmmu_exec.h"
    140150
     151#ifndef VBOX
    141152static inline double ldfq(target_ulong ptr)
     153#else
     154DECLINLINE(double) ldfq(target_ulong ptr)
     155#endif
    142156{
    143157    union {
     
    149163}
    150164
     165#ifndef VBOX
    151166static inline void stfq(target_ulong ptr, double v)
     167#else
     168DECLINLINE(void) stfq(target_ulong ptr, double v)
     169#endif
    152170{
    153171    union {
     
    159177}
    160178
     179#ifndef VBOX
    161180static inline float ldfl(target_ulong ptr)
     181#else
     182DECLINLINE(float) ldfl(target_ulong ptr)
     183#endif
    162184{
    163185    union {
     
    169191}
    170192
     193#ifndef VBOX
    171194static inline void stfl(target_ulong ptr, float v)
     195#else
     196DECLINLINE(void) stfl(target_ulong ptr, float v)
     197#endif
    172198{
    173199    union {
     
    239265
    240266#ifdef VBOX
     267#ifndef _MSC_VER
    241268extern CPU86_LDouble sin(CPU86_LDouble x);
    242269extern CPU86_LDouble cos(CPU86_LDouble x);
     
    248275extern CPU86_LDouble floor(CPU86_LDouble x);
    249276extern CPU86_LDouble ceil(CPU86_LDouble x);
    250 #endif
     277#endif /* !_MSC_VER */
     278#endif /* VBOX */
    251279
    252280#define RC_MASK         0xc00
     281#ifndef RC_NEAR
    253282#define RC_NEAR         0x000
     283#endif
     284#ifndef RC_DOWN
    254285#define RC_DOWN         0x400
     286#endif
     287#ifndef RC_UP
    255288#define RC_UP           0x800
     289#endif
     290#ifndef RC_CHOP
    256291#define RC_CHOP         0xc00
     292#endif
    257293
    258294#define MAXTAN 9223372036854775808.0
     
    311347#endif
    312348
     349#ifndef VBOX
    313350static inline void fpush(void)
     351#else
     352DECLINLINE(void) fpush(void)
     353#endif
    314354{
    315355    env->fpstt = (env->fpstt - 1) & 7;
     
    317357}
    318358
     359#ifndef VBOX
    319360static inline void fpop(void)
     361#else
     362DECLINLINE(void) fpop(void)
     363#endif
    320364{
    321365    env->fptags[env->fpstt] = 1; /* invvalidate stack entry */
     
    378422/* we use memory access macros */
    379423
     424#ifndef VBOX
    380425static inline CPU86_LDouble helper_fldt(target_ulong ptr)
     426#else
     427DECLINLINE(CPU86_LDouble) helper_fldt(target_ulong ptr)
     428#endif
    381429{
    382430    CPU86_LDoubleU temp;
     
    387435}
    388436
     437#ifndef VBOX
    389438static inline void helper_fstt(CPU86_LDouble f, target_ulong ptr)
     439#else
     440DECLINLINE(void) helper_fstt(CPU86_LDouble f, target_ulong ptr)
     441#endif
    390442{
    391443    CPU86_LDoubleU temp;
     
    422474extern const uint8_t rclb_table[32];
    423475
     476#ifndef VBOX
    424477static inline uint32_t compute_eflags(void)
     478#else
     479DECLINLINE(uint32_t) compute_eflags(void)
     480#endif
    425481{
    426482    return env->eflags | cc_table[CC_OP].compute_all() | (DF & DF_MASK);
     
    428484
    429485/* NOTE: CC_OP must be modified manually to CC_OP_EFLAGS */
     486#ifndef VBOX
    430487static inline void load_eflags(int eflags, int update_mask)
     488#else
     489DECLINLINE(void) load_eflags(int eflags, int update_mask)
     490#endif
    431491{
    432492    CC_SRC = eflags & (CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C);
     
    436496}
    437497
     498#ifndef VBOX
    438499static inline void env_to_regs(void)
     500#else
     501DECLINLINE(void) env_to_regs(void)
     502#endif
    439503{
    440504#ifdef reg_EAX
     
    464528}
    465529
     530#ifndef VBOX
    466531static inline void regs_to_env(void)
     532#else
     533DECLINLINE(void) regs_to_env(void)
     534#endif
    467535{
    468536#ifdef reg_EAX
     
    492560}
    493561
     562#ifndef VBOX
    494563static inline int cpu_halted(CPUState *env) {
     564#else
     565DECLINLINE(int) cpu_halted(CPUState *env) {
     566#endif
    495567    /* handle exit of HALTED state */
    496568    if (!env->halted)
     
    508580/* load efer and update the corresponding hflags. XXX: do consistency
    509581   checks with cpuid bits ? */
     582#ifndef VBOX
    510583static inline void cpu_load_efer(CPUState *env, uint64_t val)
     584#else
     585DECLINLINE(void) cpu_load_efer(CPUState *env, uint64_t val)
     586#endif
    511587{
    512588    env->efer = val;
  • trunk/src/recompiler_new/translate-all.c

    r13358 r13382  
    3131#include <stdio.h>
    3232#include <string.h>
    33 #include <inttypes.h>
    3433
    3534#include "config.h"
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