VirtualBox

Changeset 10379 in vbox for trunk/src


Ignore:
Timestamp:
Jul 8, 2008 4:52:25 PM (17 years ago)
Author:
vboxsync
Message:

MMIO: missing changes for 64 bits mode.

File:
1 edited

Legend:

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

    r10277 r10379  
    348348        /* Convert source address ds:esi. */
    349349        RTGCUINTPTR pu8Virt;
    350         rc = SELMToFlatEx(pVM, DIS_SELREG_DS, pRegFrame, (RTGCPTR)pRegFrame->esi,
     350        rc = SELMToFlatEx(pVM, DIS_SELREG_DS, pRegFrame, (RTGCPTR)pRegFrame->rsi,
    351351                          SELMTOFLAT_FLAGS_HYPER | SELMTOFLAT_FLAGS_NO_PL,
    352352                          (PRTGCPTR)&pu8Virt);
     
    380380                pu8Virt        += offIncrement;
    381381                Phys           += offIncrement;
    382                 pRegFrame->esi += offIncrement;
    383                 pRegFrame->edi += offIncrement;
     382                pRegFrame->rsi += offIncrement;
     383                pRegFrame->rdi += offIncrement;
    384384                cTransfers--;
    385385            }
     
    407407        /* Convert destination address. */
    408408        RTGCUINTPTR pu8Virt;
    409         rc = SELMToFlatEx(pVM, DIS_SELREG_ES, pRegFrame, (RTGCPTR)pRegFrame->edi,
     409        rc = SELMToFlatEx(pVM, DIS_SELREG_ES, pRegFrame, (RTGCPTR)pRegFrame->rdi,
    410410                          SELMTOFLAT_FLAGS_HYPER | SELMTOFLAT_FLAGS_NO_PL,
    411411                          (RTGCPTR *)&pu8Virt);
     
    447447                Phys           += offIncrement;
    448448                PhysDst        += offIncrement;
    449                 pRegFrame->esi += offIncrement;
    450                 pRegFrame->edi += offIncrement;
     449                pRegFrame->rsi += offIncrement;
     450                pRegFrame->rdi += offIncrement;
    451451                cTransfers--;
    452452            }
     
    489489                pu8Virt        += offIncrement;
    490490                Phys           += offIncrement;
    491                 pRegFrame->esi += offIncrement;
    492                 pRegFrame->edi += offIncrement;
     491                pRegFrame->rsi += offIncrement;
     492                pRegFrame->rdi += offIncrement;
    493493                cTransfers--;
    494494            }
     
    582582            {
    583583                /* Update registers. */
    584                 pRegFrame->edi += cTransfers << SIZE_2_SHIFT(cb);
     584                pRegFrame->rdi += cTransfers << SIZE_2_SHIFT(cb);
    585585                if (pCpu->prefix & PREFIX_REP)
    586586                    pRegFrame->ecx = 0;
     
    594594            {
    595595                /* Update registers. */
    596                 pRegFrame->edi -= cTransfers << SIZE_2_SHIFT(cb);
     596                pRegFrame->rdi -= cTransfers << SIZE_2_SHIFT(cb);
    597597                if (pCpu->prefix & PREFIX_REP)
    598598                    pRegFrame->ecx = 0;
     
    615615
    616616            Phys           += offIncrement;
    617             pRegFrame->edi += offIncrement;
     617            pRegFrame->rdi += offIncrement;
    618618            cTransfers--;
    619619        } while (cTransfers);
     
    671671    int rc = iomMMIODoRead(pVM, pRange, GCPhysFault, &pRegFrame->eax, cb);
    672672    if (rc == VINF_SUCCESS)
    673         pRegFrame->esi += offIncrement;
     673        pRegFrame->rsi += offIncrement;
    674674
    675675    /*
     
    13321332    /* Convert destination address es:edi. */
    13331333    RTGCPTR GCPtrDst;
    1334     int rc = SELMToFlatEx(pVM, DIS_SELREG_ES, pRegFrame, (RTGCPTR)pRegFrame->edi,
     1334    int rc = SELMToFlatEx(pVM, DIS_SELREG_ES, pRegFrame, (RTGCPTR)pRegFrame->rdi,
    13351335                          SELMTOFLAT_FLAGS_HYPER | SELMTOFLAT_FLAGS_NO_PL,
    13361336                          &GCPtrDst);
     
    13601360        rc = IOMIOPortReadString(pVM, uPort, &GCPtrDst, &cTransfers, cbTransfer);
    13611361        AssertRC(rc); Assert(cTransfers <= cTransfersOrg);
    1362         pRegFrame->edi += (cTransfersOrg - cTransfers) * cbTransfer;
     1362        pRegFrame->rdi += (cTransfersOrg - cTransfers) * cbTransfer;
    13631363    }
    13641364
     
    13761376        Assert(rc2 == VINF_SUCCESS); NOREF(rc2);
    13771377        GCPtrDst = (RTGCPTR)((RTGCUINTPTR)GCPtrDst + cbTransfer);
    1378         pRegFrame->edi += cbTransfer;
     1378        pRegFrame->rdi += cbTransfer;
    13791379        cTransfers--;
    13801380    }
     
    14871487    /* Convert source address ds:esi. */
    14881488    RTGCPTR GCPtrSrc;
    1489     int rc = SELMToFlatEx(pVM, DIS_SELREG_DS, pRegFrame, (RTGCPTR)pRegFrame->esi,
     1489    int rc = SELMToFlatEx(pVM, DIS_SELREG_DS, pRegFrame, (RTGCPTR)pRegFrame->rsi,
    14901490                          SELMTOFLAT_FLAGS_HYPER | SELMTOFLAT_FLAGS_NO_PL,
    14911491                          &GCPtrSrc);
     
    15161516        rc = IOMIOPortWriteString(pVM, uPort, &GCPtrSrc, &cTransfers, cbTransfer);
    15171517        AssertRC(rc); Assert(cTransfers <= cTransfersOrg);
    1518         pRegFrame->esi += (cTransfersOrg - cTransfers) * cbTransfer;
     1518        pRegFrame->rsi += (cTransfersOrg - cTransfers) * cbTransfer;
    15191519    }
    15201520
     
    15331533            break;
    15341534        GCPtrSrc = (RTGCPTR)((RTUINTPTR)GCPtrSrc + cbTransfer);
    1535         pRegFrame->esi += cbTransfer;
     1535        pRegFrame->rsi += cbTransfer;
    15361536        cTransfers--;
    15371537    }
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