VirtualBox

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


Ignore:
Timestamp:
Jul 5, 2022 3:01:42 PM (3 years ago)
Author:
vboxsync
Message:

VMM/IEM: Simplified IEMOPMEDIAF3 and IEMOPMEDIAOPTF3 function table creation, moving most of them into the functions where they are used. Exceptions are 4 tables used by multiple decoder functions. bugref:9898

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

Legend:

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

    r95516 r95517  
    893893
    894894# ifndef IEM_WITHOUT_ASSEMBLY
    895 /** Function table for the VPSHUFB instruction. */
    896 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpshufb        = { iemAImpl_vpshufb_u128, iemAImpl_vpshufb_u256 };
    897895/** Function table for the VPXOR instruction */
    898896IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpand          = { iemAImpl_vpand_u128,   iemAImpl_vpand_u256 };
     
    903901/** Function table for the VPXOR instruction */
    904902IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpxor          = { iemAImpl_vpxor_u128,   iemAImpl_vpxor_u256 };
    905 /** Function table for the VPCMPEQB instruction */
    906 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpeqb       = { iemAImpl_vpcmpeqb_u128, iemAImpl_vpcmpeqb_u256 };
    907 /** Function table for the VPCMPEQW instruction */
    908 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpeqw       = { iemAImpl_vpcmpeqw_u128, iemAImpl_vpcmpeqw_u256 };
    909 /** Function table for the VPCMPEQD instruction */
    910 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpeqd       = { iemAImpl_vpcmpeqd_u128, iemAImpl_vpcmpeqd_u256 };
    911 /** Function table for the VPCMPEQQ instruction */
    912 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpeqq       = { iemAImpl_vpcmpeqq_u128, iemAImpl_vpcmpeqq_u256 };
    913 /** Function table for the VPCMPGTB instruction */
    914 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpgtb       = { iemAImpl_vpcmpgtb_u128, iemAImpl_vpcmpgtb_u256 };
    915 /** Function table for the VPCMPGTW instruction */
    916 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpgtw       = { iemAImpl_vpcmpgtw_u128, iemAImpl_vpcmpgtw_u256 };
    917 /** Function table for the VPCMPGTD instruction */
    918 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpgtd       = { iemAImpl_vpcmpgtd_u128, iemAImpl_vpcmpgtd_u256 };
    919 /** Function table for the VPCMPGTQ instruction */
    920 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpgtq       = { iemAImpl_vpcmpgtq_u128, iemAImpl_vpcmpgtq_u256 };
    921 /** Function table for the VPADDB instruction */
    922 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpaddb       = { iemAImpl_vpaddb_u128, iemAImpl_vpaddb_u256 };
    923 /** Function table for the VPADDW instruction */
    924 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpaddw       = { iemAImpl_vpaddw_u128, iemAImpl_vpaddw_u256 };
    925 /** Function table for the VPADDD instruction */
    926 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpaddd       = { iemAImpl_vpaddd_u128, iemAImpl_vpaddd_u256 };
    927 /** Function table for the VPADDQ instruction */
    928 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpaddq       = { iemAImpl_vpaddq_u128, iemAImpl_vpaddq_u256 };
    929 /** Function table for the VPSUBB instruction */
    930 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpsubb       = { iemAImpl_vpsubb_u128, iemAImpl_vpsubb_u256 };
    931 /** Function table for the VPSUBW instruction */
    932 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpsubw       = { iemAImpl_vpsubw_u128, iemAImpl_vpsubw_u256 };
    933 /** Function table for the VPSUBD instruction */
    934 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpsubd       = { iemAImpl_vpsubd_u128, iemAImpl_vpsubd_u256 };
    935 /** Function table for the VPSUBQ instruction */
    936 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpsubq       = { iemAImpl_vpsubq_u128, iemAImpl_vpsubq_u256 };
    937903# endif
    938904
    939 /** Function table for the VPSHUFB instruction, software fallback. */
    940 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpshufb_fallback = { iemAImpl_vpshufb_u128_fallback, iemAImpl_vpshufb_u256_fallback };
    941905/** Function table for the VPAND instruction, software fallback. */
    942906IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpand_fallback = { iemAImpl_vpand_u128_fallback,  iemAImpl_vpand_u256_fallback };
     
    947911/** Function table for the VPXOR instruction, software fallback. */
    948912IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpxor_fallback = { iemAImpl_vpxor_u128_fallback,  iemAImpl_vpxor_u256_fallback };
    949 /** Function table for the VPCMPEQB instruction, software fallback. */
    950 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpeqb_fallback = { iemAImpl_vpcmpeqb_u128_fallback, iemAImpl_vpcmpeqb_u256_fallback };
    951 /** Function table for the VPCMPEQW instruction, software fallback. */
    952 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpeqw_fallback = { iemAImpl_vpcmpeqw_u128_fallback, iemAImpl_vpcmpeqw_u256_fallback };
    953 /** Function table for the VPCMPEQD instruction, software fallback. */
    954 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpeqd_fallback = { iemAImpl_vpcmpeqd_u128_fallback, iemAImpl_vpcmpeqd_u256_fallback };
    955 /** Function table for the VPCMPEQQ instruction, software fallback. */
    956 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpeqq_fallback = { iemAImpl_vpcmpeqq_u128_fallback, iemAImpl_vpcmpeqq_u256_fallback };
    957 /** Function table for the VPCMPGTB instruction, software fallback. */
    958 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpgtb_fallback = { iemAImpl_vpcmpgtb_u128_fallback, iemAImpl_vpcmpgtb_u256_fallback };
    959 /** Function table for the VPCMPGTW instruction, software fallback. */
    960 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpgtw_fallback = { iemAImpl_vpcmpgtw_u128_fallback, iemAImpl_vpcmpgtw_u256_fallback };
    961 /** Function table for the VPCMPGTD instruction, software fallback. */
    962 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpgtd_fallback = { iemAImpl_vpcmpgtd_u128_fallback, iemAImpl_vpcmpgtd_u256_fallback };
    963 /** Function table for the VPCMPGTQ instruction, software fallback. */
    964 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpcmpgtq_fallback = { iemAImpl_vpcmpgtq_u128_fallback, iemAImpl_vpcmpgtq_u256_fallback };
    965 /** Function table for the VPADDB instruction, software fallback. */
    966 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpaddb_fallback = { iemAImpl_vpaddb_u128_fallback, iemAImpl_vpaddb_u256_fallback };
    967 /** Function table for the VPADDW instruction, software fallback. */
    968 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpaddw_fallback = { iemAImpl_vpaddw_u128_fallback, iemAImpl_vpaddw_u256_fallback };
    969 /** Function table for the VPADDD instruction, software fallback. */
    970 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpaddd_fallback = { iemAImpl_vpaddd_u128_fallback, iemAImpl_vpaddd_u256_fallback };
    971 /** Function table for the VPADDQ instruction, software fallback. */
    972 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpaddq_fallback = { iemAImpl_vpaddq_u128_fallback, iemAImpl_vpaddq_u256_fallback };
    973 /** Function table for the VPSUBB instruction, software fallback. */
    974 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpsubb_fallback = { iemAImpl_vpsubb_u128_fallback, iemAImpl_vpsubb_u256_fallback };
    975 /** Function table for the VPSUBW instruction, software fallback. */
    976 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpsubw_fallback = { iemAImpl_vpsubw_u128_fallback, iemAImpl_vpsubw_u256_fallback };
    977 /** Function table for the VPSUBD instruction, software fallback. */
    978 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpsubd_fallback = { iemAImpl_vpsubd_u128_fallback, iemAImpl_vpsubd_u256_fallback };
    979 /** Function table for the VPSUBQ instruction, software fallback. */
    980 IEM_STATIC const IEMOPMEDIAF3 g_iemAImpl_vpsubq_fallback = { iemAImpl_vpsubq_u128_fallback, iemAImpl_vpsubq_u256_fallback };
    981913
    982914#endif /* !TST_IEM_CHECK_MC */
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap1.cpp.h

    r95512 r95517  
    21082108{
    21092109    IEMOP_MNEMONIC3(VEX_RVM, VPUNPCKLBW, vpunpcklbw, Vx, Hx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_AVX, 0);
    2110     IEMOPMEDIAOPTF3_INIT_VARS(iemAImpl_vpunpcklbw_u128,             iemAImpl_vpunpcklbw_u256,
    2111                               iemAImpl_vpunpcklbw_u128_fallback,    iemAImpl_vpunpcklbw_u256_fallback);
     2110    IEMOPMEDIAOPTF3_INIT_VARS(           vpunpcklbw);
    21122111    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_LowSrc, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    21132112}
     
    21242123{
    21252124    IEMOP_MNEMONIC3(VEX_RVM, VPUNPCKLWD, vpunpcklwd, Vx, Hx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_AVX, 0);
    2126     IEMOPMEDIAOPTF3_INIT_VARS(iemAImpl_vpunpcklwd_u128,             iemAImpl_vpunpcklwd_u256,
    2127                               iemAImpl_vpunpcklwd_u128_fallback,    iemAImpl_vpunpcklwd_u256_fallback);
     2125    IEMOPMEDIAOPTF3_INIT_VARS(           vpunpcklwd);
    21282126    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_LowSrc, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    21292127}
     
    21392137{
    21402138    IEMOP_MNEMONIC3(VEX_RVM, VPUNPCKLDQ, vpunpckldq, Vx, Hx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_AVX, 0);
    2141     IEMOPMEDIAOPTF3_INIT_VARS(iemAImpl_vpunpckldq_u128,             iemAImpl_vpunpckldq_u256,
    2142                               iemAImpl_vpunpckldq_u128_fallback,    iemAImpl_vpunpckldq_u256_fallback);
     2139    IEMOPMEDIAOPTF3_INIT_VARS(           vpunpckldq);
    21432140    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_LowSrc, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    21442141}
     
    21612158{
    21622159    IEMOP_MNEMONIC3(VEX_RVM, VPCMPGTB, vpcmpgtb, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    2163     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    2164                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpcmpgtb, &g_iemAImpl_vpcmpgtb_fallback));
     2160    IEMOPMEDIAF3_INIT_VARS(  vpcmpgtb);
     2161    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    21652162}
    21662163
     
    21752172{
    21762173    IEMOP_MNEMONIC3(VEX_RVM, VPCMPGTW, vpcmpgtw, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    2177     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    2178                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpcmpgtw, &g_iemAImpl_vpcmpgtw_fallback));
     2174    IEMOPMEDIAF3_INIT_VARS(  vpcmpgtw);
     2175    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    21792176}
    21802177
     
    21892186{
    21902187    IEMOP_MNEMONIC3(VEX_RVM, VPCMPGTD, vpcmpgtd, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    2191     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    2192                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpcmpgtd, &g_iemAImpl_vpcmpgtd_fallback));
     2188    IEMOPMEDIAF3_INIT_VARS(  vpcmpgtd);
     2189    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    21932190}
    21942191
     
    22652262{
    22662263    IEMOP_MNEMONIC3(VEX_RVM, VPUNPCKHBW, vpunpckhbw, Vx, Hx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_AVX, 0);
    2267     IEMOPMEDIAOPTF3_INIT_VARS(iemAImpl_vpunpckhbw_u128,             iemAImpl_vpunpckhbw_u256,
    2268                               iemAImpl_vpunpckhbw_u128_fallback,    iemAImpl_vpunpckhbw_u256_fallback);
     2264    IEMOPMEDIAOPTF3_INIT_VARS(           vpunpckhbw);
    22692265    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_HighSrc, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    22702266}
     
    22812277{
    22822278    IEMOP_MNEMONIC3(VEX_RVM, VPUNPCKHWD, vpunpckhwd, Vx, Hx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_AVX, 0);
    2283     IEMOPMEDIAOPTF3_INIT_VARS(iemAImpl_vpunpckhwd_u128,             iemAImpl_vpunpckhwd_u256,
    2284                               iemAImpl_vpunpckhwd_u128_fallback,    iemAImpl_vpunpckhwd_u256_fallback);
     2279    IEMOPMEDIAOPTF3_INIT_VARS(           vpunpckhwd);
    22852280    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_HighSrc, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    22862281}
     
    22972292{
    22982293    IEMOP_MNEMONIC3(VEX_RVM, VPUNPCKHDQ, vpunpckhdq, Vx, Hx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_AVX, 0);
    2299     IEMOPMEDIAOPTF3_INIT_VARS(iemAImpl_vpunpckhdq_u128,             iemAImpl_vpunpckhdq_u256,
    2300                               iemAImpl_vpunpckhdq_u128_fallback,    iemAImpl_vpunpckhdq_u256_fallback);
     2294    IEMOPMEDIAOPTF3_INIT_VARS(           vpunpckhdq);
    23012295    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_HighSrc, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    23022296}
     
    23192313{
    23202314    IEMOP_MNEMONIC3(VEX_RVM, VPUNPCKLQDQ, vpunpcklqdq, Vx, Hx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_AVX, 0);
    2321     IEMOPMEDIAOPTF3_INIT_VARS(iemAImpl_vpunpcklqdq_u128,            iemAImpl_vpunpcklqdq_u256,
    2322                               iemAImpl_vpunpcklqdq_u128_fallback,   iemAImpl_vpunpcklqdq_u256_fallback);
     2315    IEMOPMEDIAOPTF3_INIT_VARS(            vpunpcklqdq);
    23232316    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_LowSrc, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    23242317}
     
    23362329{
    23372330    IEMOP_MNEMONIC3(VEX_RVM, VPUNPCKHQDQ, vpunpckhqdq, Vx, Hx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_AVX, 0);
    2338     IEMOPMEDIAOPTF3_INIT_VARS(iemAImpl_vpunpckhqdq_u128,            iemAImpl_vpunpckhqdq_u256,
    2339                               iemAImpl_vpunpckhqdq_u128_fallback,   iemAImpl_vpunpckhqdq_u256_fallback);
     2331    IEMOPMEDIAOPTF3_INIT_VARS(            vpunpckhqdq);
    23402332    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_HighSrc, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    23412333}
     
    28812873{
    28822874    IEMOP_MNEMONIC3(VEX_RVM, VPCMPEQB, vpcmpeqb, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    2883     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    2884                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpcmpeqb, &g_iemAImpl_vpcmpeqb_fallback));
     2875    IEMOPMEDIAF3_INIT_VARS(  vpcmpeqb);
     2876    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    28852877}
    28862878
     
    28962888{
    28972889    IEMOP_MNEMONIC3(VEX_RVM, VPCMPEQW, vpcmpeqw, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    2898     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    2899                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpcmpeqw, &g_iemAImpl_vpcmpeqw_fallback));
     2890    IEMOPMEDIAF3_INIT_VARS(  vpcmpeqw);
     2891    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    29002892}
    29012893
     
    29122904{
    29132905    IEMOP_MNEMONIC3(VEX_RVM, VPCMPEQD, vpcmpeqd, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    2914     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    2915                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpcmpeqd, &g_iemAImpl_vpcmpeqd_fallback));
     2906    IEMOPMEDIAF3_INIT_VARS(  vpcmpeqd);
     2907    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    29162908}
    29172909
     
    35783570{
    35793571    IEMOP_MNEMONIC3(VEX_RVM, VPADDQ, vpaddq, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    3580     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    3581                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpaddq, &g_iemAImpl_vpaddq_fallback));
     3572    IEMOPMEDIAF3_INIT_VARS(  vpaddq);
     3573    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    35823574}
    35833575
     
    40043996{
    40053997    IEMOP_MNEMONIC3(VEX_RVM, VPSUBB, vpsubb, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    4006     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    4007                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpsubb, &g_iemAImpl_vpsubb_fallback));
     3998    IEMOPMEDIAF3_INIT_VARS(  vpsubb);
     3999    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    40084000}
    40094001
     
    40184010{
    40194011    IEMOP_MNEMONIC3(VEX_RVM, VPSUBW, vpsubw, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    4020     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    4021                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpsubw, &g_iemAImpl_vpsubw_fallback));
     4012    IEMOPMEDIAF3_INIT_VARS(  vpsubw);
     4013    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    40224014}
    40234015
     
    40324024{
    40334025    IEMOP_MNEMONIC3(VEX_RVM, VPSUBD, vpsubd, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    4034     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    4035                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpsubd, &g_iemAImpl_vpsubd_fallback));
     4026    IEMOPMEDIAF3_INIT_VARS(  vpsubd);
     4027    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    40364028}
    40374029
     
    40464038{
    40474039    IEMOP_MNEMONIC3(VEX_RVM, VPSUBQ, vpsubq, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    4048     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    4049                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpsubq, &g_iemAImpl_vpsubq_fallback));
     4040    IEMOPMEDIAF3_INIT_VARS(  vpsubq);
     4041    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    40504042}
    40514043
     
    40604052{
    40614053    IEMOP_MNEMONIC3(VEX_RVM, VPADDB, vpaddb, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    4062     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    4063                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpaddb, &g_iemAImpl_vpaddb_fallback));
     4054    IEMOPMEDIAF3_INIT_VARS(  vpaddb);
     4055    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    40644056}
    40654057
     
    40744066{
    40754067    IEMOP_MNEMONIC3(VEX_RVM, VPADDW, vpaddw, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    4076     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    4077                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpaddw, &g_iemAImpl_vpaddw_fallback));
     4068    IEMOPMEDIAF3_INIT_VARS(  vpaddw);
     4069    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    40784070}
    40794071
     
    40884080{
    40894081    IEMOP_MNEMONIC3(VEX_RVM, VPADDD, vpaddd, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    4090     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    4091                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpaddd, &g_iemAImpl_vpaddd_fallback));
     4082    IEMOPMEDIAF3_INIT_VARS(  vpaddd);
     4083    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    40924084}
    40934085
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap2.cpp.h

    r95512 r95517  
    3131{
    3232    IEMOP_MNEMONIC3(VEX_RVM, VPSHUFB, vpshufb, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    33     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    34                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpshufb, &g_iemAImpl_vpshufb_fallback));
     33    IEMOPMEDIAF3_INIT_VARS(vpshufb);
     34    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    3535}
    3636
     
    147147{
    148148    IEMOP_MNEMONIC3(VEX_RVM, VPCMPEQQ, vpcmpeqq, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    149     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    150                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpcmpeqq, &g_iemAImpl_vpcmpeqq_fallback));
     149    IEMOPMEDIAF3_INIT_VARS(vpcmpeqq);
     150    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    151151}
    152152
     
    268268{
    269269    IEMOP_MNEMONIC3(VEX_RVM, VPCMPGTQ, vpcmpgtq, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0);
    270     return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx,
    271                           IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &g_iemAImpl_vpcmpgtq, &g_iemAImpl_vpcmpgtq_fallback));
     270    IEMOPMEDIAF3_INIT_VARS(vpcmpgtq);
     271    return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback));
    272272}
    273273
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