VirtualBox

Changeset 56063 in vbox for trunk/src


Ignore:
Timestamp:
May 25, 2015 3:51:11 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
100585
Message:

IOMAllMMIO.cpp: IEM experiment (disabled).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp

    r56048 r56063  
    55
    66/*
    7  * Copyright (C) 2006-2013 Oracle Corporation
     7 * Copyright (C) 2006-2015 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    1616 */
    1717
     18//#define IOM_USE_IEM_FOR_MMIO
    1819
    1920/*******************************************************************************
     
    2930#include <VBox/vmm/pgm.h>
    3031#include <VBox/vmm/trpm.h>
    31 #if defined(IEM_VERIFICATION_MODE) && defined(IN_RING3)
     32#if defined(IOM_USE_IEM_FOR_MMIO) || (defined(IEM_VERIFICATION_MODE) && defined(IN_RING3))
    3233# include <VBox/vmm/iem.h>
    3334#endif
     
    572573
    573574
     575#ifndef IOM_USE_IEM_FOR_MMIO
     576
    574577/**
    575578 * MOV      reg, mem         (read)
     
    666669    return rc;
    667670}
     671
     672#endif /* !IOM_USE_IEM_FOR_MMIO */
    668673
    669674
     
    965970}
    966971
     972
     973#ifndef IOM_USE_IEM_FOR_MMIO
    967974
    968975/**
     
    14971504}
    14981505
     1506#endif /* !IOM_USE_IEM_FOR_MMIO */
    14991507
    15001508/**
     
    15101518 * @param   pvUser      Pointer to the MMIO ring-3 range entry.
    15111519 */
    1512 static int iomMMIOHandler(PVM pVM, PVMCPU pVCpu, uint32_t uErrorCode, PCPUMCTXCORE pCtxCore, RTGCPHYS GCPhysFault, void *pvUser)
     1520static VBOXSTRICTRC iomMMIOHandler(PVM pVM, PVMCPU pVCpu, uint32_t uErrorCode, PCPUMCTXCORE pCtxCore, RTGCPHYS GCPhysFault, void *pvUser)
    15131521{
    15141522    int rc = IOM_LOCK_SHARED(pVM);
     
    15851593        return rc;
    15861594    }
     1595
     1596#ifdef IOM_USE_IEM_FOR_MMIO
     1597
     1598    /*
     1599     * Let IEM call us back via iomMmioHandler.
     1600     */
     1601    VBOXSTRICTRC rcStrict = IEMExecOne(pVCpu);
     1602
     1603    STAM_PROFILE_STOP(&pVM->iom.s.StatRZMMIOHandler, a);
     1604    PDMCritSectLeave(pDevIns->CTX_SUFF(pCritSectRo));
     1605    iomMmioReleaseRange(pVM, pRange);
     1606    return rcStrict;
     1607
     1608#else
    15871609
    15881610    /*
     
    16171639
    16181640
    1619 #ifdef IOM_WITH_MOVS_SUPPORT
     1641# ifdef IOM_WITH_MOVS_SUPPORT
    16201642        case OP_MOVSB:
    16211643        case OP_MOVSWD:
     
    16321654            break;
    16331655        }
    1634 #endif
     1656# endif
    16351657
    16361658        case OP_STOSB:
     
    17131735    {
    17141736        STAM_COUNTER_INC(&pVM->iom.s.StatRZMMIOFailures);
    1715 #if defined(VBOX_WITH_STATISTICS) && !defined(IN_RING3)
     1737# if defined(VBOX_WITH_STATISTICS) && !defined(IN_RING3)
    17161738        switch (rc)
    17171739        {
     
    17241746                break;
    17251747        }
    1726 #endif
     1748# endif
    17271749    }
    17281750
     
    17311753    iomMmioReleaseRange(pVM, pRange);
    17321754    return rc;
     1755#endif /* !IOM_USE_IEM_FOR_MMIO */
    17331756}
    17341757
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