VirtualBox

Changeset 103997 in vbox for trunk


Ignore:
Timestamp:
Mar 22, 2024 8:05:26 AM (12 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
162384
Message:

VMM/IEM: Fix IEM_MC_COPY_XREG_U128(), IEM_MC_COPY_YREG_U128_ZX_VLMAX() and IEM_MC_COPY_YREG_U256_ZX_VLMAX() for the case when source register == destination register, , bugref:10614 [scm]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompFuncs.h

    r103995 r103997  
    76077607iemNativeEmitSimdCopyYregU128ZxVlmax(PIEMRECOMPILERSTATE pReNative, uint32_t off, uint8_t iYRegDst, uint8_t iYRegSrc)
    76087608{
    7609     /* 
     7609    /*
    76107610     * The iYRegSrc == iYRegDst case needs to be treated differently here, because if iYRegDst gets allocated first for the full write
    76117611     * it won't load the actual value from CPUMCTX. When allocating iYRegSrc afterwards it will get duplicated from the already
     
    76147614    if (iYRegDst != iYRegSrc)
    76157615    {
    7616         /* Allocate destination and source register. */ 
     7616        /* Allocate destination and source register. */
    76177617        uint8_t const idxSimdRegDst = iemNativeSimdRegAllocTmpForGuestSimdReg(pReNative, &off, IEMNATIVEGSTSIMDREG_SIMD(iYRegDst),
    76187618                                                                              kIemNativeGstSimdRegLdStSz_256, kIemNativeGstRegUse_ForFullWrite);
     
    76537653iemNativeEmitSimdCopyYregU256ZxVlmax(PIEMRECOMPILERSTATE pReNative, uint32_t off, uint8_t iYRegDst, uint8_t iYRegSrc)
    76547654{
    7655     /* 
     7655    /*
    76567656     * The iYRegSrc == iYRegDst case needs to be treated differently here, because if iYRegDst gets allocated first for the full write
    76577657     * it won't load the actual value from CPUMCTX. When allocating iYRegSrc afterwards it will get duplicated from the already
     
    76617661    if (iYRegDst != iYRegSrc)
    76627662    {
    7663         /* Allocate destination and source register. */ 
     7663        /* Allocate destination and source register. */
    76647664        uint8_t const idxSimdRegSrc = iemNativeSimdRegAllocTmpForGuestSimdReg(pReNative, &off, IEMNATIVEGSTSIMDREG_SIMD(iYRegSrc),
    76657665                                                                              kIemNativeGstSimdRegLdStSz_256, kIemNativeGstRegUse_ReadOnly);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette