VirtualBox

Changeset 104103 in vbox for trunk


Ignore:
Timestamp:
Mar 28, 2024 10:54:21 AM (6 months ago)
Author:
vboxsync
Message:

VMM/IEM: Convert assembly helpers for MMX/SSE instructions who not require the FPU state to use the optimized form, bugref:10641

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm

    r104099 r104103  
    38653865; @param    A2      Pointer to the second media register size operand (input).
    38663866;
     3867; @todo r=aeichner Currently unused, can probably be removed.
     3868;
    38673869%macro IEMIMPL_MEDIA_F2 2
    38683870%if %2 != 0
     
    38943896ENDPROC iemAImpl_ %+ %1 %+ _u128
    38953897%endmacro
    3896 
    3897 IEMIMPL_MEDIA_F2 pshufb,  1
    3898 IEMIMPL_MEDIA_F2 pand,    1
    3899 IEMIMPL_MEDIA_F2 pandn,   1
    3900 IEMIMPL_MEDIA_F2 por,     1
    3901 IEMIMPL_MEDIA_F2 pxor,    1
    3902 IEMIMPL_MEDIA_F2 pcmpeqb, 1
    3903 IEMIMPL_MEDIA_F2 pcmpeqw, 1
    3904 IEMIMPL_MEDIA_F2 pcmpeqd, 1
    3905 IEMIMPL_MEDIA_F2 pcmpeqq, 0
    3906 IEMIMPL_MEDIA_F2 pcmpgtb, 1
    3907 IEMIMPL_MEDIA_F2 pcmpgtw, 1
    3908 IEMIMPL_MEDIA_F2 pcmpgtd, 1
    3909 IEMIMPL_MEDIA_F2 pcmpgtq, 0
    3910 IEMIMPL_MEDIA_F2 paddb,   1
    3911 IEMIMPL_MEDIA_F2 paddw,   1
    3912 IEMIMPL_MEDIA_F2 paddd,   1
    3913 IEMIMPL_MEDIA_F2 paddq,   1
    3914 IEMIMPL_MEDIA_F2 paddsb,  1
    3915 IEMIMPL_MEDIA_F2 paddsw,  1
    3916 IEMIMPL_MEDIA_F2 paddusb, 1
    3917 IEMIMPL_MEDIA_F2 paddusw, 1
    3918 IEMIMPL_MEDIA_F2 psubb,   1
    3919 IEMIMPL_MEDIA_F2 psubw,   1
    3920 IEMIMPL_MEDIA_F2 psubd,   1
    3921 IEMIMPL_MEDIA_F2 psubq,   1
    3922 IEMIMPL_MEDIA_F2 psubsb,  1
    3923 IEMIMPL_MEDIA_F2 psubsw,  1
    3924 IEMIMPL_MEDIA_F2 psubusb, 1
    3925 IEMIMPL_MEDIA_F2 psubusw, 1
    3926 IEMIMPL_MEDIA_F2 pmullw,  1
    3927 IEMIMPL_MEDIA_F2 pmulld,  0
    3928 IEMIMPL_MEDIA_F2 pmulhw,  1
    3929 IEMIMPL_MEDIA_F2 pmaddwd, 1
    3930 IEMIMPL_MEDIA_F2 pminub,  1
    3931 IEMIMPL_MEDIA_F2 pminuw,  0
    3932 IEMIMPL_MEDIA_F2 pminud,  0
    3933 IEMIMPL_MEDIA_F2 pminsb,  0
    3934 IEMIMPL_MEDIA_F2 pminsw,  1
    3935 IEMIMPL_MEDIA_F2 pminsd,  0
    3936 IEMIMPL_MEDIA_F2 pmaxub,  1
    3937 IEMIMPL_MEDIA_F2 pmaxuw,  0
    3938 IEMIMPL_MEDIA_F2 pmaxud,  0
    3939 IEMIMPL_MEDIA_F2 pmaxsb,  0
    3940 IEMIMPL_MEDIA_F2 pmaxsw,  1
    3941 IEMIMPL_MEDIA_F2 pmaxsd,  0
    3942 IEMIMPL_MEDIA_F2 pabsb,   1
    3943 IEMIMPL_MEDIA_F2 pabsw,   1
    3944 IEMIMPL_MEDIA_F2 pabsd,   1
    3945 IEMIMPL_MEDIA_F2 psignb,  1
    3946 IEMIMPL_MEDIA_F2 psignw,  1
    3947 IEMIMPL_MEDIA_F2 psignd,  1
    3948 IEMIMPL_MEDIA_F2 phaddw,  1
    3949 IEMIMPL_MEDIA_F2 phaddd,  1
    3950 IEMIMPL_MEDIA_F2 phsubw,  1
    3951 IEMIMPL_MEDIA_F2 phsubd,  1
    3952 IEMIMPL_MEDIA_F2 phaddsw, 1
    3953 IEMIMPL_MEDIA_F2 phsubsw, 1
    3954 IEMIMPL_MEDIA_F2 pmaddubsw, 1
    3955 IEMIMPL_MEDIA_F2 pmulhrsw,  1
    3956 IEMIMPL_MEDIA_F2 pmuludq,   1
    3957 
    39583898
    39593899;;
     
    39963936%endmacro
    39973937
     3938IEMIMPL_MEDIA_OPT_F2 pshufb,  1
     3939IEMIMPL_MEDIA_OPT_F2 pand,    1
     3940IEMIMPL_MEDIA_OPT_F2 pandn,   1
     3941IEMIMPL_MEDIA_OPT_F2 por,     1
     3942IEMIMPL_MEDIA_OPT_F2 pxor,    1
     3943IEMIMPL_MEDIA_OPT_F2 pcmpeqb, 1
     3944IEMIMPL_MEDIA_OPT_F2 pcmpeqw, 1
     3945IEMIMPL_MEDIA_OPT_F2 pcmpeqd, 1
     3946IEMIMPL_MEDIA_OPT_F2 pcmpeqq, 0
     3947IEMIMPL_MEDIA_OPT_F2 pcmpgtb, 1
     3948IEMIMPL_MEDIA_OPT_F2 pcmpgtw, 1
     3949IEMIMPL_MEDIA_OPT_F2 pcmpgtd, 1
     3950IEMIMPL_MEDIA_OPT_F2 pcmpgtq, 0
     3951IEMIMPL_MEDIA_OPT_F2 paddb,   1
     3952IEMIMPL_MEDIA_OPT_F2 paddw,   1
     3953IEMIMPL_MEDIA_OPT_F2 paddd,   1
     3954IEMIMPL_MEDIA_OPT_F2 paddq,   1
     3955IEMIMPL_MEDIA_OPT_F2 paddsb,  1
     3956IEMIMPL_MEDIA_OPT_F2 paddsw,  1
     3957IEMIMPL_MEDIA_OPT_F2 paddusb, 1
     3958IEMIMPL_MEDIA_OPT_F2 paddusw, 1
     3959IEMIMPL_MEDIA_OPT_F2 psubb,   1
     3960IEMIMPL_MEDIA_OPT_F2 psubw,   1
     3961IEMIMPL_MEDIA_OPT_F2 psubd,   1
     3962IEMIMPL_MEDIA_OPT_F2 psubq,   1
     3963IEMIMPL_MEDIA_OPT_F2 psubsb,  1
     3964IEMIMPL_MEDIA_OPT_F2 psubsw,  1
     3965IEMIMPL_MEDIA_OPT_F2 psubusb, 1
     3966IEMIMPL_MEDIA_OPT_F2 psubusw, 1
     3967IEMIMPL_MEDIA_OPT_F2 pmullw,  1
     3968IEMIMPL_MEDIA_OPT_F2 pmulld,  0
     3969IEMIMPL_MEDIA_OPT_F2 pmulhw,  1
     3970IEMIMPL_MEDIA_OPT_F2 pmaddwd, 1
     3971IEMIMPL_MEDIA_OPT_F2 pminub,  1
     3972IEMIMPL_MEDIA_OPT_F2 pminuw,  0
     3973IEMIMPL_MEDIA_OPT_F2 pminud,  0
     3974IEMIMPL_MEDIA_OPT_F2 pminsb,  0
     3975IEMIMPL_MEDIA_OPT_F2 pminsw,  1
     3976IEMIMPL_MEDIA_OPT_F2 pminsd,  0
     3977IEMIMPL_MEDIA_OPT_F2 pmaxub,  1
     3978IEMIMPL_MEDIA_OPT_F2 pmaxuw,  0
     3979IEMIMPL_MEDIA_OPT_F2 pmaxud,  0
     3980IEMIMPL_MEDIA_OPT_F2 pmaxsb,  0
     3981IEMIMPL_MEDIA_OPT_F2 pmaxsw,  1
     3982IEMIMPL_MEDIA_OPT_F2 pmaxsd,  0
     3983IEMIMPL_MEDIA_OPT_F2 pabsb,   1
     3984IEMIMPL_MEDIA_OPT_F2 pabsw,   1
     3985IEMIMPL_MEDIA_OPT_F2 pabsd,   1
     3986IEMIMPL_MEDIA_OPT_F2 psignb,  1
     3987IEMIMPL_MEDIA_OPT_F2 psignw,  1
     3988IEMIMPL_MEDIA_OPT_F2 psignd,  1
     3989IEMIMPL_MEDIA_OPT_F2 phaddw,  1
     3990IEMIMPL_MEDIA_OPT_F2 phaddd,  1
     3991IEMIMPL_MEDIA_OPT_F2 phsubw,  1
     3992IEMIMPL_MEDIA_OPT_F2 phsubd,  1
     3993IEMIMPL_MEDIA_OPT_F2 phaddsw, 1
     3994IEMIMPL_MEDIA_OPT_F2 phsubsw, 1
     3995IEMIMPL_MEDIA_OPT_F2 pmaddubsw, 1
     3996IEMIMPL_MEDIA_OPT_F2 pmulhrsw,  1
     3997IEMIMPL_MEDIA_OPT_F2 pmuludq,   1
    39983998IEMIMPL_MEDIA_OPT_F2 packsswb, 1
    39993999IEMIMPL_MEDIA_OPT_F2 packssdw, 1
  • trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp

    r104076 r104103  
    78397839#ifdef IEM_WITHOUT_ASSEMBLY
    78407840
    7841 IEM_DECL_IMPL_DEF(void, iemAImpl_pand_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    7842 {
    7843     RT_NOREF(pFpuState);
     7841IEM_DECL_IMPL_DEF(void, iemAImpl_pand_u64,(uint64_t *puDst, uint64_t const *puSrc))
     7842{
    78447843    *puDst &= *puSrc;
    78457844}
    78467845
    78477846
    7848 IEM_DECL_IMPL_DEF(void, iemAImpl_pand_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    7849 {
    7850     RT_NOREF(pFpuState);
     7847IEM_DECL_IMPL_DEF(void, iemAImpl_pand_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     7848{
    78517849    puDst->au64[0] &= puSrc->au64[0];
    78527850    puDst->au64[1] &= puSrc->au64[1];
     
    78807878#ifdef IEM_WITHOUT_ASSEMBLY
    78817879
    7882 IEM_DECL_IMPL_DEF(void, iemAImpl_pandn_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    7883 {
    7884     RT_NOREF(pFpuState);
     7880IEM_DECL_IMPL_DEF(void, iemAImpl_pandn_u64,(uint64_t *puDst, uint64_t const *puSrc))
     7881{
    78857882    *puDst = ~*puDst & *puSrc;
    78867883}
    78877884
    78887885
    7889 IEM_DECL_IMPL_DEF(void, iemAImpl_pandn_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    7890 {
    7891     RT_NOREF(pFpuState);
     7886IEM_DECL_IMPL_DEF(void, iemAImpl_pandn_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     7887{
    78927888    puDst->au64[0] = ~puDst->au64[0] & puSrc->au64[0];
    78937889    puDst->au64[1] = ~puDst->au64[1] & puSrc->au64[1];
     
    79217917#ifdef IEM_WITHOUT_ASSEMBLY
    79227918
    7923 IEM_DECL_IMPL_DEF(void, iemAImpl_por_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    7924 {
    7925     RT_NOREF(pFpuState);
     7919IEM_DECL_IMPL_DEF(void, iemAImpl_por_u64,(uint64_t *puDst, uint64_t const *puSrc))
     7920{
    79267921    *puDst |= *puSrc;
    79277922}
    79287923
    79297924
    7930 IEM_DECL_IMPL_DEF(void, iemAImpl_por_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    7931 {
    7932     RT_NOREF(pFpuState);
     7925IEM_DECL_IMPL_DEF(void, iemAImpl_por_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     7926{
    79337927    puDst->au64[0] |= puSrc->au64[0];
    79347928    puDst->au64[1] |= puSrc->au64[1];
     
    79627956#ifdef IEM_WITHOUT_ASSEMBLY
    79637957
    7964 IEM_DECL_IMPL_DEF(void, iemAImpl_pxor_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    7965 {
    7966     RT_NOREF(pFpuState);
     7958IEM_DECL_IMPL_DEF(void, iemAImpl_pxor_u64,(uint64_t *puDst, uint64_t const *puSrc))
     7959{
    79677960    *puDst ^= *puSrc;
    79687961}
    79697962
    79707963
    7971 IEM_DECL_IMPL_DEF(void, iemAImpl_pxor_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    7972 {
    7973     RT_NOREF(pFpuState);
     7964IEM_DECL_IMPL_DEF(void, iemAImpl_pxor_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     7965{
    79747966    puDst->au64[0] ^= puSrc->au64[0];
    79757967    puDst->au64[1] ^= puSrc->au64[1];
     
    80037995#ifdef IEM_WITHOUT_ASSEMBLY
    80047996
    8005 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqb_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8006 {
    8007     RT_NOREF(pFpuState);
     7997IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqb_u64,(uint64_t *puDst, uint64_t const *puSrc))
     7998{
    80087999    RTUINT64U uSrc1 = { *puDst };
    80098000    RTUINT64U uSrc2 = { *puSrc };
     
    80218012
    80228013
    8023 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqb_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8024 {
    8025     RT_NOREF(pFpuState);
     8014IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqb_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8015{
    80268016    RTUINT128U uSrc1 = *puDst;
    80278017    puDst->au8[0]  = uSrc1.au8[0]  == puSrc->au8[0]  ? UINT8_MAX : 0;
     
    81118101#ifdef IEM_WITHOUT_ASSEMBLY
    81128102
    8113 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8114 {
    8115     RT_NOREF(pFpuState);
     8103IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8104{
    81168105    RTUINT64U uSrc1 = { *puDst };
    81178106    RTUINT64U uSrc2 = { *puSrc };
     
    81258114
    81268115
    8127 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8128 {
    8129     RT_NOREF(pFpuState);
     8116IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8117{
    81308118    RTUINT128U uSrc1 = *puDst;
    81318119    puDst->au16[0] = uSrc1.au16[0] == puSrc->au16[0] ? UINT16_MAX : 0;
     
    81838171#ifdef IEM_WITHOUT_ASSEMBLY
    81848172
    8185 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqd_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8186 {
    8187     RT_NOREF(pFpuState);
     8173IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqd_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8174{
    81888175    RTUINT64U uSrc1 = { *puDst };
    81898176    RTUINT64U uSrc2 = { *puSrc };
     
    81958182
    81968183
    8197 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqd_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8198 {
    8199     RT_NOREF(pFpuState);
     8184IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqd_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8185{
    82008186    RTUINT128U uSrc1 = *puDst;
    82018187    puDst->au32[0] = uSrc1.au32[0] == puSrc->au32[0] ? UINT32_MAX : 0;
     
    82358221 * PCMPEQQ / VPCMPEQQ.
    82368222 */
    8237 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqq_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8238 {
    8239     RT_NOREF(pFpuState);
     8223IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpeqq_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8224{
    82408225    RTUINT128U uSrc1 = *puDst;
    82418226    puDst->au64[0] = uSrc1.au64[0] == puSrc->au64[0] ? UINT64_MAX : 0;
     
    82678252#ifdef IEM_WITHOUT_ASSEMBLY
    82688253
    8269 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtb_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8270 {
    8271     RT_NOREF(pFpuState);
     8254IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtb_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8255{
    82728256    RTUINT64U uSrc1 = { *puDst };
    82738257    RTUINT64U uSrc2 = { *puSrc };
     
    82858269
    82868270
    8287 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtb_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8288 {
    8289     RT_NOREF(pFpuState);
     8271IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtb_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8272{
    82908273    RTUINT128U uSrc1 = *puDst;
    82918274    puDst->au8[0]  = uSrc1.ai8[0]  > puSrc->ai8[0]  ? UINT8_MAX : 0;
     
    83758358#ifdef IEM_WITHOUT_ASSEMBLY
    83768359
    8377 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8378 {
    8379     RT_NOREF(pFpuState);
     8360IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8361{
    83808362    RTUINT64U uSrc1 = { *puDst };
    83818363    RTUINT64U uSrc2 = { *puSrc };
     
    83898371
    83908372
    8391 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8392 {
    8393     RT_NOREF(pFpuState);
     8373IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8374{
    83948375    RTUINT128U uSrc1 = *puDst;
    83958376    puDst->au16[0] = uSrc1.ai16[0] > puSrc->ai16[0] ? UINT16_MAX : 0;
     
    84478428#ifdef IEM_WITHOUT_ASSEMBLY
    84488429
    8449 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtd_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8450 {
    8451     RT_NOREF(pFpuState);
     8430IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtd_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8431{
    84528432    RTUINT64U uSrc1 = { *puDst };
    84538433    RTUINT64U uSrc2 = { *puSrc };
     
    84598439
    84608440
    8461 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtd_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8462 {
    8463     RT_NOREF(pFpuState);
     8441IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtd_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8442{
    84648443    RTUINT128U uSrc1 = *puDst;
    84658444    puDst->au32[0] = uSrc1.ai32[0] > puSrc->ai32[0] ? UINT32_MAX : 0;
     
    84998478 * PCMPGTQ / VPCMPGTQ.
    85008479 */
    8501 IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtq_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8502 {
    8503     RT_NOREF(pFpuState);
     8480IEM_DECL_IMPL_DEF(void, iemAImpl_pcmpgtq_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8481{
    85048482    RTUINT128U uSrc1 = *puDst;
    85058483    puDst->au64[0] = uSrc1.ai64[0] > puSrc->ai64[0] ? UINT64_MAX : 0;
     
    85318509#ifdef IEM_WITHOUT_ASSEMBLY
    85328510
    8533 IEM_DECL_IMPL_DEF(void, iemAImpl_paddb_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8534 {
    8535     RT_NOREF(pFpuState);
     8511IEM_DECL_IMPL_DEF(void, iemAImpl_paddb_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8512{
    85368513    RTUINT64U uSrc1 = { *puDst };
    85378514    RTUINT64U uSrc2 = { *puSrc };
     
    85498526
    85508527
    8551 IEM_DECL_IMPL_DEF(void, iemAImpl_paddb_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8552 {
    8553     RT_NOREF(pFpuState);
     8528IEM_DECL_IMPL_DEF(void, iemAImpl_paddb_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8529{
    85548530    RTUINT128U uSrc1 = *puDst;
    85558531    puDst->au8[0]  = uSrc1.au8[0]  + puSrc->au8[0];
     
    86458621#ifdef IEM_WITHOUT_ASSEMBLY
    86468622
    8647 IEM_DECL_IMPL_DEF(void, iemAImpl_paddsb_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8648 {
    8649     RT_NOREF(pFpuState);
     8623IEM_DECL_IMPL_DEF(void, iemAImpl_paddsb_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8624{
    86508625    RTUINT64U uSrc1 = { *puDst };
    86518626    RTUINT64U uSrc2 = { *puSrc };
     
    86638638
    86648639
    8665 IEM_DECL_IMPL_DEF(void, iemAImpl_paddsb_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8666 {
    8667     RT_NOREF(pFpuState);
     8640IEM_DECL_IMPL_DEF(void, iemAImpl_paddsb_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8641{
    86688642    RTUINT128U uSrc1 = *puDst;
    86698643    puDst->au8[0]  = SATURATED_SIGNED_WORD_TO_SIGNED_BYTE(uSrc1.ai8[0]  + puSrc->ai8[0]);
     
    87568730#ifdef IEM_WITHOUT_ASSEMBLY
    87578731
    8758 IEM_DECL_IMPL_DEF(void, iemAImpl_paddusb_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8759 {
    8760     RT_NOREF(pFpuState);
     8732IEM_DECL_IMPL_DEF(void, iemAImpl_paddusb_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8733{
    87618734    RTUINT64U uSrc1 = { *puDst };
    87628735    RTUINT64U uSrc2 = { *puSrc };
     
    87748747
    87758748
    8776 IEM_DECL_IMPL_DEF(void, iemAImpl_paddusb_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8777 {
    8778     RT_NOREF(pFpuState);
     8749IEM_DECL_IMPL_DEF(void, iemAImpl_paddusb_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8750{
    87798751    RTUINT128U uSrc1 = *puDst;
    87808752    puDst->au8[0]  = SATURATED_UNSIGNED_WORD_TO_UNSIGNED_BYTE(uSrc1.au8[0]  + puSrc->au8[0]);
     
    88628834#ifdef IEM_WITHOUT_ASSEMBLY
    88638835
    8864 IEM_DECL_IMPL_DEF(void, iemAImpl_paddw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8865 {
    8866     RT_NOREF(pFpuState);
     8836IEM_DECL_IMPL_DEF(void, iemAImpl_paddw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8837{
    88678838    RTUINT64U uSrc1 = { *puDst };
    88688839    RTUINT64U uSrc2 = { *puSrc };
     
    88768847
    88778848
    8878 IEM_DECL_IMPL_DEF(void, iemAImpl_paddw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8879 {
    8880     RT_NOREF(pFpuState);
     8849IEM_DECL_IMPL_DEF(void, iemAImpl_paddw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8850{
    88818851    RTUINT128U uSrc1 = *puDst;
    88828852    puDst->au16[0] = uSrc1.au16[0] + puSrc->au16[0];
     
    89408910#ifdef IEM_WITHOUT_ASSEMBLY
    89418911
    8942 IEM_DECL_IMPL_DEF(void, iemAImpl_paddsw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    8943 {
    8944     RT_NOREF(pFpuState);
     8912IEM_DECL_IMPL_DEF(void, iemAImpl_paddsw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8913{
    89458914    RTUINT64U uSrc1 = { *puDst };
    89468915    RTUINT64U uSrc2 = { *puSrc };
     
    89548923
    89558924
    8956 IEM_DECL_IMPL_DEF(void, iemAImpl_paddsw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    8957 {
    8958     RT_NOREF(pFpuState);
     8925IEM_DECL_IMPL_DEF(void, iemAImpl_paddsw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8926{
    89598927    RTUINT128U uSrc1 = *puDst;
    89608928    puDst->au16[0] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD(uSrc1.ai16[0] + puSrc->ai16[0]);
     
    90158983#ifdef IEM_WITHOUT_ASSEMBLY
    90168984
    9017 IEM_DECL_IMPL_DEF(void, iemAImpl_paddusw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9018 {
    9019     RT_NOREF(pFpuState);
     8985IEM_DECL_IMPL_DEF(void, iemAImpl_paddusw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     8986{
    90208987    RTUINT64U uSrc1 = { *puDst };
    90218988    RTUINT64U uSrc2 = { *puSrc };
     
    90298996
    90308997
    9031 IEM_DECL_IMPL_DEF(void, iemAImpl_paddusw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9032 {
    9033     RT_NOREF(pFpuState);
     8998IEM_DECL_IMPL_DEF(void, iemAImpl_paddusw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     8999{
    90349000    RTUINT128U uSrc1 = *puDst;
    90359001    puDst->au16[0] = SATURATED_UNSIGNED_DWORD_TO_UNSIGNED_WORD(uSrc1.au16[0] + puSrc->au16[0]);
     
    90859051#ifdef IEM_WITHOUT_ASSEMBLY
    90869052
    9087 IEM_DECL_IMPL_DEF(void, iemAImpl_paddd_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9088 {
    9089     RT_NOREF(pFpuState);
     9053IEM_DECL_IMPL_DEF(void, iemAImpl_paddd_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9054{
    90909055    RTUINT64U uSrc1 = { *puDst };
    90919056    RTUINT64U uSrc2 = { *puSrc };
     
    90979062
    90989063
    9099 IEM_DECL_IMPL_DEF(void, iemAImpl_paddd_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9100 {
    9101     RT_NOREF(pFpuState);
     9064IEM_DECL_IMPL_DEF(void, iemAImpl_paddd_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9065{
    91029066    RTUINT128U uSrc1 = *puDst;
    91039067    puDst->au32[0] = uSrc1.au32[0] + puSrc->au32[0];
     
    91399103#ifdef IEM_WITHOUT_ASSEMBLY
    91409104
    9141 IEM_DECL_IMPL_DEF(void, iemAImpl_paddq_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9142 {
    9143     RT_NOREF(pFpuState);
     9105IEM_DECL_IMPL_DEF(void, iemAImpl_paddq_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9106{
    91449107    *puDst = *puDst + *puSrc;
    91459108}
    91469109
    9147 IEM_DECL_IMPL_DEF(void, iemAImpl_paddq_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9148 {
    9149     RT_NOREF(pFpuState);
     9110IEM_DECL_IMPL_DEF(void, iemAImpl_paddq_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9111{
    91509112    RTUINT128U uSrc1 = *puDst;
    91519113    puDst->au64[0] = uSrc1.au64[0] + puSrc->au64[0];
     
    91799141#ifdef IEM_WITHOUT_ASSEMBLY
    91809142
    9181 IEM_DECL_IMPL_DEF(void, iemAImpl_psubb_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9182 {
    9183     RT_NOREF(pFpuState);
     9143IEM_DECL_IMPL_DEF(void, iemAImpl_psubb_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9144{
    91849145    RTUINT64U uSrc1 = { *puDst };
    91859146    RTUINT64U uSrc2 = { *puSrc };
     
    91979158
    91989159
    9199 IEM_DECL_IMPL_DEF(void, iemAImpl_psubb_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9200 {
    9201     RT_NOREF(pFpuState);
     9160IEM_DECL_IMPL_DEF(void, iemAImpl_psubb_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9161{
    92029162    RTUINT128U uSrc1 = *puDst;
    92039163    puDst->au8[0]  = uSrc1.au8[0]  - puSrc->au8[0];
     
    92879247#ifdef IEM_WITHOUT_ASSEMBLY
    92889248
    9289 IEM_DECL_IMPL_DEF(void, iemAImpl_psubsb_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9290 {
    9291     RT_NOREF(pFpuState);
     9249IEM_DECL_IMPL_DEF(void, iemAImpl_psubsb_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9250{
    92929251    RTUINT64U uSrc1 = { *puDst };
    92939252    RTUINT64U uSrc2 = { *puSrc };
     
    93059264
    93069265
    9307 IEM_DECL_IMPL_DEF(void, iemAImpl_psubsb_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9308 {
    9309     RT_NOREF(pFpuState);
     9266IEM_DECL_IMPL_DEF(void, iemAImpl_psubsb_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9267{
    93109268    RTUINT128U uSrc1 = *puDst;
    93119269    puDst->au8[0]  = SATURATED_SIGNED_WORD_TO_SIGNED_BYTE(uSrc1.ai8[0]  - puSrc->ai8[0]);
     
    93989356#ifdef IEM_WITHOUT_ASSEMBLY
    93999357
    9400 IEM_DECL_IMPL_DEF(void, iemAImpl_psubusb_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9401 {
    9402     RT_NOREF(pFpuState);
     9358IEM_DECL_IMPL_DEF(void, iemAImpl_psubusb_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9359{
    94039360    RTUINT64U uSrc1 = { *puDst };
    94049361    RTUINT64U uSrc2 = { *puSrc };
     
    94169373
    94179374
    9418 IEM_DECL_IMPL_DEF(void, iemAImpl_psubusb_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9419 {
    9420     RT_NOREF(pFpuState);
     9375IEM_DECL_IMPL_DEF(void, iemAImpl_psubusb_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9376{
    94219377    RTUINT128U uSrc1 = *puDst;
    94229378    puDst->au8[0]  = SATURATED_UNSIGNED_WORD_TO_UNSIGNED_BYTE_SUB(uSrc1.au8[0]  - puSrc->au8[0]);
     
    95049460#ifdef IEM_WITHOUT_ASSEMBLY
    95059461
    9506 IEM_DECL_IMPL_DEF(void, iemAImpl_psubw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9507 {
    9508     RT_NOREF(pFpuState);
     9462IEM_DECL_IMPL_DEF(void, iemAImpl_psubw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9463{
    95099464    RTUINT64U uSrc1 = { *puDst };
    95109465    RTUINT64U uSrc2 = { *puSrc };
     
    95189473
    95199474
    9520 IEM_DECL_IMPL_DEF(void, iemAImpl_psubw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9521 {
    9522     RT_NOREF(pFpuState);
     9475IEM_DECL_IMPL_DEF(void, iemAImpl_psubw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9476{
    95239477    RTUINT128U uSrc1 = *puDst;
    95249478    puDst->au16[0] = uSrc1.au16[0] - puSrc->au16[0];
     
    95769530#ifdef IEM_WITHOUT_ASSEMBLY
    95779531
    9578 IEM_DECL_IMPL_DEF(void, iemAImpl_psubsw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9579 {
    9580     RT_NOREF(pFpuState);
     9532IEM_DECL_IMPL_DEF(void, iemAImpl_psubsw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9533{
    95819534    RTUINT64U uSrc1 = { *puDst };
    95829535    RTUINT64U uSrc2 = { *puSrc };
     
    95909543
    95919544
    9592 IEM_DECL_IMPL_DEF(void, iemAImpl_psubsw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9593 {
    9594     RT_NOREF(pFpuState);
     9545IEM_DECL_IMPL_DEF(void, iemAImpl_psubsw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9546{
    95959547    RTUINT128U uSrc1 = *puDst;
    95969548    puDst->au16[0] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD(uSrc1.ai16[0] - puSrc->ai16[0]);
     
    96519603#ifdef IEM_WITHOUT_ASSEMBLY
    96529604
    9653 IEM_DECL_IMPL_DEF(void, iemAImpl_psubusw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9654 {
    9655     RT_NOREF(pFpuState);
     9605IEM_DECL_IMPL_DEF(void, iemAImpl_psubusw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9606{
    96569607    RTUINT64U uSrc1 = { *puDst };
    96579608    RTUINT64U uSrc2 = { *puSrc };
     
    96659616
    96669617
    9667 IEM_DECL_IMPL_DEF(void, iemAImpl_psubusw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9668 {
    9669     RT_NOREF(pFpuState);
     9618IEM_DECL_IMPL_DEF(void, iemAImpl_psubusw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9619{
    96709620    RTUINT128U uSrc1 = *puDst;
    96719621    puDst->au16[0] = SATURATED_UNSIGNED_DWORD_TO_UNSIGNED_WORD_SUB(uSrc1.au16[0] - puSrc->au16[0]);
     
    97229672#ifdef IEM_WITHOUT_ASSEMBLY
    97239673
    9724 IEM_DECL_IMPL_DEF(void, iemAImpl_psubd_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9725 {
    9726     RT_NOREF(pFpuState);
     9674IEM_DECL_IMPL_DEF(void, iemAImpl_psubd_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9675{
    97279676    RTUINT64U uSrc1 = { *puDst };
    97289677    RTUINT64U uSrc2 = { *puSrc };
     
    97349683
    97359684
    9736 IEM_DECL_IMPL_DEF(void, iemAImpl_psubd_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9737 {
    9738     RT_NOREF(pFpuState);
     9685IEM_DECL_IMPL_DEF(void, iemAImpl_psubd_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9686{
    97399687    RTUINT128U uSrc1 = *puDst;
    97409688    puDst->au32[0] = uSrc1.au32[0] - puSrc->au32[0];
     
    97769724#ifdef IEM_WITHOUT_ASSEMBLY
    97779725
    9778 IEM_DECL_IMPL_DEF(void, iemAImpl_psubq_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9779 {
    9780     RT_NOREF(pFpuState);
     9726IEM_DECL_IMPL_DEF(void, iemAImpl_psubq_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9727{
    97819728    *puDst = *puDst - *puSrc;
    97829729}
    97839730
    9784 IEM_DECL_IMPL_DEF(void, iemAImpl_psubq_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9785 {
    9786     RT_NOREF(pFpuState);
     9731IEM_DECL_IMPL_DEF(void, iemAImpl_psubq_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9732{
    97879733    RTUINT128U uSrc1 = *puDst;
    97889734    puDst->au64[0] = uSrc1.au64[0] - puSrc->au64[0];
     
    98179763#ifdef IEM_WITHOUT_ASSEMBLY
    98189764
    9819 IEM_DECL_IMPL_DEF(void, iemAImpl_pmullw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9820 {
    9821     RT_NOREF(pFpuState);
     9765IEM_DECL_IMPL_DEF(void, iemAImpl_pmullw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9766{
    98229767    RTUINT64U uSrc1 = { *puDst };
    98239768    RTUINT64U uSrc2 = { *puSrc };
     
    98319776
    98329777
    9833 IEM_DECL_IMPL_DEF(void, iemAImpl_pmullw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9834 {
    9835     RT_NOREF(pFpuState);
     9778IEM_DECL_IMPL_DEF(void, iemAImpl_pmullw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9779{
    98369780    RTUINT128U uSrc1 = *puDst;
    98379781    puDst->ai16[0] = uSrc1.ai16[0] * puSrc->ai16[0];
     
    98479791#endif
    98489792
    9849 IEM_DECL_IMPL_DEF(void, iemAImpl_pmulld_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     9793IEM_DECL_IMPL_DEF(void, iemAImpl_pmulld_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    98509794{
    98519795    RTUINT128U uSrc1 = *puDst;
     
    98559799    puDst->ai32[2] = uSrc1.ai32[2] * puSrc->ai32[2];
    98569800    puDst->ai32[3] = uSrc1.ai32[3] * puSrc->ai32[3];
    9857     RT_NOREF(pFpuState);
    98589801}
    98599802
     
    99209863#ifdef IEM_WITHOUT_ASSEMBLY
    99219864
    9922 IEM_DECL_IMPL_DEF(void, iemAImpl_pmulhw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
    9923 {
    9924     RT_NOREF(pFpuState);
     9865IEM_DECL_IMPL_DEF(void, iemAImpl_pmulhw_u64,(uint64_t *puDst, uint64_t const *puSrc))
     9866{
    99259867    RTUINT64U uSrc1 = { *puDst };
    99269868    RTUINT64U uSrc2 = { *puSrc };
     
    99349876
    99359877
    9936 IEM_DECL_IMPL_DEF(void, iemAImpl_pmulhw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
    9937 {
    9938     RT_NOREF(pFpuState);
     9878IEM_DECL_IMPL_DEF(void, iemAImpl_pmulhw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
     9879{
    99399880    RTUINT128U uSrc1 = *puDst;
    99409881    puDst->ai16[0] = RT_HIWORD(uSrc1.ai16[0] * puSrc->ai16[0]);
     
    1133911280#ifdef IEM_WITHOUT_ASSEMBLY
    1134011281
    11341 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddwd_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     11282IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddwd_u64,(uint64_t *puDst, uint64_t const *puSrc))
    1134211283{
    1134311284    RTUINT64U uSrc1 = { *puDst };
     
    1134811289    uDst.ai32[1] = (int32_t)uSrc1.ai16[2] * uSrc2.ai16[2] + (int32_t)uSrc1.ai16[3] * uSrc2.ai16[3];
    1134911290    *puDst = uDst.u;
    11350     RT_NOREF(pFpuState);
    11351 }
    11352 
    11353 
    11354 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddwd_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11291}
     11292
     11293
     11294IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddwd_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1135511295{
    1135611296    RTUINT128U uSrc1 = *puDst;
     
    1136011300    puDst->ai32[2] = (int32_t)uSrc1.ai16[4] * puSrc->ai16[4] + (int32_t)uSrc1.ai16[5] * puSrc->ai16[5];
    1136111301    puDst->ai32[3] = (int32_t)uSrc1.ai16[6] * puSrc->ai16[6] + (int32_t)uSrc1.ai16[7] * puSrc->ai16[7];
    11362     RT_NOREF(pFpuState);
    11363 }
    11364 
    11365 #endif
    11366 
    11367 
    11368 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddwd_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     11302}
     11303
     11304#endif
     11305
     11306
     11307IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddwd_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1136911308{
    1137011309    RTUINT64U uSrc1 = { *puDst };
     
    1137511314    uDst.ai32[1] = (int32_t)uSrc1.ai16[2] * uSrc2.ai16[2] + (int32_t)uSrc1.ai16[3] * uSrc2.ai16[3];
    1137611315    *puDst = uDst.u;
    11377     RT_NOREF(pFpuState);
    11378 }
    11379 
    11380 
    11381 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddwd_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11316}
     11317
     11318
     11319IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddwd_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1138211320{
    1138311321    RTUINT128U uSrc1 = *puDst;
     
    1138711325    puDst->ai32[2] = (int32_t)uSrc1.ai16[4] * puSrc->ai16[4] + (int32_t)uSrc1.ai16[5] * puSrc->ai16[5];
    1138811326    puDst->ai32[3] = (int32_t)uSrc1.ai16[6] * puSrc->ai16[6] + (int32_t)uSrc1.ai16[7] * puSrc->ai16[7];
    11389     RT_NOREF(pFpuState);
    1139011327}
    1139111328
     
    1141811355#ifdef IEM_WITHOUT_ASSEMBLY
    1141911356
    11420 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxub_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     11357IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxub_u64,(uint64_t *puDst, uint64_t const *puSrc))
    1142111358{
    1142211359    RTUINT64U uSrc1 = { *puDst };
     
    1143311370    uDst.au8[7] = RT_MAX(uSrc1.au8[7], uSrc2.au8[7]);
    1143411371    *puDst = uDst.u;
    11435     RT_NOREF(pFpuState);
    11436 }
    11437 
    11438 
    11439 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxub_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11372}
     11373
     11374
     11375IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxub_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1144011376{
    1144111377    RTUINT128U uSrc1 = *puDst;
     
    1145711393    puDst->au8[14] = RT_MAX(uSrc1.au8[14], puSrc->au8[14]);
    1145811394    puDst->au8[15] = RT_MAX(uSrc1.au8[15], puSrc->au8[15]);
    11459     RT_NOREF(pFpuState);
    11460 }
    11461 
    11462 #endif
    11463 
    11464 
    11465 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxuw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11395}
     11396
     11397#endif
     11398
     11399
     11400IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxuw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1146611401{
    1146711402    RTUINT128U uSrc1 = *puDst;
     
    1147511410    puDst->au16[ 6] = RT_MAX(uSrc1.au16[ 6], puSrc->au16[ 6]);
    1147611411    puDst->au16[ 7] = RT_MAX(uSrc1.au16[ 7], puSrc->au16[ 7]);
    11477     RT_NOREF(pFpuState);
    11478 }
    11479 
    11480 
    11481 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxud_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11412}
     11413
     11414
     11415IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxud_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1148211416{
    1148311417    RTUINT128U uSrc1 = *puDst;
     
    1148711421    puDst->au32[ 2] = RT_MAX(uSrc1.au32[ 2], puSrc->au32[ 2]);
    1148811422    puDst->au32[ 3] = RT_MAX(uSrc1.au32[ 3], puSrc->au32[ 3]);
    11489     RT_NOREF(pFpuState);
    1149011423}
    1149111424
     
    1162211555#ifdef IEM_WITHOUT_ASSEMBLY
    1162311556
    11624 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxsw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     11557IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxsw_u64,(uint64_t *puDst, uint64_t const *puSrc))
    1162511558{
    1162611559    RTUINT64U uSrc1 = { *puDst };
     
    1163311566    uDst.ai16[3] = RT_MAX(uSrc1.ai16[3], uSrc2.ai16[3]);
    1163411567    *puDst = uDst.u;
    11635     RT_NOREF(pFpuState);
    11636 }
    11637 
    11638 
    11639 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxsw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11568}
     11569
     11570
     11571IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxsw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1164011572{
    1164111573    RTUINT128U uSrc1 = *puDst;
     
    1164911581    puDst->ai16[ 6] = RT_MAX(uSrc1.ai16[ 6], puSrc->ai16[ 6]);
    1165011582    puDst->ai16[ 7] = RT_MAX(uSrc1.ai16[ 7], puSrc->ai16[ 7]);
    11651     RT_NOREF(pFpuState);
    11652 }
    11653 
    11654 #endif
    11655 
    11656 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxsb_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11583}
     11584
     11585#endif
     11586
     11587IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxsb_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1165711588{
    1165811589    RTUINT128U uSrc1 = *puDst;
     
    1167411605    puDst->ai8[14] = RT_MAX(uSrc1.ai8[14], puSrc->ai8[14]);
    1167511606    puDst->ai8[15] = RT_MAX(uSrc1.ai8[15], puSrc->ai8[15]);
    11676     RT_NOREF(pFpuState);
    11677 }
    11678 
    11679 
    11680 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxsd_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11607}
     11608
     11609
     11610IEM_DECL_IMPL_DEF(void, iemAImpl_pmaxsd_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1168111611{
    1168211612    RTUINT128U uSrc1 = *puDst;
     
    1168611616    puDst->ai32[ 2] = RT_MAX(uSrc1.ai32[ 2], puSrc->ai32[ 2]);
    1168711617    puDst->ai32[ 3] = RT_MAX(uSrc1.ai32[ 3], puSrc->ai32[ 3]);
    11688     RT_NOREF(pFpuState);
    1168911618}
    1169011619
     
    1182111750#ifdef IEM_WITHOUT_ASSEMBLY
    1182211751
    11823 IEM_DECL_IMPL_DEF(void, iemAImpl_pminub_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     11752IEM_DECL_IMPL_DEF(void, iemAImpl_pminub_u64,(uint64_t *puDst, uint64_t const *puSrc))
    1182411753{
    1182511754    RTUINT64U uSrc1 = { *puDst };
     
    1183611765    uDst.au8[7] = RT_MIN(uSrc1.au8[7], uSrc2.au8[7]);
    1183711766    *puDst = uDst.u;
    11838     RT_NOREF(pFpuState);
    11839 }
    11840 
    11841 
    11842 IEM_DECL_IMPL_DEF(void, iemAImpl_pminub_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11767}
     11768
     11769
     11770IEM_DECL_IMPL_DEF(void, iemAImpl_pminub_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1184311771{
    1184411772    RTUINT128U uSrc1 = *puDst;
     
    1186011788    puDst->au8[14] = RT_MIN(uSrc1.au8[14], puSrc->au8[14]);
    1186111789    puDst->au8[15] = RT_MIN(uSrc1.au8[15], puSrc->au8[15]);
    11862     RT_NOREF(pFpuState);
    11863 }
    11864 
    11865 #endif
    11866 
    11867 IEM_DECL_IMPL_DEF(void, iemAImpl_pminuw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11790}
     11791
     11792#endif
     11793
     11794IEM_DECL_IMPL_DEF(void, iemAImpl_pminuw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1186811795{
    1186911796    RTUINT128U uSrc1 = *puDst;
     
    1187711804    puDst->au16[ 6] = RT_MIN(uSrc1.au16[ 6], puSrc->au16[ 6]);
    1187811805    puDst->au16[ 7] = RT_MIN(uSrc1.au16[ 7], puSrc->au16[ 7]);
    11879     RT_NOREF(pFpuState);
    11880 }
    11881 
    11882 
    11883 IEM_DECL_IMPL_DEF(void, iemAImpl_pminud_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11806}
     11807
     11808
     11809IEM_DECL_IMPL_DEF(void, iemAImpl_pminud_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1188411810{
    1188511811    RTUINT128U uSrc1 = *puDst;
     
    1188911815    puDst->au32[ 2] = RT_MIN(uSrc1.au32[ 2], puSrc->au32[ 2]);
    1189011816    puDst->au32[ 3] = RT_MIN(uSrc1.au32[ 3], puSrc->au32[ 3]);
    11891     RT_NOREF(pFpuState);
    1189211817}
    1189311818
     
    1202411949#ifdef IEM_WITHOUT_ASSEMBLY
    1202511950
    12026 IEM_DECL_IMPL_DEF(void, iemAImpl_pminsw_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     11951IEM_DECL_IMPL_DEF(void, iemAImpl_pminsw_u64,(uint64_t *puDst, uint64_t const *puSrc))
    1202711952{
    1202811953    RTUINT64U uSrc1 = { *puDst };
     
    1203511960    uDst.ai16[3] = RT_MIN(uSrc1.ai16[3], uSrc2.ai16[3]);
    1203611961    *puDst = uDst.u;
    12037     RT_NOREF(pFpuState);
    12038 }
    12039 
    12040 
    12041 IEM_DECL_IMPL_DEF(void, iemAImpl_pminsw_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11962}
     11963
     11964
     11965IEM_DECL_IMPL_DEF(void, iemAImpl_pminsw_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1204211966{
    1204311967    RTUINT128U uSrc1 = *puDst;
     
    1205111975    puDst->ai16[ 6] = RT_MIN(uSrc1.ai16[ 6], puSrc->ai16[ 6]);
    1205211976    puDst->ai16[ 7] = RT_MIN(uSrc1.ai16[ 7], puSrc->ai16[ 7]);
    12053     RT_NOREF(pFpuState);
    12054 }
    12055 
    12056 #endif
    12057 
    12058 IEM_DECL_IMPL_DEF(void, iemAImpl_pminsb_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     11977}
     11978
     11979#endif
     11980
     11981IEM_DECL_IMPL_DEF(void, iemAImpl_pminsb_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1205911982{
    1206011983    RTUINT128U uSrc1 = *puDst;
     
    1207611999    puDst->ai8[14] = RT_MIN(uSrc1.ai8[14], puSrc->ai8[14]);
    1207712000    puDst->ai8[15] = RT_MIN(uSrc1.ai8[15], puSrc->ai8[15]);
    12078     RT_NOREF(pFpuState);
    12079 }
    12080 
    12081 
    12082 IEM_DECL_IMPL_DEF(void, iemAImpl_pminsd_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     12001}
     12002
     12003
     12004IEM_DECL_IMPL_DEF(void, iemAImpl_pminsd_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1208312005{
    1208412006    RTUINT128U uSrc1 = *puDst;
     
    1208812010    puDst->ai32[ 2] = RT_MIN(uSrc1.ai32[ 2], puSrc->ai32[ 2]);
    1208912011    puDst->ai32[ 3] = RT_MIN(uSrc1.ai32[ 3], puSrc->ai32[ 3]);
    12090     RT_NOREF(pFpuState);
    1209112012}
    1209212013
     
    1252912450 */
    1253012451
    12531 IEM_DECL_IMPL_DEF(void, iemAImpl_pshufb_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     12452IEM_DECL_IMPL_DEF(void, iemAImpl_pshufb_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1253212453{
    1253312454    RTUINT64U const uSrc    = { *puSrc };
     
    1254212463    }
    1254312464    *puDst = uDstOut.u;
    12544     RT_NOREF(pFpuState);
    12545 }
    12546 
    12547 
    12548 IEM_DECL_IMPL_DEF(void, iemAImpl_pshufb_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     12465}
     12466
     12467
     12468IEM_DECL_IMPL_DEF(void, iemAImpl_pshufb_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1254912469{
    1255012470    RTUINT128U const uSrc    = *puSrc;
     
    1255912479            puDst->au8[iByte] = uDstIn.au8[idxSrc & 15];
    1256012480    }
    12561     RT_NOREF(pFpuState);
    1256212481}
    1256312482
     
    1374113660 */
    1374213661
    13743 IEM_DECL_IMPL_DEF(void, iemAImpl_pabsb_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     13662IEM_DECL_IMPL_DEF(void, iemAImpl_pabsb_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1374413663{
    1374513664    RTUINT64U const uSrc    = { *puSrc };
     
    1375513674    uDstOut.au8[7] = RT_ABS(uSrc.ai8[7]);
    1375613675    *puDst = uDstOut.u;
    13757     RT_NOREF(pFpuState);
    13758 }
    13759 
    13760 
    13761 IEM_DECL_IMPL_DEF(void, iemAImpl_pabsb_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     13676}
     13677
     13678
     13679IEM_DECL_IMPL_DEF(void, iemAImpl_pabsb_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1376213680{
    1376313681    puDst->au8[ 0] = RT_ABS(puSrc->ai8[ 0]);
     
    1377713695    puDst->au8[14] = RT_ABS(puSrc->ai8[14]);
    1377813696    puDst->au8[15] = RT_ABS(puSrc->ai8[15]);
    13779     RT_NOREF(pFpuState);
    13780 }
    13781 
    13782 
    13783 IEM_DECL_IMPL_DEF(void, iemAImpl_pabsw_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     13697}
     13698
     13699
     13700IEM_DECL_IMPL_DEF(void, iemAImpl_pabsw_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1378413701{
    1378513702    RTUINT64U const uSrc    = { *puSrc };
     
    1379113708    uDstOut.au16[3] = RT_ABS(uSrc.ai16[3]);
    1379213709    *puDst = uDstOut.u;
    13793     RT_NOREF(pFpuState);
    13794 }
    13795 
    13796 
    13797 IEM_DECL_IMPL_DEF(void, iemAImpl_pabsw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     13710}
     13711
     13712
     13713IEM_DECL_IMPL_DEF(void, iemAImpl_pabsw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1379813714{
    1379913715    puDst->au16[ 0] = RT_ABS(puSrc->ai16[ 0]);
     
    1380513721    puDst->au16[ 6] = RT_ABS(puSrc->ai16[ 6]);
    1380613722    puDst->au16[ 7] = RT_ABS(puSrc->ai16[ 7]);
    13807     RT_NOREF(pFpuState);
    13808 }
    13809 
    13810 
    13811 IEM_DECL_IMPL_DEF(void, iemAImpl_pabsd_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     13723}
     13724
     13725
     13726IEM_DECL_IMPL_DEF(void, iemAImpl_pabsd_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1381213727{
    1381313728    RTUINT64U const uSrc    = { *puSrc };
     
    1381713732    uDstOut.au32[1] = RT_ABS(uSrc.ai32[1]);
    1381813733    *puDst = uDstOut.u;
    13819     RT_NOREF(pFpuState);
    13820 }
    13821 
    13822 
    13823 IEM_DECL_IMPL_DEF(void, iemAImpl_pabsd_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     13734}
     13735
     13736
     13737IEM_DECL_IMPL_DEF(void, iemAImpl_pabsd_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1382413738{
    1382513739    puDst->au32[ 0] = RT_ABS(puSrc->ai32[ 0]);
     
    1382713741    puDst->au32[ 2] = RT_ABS(puSrc->ai32[ 2]);
    1382813742    puDst->au32[ 3] = RT_ABS(puSrc->ai32[ 3]);
    13829     RT_NOREF(pFpuState);
    1383013743}
    1383113744
     
    1394813861 * PSIGNB / VPSIGNB / PSIGNW / VPSIGNW / PSIGND / VPSIGND
    1394913862 */
    13950 IEM_DECL_IMPL_DEF(void, iemAImpl_psignb_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     13863IEM_DECL_IMPL_DEF(void, iemAImpl_psignb_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1395113864{
    1395213865    RTUINT64U uSrc1 = { *puDst };
     
    1396513878
    1396613879    *puDst = uDst.u;
    13967     RT_NOREF(pFpuState);
    13968 }
    13969 
    13970 
    13971 IEM_DECL_IMPL_DEF(void, iemAImpl_psignb_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     13880}
     13881
     13882
     13883IEM_DECL_IMPL_DEF(void, iemAImpl_psignb_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1397213884{
    1397313885    RTUINT128U uSrc1 = *puDst;
     
    1398213894            puDst->ai8[i] = uSrc1.ai8[i];
    1398313895    }
    13984 
    13985     RT_NOREF(pFpuState);
    13986 }
    13987 
    13988 
    13989 IEM_DECL_IMPL_DEF(void, iemAImpl_psignw_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     13896}
     13897
     13898
     13899IEM_DECL_IMPL_DEF(void, iemAImpl_psignw_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1399013900{
    1399113901    RTUINT64U uSrc1 = { *puDst };
     
    1400413914
    1400513915    *puDst = uDst.u;
    14006     RT_NOREF(pFpuState);
    14007 }
    14008 
    14009 
    14010 IEM_DECL_IMPL_DEF(void, iemAImpl_psignw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     13916}
     13917
     13918
     13919IEM_DECL_IMPL_DEF(void, iemAImpl_psignw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1401113920{
    1401213921    RTUINT128U uSrc1 = *puDst;
     
    1402113930            puDst->ai16[i] = uSrc1.ai16[i];
    1402213931    }
    14023 
    14024     RT_NOREF(pFpuState);
    14025 }
    14026 
    14027 
    14028 IEM_DECL_IMPL_DEF(void, iemAImpl_psignd_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     13932}
     13933
     13934
     13935IEM_DECL_IMPL_DEF(void, iemAImpl_psignd_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1402913936{
    1403013937    RTUINT64U uSrc1 = { *puDst };
     
    1404313950
    1404413951    *puDst = uDst.u;
    14045     RT_NOREF(pFpuState);
    14046 }
    14047 
    14048 
    14049 IEM_DECL_IMPL_DEF(void, iemAImpl_psignd_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     13952}
     13953
     13954
     13955IEM_DECL_IMPL_DEF(void, iemAImpl_psignd_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1405013956{
    1405113957    RTUINT128U uSrc1 = *puDst;
     
    1406013966            puDst->ai32[i] = uSrc1.ai32[i];
    1406113967    }
    14062 
    14063     RT_NOREF(pFpuState);
    1406413968}
    1406513969
     
    1415214056 * PHADDW / VPHADDW / PHADDD / VPHADDD
    1415314057 */
    14154 IEM_DECL_IMPL_DEF(void, iemAImpl_phaddw_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     14058IEM_DECL_IMPL_DEF(void, iemAImpl_phaddw_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1415514059{
    1415614060    RTUINT64U uSrc1 = { *puDst };
     
    1416314067    uDst.ai16[3] = uSrc2.ai16[2] + uSrc2.ai16[3];
    1416414068    *puDst = uDst.u;
    14165     RT_NOREF(pFpuState);
    14166 }
    14167 
    14168 
    14169 IEM_DECL_IMPL_DEF(void, iemAImpl_phaddw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     14069}
     14070
     14071
     14072IEM_DECL_IMPL_DEF(void, iemAImpl_phaddw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1417014073{
    1417114074    RTUINT128U uSrc1 = *puDst;
     
    1418014083    puDst->ai16[6] = puSrc->ai16[4] + puSrc->ai16[5];
    1418114084    puDst->ai16[7] = puSrc->ai16[6] + puSrc->ai16[7];
    14182     RT_NOREF(pFpuState);
    14183 }
    14184 
    14185 
    14186 IEM_DECL_IMPL_DEF(void, iemAImpl_phaddd_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     14085}
     14086
     14087
     14088IEM_DECL_IMPL_DEF(void, iemAImpl_phaddd_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1418714089{
    1418814090    RTUINT64U uSrc1 = { *puDst };
     
    1419314095    uDst.ai32[1] = uSrc2.ai32[0] + uSrc2.ai32[1];
    1419414096    *puDst = uDst.u;
    14195     RT_NOREF(pFpuState);
    14196 }
    14197 
    14198 
    14199 IEM_DECL_IMPL_DEF(void, iemAImpl_phaddd_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     14097}
     14098
     14099
     14100IEM_DECL_IMPL_DEF(void, iemAImpl_phaddd_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1420014101{
    1420114102    RTUINT128U uSrc1 = *puDst;
     
    1420614107    puDst->ai32[2] = puSrc->ai32[0] + puSrc->ai32[1];
    1420714108    puDst->ai32[3] = puSrc->ai32[2] + puSrc->ai32[3];
    14208     RT_NOREF(pFpuState);
    1420914109}
    1421014110
     
    1429714197 * PHSUBW / VPHSUBW / PHSUBD / VPHSUBD
    1429814198 */
    14299 IEM_DECL_IMPL_DEF(void, iemAImpl_phsubw_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     14199IEM_DECL_IMPL_DEF(void, iemAImpl_phsubw_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1430014200{
    1430114201    RTUINT64U uSrc1 = { *puDst };
     
    1430814208    uDst.ai16[3] = uSrc2.ai16[2] - uSrc2.ai16[3];
    1430914209    *puDst = uDst.u;
    14310     RT_NOREF(pFpuState);
    14311 }
    14312 
    14313 
    14314 IEM_DECL_IMPL_DEF(void, iemAImpl_phsubw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     14210}
     14211
     14212
     14213IEM_DECL_IMPL_DEF(void, iemAImpl_phsubw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1431514214{
    1431614215    RTUINT128U uSrc1 = *puDst;
     
    1432514224    puDst->ai16[6] = puSrc->ai16[4] - puSrc->ai16[5];
    1432614225    puDst->ai16[7] = puSrc->ai16[6] - puSrc->ai16[7];
    14327     RT_NOREF(pFpuState);
    14328 }
    14329 
    14330 
    14331 IEM_DECL_IMPL_DEF(void, iemAImpl_phsubd_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     14226}
     14227
     14228
     14229IEM_DECL_IMPL_DEF(void, iemAImpl_phsubd_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1433214230{
    1433314231    RTUINT64U uSrc1 = { *puDst };
     
    1433814236    uDst.ai32[1] = uSrc2.ai32[0] - uSrc2.ai32[1];
    1433914237    *puDst = uDst.u;
    14340     RT_NOREF(pFpuState);
    14341 }
    14342 
    14343 
    14344 IEM_DECL_IMPL_DEF(void, iemAImpl_phsubd_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     14238}
     14239
     14240
     14241IEM_DECL_IMPL_DEF(void, iemAImpl_phsubd_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1434514242{
    1434614243    RTUINT128U uSrc1 = *puDst;
     
    1435114248    puDst->ai32[2] = puSrc->ai32[0] - puSrc->ai32[1];
    1435214249    puDst->ai32[3] = puSrc->ai32[2] - puSrc->ai32[3];
    14353     RT_NOREF(pFpuState);
    1435414250}
    1435514251
     
    1444214338 * PHADDSW / VPHADDSW
    1444314339 */
    14444 IEM_DECL_IMPL_DEF(void, iemAImpl_phaddsw_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     14340IEM_DECL_IMPL_DEF(void, iemAImpl_phaddsw_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1444514341{
    1444614342    RTUINT64U uSrc1 = { *puDst };
     
    1445314349    uDst.ai16[3] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD(uSrc2.ai16[2] + uSrc2.ai16[3]);
    1445414350    *puDst = uDst.u;
    14455     RT_NOREF(pFpuState);
    14456 }
    14457 
    14458 
    14459 IEM_DECL_IMPL_DEF(void, iemAImpl_phaddsw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     14351}
     14352
     14353
     14354IEM_DECL_IMPL_DEF(void, iemAImpl_phaddsw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1446014355{
    1446114356    RTUINT128U uSrc1 = *puDst;
     
    1447014365    puDst->ai16[6] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD(puSrc->ai16[4] + puSrc->ai16[5]);
    1447114366    puDst->ai16[7] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD(puSrc->ai16[6] + puSrc->ai16[7]);
    14472     RT_NOREF(pFpuState);
    1447314367}
    1447414368
     
    1452514419 * PHSUBSW / VPHSUBSW
    1452614420 */
    14527 IEM_DECL_IMPL_DEF(void, iemAImpl_phsubsw_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     14421IEM_DECL_IMPL_DEF(void, iemAImpl_phsubsw_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1452814422{
    1452914423    RTUINT64U uSrc1 = { *puDst };
     
    1453614430    uDst.ai16[3] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD(uSrc2.ai16[2] - uSrc2.ai16[3]);
    1453714431    *puDst = uDst.u;
    14538     RT_NOREF(pFpuState);
    14539 }
    14540 
    14541 
    14542 IEM_DECL_IMPL_DEF(void, iemAImpl_phsubsw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     14432}
     14433
     14434
     14435IEM_DECL_IMPL_DEF(void, iemAImpl_phsubsw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1454314436{
    1454414437    RTUINT128U uSrc1 = *puDst;
     
    1455314446    puDst->ai16[6] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD(puSrc->ai16[4] - puSrc->ai16[5]);
    1455414447    puDst->ai16[7] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD(puSrc->ai16[6] - puSrc->ai16[7]);
    14555     RT_NOREF(pFpuState);
    1455614448}
    1455714449
     
    1460814500 * PMADDUBSW / VPMADDUBSW
    1460914501 */
    14610 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddubsw_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     14502IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddubsw_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1461114503{
    1461214504    RTUINT64U uSrc1 = { *puDst };
     
    1461914511    uDst.ai16[3] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD((uint16_t)uSrc1.au8[6] * uSrc2.ai8[6] + (uint16_t)uSrc1.au8[7] * uSrc2.ai8[7]);
    1462014512    *puDst = uDst.u;
    14621     RT_NOREF(pFpuState);
    14622 }
    14623 
    14624 
    14625 IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddubsw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     14513}
     14514
     14515
     14516IEM_DECL_IMPL_DEF(void, iemAImpl_pmaddubsw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1462614517{
    1462714518    RTUINT128U uSrc1 = *puDst;
     
    1463514526    puDst->ai16[6] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD((uint16_t)uSrc1.au8[12] * puSrc->ai8[12] + (uint16_t)uSrc1.au8[13] * puSrc->ai8[13]);
    1463614527    puDst->ai16[7] = SATURATED_SIGNED_DWORD_TO_SIGNED_WORD((uint16_t)uSrc1.au8[14] * puSrc->ai8[14] + (uint16_t)uSrc1.au8[15] * puSrc->ai8[15]);
    14637     RT_NOREF(pFpuState);
    1463814528}
    1463914529
     
    1469114581    (uint16_t)(((((int32_t)(a_Src1) * (a_Src2)) >> 14 ) + 1) >> 1)
    1469214582
    14693 IEM_DECL_IMPL_DEF(void, iemAImpl_pmulhrsw_u64_fallback,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     14583IEM_DECL_IMPL_DEF(void, iemAImpl_pmulhrsw_u64_fallback,(uint64_t *puDst, uint64_t const *puSrc))
    1469414584{
    1469514585    RTUINT64U uSrc1 = { *puDst };
     
    1470214592    uDst.au16[3] = DO_PMULHRSW(uSrc1.ai16[3], uSrc2.ai16[3]);
    1470314593    *puDst = uDst.u;
    14704     RT_NOREF(pFpuState);
    14705 }
    14706 
    14707 
    14708 IEM_DECL_IMPL_DEF(void, iemAImpl_pmulhrsw_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     14594}
     14595
     14596
     14597IEM_DECL_IMPL_DEF(void, iemAImpl_pmulhrsw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1470914598{
    1471014599    RTUINT128U uSrc1 = *puDst;
     
    1471814607    puDst->ai16[6] = DO_PMULHRSW(uSrc1.ai16[6], puSrc->ai16[6]);
    1471914608    puDst->ai16[7] = DO_PMULHRSW(uSrc1.ai16[7], puSrc->ai16[7]);
    14720     RT_NOREF(pFpuState);
    1472114609}
    1472214610
     
    1494114829#ifdef IEM_WITHOUT_ASSEMBLY
    1494214830
    14943 IEM_DECL_IMPL_DEF(void, iemAImpl_pmuludq_u64,(PCX86FXSTATE pFpuState, uint64_t *puDst, uint64_t const *puSrc))
     14831IEM_DECL_IMPL_DEF(void, iemAImpl_pmuludq_u64,(uint64_t *puDst, uint64_t const *puSrc))
    1494414832{
    1494514833    RTUINT64U uSrc1 = { *puDst };
     
    1494714835    ASMCompilerBarrier();
    1494814836    *puDst = (uint64_t)uSrc1.au32[0] * uSrc2.au32[0];
    14949     RT_NOREF(pFpuState);
    14950 }
    14951 
    14952 
    14953 IEM_DECL_IMPL_DEF(void, iemAImpl_pmuludq_u128,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc))
     14837}
     14838
     14839
     14840IEM_DECL_IMPL_DEF(void, iemAImpl_pmuludq_u128,(PRTUINT128U puDst, PCRTUINT128U puSrc))
    1495414841{
    1495514842    RTUINT128U uSrc1 = *puDst;
     
    1495814845    puDst->au64[0] = (uint64_t)uSrc1.au32[0] * uSrc2.au32[0];
    1495914846    puDst->au64[1] = (uint64_t)uSrc1.au32[2] * uSrc2.au32[2];
    14960     RT_NOREF(pFpuState);
    1496114847}
    1496214848
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstThree0f38.cpp.h

    r104018 r104103  
    3838 *      pxxx    mm1, mm2/mem64
    3939 * that was introduced with SSE3.
     40 *
     41 * The @a pfnU64 worker function takes no FXSAVE state, just the operands.
    4042 */
    41 FNIEMOP_DEF_1(iemOpCommonMmx_FullFull_To_Full_Ssse3, PFNIEMAIMPLMEDIAF2U64, pfnU64)
     43FNIEMOP_DEF_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3, PFNIEMAIMPLMEDIAOPTF2U64, pfnU64)
    4244{
    4345    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    5961        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    6062        IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm));
    61         IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
     63        IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    6264        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    6365
     
    8587
    8688        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    87         IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
     89        IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    8890        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    8991
     
    101103 * Exceptions type 4. SSSE3 cpuid checks.
    102104 *
    103  * @sa  iemOpCommonSse2_FullFull_To_Full
     105 * The @a pfnU128 worker function takes no FXSAVE state, just the operands.
     106 *
     107 * @sa  iemOpCommonSse2Opt_FullFull_To_Full
    104108 */
    105 FNIEMOP_DEF_1(iemOpCommonSsse3_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U128, pfnU128)
     109FNIEMOP_DEF_1(iemOpCommonSsse3Opt_FullFull_To_Full, PFNIEMAIMPLMEDIAOPTF2U128, pfnU128)
    106110{
    107111    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    119123        IEM_MC_REF_XREG_U128(puDst,             IEM_GET_MODRM_REG(pVCpu, bRm));
    120124        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    121         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
     125        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    122126        IEM_MC_ADVANCE_RIP_AND_FINISH();
    123127        IEM_MC_END();
     
    141145        IEM_MC_PREPARE_SSE_USAGE();
    142146        IEM_MC_REF_XREG_U128(puDst,             IEM_GET_MODRM_REG(pVCpu, bRm));
    143         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
     147        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    144148
    145149        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    156160 * Exceptions type 4. SSE4.1 cpuid checks.
    157161 *
    158  * @sa  iemOpCommonSse2_FullFull_To_Full, iemOpCommonSsse3_FullFull_To_Full,
    159  *      iemOpCommonSse42_FullFull_To_Full
    160  */
    161 FNIEMOP_DEF_1(iemOpCommonSse41_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U128, pfnU128)
    162 {
    163     uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    164     if (IEM_IS_MODRM_REG_MODE(bRm))
    165     {
    166         /*
    167          * Register, register.
    168          */
    169         IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0);
    170         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    171         IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
    172         IEM_MC_ARG(PCRTUINT128U,                puSrc, 1);
    173         IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    174         IEM_MC_PREPARE_SSE_USAGE();
    175         IEM_MC_REF_XREG_U128(puDst,             IEM_GET_MODRM_REG(pVCpu, bRm));
    176         IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    177         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
    178         IEM_MC_ADVANCE_RIP_AND_FINISH();
    179         IEM_MC_END();
    180     }
    181     else
    182     {
    183         /*
    184          * Register, memory.
    185          */
    186         IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0);
    187         IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    188         IEM_MC_LOCAL(RTUINT128U,                uSrc);
    189         IEM_MC_ARG_LOCAL_REF(PCRTUINT128U,      puSrc, uSrc, 1);
    190         IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    191 
    192         IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    193         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    194         IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    195         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    196 
    197         IEM_MC_PREPARE_SSE_USAGE();
    198         IEM_MC_REF_XREG_U128(puDst,             IEM_GET_MODRM_REG(pVCpu, bRm));
    199         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
    200 
    201         IEM_MC_ADVANCE_RIP_AND_FINISH();
    202         IEM_MC_END();
    203     }
    204 }
    205 
    206 
    207 /**
    208  * Common worker for SSE4.1 instructions on the forms:
    209  *      pxxx    xmm1, xmm2/mem128
     162 * The @a pfnU128 worker function takes no FXSAVE state, just the operands.
    210163 *
    211  * Proper alignment of the 128-bit operand is enforced.
    212  * Exceptions type 4. SSE4.1 cpuid checks.
    213  *
    214  * Unlike iemOpCommonSse41_FullFull_To_Full, the @a pfnU128 worker function
    215  * takes no FXSAVE state, just the operands.
    216  *
    217  * @sa  iemOpCommonSse2_FullFull_To_Full, iemOpCommonSsse3_FullFull_To_Full,
    218  *      iemOpCommonSse41_FullFull_To_Full, iemOpCommonSse42_FullFull_To_Full
     164 * @sa  iemOpCommonSse2Opt_FullFull_To_Full, iemOpCommonSsse3Opt_FullFull_To_Full,
     165 *      iemOpCommonSse41Opt_FullFull_To_Full, iemOpCommonSse42Opt_FullFull_To_Full
    219166 */
    220167FNIEMOP_DEF_1(iemOpCommonSse41Opt_FullFull_To_Full, PFNIEMAIMPLMEDIAOPTF2U128, pfnU128)
     
    271218 * Exceptions type 4. SSE4.2 cpuid checks.
    272219 *
    273  * @sa  iemOpCommonSse2_FullFull_To_Full, iemOpCommonSsse3_FullFull_To_Full,
    274  *      iemOpCommonSse41_FullFull_To_Full
     220 * @sa  iemOpCommonSse2Opt_FullFull_To_Full, iemOpCommonSsse3Opt_FullFull_To_Full,
     221 *      iemOpCommonSse41Opt_FullFull_To_Full
    275222 */
    276 FNIEMOP_DEF_1(iemOpCommonSse42_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U128, pfnU128)
     223FNIEMOP_DEF_1(iemOpCommonSse42Opt_FullFull_To_Full, PFNIEMAIMPLMEDIAOPTF2U128, pfnU128)
    277224{
    278225    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    290237        IEM_MC_REF_XREG_U128(puDst,             IEM_GET_MODRM_REG(pVCpu, bRm));
    291238        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    292         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
     239        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    293240        IEM_MC_ADVANCE_RIP_AND_FINISH();
    294241        IEM_MC_END();
     
    312259        IEM_MC_PREPARE_SSE_USAGE();
    313260        IEM_MC_REF_XREG_U128(puDst,             IEM_GET_MODRM_REG(pVCpu, bRm));
    314         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
     261        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    315262
    316263        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    331278 *
    332279 * @sa  iemOpCommonSse2_FullFull_To_Full, iemOpCommonSsse3_FullFull_To_Full,
    333  *      iemOpCommonSse41_FullFull_To_Full, iemOpCommonSse42_FullFull_To_Full,
    334  *      iemOpCommonSha_FullFull_To_Full
     280 *      iemOpCommonSse41_FullFull_To_Full, iemOpCommonSha_FullFull_To_Full
    335281 */
    336282FNIEMOP_DEF_1(iemOpCommonAesNi_FullFull_To_Full, PFNIEMAIMPLMEDIAOPTF2U128, pfnU128)
     
    444390{
    445391    IEMOP_MNEMONIC2(RM, PSHUFB, pshufb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    446     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     392    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    447393                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pshufb_u64,&iemAImpl_pshufb_u64_fallback));
    448394}
     
    453399{
    454400    IEMOP_MNEMONIC2(RM, PSHUFB, pshufb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    455     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     401    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    456402                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pshufb_u128, iemAImpl_pshufb_u128_fallback));
    457403
     
    463409{
    464410    IEMOP_MNEMONIC2(RM, PHADDW, phaddw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    465     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     411    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    466412                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddw_u64,&iemAImpl_phaddw_u64_fallback));
    467413}
     
    472418{
    473419    IEMOP_MNEMONIC2(RM, PHADDW, phaddw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    474     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     420    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    475421                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddw_u128, iemAImpl_phaddw_u128_fallback));
    476422
     
    482428{
    483429    IEMOP_MNEMONIC2(RM, PHADDD, phaddd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    484     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     430    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    485431                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddd_u64,&iemAImpl_phaddd_u64_fallback));
    486432}
     
    491437{
    492438    IEMOP_MNEMONIC2(RM, PHADDD, phaddd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    493     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     439    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    494440                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddd_u128, iemAImpl_phaddd_u128_fallback));
    495441
     
    501447{
    502448    IEMOP_MNEMONIC2(RM, PHADDSW, phaddsw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    503     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     449    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    504450                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddsw_u64,&iemAImpl_phaddsw_u64_fallback));
    505451}
     
    510456{
    511457    IEMOP_MNEMONIC2(RM, PHADDSW, phaddsw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    512     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     458    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    513459                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phaddsw_u128, iemAImpl_phaddsw_u128_fallback));
    514460
     
    520466{
    521467    IEMOP_MNEMONIC2(RM, PMADDUBSW, pmaddubsw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    522     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     468    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    523469                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pmaddubsw_u64, &iemAImpl_pmaddubsw_u64_fallback));
    524470}
     
    529475{
    530476    IEMOP_MNEMONIC2(RM, PMADDUBSW, pmaddubsw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    531     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     477    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    532478                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pmaddubsw_u128, iemAImpl_pmaddubsw_u128_fallback));
    533479
     
    539485{
    540486    IEMOP_MNEMONIC2(RM, PHSUBW, phsubw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    541     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     487    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    542488                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phsubw_u64,&iemAImpl_phsubw_u64_fallback));
    543489}
     
    548494{
    549495    IEMOP_MNEMONIC2(RM, PHSUBW, phsubw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    550     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     496    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    551497                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phsubw_u128, iemAImpl_phsubw_u128_fallback));
    552498
     
    558504{
    559505    IEMOP_MNEMONIC2(RM, PHSUBD, phsubd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    560     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     506    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    561507                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phsubd_u64,&iemAImpl_phsubd_u64_fallback));
    562508}
     
    568514{
    569515    IEMOP_MNEMONIC2(RM, PHSUBD, phsubd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    570     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     516    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    571517                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phsubd_u128, iemAImpl_phsubd_u128_fallback));
    572518
     
    578524{
    579525    IEMOP_MNEMONIC2(RM, PHSUBSW, phsubsw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    580     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     526    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    581527                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phsubsw_u64,&iemAImpl_phsubsw_u64_fallback));
    582528}
     
    587533{
    588534    IEMOP_MNEMONIC2(RM, PHSUBSW, phsubsw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    589     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     535    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    590536                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_phsubsw_u128, iemAImpl_phsubsw_u128_fallback));
    591537
     
    597543{
    598544    IEMOP_MNEMONIC2(RM, PSIGNB, psignb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    599     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     545    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    600546                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_psignb_u64, &iemAImpl_psignb_u64_fallback));
    601547}
     
    606552{
    607553    IEMOP_MNEMONIC2(RM, PSIGNB, psignb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    608     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     554    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    609555                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_psignb_u128, iemAImpl_psignb_u128_fallback));
    610556
     
    616562{
    617563    IEMOP_MNEMONIC2(RM, PSIGNW, psignw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    618     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     564    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    619565                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_psignw_u64, &iemAImpl_psignw_u64_fallback));
    620566}
     
    625571{
    626572    IEMOP_MNEMONIC2(RM, PSIGNW, psignw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    627     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     573    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    628574                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_psignw_u128, iemAImpl_psignw_u128_fallback));
    629575
     
    635581{
    636582    IEMOP_MNEMONIC2(RM, PSIGND, psignd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    637     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     583    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    638584                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_psignd_u64, &iemAImpl_psignd_u64_fallback));
    639585}
     
    644590{
    645591    IEMOP_MNEMONIC2(RM, PSIGND, psignd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    646     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     592    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    647593                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_psignd_u128, iemAImpl_psignd_u128_fallback));
    648594
     
    654600{
    655601    IEMOP_MNEMONIC2(RM, PMULHRSW, pmulhrsw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    656     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     602    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    657603                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pmulhrsw_u64, &iemAImpl_pmulhrsw_u64_fallback));
    658604}
     
    663609{
    664610    IEMOP_MNEMONIC2(RM, PMULHRSW, pmulhrsw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    665     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     611    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    666612                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pmulhrsw_u128, iemAImpl_pmulhrsw_u128_fallback));
    667613
     
    849795{
    850796    IEMOP_MNEMONIC2(RM, PABSB, pabsb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    851     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     797    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    852798                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pabsb_u64, &iemAImpl_pabsb_u64_fallback));
    853799}
     
    858804{
    859805    IEMOP_MNEMONIC2(RM, PABSB, pabsb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    860     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     806    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    861807                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pabsb_u128, iemAImpl_pabsb_u128_fallback));
    862808
     
    868814{
    869815    IEMOP_MNEMONIC2(RM, PABSW, pabsw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    870     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     816    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    871817                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pabsw_u64, &iemAImpl_pabsw_u64_fallback));
    872818}
     
    877823{
    878824    IEMOP_MNEMONIC2(RM, PABSW, pabsw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    879     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     825    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    880826                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pabsw_u128, iemAImpl_pabsw_u128_fallback));
    881827
     
    887833{
    888834    IEMOP_MNEMONIC2(RM, PABSD, pabsd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    889     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Ssse3,
     835    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Ssse3,
    890836                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pabsd_u64, &iemAImpl_pabsd_u64_fallback));
    891837}
     
    896842{
    897843    IEMOP_MNEMONIC2(RM, PABSD, pabsd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    898     return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
     844    return FNIEMOP_CALL_1(iemOpCommonSsse3Opt_FullFull_To_Full,
    899845                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pabsd_u128, iemAImpl_pabsd_u128_fallback));
    900846
     
    1025971{
    1026972    IEMOP_MNEMONIC2(RM, PCMPEQQ, pcmpeqq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    1027     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     973    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    1028974                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pcmpeqq_u128, iemAImpl_pcmpeqq_u128_fallback));
    1029975}
     
    11521098{
    11531099    IEMOP_MNEMONIC2(RM, PCMPGTQ, pcmpgtq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    1154     return FNIEMOP_CALL_1(iemOpCommonSse42_FullFull_To_Full,
     1100    return FNIEMOP_CALL_1(iemOpCommonSse42Opt_FullFull_To_Full,
    11551101                          IEM_SELECT_HOST_OR_FALLBACK(fSse42, iemAImpl_pcmpgtq_u128, iemAImpl_pcmpgtq_u128_fallback));
    11561102}
     
    11611107{
    11621108    IEMOP_MNEMONIC2(RM, PMINSB, pminsb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1163     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     1109    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    11641110                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pminsb_u128, iemAImpl_pminsb_u128_fallback));
    11651111}
     
    11701116{
    11711117    IEMOP_MNEMONIC2(RM, PMINSD, pminsd, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1172     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     1118    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    11731119                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pminsd_u128, iemAImpl_pminsd_u128_fallback));
    11741120}
     
    11791125{
    11801126    IEMOP_MNEMONIC2(RM, PMINUW, pminuw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1181     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     1127    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    11821128                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pminuw_u128, iemAImpl_pminuw_u128_fallback));
    11831129}
     
    11881134{
    11891135    IEMOP_MNEMONIC2(RM, PMINUD, pminud, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1190     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     1136    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    11911137                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pminud_u128, iemAImpl_pminud_u128_fallback));
    11921138}
     
    11971143{
    11981144    IEMOP_MNEMONIC2(RM, PMAXSB, pmaxsb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1199     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     1145    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    12001146                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pmaxsb_u128, iemAImpl_pmaxsb_u128_fallback));
    12011147}
     
    12061152{
    12071153    IEMOP_MNEMONIC2(RM, PMAXSD, pmaxsd, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1208     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     1154    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    12091155                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pmaxsd_u128, iemAImpl_pmaxsd_u128_fallback));
    12101156}
     
    12151161{
    12161162    IEMOP_MNEMONIC2(RM, PMAXUW, pmaxuw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1217     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     1163    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    12181164                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pmaxuw_u128, iemAImpl_pmaxuw_u128_fallback));
    12191165}
     
    12241170{
    12251171    IEMOP_MNEMONIC2(RM, PMAXUD, pmaxud, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1226     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     1172    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    12271173                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pmaxud_u128, iemAImpl_pmaxud_u128_fallback));
    12281174}
     
    12331179{
    12341180    IEMOP_MNEMONIC2(RM, PMULLD, pmulld, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1235     return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
     1181    return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full,
    12361182                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pmulld_u128, iemAImpl_pmulld_u128_fallback));
    12371183}
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstTwoByte0f.cpp.h

    r104076 r104103  
    3939 * Common worker for MMX instructions on the form:
    4040 *      pxxx    mm1, mm2/mem64
    41  */
    42 FNIEMOP_DEF_1(iemOpCommonMmx_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U64, pfnU64)
     41 *
     42 * The @a pfnU64 worker function takes no FXSAVE state, just the operands.
     43 */
     44FNIEMOP_DEF_1(iemOpCommonMmxOpt_FullFull_To_Full, PFNIEMAIMPLMEDIAOPTF2U64, pfnU64)
    4345{
    4446    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    6062        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    6163        IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm));
    62         IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
     64        IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    6365        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    6466
     
    8688
    8789        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    88         IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
    89         IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    90 
    91         IEM_MC_ADVANCE_RIP_AND_FINISH();
    92         IEM_MC_END();
    93     }
    94 }
    95 
    96 
    97 /**
    98  * Common worker for MMX instructions on the form:
    99  *      pxxx    mm1, mm2/mem64
    100  *
    101  * Unlike iemOpCommonMmx_FullFull_To_Full, the @a pfnU64 worker function takes
    102  * no FXSAVE state, just the operands.
    103  */
    104 FNIEMOP_DEF_1(iemOpCommonMmxOpt_FullFull_To_Full, PFNIEMAIMPLMEDIAOPTF2U64, pfnU64)
    105 {
    106     uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    107     if (IEM_IS_MODRM_REG_MODE(bRm))
    108     {
    109         /*
    110          * MMX, MMX.
    111          */
    112         /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    113         /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    114         IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0);
    115         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    116         IEM_MC_ARG(uint64_t *,          pDst, 0);
    117         IEM_MC_ARG(uint64_t const *,    pSrc, 1);
    118         IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    119         IEM_MC_PREPARE_FPU_USAGE();
    120         IEM_MC_FPU_TO_MMX_MODE();
    121 
    122         IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    123         IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm));
    124         IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    125         IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    126 
    127         IEM_MC_ADVANCE_RIP_AND_FINISH();
    128         IEM_MC_END();
    129     }
    130     else
    131     {
    132         /*
    133          * MMX, [mem64].
    134          */
    135         IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0);
    136         IEM_MC_ARG(uint64_t *,                  pDst,       0);
    137         IEM_MC_LOCAL(uint64_t,                  uSrc);
    138         IEM_MC_ARG_LOCAL_REF(uint64_t const *,  pSrc, uSrc, 1);
    139         IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    140 
    141         IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    142         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    143         IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    144         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    145 
    146         IEM_MC_PREPARE_FPU_USAGE();
    147         IEM_MC_FPU_TO_MMX_MODE();
    148 
    149         IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    15090        IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    15191        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
     
    161101 *      pxxx    mm1, mm2/mem64
    162102 * for instructions introduced with SSE.
    163  */
    164 FNIEMOP_DEF_1(iemOpCommonMmxSse_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U64, pfnU64)
     103 *
     104 * The @a pfnU64 worker function takes no FXSAVE state, just the operands.
     105 */
     106FNIEMOP_DEF_1(iemOpCommonMmxSseOpt_FullFull_To_Full, PFNIEMAIMPLMEDIAOPTF2U64, pfnU64)
    165107{
    166108    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    182124        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    183125        IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm));
    184         IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
     126        IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    185127        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    186128
     
    208150
    209151        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    210         IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
    211         IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    212 
    213         IEM_MC_ADVANCE_RIP_AND_FINISH();
    214         IEM_MC_END();
    215     }
    216 }
    217 
    218 
    219 /**
    220  * Common worker for MMX instructions on the form:
    221  *      pxxx    mm1, mm2/mem64
    222  * for instructions introduced with SSE.
    223  *
    224  * Unlike iemOpCommonMmxSse_FullFull_To_Full, the @a pfnU64 worker function takes
    225  * no FXSAVE state, just the operands.
    226  */
    227 FNIEMOP_DEF_1(iemOpCommonMmxSseOpt_FullFull_To_Full, PFNIEMAIMPLMEDIAOPTF2U64, pfnU64)
    228 {
    229     uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    230     if (IEM_IS_MODRM_REG_MODE(bRm))
    231     {
    232         /*
    233          * MMX, MMX.
    234          */
    235         /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    236         /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    237         IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0);
    238         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    239         IEM_MC_ARG(uint64_t *,          pDst, 0);
    240         IEM_MC_ARG(uint64_t const *,    pSrc, 1);
    241         IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    242         IEM_MC_PREPARE_FPU_USAGE();
    243         IEM_MC_FPU_TO_MMX_MODE();
    244 
    245         IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    246         IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm));
    247         IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    248         IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    249 
    250         IEM_MC_ADVANCE_RIP_AND_FINISH();
    251         IEM_MC_END();
    252     }
    253     else
    254     {
    255         /*
    256          * MMX, [mem64].
    257          */
    258         IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0);
    259         IEM_MC_ARG(uint64_t *,                  pDst,       0);
    260         IEM_MC_LOCAL(uint64_t,                  uSrc);
    261         IEM_MC_ARG_LOCAL_REF(uint64_t const *,  pSrc, uSrc, 1);
    262         IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    263 
    264         IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    265         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    266         IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
    267         IEM_MC_FETCH_MEM_U64(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    268 
    269         IEM_MC_PREPARE_FPU_USAGE();
    270         IEM_MC_FPU_TO_MMX_MODE();
    271 
    272         IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    273152        IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    274153        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
     
    285164 * that was introduced with SSE2.
    286165 */
    287 FNIEMOP_DEF_1(iemOpCommonMmx_FullFull_To_Full_Sse2, PFNIEMAIMPLMEDIAF2U64, pfnU64)
     166FNIEMOP_DEF_1(iemOpCommonMmxOpt_FullFull_To_Full_Sse2, PFNIEMAIMPLMEDIAOPTF2U64, pfnU64)
    288167{
    289168    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    305184        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    306185        IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm));
    307         IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
     186        IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    308187        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    309188
     
    331210
    332211        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    333         IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
     212        IEM_MC_CALL_VOID_AIMPL_2(pfnU64, pDst, pSrc);
    334213        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    335214
     
    347226 * SSE cpuid checks. No SIMD FP exceptions.
    348227 *
     228 * The @a pfnU128 worker function takes no FXSAVE state, just the operands.
     229 *
    349230 * @sa iemOpCommonSse2_FullFull_To_Full
    350231 */
    351 FNIEMOP_DEF_1(iemOpCommonSse_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U128, pfnU128)
     232FNIEMOP_DEF_1(iemOpCommonSseOpt_FullFull_To_Full, PFNIEMAIMPLMEDIAOPTF2U128, pfnU128)
    352233{
    353234    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    365246        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    366247        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    367         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
     248        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, pDst, pSrc);
    368249        IEM_MC_ADVANCE_RIP_AND_FINISH();
    369250        IEM_MC_END();
     
    387268        IEM_MC_PREPARE_SSE_USAGE();
    388269        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    389         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
     270        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, pDst, pSrc);
    390271
    391272        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    402283 * Exceptions type 4. SSE2 cpuid checks.
    403284 *
    404  * @sa iemOpCommonSse41_FullFull_To_Full, iemOpCommonSse2_FullFull_To_Full
    405  */
    406 FNIEMOP_DEF_1(iemOpCommonSse2_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U128, pfnU128)
    407 {
    408     uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    409     if (IEM_IS_MODRM_REG_MODE(bRm))
    410     {
    411         /*
    412          * XMM, XMM.
    413          */
    414         IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0);
    415         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    416         IEM_MC_ARG(PRTUINT128U,          pDst, 0);
    417         IEM_MC_ARG(PCRTUINT128U,         pSrc, 1);
    418         IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    419         IEM_MC_PREPARE_SSE_USAGE();
    420         IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    421         IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    422         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    423         IEM_MC_ADVANCE_RIP_AND_FINISH();
    424         IEM_MC_END();
    425     }
    426     else
    427     {
    428         /*
    429          * XMM, [mem128].
    430          */
    431         IEM_MC_BEGIN(IEM_MC_F_NOT_286_OR_OLDER, 0);
    432         IEM_MC_ARG(PRTUINT128U,                 pDst,       0);
    433         IEM_MC_LOCAL(RTUINT128U,                uSrc);
    434         IEM_MC_ARG_LOCAL_REF(PCRTUINT128U,      pSrc, uSrc, 1);
    435         IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    436 
    437         IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    438         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    439         IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    440         IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    441 
    442         IEM_MC_PREPARE_SSE_USAGE();
    443         IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    444         IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    445 
    446         IEM_MC_ADVANCE_RIP_AND_FINISH();
    447         IEM_MC_END();
    448     }
    449 }
    450 
    451 
    452 /**
    453  * Common worker for SSE2 instructions on the forms:
    454  *      pxxx    xmm1, xmm2/mem128
    455  *
    456  * Proper alignment of the 128-bit operand is enforced.
    457  * Exceptions type 4. SSE2 cpuid checks.
    458  *
    459  * Unlike iemOpCommonSse2_FullFull_To_Full, the @a pfnU128 worker function takes
    460  * no FXSAVE state, just the operands.
     285 * The @a pfnU128 worker function takes no FXSAVE state, just the operands.
    461286 *
    462287 * @sa iemOpCommonSse41_FullFull_To_Full, iemOpCommonSse2_FullFull_To_Full
     
    57095534{
    57105535    IEMOP_MNEMONIC2(RM, ANDPS, andps, Vps, Wps, DISOPTYPE_HARMLESS, 0);
    5711     return FNIEMOP_CALL_1(iemOpCommonSse_FullFull_To_Full, iemAImpl_pand_u128);
     5536    return FNIEMOP_CALL_1(iemOpCommonSseOpt_FullFull_To_Full, iemAImpl_pand_u128);
    57125537}
    57135538
     
    57175542{
    57185543    IEMOP_MNEMONIC2(RM, ANDPD, andpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0);
    5719     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128);
     5544    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pand_u128);
    57205545}
    57215546
     
    57295554{
    57305555    IEMOP_MNEMONIC2(RM, ANDNPS, andnps, Vps, Wps, DISOPTYPE_HARMLESS, 0);
    5731     return FNIEMOP_CALL_1(iemOpCommonSse_FullFull_To_Full, iemAImpl_pandn_u128);
     5556    return FNIEMOP_CALL_1(iemOpCommonSseOpt_FullFull_To_Full, iemAImpl_pandn_u128);
    57325557}
    57335558
     
    57375562{
    57385563    IEMOP_MNEMONIC2(RM, ANDNPD, andnpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0);
    5739     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128);
     5564    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pandn_u128);
    57405565}
    57415566
     
    57495574{
    57505575    IEMOP_MNEMONIC2(RM, ORPS, orps, Vps, Wps, DISOPTYPE_HARMLESS, 0);
    5751     return FNIEMOP_CALL_1(iemOpCommonSse_FullFull_To_Full, iemAImpl_por_u128);
     5576    return FNIEMOP_CALL_1(iemOpCommonSseOpt_FullFull_To_Full, iemAImpl_por_u128);
    57525577}
    57535578
     
    57575582{
    57585583    IEMOP_MNEMONIC2(RM, ORPD, orpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0);
    5759     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128);
     5584    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_por_u128);
    57605585}
    57615586
     
    57695594{
    57705595    IEMOP_MNEMONIC2(RM, XORPS, xorps, Vps, Wps, DISOPTYPE_HARMLESS, 0);
    5771     return FNIEMOP_CALL_1(iemOpCommonSse_FullFull_To_Full, iemAImpl_pxor_u128);
     5596    return FNIEMOP_CALL_1(iemOpCommonSseOpt_FullFull_To_Full, iemAImpl_pxor_u128);
    57725597}
    57735598
     
    57775602{
    57785603    IEMOP_MNEMONIC2(RM, XORPD, xorpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0);
    5779     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128);
     5604    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pxor_u128);
    57805605}
    57815606
     
    61175942{
    61185943    IEMOP_MNEMONIC2(RM, PCMPGTB, pcmpgtb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    6119     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpgtb_u64);
     5944    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pcmpgtb_u64);
    61205945}
    61215946
     
    61255950{
    61265951    IEMOP_MNEMONIC2(RM, PCMPGTB, pcmpgtb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    6127     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpgtb_u128);
     5952    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pcmpgtb_u128);
    61285953}
    61295954
     
    61365961{
    61375962    IEMOP_MNEMONIC2(RM, PCMPGTW, pcmpgtw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    6138     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpgtw_u64);
     5963    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pcmpgtw_u64);
    61395964}
    61405965
     
    61445969{
    61455970    IEMOP_MNEMONIC2(RM, PCMPGTW, pcmpgtw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    6146     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpgtw_u128);
     5971    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pcmpgtw_u128);
    61475972}
    61485973
     
    61555980{
    61565981    IEMOP_MNEMONIC2(RM, PCMPGTD, pcmpgtd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    6157     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpgtd_u64);
     5982    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pcmpgtd_u64);
    61585983}
    61595984
     
    61635988{
    61645989    IEMOP_MNEMONIC2(RM, PCMPGTD, pcmpgtd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    6165     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpgtd_u128);
     5990    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pcmpgtd_u128);
    61665991}
    61675992
     
    71356960{
    71366961    IEMOP_MNEMONIC2(RM, PCMPEQB, pcmpeqb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    7137     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpeqb_u64);
     6962    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pcmpeqb_u64);
    71386963}
    71396964
     
    71436968{
    71446969    IEMOP_MNEMONIC2(RM, PCMPEQB, pcmpeqb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    7145     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpeqb_u128);
     6970    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pcmpeqb_u128);
    71466971}
    71476972
     
    71556980{
    71566981    IEMOP_MNEMONIC2(RM, PCMPEQW, pcmpeqw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    7157     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpeqw_u64);
     6982    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pcmpeqw_u64);
    71586983}
    71596984
     
    71636988{
    71646989    IEMOP_MNEMONIC2(RM, PCMPEQW, pcmpeqw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    7165     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpeqw_u128);
     6990    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pcmpeqw_u128);
    71666991}
    71676992
     
    71757000{
    71767001    IEMOP_MNEMONIC2(RM, PCMPEQD, pcmpeqd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    7177     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpeqd_u64);
     7002    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pcmpeqd_u64);
    71787003}
    71797004
     
    71837008{
    71847009    IEMOP_MNEMONIC2(RM, PCMPEQD, pcmpeqd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    7185     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpeqd_u128);
     7010    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pcmpeqd_u128);
    71867011}
    71877012
     
    1321913044{
    1322013045    IEMOP_MNEMONIC2(RM, PADDQ, paddq, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13221     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Sse2, iemAImpl_paddq_u64);
     13046    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Sse2, iemAImpl_paddq_u64);
    1322213047}
    1322313048
     
    1322713052{
    1322813053    IEMOP_MNEMONIC2(RM, PADDQ, paddq, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13229     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddq_u128);
     13054    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_paddq_u128);
    1323013055}
    1323113056
     
    1323813063{
    1323913064    IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13240     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pmullw_u64);
     13065    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pmullw_u64);
    1324113066}
    1324213067
     
    1324513070{
    1324613071    IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13247     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmullw_u128);
     13072    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pmullw_u128);
    1324813073}
    1324913074
     
    1347113296{
    1347213297    IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13473     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubusb_u64);
     13298    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_psubusb_u64);
    1347413299}
    1347513300
     
    1347913304{
    1348013305    IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13481     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubusb_u128);
     13306    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_psubusb_u128);
    1348213307}
    1348313308
     
    1349013315{
    1349113316    IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13492     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubusw_u64);
     13317    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_psubusw_u64);
    1349313318}
    1349413319
     
    1349813323{
    1349913324    IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13500     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubusw_u128);
     13325    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_psubusw_u128);
    1350113326}
    1350213327
     
    1350913334{
    1351013335    IEMOP_MNEMONIC2(RM, PMINUB, pminub, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13511     return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pminub_u64);
     13336    return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pminub_u64);
    1351213337}
    1351313338
     
    1351713342{
    1351813343    IEMOP_MNEMONIC2(RM, PMINUB, pminub, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13519     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pminub_u128);
     13344    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pminub_u128);
    1352013345}
    1352113346
     
    1352713352{
    1352813353    IEMOP_MNEMONIC2(RM, PAND, pand, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13529     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pand_u64);
     13354    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pand_u64);
    1353013355}
    1353113356
     
    1353513360{
    1353613361    IEMOP_MNEMONIC2(RM, PAND, pand, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13537     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128);
     13362    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pand_u128);
    1353813363}
    1353913364
     
    1354613371{
    1354713372    IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13548     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddusb_u64);
     13373    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_paddusb_u64);
    1354913374}
    1355013375
     
    1355413379{
    1355513380    IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13556     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddusb_u128);
     13381    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_paddusb_u128);
    1355713382}
    1355813383
     
    1356513390{
    1356613391    IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13567     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddusw_u64);
     13392    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_paddusw_u64);
    1356813393}
    1356913394
     
    1357313398{
    1357413399    IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13575     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddusw_u128);
     13400    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_paddusw_u128);
    1357613401}
    1357713402
     
    1358413409{
    1358513410    IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13586     return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pmaxub_u64);
     13411    return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pmaxub_u64);
    1358713412}
    1358813413
     
    1359213417{
    1359313418    IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13594     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmaxub_u128);
     13419    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pmaxub_u128);
    1359513420}
    1359613421
     
    1360313428{
    1360413429    IEMOP_MNEMONIC2(RM, PANDN, pandn, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13605     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pandn_u64);
     13430    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pandn_u64);
    1360613431}
    1360713432
     
    1361113436{
    1361213437    IEMOP_MNEMONIC2(RM, PANDN, pandn, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13613     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128);
     13438    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pandn_u128);
    1361413439}
    1361513440
     
    1371713542{
    1371813543    IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13719     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pmulhw_u64);
     13544    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pmulhw_u64);
    1372013545}
    1372113546
     
    1372513550{
    1372613551    IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13727     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmulhw_u128);
     13552    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pmulhw_u128);
    1372813553}
    1372913554
     
    1386013685{
    1386113686    IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13862     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubsb_u64);
     13687    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_psubsb_u64);
    1386313688}
    1386413689
     
    1386813693{
    1386913694    IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13870     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubsb_u128);
     13695    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_psubsb_u128);
    1387113696}
    1387213697
     
    1387913704{
    1388013705    IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13881     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubsw_u64);
     13706    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_psubsw_u64);
    1388213707}
    1388313708
     
    1388713712{
    1388813713    IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13889     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubsw_u128);
     13714    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_psubsw_u128);
    1389013715}
    1389113716
     
    1389913724{
    1390013725    IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13901     return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pminsw_u64);
     13726    return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pminsw_u64);
    1390213727}
    1390313728
     
    1390713732{
    1390813733    IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13909     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pminsw_u128);
     13734    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pminsw_u128);
    1391013735}
    1391113736
     
    1391913744{
    1392013745    IEMOP_MNEMONIC2(RM, POR, por, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13921     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_por_u64);
     13746    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_por_u64);
    1392213747}
    1392313748
     
    1392713752{
    1392813753    IEMOP_MNEMONIC2(RM, POR, por, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13929     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128);
     13754    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_por_u128);
    1393013755}
    1393113756
     
    1393813763{
    1393913764    IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13940     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddsb_u64);
     13765    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_paddsb_u64);
    1394113766}
    1394213767
     
    1394613771{
    1394713772    IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13948     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddsb_u128);
     13773    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_paddsb_u128);
    1394913774}
    1395013775
     
    1395713782{
    1395813783    IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13959     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddsw_u64);
     13784    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_paddsw_u64);
    1396013785}
    1396113786
     
    1396513790{
    1396613791    IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13967     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddsw_u128);
     13792    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_paddsw_u128);
    1396813793}
    1396913794
     
    1397713802{
    1397813803    IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13979     return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pmaxsw_u64);
     13804    return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pmaxsw_u64);
    1398013805}
    1398113806
     
    1398513810{
    1398613811    IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    13987     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmaxsw_u128);
     13812    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pmaxsw_u128);
    1398813813}
    1398913814
     
    1399713822{
    1399813823    IEMOP_MNEMONIC2(RM, PXOR, pxor, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    13999     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pxor_u64);
     13824    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pxor_u64);
    1400013825}
    1400113826
     
    1400513830{
    1400613831    IEMOP_MNEMONIC2(RM, PXOR, pxor, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    14007     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128);
     13832    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pxor_u128);
    1400813833}
    1400913834
     
    1410713932{
    1410813933    IEMOP_MNEMONIC2(RM, PMULUDQ, pmuludq, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0);
    14109     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pmuludq_u64);
     13934    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pmuludq_u64);
    1411013935}
    1411113936
     
    1411513940{
    1411613941    IEMOP_MNEMONIC2(RM, PMULUDQ, pmuludq, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0);
    14117     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmuludq_u128);
     13942    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pmuludq_u128);
    1411813943}
    1411913944
     
    1412513950{
    1412613951    IEMOP_MNEMONIC2(RM, PMADDWD, pmaddwd, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, 0);
    14127     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pmaddwd_u64);
     13952    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_pmaddwd_u64);
    1412813953}
    1412913954
     
    1413313958{
    1413413959    IEMOP_MNEMONIC2(RM, PMADDWD, pmaddwd, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, 0);
    14135     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmaddwd_u128);
     13960    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pmaddwd_u128);
    1413613961}
    1413713962
     
    1416713992{
    1416813993    IEMOP_MNEMONIC2(RM, PSUBB, psubb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    14169     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubb_u64);
     13994    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_psubb_u64);
    1417013995}
    1417113996
     
    1417514000{
    1417614001    IEMOP_MNEMONIC2(RM, PSUBB, psubb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    14177     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubb_u128);
     14002    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_psubb_u128);
    1417814003}
    1417914004
     
    1418614011{
    1418714012    IEMOP_MNEMONIC2(RM, PSUBW, psubw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    14188     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubw_u64);
     14013    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_psubw_u64);
    1418914014}
    1419014015
     
    1419414019{
    1419514020    IEMOP_MNEMONIC2(RM, PSUBW, psubw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    14196     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubw_u128);
     14021    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_psubw_u128);
    1419714022}
    1419814023
     
    1420514030{
    1420614031    IEMOP_MNEMONIC2(RM, PSUBD, psubd, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    14207     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubd_u64);
     14032    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_psubd_u64);
    1420814033}
    1420914034
     
    1421314038{
    1421414039    IEMOP_MNEMONIC2(RM, PSUBD, psubd, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    14215     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubd_u128);
     14040    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_psubd_u128);
    1421614041}
    1421714042
     
    1422414049{
    1422514050    IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    14226     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full_Sse2, iemAImpl_psubq_u64);
     14051    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full_Sse2, iemAImpl_psubq_u64);
    1422714052}
    1422814053
     
    1423214057{
    1423314058    IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    14234     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubq_u128);
     14059    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_psubq_u128);
    1423514060}
    1423614061
     
    1424314068{
    1424414069    IEMOP_MNEMONIC2(RM, PADDB, paddb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    14245     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddb_u64);
     14070    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_paddb_u64);
    1424614071}
    1424714072
     
    1425114076{
    1425214077    IEMOP_MNEMONIC2(RM, PADDB, paddb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    14253     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddb_u128);
     14078    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_paddb_u128);
    1425414079}
    1425514080
     
    1426214087{
    1426314088    IEMOP_MNEMONIC2(RM, PADDW, paddw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    14264     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddw_u64);
     14089    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_paddw_u64);
    1426514090}
    1426614091
     
    1427014095{
    1427114096    IEMOP_MNEMONIC2(RM, PADDW, paddw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    14272     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddw_u128);
     14097    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_paddw_u128);
    1427314098}
    1427414099
     
    1428114106{
    1428214107    IEMOP_MNEMONIC2(RM, PADDD, paddd, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    14283     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddd_u64);
     14108    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_paddd_u64);
    1428414109}
    1428514110
     
    1428914114{
    1429014115    IEMOP_MNEMONIC2(RM, PADDD, paddd, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    14291     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddd_u128);
     14116    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_paddd_u128);
    1429214117}
    1429314118
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r104100 r104103  
    32203220typedef IEM_DECL_IMPL_TYPE(void, FNIEMAIMPLMEDIAOPTF2U256,(PRTUINT256U puDst, PCRTUINT256U puSrc));
    32213221typedef FNIEMAIMPLMEDIAOPTF2U256  *PFNIEMAIMPLMEDIAOPTF2U256;
    3222 FNIEMAIMPLMEDIAF2U64     iemAImpl_pshufb_u64, iemAImpl_pshufb_u64_fallback;
    3223 FNIEMAIMPLMEDIAF2U64     iemAImpl_pand_u64, iemAImpl_pandn_u64, iemAImpl_por_u64, iemAImpl_pxor_u64;
    3224 FNIEMAIMPLMEDIAF2U64     iemAImpl_pcmpeqb_u64,  iemAImpl_pcmpeqw_u64,  iemAImpl_pcmpeqd_u64;
    3225 FNIEMAIMPLMEDIAF2U64     iemAImpl_pcmpgtb_u64,  iemAImpl_pcmpgtw_u64,  iemAImpl_pcmpgtd_u64;
    3226 FNIEMAIMPLMEDIAF2U64     iemAImpl_paddb_u64, iemAImpl_paddsb_u64, iemAImpl_paddusb_u64;
    3227 FNIEMAIMPLMEDIAF2U64     iemAImpl_paddw_u64, iemAImpl_paddsw_u64, iemAImpl_paddusw_u64;
    3228 FNIEMAIMPLMEDIAF2U64     iemAImpl_paddd_u64;
    3229 FNIEMAIMPLMEDIAF2U64     iemAImpl_paddq_u64;
    3230 FNIEMAIMPLMEDIAF2U64     iemAImpl_psubb_u64, iemAImpl_psubsb_u64, iemAImpl_psubusb_u64;
    3231 FNIEMAIMPLMEDIAF2U64     iemAImpl_psubw_u64, iemAImpl_psubsw_u64, iemAImpl_psubusw_u64;
    3232 FNIEMAIMPLMEDIAF2U64     iemAImpl_psubd_u64;
    3233 FNIEMAIMPLMEDIAF2U64     iemAImpl_psubq_u64;
    3234 FNIEMAIMPLMEDIAF2U64     iemAImpl_pmaddwd_u64, iemAImpl_pmaddwd_u64_fallback;
    3235 FNIEMAIMPLMEDIAF2U64     iemAImpl_pmullw_u64, iemAImpl_pmulhw_u64;
    3236 FNIEMAIMPLMEDIAF2U64     iemAImpl_pminub_u64, iemAImpl_pmaxub_u64;
    3237 FNIEMAIMPLMEDIAF2U64     iemAImpl_pminsw_u64, iemAImpl_pmaxsw_u64;
    3238 FNIEMAIMPLMEDIAF2U64     iemAImpl_pabsb_u64, iemAImpl_pabsb_u64_fallback;
    3239 FNIEMAIMPLMEDIAF2U64     iemAImpl_pabsw_u64, iemAImpl_pabsw_u64_fallback;
    3240 FNIEMAIMPLMEDIAF2U64     iemAImpl_pabsd_u64, iemAImpl_pabsd_u64_fallback;
    3241 FNIEMAIMPLMEDIAF2U64     iemAImpl_psignb_u64, iemAImpl_psignb_u64_fallback;
    3242 FNIEMAIMPLMEDIAF2U64     iemAImpl_psignw_u64, iemAImpl_psignw_u64_fallback;
    3243 FNIEMAIMPLMEDIAF2U64     iemAImpl_psignd_u64, iemAImpl_psignd_u64_fallback;
    3244 FNIEMAIMPLMEDIAF2U64     iemAImpl_phaddw_u64, iemAImpl_phaddw_u64_fallback;
    3245 FNIEMAIMPLMEDIAF2U64     iemAImpl_phaddd_u64, iemAImpl_phaddd_u64_fallback;
    3246 FNIEMAIMPLMEDIAF2U64     iemAImpl_phsubw_u64, iemAImpl_phsubw_u64_fallback;
    3247 FNIEMAIMPLMEDIAF2U64     iemAImpl_phsubd_u64, iemAImpl_phsubd_u64_fallback;
    3248 FNIEMAIMPLMEDIAF2U64     iemAImpl_phaddsw_u64, iemAImpl_phaddsw_u64_fallback;
    3249 FNIEMAIMPLMEDIAF2U64     iemAImpl_phsubsw_u64, iemAImpl_phsubsw_u64_fallback;
    3250 FNIEMAIMPLMEDIAF2U64     iemAImpl_pmaddubsw_u64, iemAImpl_pmaddubsw_u64_fallback;
    3251 FNIEMAIMPLMEDIAF2U64     iemAImpl_pmulhrsw_u64, iemAImpl_pmulhrsw_u64_fallback;
    3252 FNIEMAIMPLMEDIAF2U64     iemAImpl_pmuludq_u64;
     3222FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pshufb_u64, iemAImpl_pshufb_u64_fallback;
     3223FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pand_u64, iemAImpl_pandn_u64, iemAImpl_por_u64, iemAImpl_pxor_u64;
     3224FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pcmpeqb_u64,  iemAImpl_pcmpeqw_u64,  iemAImpl_pcmpeqd_u64;
     3225FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pcmpgtb_u64,  iemAImpl_pcmpgtw_u64,  iemAImpl_pcmpgtd_u64;
     3226FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_paddb_u64, iemAImpl_paddsb_u64, iemAImpl_paddusb_u64;
     3227FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_paddw_u64, iemAImpl_paddsw_u64, iemAImpl_paddusw_u64;
     3228FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_paddd_u64;
     3229FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_paddq_u64;
     3230FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_psubb_u64, iemAImpl_psubsb_u64, iemAImpl_psubusb_u64;
     3231FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_psubw_u64, iemAImpl_psubsw_u64, iemAImpl_psubusw_u64;
     3232FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_psubd_u64;
     3233FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_psubq_u64;
     3234FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pmaddwd_u64, iemAImpl_pmaddwd_u64_fallback;
     3235FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pmullw_u64, iemAImpl_pmulhw_u64;
     3236FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pminub_u64, iemAImpl_pmaxub_u64;
     3237FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pminsw_u64, iemAImpl_pmaxsw_u64;
     3238FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pabsb_u64, iemAImpl_pabsb_u64_fallback;
     3239FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pabsw_u64, iemAImpl_pabsw_u64_fallback;
     3240FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pabsd_u64, iemAImpl_pabsd_u64_fallback;
     3241FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_psignb_u64, iemAImpl_psignb_u64_fallback;
     3242FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_psignw_u64, iemAImpl_psignw_u64_fallback;
     3243FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_psignd_u64, iemAImpl_psignd_u64_fallback;
     3244FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_phaddw_u64, iemAImpl_phaddw_u64_fallback;
     3245FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_phaddd_u64, iemAImpl_phaddd_u64_fallback;
     3246FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_phsubw_u64, iemAImpl_phsubw_u64_fallback;
     3247FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_phsubd_u64, iemAImpl_phsubd_u64_fallback;
     3248FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_phaddsw_u64, iemAImpl_phaddsw_u64_fallback;
     3249FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_phsubsw_u64, iemAImpl_phsubsw_u64_fallback;
     3250FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pmaddubsw_u64, iemAImpl_pmaddubsw_u64_fallback;
     3251FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pmulhrsw_u64, iemAImpl_pmulhrsw_u64_fallback;
     3252FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pmuludq_u64;
    32533253FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_psllw_u64, iemAImpl_psrlw_u64, iemAImpl_psraw_u64;
    32543254FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_pslld_u64, iemAImpl_psrld_u64, iemAImpl_psrad_u64;
     
    32603260FNIEMAIMPLMEDIAOPTF2U64  iemAImpl_psadbw_u64;
    32613261
    3262 FNIEMAIMPLMEDIAF2U128    iemAImpl_pshufb_u128, iemAImpl_pshufb_u128_fallback;
    3263 FNIEMAIMPLMEDIAF2U128    iemAImpl_pand_u128, iemAImpl_pandn_u128, iemAImpl_por_u128, iemAImpl_pxor_u128;
    3264 FNIEMAIMPLMEDIAF2U128    iemAImpl_pcmpeqb_u128, iemAImpl_pcmpeqw_u128, iemAImpl_pcmpeqd_u128;
    3265 FNIEMAIMPLMEDIAF2U128    iemAImpl_pcmpeqq_u128, iemAImpl_pcmpeqq_u128_fallback;
    3266 FNIEMAIMPLMEDIAF2U128    iemAImpl_pcmpgtb_u128, iemAImpl_pcmpgtw_u128, iemAImpl_pcmpgtd_u128;
    3267 FNIEMAIMPLMEDIAF2U128    iemAImpl_pcmpgtq_u128, iemAImpl_pcmpgtq_u128_fallback;
    3268 FNIEMAIMPLMEDIAF2U128    iemAImpl_paddb_u128, iemAImpl_paddsb_u128, iemAImpl_paddusb_u128;
    3269 FNIEMAIMPLMEDIAF2U128    iemAImpl_paddw_u128, iemAImpl_paddsw_u128, iemAImpl_paddusw_u128;
    3270 FNIEMAIMPLMEDIAF2U128    iemAImpl_paddd_u128;
    3271 FNIEMAIMPLMEDIAF2U128    iemAImpl_paddq_u128;
    3272 FNIEMAIMPLMEDIAF2U128    iemAImpl_psubb_u128, iemAImpl_psubsb_u128, iemAImpl_psubusb_u128;
    3273 FNIEMAIMPLMEDIAF2U128    iemAImpl_psubw_u128, iemAImpl_psubsw_u128, iemAImpl_psubusw_u128;
    3274 FNIEMAIMPLMEDIAF2U128    iemAImpl_psubd_u128;
    3275 FNIEMAIMPLMEDIAF2U128    iemAImpl_psubq_u128;
    3276 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmullw_u128, iemAImpl_pmullw_u128_fallback;
    3277 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmulhw_u128;
    3278 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmulld_u128, iemAImpl_pmulld_u128_fallback;
    3279 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmaddwd_u128, iemAImpl_pmaddwd_u128_fallback;
    3280 FNIEMAIMPLMEDIAF2U128    iemAImpl_pminub_u128;
    3281 FNIEMAIMPLMEDIAF2U128    iemAImpl_pminud_u128, iemAImpl_pminud_u128_fallback;
    3282 FNIEMAIMPLMEDIAF2U128    iemAImpl_pminuw_u128, iemAImpl_pminuw_u128_fallback;
    3283 FNIEMAIMPLMEDIAF2U128    iemAImpl_pminsb_u128, iemAImpl_pminsb_u128_fallback;
    3284 FNIEMAIMPLMEDIAF2U128    iemAImpl_pminsd_u128, iemAImpl_pminsd_u128_fallback;
    3285 FNIEMAIMPLMEDIAF2U128    iemAImpl_pminsw_u128, iemAImpl_pminsw_u128_fallback;
    3286 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmaxub_u128;
    3287 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmaxud_u128, iemAImpl_pmaxud_u128_fallback;
    3288 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmaxuw_u128, iemAImpl_pmaxuw_u128_fallback;
    3289 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmaxsb_u128, iemAImpl_pmaxsb_u128_fallback;
    3290 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmaxsw_u128;
    3291 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmaxsd_u128, iemAImpl_pmaxsd_u128_fallback;
    3292 FNIEMAIMPLMEDIAF2U128    iemAImpl_pabsb_u128, iemAImpl_pabsb_u128_fallback;
    3293 FNIEMAIMPLMEDIAF2U128    iemAImpl_pabsw_u128, iemAImpl_pabsw_u128_fallback;
    3294 FNIEMAIMPLMEDIAF2U128    iemAImpl_pabsd_u128, iemAImpl_pabsd_u128_fallback;
    3295 FNIEMAIMPLMEDIAF2U128    iemAImpl_psignb_u128, iemAImpl_psignb_u128_fallback;
    3296 FNIEMAIMPLMEDIAF2U128    iemAImpl_psignw_u128, iemAImpl_psignw_u128_fallback;
    3297 FNIEMAIMPLMEDIAF2U128    iemAImpl_psignd_u128, iemAImpl_psignd_u128_fallback;
    3298 FNIEMAIMPLMEDIAF2U128    iemAImpl_phaddw_u128, iemAImpl_phaddw_u128_fallback;
    3299 FNIEMAIMPLMEDIAF2U128    iemAImpl_phaddd_u128, iemAImpl_phaddd_u128_fallback;
    3300 FNIEMAIMPLMEDIAF2U128    iemAImpl_phsubw_u128, iemAImpl_phsubw_u128_fallback;
    3301 FNIEMAIMPLMEDIAF2U128    iemAImpl_phsubd_u128, iemAImpl_phsubd_u128_fallback;
    3302 FNIEMAIMPLMEDIAF2U128    iemAImpl_phaddsw_u128, iemAImpl_phaddsw_u128_fallback;
    3303 FNIEMAIMPLMEDIAF2U128    iemAImpl_phsubsw_u128, iemAImpl_phsubsw_u128_fallback;
    3304 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmaddubsw_u128, iemAImpl_pmaddubsw_u128_fallback;
    3305 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmulhrsw_u128, iemAImpl_pmulhrsw_u128_fallback;
    3306 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmuludq_u128;
    3307 FNIEMAIMPLMEDIAF2U128    iemAImpl_pmaddwd_u128, iemAImpl_pmaddwd_u128_fallback;
     3262FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pshufb_u128, iemAImpl_pshufb_u128_fallback;
     3263FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pand_u128, iemAImpl_pandn_u128, iemAImpl_por_u128, iemAImpl_pxor_u128;
     3264FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pcmpeqb_u128, iemAImpl_pcmpeqw_u128, iemAImpl_pcmpeqd_u128;
     3265FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pcmpeqq_u128, iemAImpl_pcmpeqq_u128_fallback;
     3266FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pcmpgtb_u128, iemAImpl_pcmpgtw_u128, iemAImpl_pcmpgtd_u128;
     3267FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pcmpgtq_u128, iemAImpl_pcmpgtq_u128_fallback;
     3268FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_paddb_u128, iemAImpl_paddsb_u128, iemAImpl_paddusb_u128;
     3269FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_paddw_u128, iemAImpl_paddsw_u128, iemAImpl_paddusw_u128;
     3270FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_paddd_u128;
     3271FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_paddq_u128;
     3272FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_psubb_u128, iemAImpl_psubsb_u128, iemAImpl_psubusb_u128;
     3273FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_psubw_u128, iemAImpl_psubsw_u128, iemAImpl_psubusw_u128;
     3274FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_psubd_u128;
     3275FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_psubq_u128;
     3276FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmullw_u128, iemAImpl_pmullw_u128_fallback;
     3277FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmulhw_u128;
     3278FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmulld_u128, iemAImpl_pmulld_u128_fallback;
     3279FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmaddwd_u128, iemAImpl_pmaddwd_u128_fallback;
     3280FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pminub_u128;
     3281FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pminud_u128, iemAImpl_pminud_u128_fallback;
     3282FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pminuw_u128, iemAImpl_pminuw_u128_fallback;
     3283FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pminsb_u128, iemAImpl_pminsb_u128_fallback;
     3284FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pminsd_u128, iemAImpl_pminsd_u128_fallback;
     3285FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pminsw_u128, iemAImpl_pminsw_u128_fallback;
     3286FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmaxub_u128;
     3287FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmaxud_u128, iemAImpl_pmaxud_u128_fallback;
     3288FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmaxuw_u128, iemAImpl_pmaxuw_u128_fallback;
     3289FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmaxsb_u128, iemAImpl_pmaxsb_u128_fallback;
     3290FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmaxsw_u128;
     3291FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmaxsd_u128, iemAImpl_pmaxsd_u128_fallback;
     3292FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pabsb_u128, iemAImpl_pabsb_u128_fallback;
     3293FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pabsw_u128, iemAImpl_pabsw_u128_fallback;
     3294FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pabsd_u128, iemAImpl_pabsd_u128_fallback;
     3295FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_psignb_u128, iemAImpl_psignb_u128_fallback;
     3296FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_psignw_u128, iemAImpl_psignw_u128_fallback;
     3297FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_psignd_u128, iemAImpl_psignd_u128_fallback;
     3298FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_phaddw_u128, iemAImpl_phaddw_u128_fallback;
     3299FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_phaddd_u128, iemAImpl_phaddd_u128_fallback;
     3300FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_phsubw_u128, iemAImpl_phsubw_u128_fallback;
     3301FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_phsubd_u128, iemAImpl_phsubd_u128_fallback;
     3302FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_phaddsw_u128, iemAImpl_phaddsw_u128_fallback;
     3303FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_phsubsw_u128, iemAImpl_phsubsw_u128_fallback;
     3304FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmaddubsw_u128, iemAImpl_pmaddubsw_u128_fallback;
     3305FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmulhrsw_u128, iemAImpl_pmulhrsw_u128_fallback;
     3306FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmuludq_u128;
     3307FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmaddwd_u128, iemAImpl_pmaddwd_u128_fallback;
    33083308FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_packsswb_u128, iemAImpl_packuswb_u128;
    33093309FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_packssdw_u128, iemAImpl_packusdw_u128;
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