Changeset 14943 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Dec 3, 2008 1:58:36 PM (16 years ago)
- Location:
- trunk/src/VBox/VMM/VMMR0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r14875 r14943 1841 1841 if (IoExitInfo.n.u1STR) 1842 1842 { 1843 uint32_t cbSize; 1844 1843 1845 /* ins/outs */ 1844 uint32_t prefix = 0;1845 if (IoExitInfo.n.u1REP)1846 prefix |= PREFIX_REP;1847 1848 1846 if (IoExitInfo.n.u1Type == 0) 1849 1847 { 1848 STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitIOStringWrite); 1850 1849 Log2(("IOMInterpretOUTSEx %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, IoExitInfo.n.u16Port, uIOSize)); 1851 STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitIOStringWrite);1852 rc = IOMInterpretOUTSEx(pVM, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, prefix, uIOSize);1853 1850 } 1854 1851 else … … 1856 1853 Log2(("IOMInterpretINSEx %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, IoExitInfo.n.u16Port, uIOSize)); 1857 1854 STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitIOStringRead); 1858 rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, prefix, uIOSize);1859 1855 } 1856 1857 /* Disassemble manually, because we don't have any information about segment prefixes. */ 1858 rc = EMInterpretInstruction(pVM, CPUMCTX2CORE(pCtx), 0, &cbSize); 1860 1859 } 1861 1860 else -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r14897 r14943 2771 2771 } 2772 2772 2773 uint32_t cbSize = g_aIOSize[uIOWidth];2774 2775 2773 if (VMX_EXIT_QUALIFICATION_IO_STRING(exitQualification)) 2776 2774 { 2775 uint32_t cbSize; 2776 2777 2777 /* ins/outs */ 2778 uint32_t prefix = 0;2779 if (VMX_EXIT_QUALIFICATION_IO_REP(exitQualification))2780 prefix |= PREFIX_REP;2781 2782 2778 if (fIOWrite) 2783 2779 { 2784 Log2(("IOMInterpretOUTSEx %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, uPort, cbSize));2785 2780 STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitIOStringWrite); 2786 rc = IOMInterpretOUTSEx(pVM, CPUMCTX2CORE(pCtx), uPort, prefix, cbSize);2781 Log2(("IOMInterpretOUTSEx %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, uPort, g_aIOSize[uIOWidth])); 2787 2782 } 2788 2783 else 2789 2784 { 2790 Log2(("IOMInterpretINSEx %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, uPort, cbSize));2785 Log2(("IOMInterpretINSEx %RGv %x size=%d\n", (RTGCPTR)pCtx->rip, uPort, g_aIOSize[uIOWidth])); 2791 2786 STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitIOStringRead); 2792 rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), uPort, prefix, cbSize);2793 2787 } 2788 2789 /* Disassemble manually, because we don't have any information about segment prefixes. */ 2790 rc = EMInterpretInstruction(pVM, CPUMCTX2CORE(pCtx), 0, &cbSize); 2794 2791 } 2795 2792 else 2796 2793 { 2797 2794 /* normal in/out */ 2795 uint32_t cbSize = g_aIOSize[uIOWidth]; 2798 2796 uint32_t uAndVal = g_aIOOpAnd[uIOWidth]; 2799 2797
Note:
See TracChangeset
for help on using the changeset viewer.