VirtualBox

Changeset 105238 in vbox


Ignore:
Timestamp:
Jul 9, 2024 1:23:02 PM (5 months ago)
Author:
vboxsync
Message:

VMM/IEM: Implement vsqrtss,vsqrtsd instruction emulations, bugref:9898

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

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

    r105236 r105238  
    1703917039
    1704017040/**
    17041  * SQRTSS
     17041 * [V]SQRTSS
    1704217042 */
    1704317043#ifdef IEM_WITHOUT_ASSEMBLY
     
    1705217052
    1705317053
     17054IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vsqrtss_u128_r32_fallback,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCRTFLOAT32U pr32Src2))
     17055{
     17056    pResult->ar32[1] = puSrc1->ar32[1];
     17057    pResult->ar32[2] = puSrc1->ar32[2];
     17058    pResult->ar32[3] = puSrc1->ar32[3];
     17059    return iemAImpl_sqrtps_u128_worker(&pResult->ar32[0], uMxCsrIn, pr32Src2);
     17060}
     17061
     17062
    1705417063/**
    1705517064 * [V]SQRTPD
     
    1711617125}
    1711717126#endif
     17127
     17128
     17129IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vsqrtsd_u128_r64_fallback,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCRTFLOAT64U pr64Src2))
     17130{
     17131    pResult->ar64[1] = puSrc1->ar64[1];
     17132    return iemAImpl_sqrtpd_u128_worker(&pResult->ar64[0], uMxCsrIn, pr64Src2);
     17133}
    1711817134
    1711917135
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap1.cpp.h

    r105235 r105238  
    29692969
    29702970/** Opcode VEX.F3.0F 0x51 - vsqrtss Vss, Hss, Wss */
    2971 FNIEMOP_STUB(iemOp_vsqrtss_Vss_Hss_Wss);
     2971FNIEMOP_DEF(iemOp_vsqrtss_Vss_Hss_Wss)
     2972{
     2973    IEMOP_MNEMONIC3(VEX_RVM, VSQRTSS, vsqrtss, Vps, Hps, Wss, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, 0);
     2974    return FNIEMOP_CALL_1(iemOpCommonAvx_Vx_Hx_R32,
     2975                          IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vsqrtss_u128_r32, iemAImpl_vsqrtss_u128_r32_fallback));
     2976}
     2977
     2978
    29722979/** Opcode VEX.F2.0F 0x51 - vsqrtsd Vsd, Hsd, Wsd */
    2973 FNIEMOP_STUB(iemOp_vsqrtsd_Vsd_Hsd_Wsd);
     2980FNIEMOP_DEF(iemOp_vsqrtsd_Vsd_Hsd_Wsd)
     2981{
     2982    IEMOP_MNEMONIC3(VEX_RVM, VSQRTSD, vsqrtsd, Vps, Hps, Wsd, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, 0);
     2983    return FNIEMOP_CALL_1(iemOpCommonAvx_Vx_Hx_R64,
     2984                          IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vsqrtsd_u128_r64, iemAImpl_vsqrtsd_u128_r64_fallback));
     2985}
     2986
    29742987
    29752988/** Opcode VEX.0F 0x52 - vrsqrtps Vps, Wps */
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