VirtualBox

Changeset 105348 in vbox


Ignore:
Timestamp:
Jul 16, 2024 10:39:51 AM (5 months ago)
Author:
vboxsync
Message:

VMM/IEM: Implement vcvtsd2ss instruction emulation, bugref:9898

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

Legend:

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

    r105347 r105348  
    1683116831
    1683216832/**
    16833  * CVTSD2SS
    16834  */
    16835 #ifdef IEM_WITHOUT_ASSEMBLY
     16833 * [V]CVTSD2SS
     16834 */
    1683616835static uint32_t iemAImpl_cvtsd2ss_u128_r64_worker(PRTFLOAT32U pr32Res, uint32_t fMxcsr, PCRTFLOAT64U pr64Val1)
    1683716836{
     
    1684516844
    1684616845
     16846#ifdef IEM_WITHOUT_ASSEMBLY
    1684716847IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_cvtsd2ss_u128_r64,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCRTFLOAT64U pr64Src2))
    1684816848{
     
    1685316853}
    1685416854#endif
     16855
     16856
     16857IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vcvtsd2ss_u128_r64_fallback,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCRTFLOAT64U pr64Src2))
     16858{
     16859    pResult->ar32[1] = puSrc1->ar32[1];
     16860    pResult->ar32[2] = puSrc1->ar32[2];
     16861    pResult->ar32[3] = puSrc1->ar32[3];
     16862    return iemAImpl_cvtsd2ss_u128_r64_worker(&pResult->ar32[0], uMxCsrIn, pr64Src2);
     16863}
    1685516864
    1685616865
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap1.cpp.h

    r105347 r105348  
    38573857
    38583858/** Opcode VEX.F2.0F 0x5a - vcvtsd2ss Vss, Hx, Wsd */
    3859 FNIEMOP_STUB(iemOp_vcvtsd2ss_Vss_Hx_Wsd);
     3859FNIEMOP_DEF(iemOp_vcvtsd2ss_Vss_Hx_Wsd)
     3860{
     3861    IEMOP_MNEMONIC3(VEX_RVM, VCVTSD2SS, vcvtsd2ss, Vss, Hx, Wsd, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, 0);
     3862    return FNIEMOP_CALL_1(iemOpCommonAvx_Vx_Hx_R64,
     3863                          IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcvtsd2ss_u128_r64, iemAImpl_vcvtsd2ss_u128_r64_fallback));
     3864}
     3865
    38603866
    38613867/** Opcode VEX.0F 0x5b - vcvtdq2ps Vps, Wdq */
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r105347 r105348  
    47974797FNIEMAIMPLFPAVXF3U128R32 iemAImpl_vrcpss_u128_r32,   iemAImpl_vrcpss_u128_r32_fallback;
    47984798FNIEMAIMPLFPAVXF3U128R32 iemAImpl_vcvtss2sd_u128_r32, iemAImpl_vcvtss2sd_u128_r32_fallback;
     4799FNIEMAIMPLFPAVXF3U128R64 iemAImpl_vcvtsd2ss_u128_r64, iemAImpl_vcvtsd2ss_u128_r64_fallback;
     4800
    47994801
    48004802FNIEMAIMPLFPAVXF3U256 iemAImpl_vaddps_u256, iemAImpl_vaddps_u256_fallback;
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