VirtualBox

Changeset 56666 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
Jun 28, 2015 4:25:06 PM (9 years ago)
Author:
vboxsync
Message:

hmR0SvmExitIOInstr: Optimize the OUTS on old-CPU when it's clear from the instruction size that no segment prefixes are used. Build fix for signed/unsigned comparison.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp

    r56665 r56666  
    48044804            if (cbInstr <= 15 && cbInstr >= 1)
    48054805            {
    4806                 Assert(cbInstr >= 1 + IoExitInfo.n.u1REP);
     4806                Assert(cbInstr >= 1U + IoExitInfo.n.u1REP);
    48074807                if (IoExitInfo.n.u1Type == SVM_IOIO_WRITE)
    48084808                {
     
    48134813                        && pVM->cpum.ro.GuestFeatures.enmMicroarch >= kCpumMicroarch_AMD_15h_First)
    48144814                    {
    4815                         AssertMsg(IoExitInfo.n.u3SEG == X86_SREG_DS || cbInstr > 1 + IoExitInfo.n.u1REP,
     4815                        AssertMsg(IoExitInfo.n.u3SEG == X86_SREG_DS || cbInstr > 1U + IoExitInfo.n.u1REP,
    48164816                                  ("u32Seg=%d cbInstr=%d u1REP=%d", IoExitInfo.n.u3SEG, cbInstr, IoExitInfo.n.u1REP));
    48174817                        rcStrict = IEMExecStringIoWrite(pVCpu, cbValue, enmAddrMode, IoExitInfo.n.u1REP, (uint8_t)cbInstr,
    48184818                                                        IoExitInfo.n.u3SEG);
    48194819                    }
     4820                    else if (cbInstr != 1U + IoExitInfo.n.u1REP)
     4821                        rcStrict = IEMExecStringIoWrite(pVCpu, cbValue, enmAddrMode, IoExitInfo.n.u1REP, (uint8_t)cbInstr,
     4822                                                        X86_SREG_DS);
    48204823                    else
    48214824                        rcStrict = IEMExecOne(pVCpu);
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