VirtualBox

Changeset 98921 in vbox


Ignore:
Timestamp:
Mar 12, 2023 4:54:45 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
156257
Message:

VMM/IEM: Started implementing the dpps/dppd instructions, bugref:9898

Location:
trunk/src/VBox/VMM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm

    r98887 r98921  
    62706270IEMIMPL_MEDIA_SSE_INSN_IMM8_MXCSR_6 roundss
    62716271IEMIMPL_MEDIA_SSE_INSN_IMM8_MXCSR_6 roundsd
     6272IEMIMPL_MEDIA_SSE_INSN_IMM8_MXCSR_6 dpps
     6273IEMIMPL_MEDIA_SSE_INSN_IMM8_MXCSR_6 dppd
    62726274
    62736275
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp

    r98887 r98921  
    1807518075                         + RT_ABS(ai16Src1[i + 3] - ai16Src2[3]);
    1807618076}
     18077
     18078
     18079/**
     18080 * DPPS
     18081 */
     18082IEM_DECL_IMPL_DEF(void, iemAImpl_dpps_u128_fallback,(uint32_t *pfMxcsr, PX86XMMREG puDst, PCIEMMEDIAF2XMMSRC pSrc, uint8_t bImm))
     18083{
     18084    RT_NOREF(pfMxcsr, puDst, pSrc, bImm);
     18085    AssertReleaseFailed();
     18086}
     18087
     18088
     18089/**
     18090 * DPPD
     18091 */
     18092IEM_DECL_IMPL_DEF(void, iemAImpl_dppd_u128_fallback,(uint32_t *pfMxcsr, PX86XMMREG puDst, PCIEMMEDIAF2XMMSRC pSrc, uint8_t bImm))
     18093{
     18094    RT_NOREF(pfMxcsr, puDst, pSrc, bImm);
     18095    AssertReleaseFailed();
     18096}
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h

    r98887 r98921  
    10301030
    10311031/** Opcode 0x66 0x0f 0x40. */
    1032 FNIEMOP_STUB(iemOp_dpps_Vx_Wx_Ib);
     1032FNIEMOP_DEF(iemOp_dpps_Vx_Wx_Ib)
     1033{
     1034    IEMOP_MNEMONIC3(RMI, DPPS, dpps, Vx, Wx, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0);
     1035    return FNIEMOP_CALL_1(iemOpCommonSse41Fp_FullFullImm8_To_Full,
     1036                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_dpps_u128, iemAImpl_dpps_u128_fallback));
     1037}
     1038
     1039
    10331040/** Opcode 0x66 0x0f 0x41, */
    1034 FNIEMOP_STUB(iemOp_dppd_Vdq_Wdq_Ib);
     1041FNIEMOP_DEF(iemOp_dppd_Vdq_Wdq_Ib)
     1042{
     1043    IEMOP_MNEMONIC3(RMI, DPPD, dppd, Vx, Wx, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0);
     1044    return FNIEMOP_CALL_1(iemOpCommonSse41Fp_FullFullImm8_To_Full,
     1045                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_dppd_u128, iemAImpl_dppd_u128_fallback));
     1046}
    10351047
    10361048
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r98887 r98921  
    25372537FNIEMAIMPLMXCSRF2XMMIMM8 iemAImpl_roundps_u128, iemAImpl_roundps_u128_fallback;
    25382538FNIEMAIMPLMXCSRF2XMMIMM8 iemAImpl_roundpd_u128, iemAImpl_roundpd_u128_fallback;
     2539
     2540FNIEMAIMPLMXCSRF2XMMIMM8 iemAImpl_dpps_u128, iemAImpl_dpps_u128_fallback;
     2541FNIEMAIMPLMXCSRF2XMMIMM8 iemAImpl_dppd_u128, iemAImpl_dppd_u128_fallback;
    25392542
    25402543typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLMXCSRU64U128,(uint32_t *pfMxcsr, uint64_t *pu64Dst, PCX86XMMREG pSrc));
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