VirtualBox

Changeset 105347 in vbox


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

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

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

Legend:

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

    r105346 r105347  
    1680116801
    1680216802/**
    16803  * CVTSS2SD
    16804  */
    16805 #ifdef IEM_WITHOUT_ASSEMBLY
     16803 * [V]CVTSS2SD
     16804 */
    1680616805static uint32_t iemAImpl_cvtss2sd_u128_r32_worker(PRTFLOAT64U pr64Res, uint32_t fMxcsr, PCRTFLOAT32U pr32Val1)
    1680716806{
     
    1681516814
    1681616815
     16816#ifdef IEM_WITHOUT_ASSEMBLY
    1681716817IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_cvtss2sd_u128_r32,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCRTFLOAT32U pr32Src2))
    1681816818{
     
    1682116821}
    1682216822#endif
     16823
     16824
     16825IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vcvtss2sd_u128_r32_fallback,(uint32_t uMxCsrIn, PX86XMMREG puDst, PCX86XMMREG puSrc1, PCRTFLOAT32U pr32Src2))
     16826{
     16827    puDst->ar64[1] = puSrc1->ar64[1];
     16828    return iemAImpl_cvtss2sd_u128_r32_worker(&puDst->ar64[0], uMxCsrIn, pr32Src2);
     16829}
    1682316830
    1682416831
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap1.cpp.h

    r105346 r105347  
    38483848
    38493849/** Opcode VEX.F3.0F 0x5a - vcvtss2sd Vsd, Hx, Wss */
    3850 FNIEMOP_STUB(iemOp_vcvtss2sd_Vsd_Hx_Wss);
     3850FNIEMOP_DEF(iemOp_vcvtss2sd_Vsd_Hx_Wss)
     3851{
     3852    IEMOP_MNEMONIC3(VEX_RVM, VCVTSS2SD, vcvtss2sd, Vsd, Hx, Wss, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, 0);
     3853    return FNIEMOP_CALL_1(iemOpCommonAvx_Vx_Hx_R32,
     3854                          IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcvtss2sd_u128_r32, iemAImpl_vcvtss2sd_u128_r32_fallback));
     3855}
     3856
     3857
    38513858/** Opcode VEX.F2.0F 0x5a - vcvtsd2ss Vss, Hx, Wsd */
    38523859FNIEMOP_STUB(iemOp_vcvtsd2ss_Vss_Hx_Wsd);
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r105346 r105347  
    47964796FNIEMAIMPLFPAVXF3U128R32 iemAImpl_vrsqrtss_u128_r32, iemAImpl_vrsqrtss_u128_r32_fallback;
    47974797FNIEMAIMPLFPAVXF3U128R32 iemAImpl_vrcpss_u128_r32,   iemAImpl_vrcpss_u128_r32_fallback;
     4798FNIEMAIMPLFPAVXF3U128R32 iemAImpl_vcvtss2sd_u128_r32, iemAImpl_vcvtss2sd_u128_r32_fallback;
    47984799
    47994800FNIEMAIMPLFPAVXF3U256 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