VirtualBox

Changeset 96750 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Sep 15, 2022 6:03:43 PM (2 years ago)
Author:
vboxsync
Message:

VMM/IEM: Implement [v]comiss/[v]ucomiss/[v]comisd/[v]ucomisd instructions, bugref:9898 [arm64 fix]

File:
1 edited

Legend:

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

    r96748 r96750  
    23262326        IEM_MC_REF_XREG_XMM_CONST(puSrc1,      IEM_GET_MODRM_REG(pVCpu, bRm));
    23272327        IEM_MC_REF_XREG_XMM_CONST(puSrc2,      IEM_GET_MODRM_RM(pVCpu, bRm));
    2328         IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_vucomiss_u128, pfMxcsr, pEFlags, puSrc1, puSrc2);
     2328        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vucomiss_u128, iemAImpl_vucomiss_u128_fallback),
     2329                                 pfMxcsr, pEFlags, puSrc1, puSrc2);
    23292330        IEM_MC_IF_MXCSR_XCPT_PENDING()
    23302331            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
     
    23582359        IEM_MC_REF_MXCSR(pfMxcsr);
    23592360        IEM_MC_REF_XREG_XMM_CONST(puSrc1,       IEM_GET_MODRM_REG(pVCpu, bRm));
    2360         IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_vucomiss_u128, pfMxcsr, pEFlags, puSrc1, puSrc2);
     2361        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vucomiss_u128, iemAImpl_vucomiss_u128_fallback),
     2362                                 pfMxcsr, pEFlags, puSrc1, puSrc2);
    23612363        IEM_MC_IF_MXCSR_XCPT_PENDING()
    23622364            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
     
    23952397        IEM_MC_REF_XREG_XMM_CONST(puSrc1,      IEM_GET_MODRM_REG(pVCpu, bRm));
    23962398        IEM_MC_REF_XREG_XMM_CONST(puSrc2,      IEM_GET_MODRM_RM(pVCpu, bRm));
    2397         IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_vucomisd_u128, pfMxcsr, pEFlags, puSrc1, puSrc2);
     2399        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vucomisd_u128, iemAImpl_vucomisd_u128_fallback),
     2400                                 pfMxcsr, pEFlags, puSrc1, puSrc2);
    23982401        IEM_MC_IF_MXCSR_XCPT_PENDING()
    23992402            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
     
    24272430        IEM_MC_REF_MXCSR(pfMxcsr);
    24282431        IEM_MC_REF_XREG_XMM_CONST(puSrc1,       IEM_GET_MODRM_REG(pVCpu, bRm));
    2429         IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_vucomisd_u128, pfMxcsr, pEFlags, puSrc1, puSrc2);
     2432        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vucomisd_u128, iemAImpl_vucomisd_u128_fallback),
     2433                                 pfMxcsr, pEFlags, puSrc1, puSrc2);
    24302434        IEM_MC_IF_MXCSR_XCPT_PENDING()
    24312435            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
     
    24672471        IEM_MC_REF_XREG_XMM_CONST(puSrc1,      IEM_GET_MODRM_REG(pVCpu, bRm));
    24682472        IEM_MC_REF_XREG_XMM_CONST(puSrc2,      IEM_GET_MODRM_RM(pVCpu, bRm));
    2469         IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_vcomiss_u128, pfMxcsr, pEFlags, puSrc1, puSrc2);
     2473        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcomiss_u128, iemAImpl_vcomiss_u128_fallback),
     2474                                 pfMxcsr, pEFlags, puSrc1, puSrc2);
    24702475        IEM_MC_IF_MXCSR_XCPT_PENDING()
    24712476            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
     
    24992504        IEM_MC_REF_MXCSR(pfMxcsr);
    25002505        IEM_MC_REF_XREG_XMM_CONST(puSrc1,       IEM_GET_MODRM_REG(pVCpu, bRm));
    2501         IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_vcomiss_u128, pfMxcsr, pEFlags, puSrc1, puSrc2);
     2506        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcomiss_u128, iemAImpl_vcomiss_u128_fallback),
     2507                                 pfMxcsr, pEFlags, puSrc1, puSrc2);
    25022508        IEM_MC_IF_MXCSR_XCPT_PENDING()
    25032509            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
     
    25362542        IEM_MC_REF_XREG_XMM_CONST(puSrc1,      IEM_GET_MODRM_REG(pVCpu, bRm));
    25372543        IEM_MC_REF_XREG_XMM_CONST(puSrc2,      IEM_GET_MODRM_RM(pVCpu, bRm));
    2538         IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_vcomisd_u128, pfMxcsr, pEFlags, puSrc1, puSrc2);
     2544        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcomisd_u128, iemAImpl_vcomisd_u128_fallback),
     2545                                 pfMxcsr, pEFlags, puSrc1, puSrc2);
    25392546        IEM_MC_IF_MXCSR_XCPT_PENDING()
    25402547            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
     
    25682575        IEM_MC_REF_MXCSR(pfMxcsr);
    25692576        IEM_MC_REF_XREG_XMM_CONST(puSrc1,       IEM_GET_MODRM_REG(pVCpu, bRm));
    2570         IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_vcomisd_u128, pfMxcsr, pEFlags, puSrc1, puSrc2);
     2577        IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vcomisd_u128, iemAImpl_vcomisd_u128_fallback),
     2578                                 pfMxcsr, pEFlags, puSrc1, puSrc2);
    25712579        IEM_MC_IF_MXCSR_XCPT_PENDING()
    25722580            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
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