VirtualBox

Changeset 107143 in vbox


Ignore:
Timestamp:
Nov 26, 2024 10:32:16 AM (4 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
166125
Message:

VMM/IEM: fix IEM vpermd instruction emulation; bugref:9898; jiraref:VBP-1464

File:
1 edited

Legend:

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

    r107103 r107143  
    2086320863IEM_DECL_IMPL_DEF(void, iemAImpl_vpermd_u256_fallback,(PRTUINT256U puDst, PCRTUINT256U puSrc1, PCRTUINT256U puSrc2))
    2086420864{
    20865     puDst->au32[0] = puSrc2->au32[puSrc1->au32[0] & 0x3];
    20866     puDst->au32[1] = puSrc2->au32[puSrc1->au32[1] & 0x3];
    20867     puDst->au32[2] = puSrc2->au32[puSrc1->au32[2] & 0x3];
    20868     puDst->au32[3] = puSrc2->au32[puSrc1->au32[3] & 0x3];
    20869     puDst->au32[4] = puSrc2->au32[puSrc1->au32[4] & 0x3];
    20870     puDst->au32[5] = puSrc2->au32[puSrc1->au32[5] & 0x3];
    20871     puDst->au32[6] = puSrc2->au32[puSrc1->au32[6] & 0x3];
    20872     puDst->au32[7] = puSrc2->au32[puSrc1->au32[7] & 0x3];
    20873 }
    20874 
    20875 
    20876 /**
    20877  * VPERMPS
    20878  */
    20879 IEM_DECL_IMPL_DEF(void, iemAImpl_vpermps_u256_fallback,(PRTUINT256U puDst, PCRTUINT256U puSrc1, PCRTUINT256U puSrc2))
    20880 {
    2088120865    puDst->au32[0] = puSrc2->au32[puSrc1->au32[0] & 0x7];
    2088220866    puDst->au32[1] = puSrc2->au32[puSrc1->au32[1] & 0x7];
     
    2088820872    puDst->au32[7] = puSrc2->au32[puSrc1->au32[7] & 0x7];
    2088920873}
     20874
     20875
     20876/**
     20877 * VPERMPS
     20878 */
     20879IEM_DECL_IMPL_DEF(void, iemAImpl_vpermps_u256_fallback,(PRTUINT256U puDst, PCRTUINT256U puSrc1, PCRTUINT256U puSrc2))
     20880{
     20881    puDst->au32[0] = puSrc2->au32[puSrc1->au32[0] & 0x7];
     20882    puDst->au32[1] = puSrc2->au32[puSrc1->au32[1] & 0x7];
     20883    puDst->au32[2] = puSrc2->au32[puSrc1->au32[2] & 0x7];
     20884    puDst->au32[3] = puSrc2->au32[puSrc1->au32[3] & 0x7];
     20885    puDst->au32[4] = puSrc2->au32[puSrc1->au32[4] & 0x7];
     20886    puDst->au32[5] = puSrc2->au32[puSrc1->au32[5] & 0x7];
     20887    puDst->au32[6] = puSrc2->au32[puSrc1->au32[6] & 0x7];
     20888    puDst->au32[7] = puSrc2->au32[puSrc1->au32[7] & 0x7];
     20889}
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