VirtualBox

Ignore:
Timestamp:
Aug 5, 2022 9:47:28 AM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
152845
Message:

VMM/IEM: Implement [v]phadd{w,d} instructions, bugref:9898

File:
1 edited

Legend:

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

    r96034 r96046  
    278278
    279279/*  Opcode      0x0f 0x38 0x01. */
    280 FNIEMOP_STUB(iemOp_phaddw_Pq_Qq);
     280FNIEMOP_DEF(iemOp_phaddw_Pq_Qq)
     281{
     282    IEMOP_MNEMONIC2(RM, PHADDW, phaddw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     283    return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex,
     284                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddw_u64,&iemAImpl_phaddw_u64_fallback),
     285                          IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSsse3);
     286}
     287
     288
    281289/** Opcode 0x66 0x0f 0x38 0x01. */
    282 FNIEMOP_STUB(iemOp_phaddw_Vx_Wx);
     290FNIEMOP_DEF(iemOp_phaddw_Vx_Wx)
     291{
     292    IEMOP_MNEMONIC2(RM, PHADDW, phaddw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     293    return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     294                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddw_u128, iemAImpl_phaddw_u128_fallback));
     295
     296}
     297
     298
    283299/** Opcode      0x0f 0x38 0x02. */
    284 FNIEMOP_STUB(iemOp_phaddd_Pq_Qq);
     300FNIEMOP_DEF(iemOp_phaddd_Pq_Qq)
     301{
     302    IEMOP_MNEMONIC2(RM, PHADDD, phaddd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     303    return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex,
     304                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddd_u64,&iemAImpl_phaddd_u64_fallback),
     305                          IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSsse3);
     306}
     307
     308
    285309/** Opcode 0x66 0x0f 0x38 0x02. */
    286 FNIEMOP_STUB(iemOp_phaddd_Vx_Wx);
     310FNIEMOP_DEF(iemOp_phaddd_Vx_Wx)
     311{
     312    IEMOP_MNEMONIC2(RM, PHADDD, phaddd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     313    return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     314                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddd_u128, iemAImpl_phaddd_u128_fallback));
     315
     316}
     317
     318
    287319/** Opcode      0x0f 0x38 0x03. */
    288320FNIEMOP_STUB(iemOp_phaddsw_Pq_Qq);
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