VirtualBox

Changeset 64545 in vbox


Ignore:
Timestamp:
Nov 4, 2016 1:58:05 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
111729
Message:

IEM: Added per-instruction statistics (not release).

Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/mm.h

    r64373 r64545  
    7878
    7979    MM_TAG_EM,
     80
     81    MM_TAG_IEM,
    8082
    8183    MM_TAG_IOM,
  • trunk/src/VBox/VMM/Makefile.kmk

    r64500 r64545  
    139139VBoxVMM_INCS     = \
    140140        include \
    141         $(if-expr defined(VBOX_WITH_RAW_MODE),PATM,)
     141        $(if-expr defined(VBOX_WITH_RAW_MODE),PATM,) \
     142        $(VBoxVMM_0_OUTDIR)/CommonGenIncs
    142143VBoxVMM_ASINCS   = .
    143144
     
    342343$(call VBOX_SET_VER_INFO_DLL,VBoxVMM,VirtualBox VMM) # Version info / description.
    343344
     345
     346#
     347# Generate macro template for IEM instruction statistics.
     348#
     349VBoxVMM_INTERMEDIATES += $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
     350VBoxVMM_CLEAN         += \
     351        $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h.ts \
     352        $(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h
     353$$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h.ts \
     354+| $$(VBoxVMM_0_OUTDIR)/CommonGenIncs/IEMInstructionStatisticsTmpl.h: \
     355                $(PATH_SUB_CURRENT)/VMMAll/IEMAllInstructions.cpp.h
     356        $(QUIET)$(call MSG_GENERATE,VBoxVMM,$@,$<)
     357        $(QUIET)$(MKDIR) -p -- "$(dir $@)"
     358        $(QUIET)set +e && $(SED) \
     359                -e '/IEMOP_MNEMONIC(/!d' \
     360               -e 's/^.*IEMOP_MNEMONIC(/IEM_DO_INSTR_STAT(/' \
     361               -e 's/;.*$(DOLLAR)//' \
     362                --output "[email protected]" $<
     363        $(QUIET)$(REDIRECT) -wto "$@" -- sort "[email protected]"
     364        $(QUIET)$(RM) -f -- "[email protected]"
     365        $(QUIET)$(CP) -v -f --changed -- "$@" "$(patsubst %.ts,%,$@)"
     366
     367
    344368if "$(KBUILD_TARGET)" == "win" && !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)
    345369 #
     
    474498 endif
    475499
    476  VMMRC_INCS     := \
     500 VMMRC_INCS      = \
    477501        include \
    478502        VMMRC \
    479         $(if-expr defined(VBOX_WITH_RAW_MODE),PATM,)
     503        $(if-expr defined(VBOX_WITH_RAW_MODE),PATM,) \
     504        $(VBoxVMM_0_OUTDIR)/CommonGenIncs
    480505
    481506 VMMRC_LIBS      = \
     
    582607 endif
    583608
     609 VMMRC_INTERMEDIATES += $(VBoxVMM_0_OUTDIR)/IEMInstructionStatisticsTmpl.h
     610
    584611 if "$(KBUILD_TARGET)" == "win"
    585612  # Debug type info hack for VMCPU, VM and similar.  See VBoxVMM for details.
     
    635662 VMMR0_INCS      = \
    636663        include \
    637         $(if-expr defined(VBOX_WITH_RAW_MODE),PATM,)
     664        $(if-expr defined(VBOX_WITH_RAW_MODE),PATM,) \
     665        $(VBoxVMM_0_OUTDIR)/CommonGenIncs
    638666
    639667 VMMR0_SOURCES   = \
     
    739767 endif
    740768
     769 VMMR0_INTERMEDIATES += $(VBoxVMM_0_OUTDIR)/IEMInstructionStatisticsTmpl.h
     770
    741771 if "$(KBUILD_TARGET)" == "win"
    742772  # Debug type info hack for VMCPU, VM and similar.  See VBoxVMM for details.
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r62639 r64545  
    1139011390 * @{
    1139111391 */
     11392#ifdef VBOX_WITH_STATISTICS
     11393# define IEMOP_INC_STATS(a_Stats) do { pVCpu->iem.s.CTX_SUFF(pStats)->a_Stats += 1; } while (0)
     11394#else
     11395# define IEMOP_INC_STATS(a_Stats) do { } while (0)
     11396#endif
     11397
    1139211398#ifdef DEBUG
    11393 # define IEMOP_MNEMONIC(a_szMnemonic) \
    11394     Log4(("decode - %04x:%RGv %s%s [#%u]\n", IEM_GET_CTX(pVCpu)->cs.Sel, IEM_GET_CTX(pVCpu)->rip, \
    11395           pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK ? "lock " : "", a_szMnemonic, pVCpu->iem.s.cInstructions))
    11396 # define IEMOP_MNEMONIC2(a_szMnemonic, a_szOps) \
    11397     Log4(("decode - %04x:%RGv %s%s %s [#%u]\n", IEM_GET_CTX(pVCpu)->cs.Sel, IEM_GET_CTX(pVCpu)->rip, \
    11398           pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK ? "lock " : "", a_szMnemonic, a_szOps, pVCpu->iem.s.cInstructions))
     11399# define IEMOP_MNEMONIC(a_Stats, a_szMnemonic) \
     11400    do { \
     11401        IEMOP_INC_STATS(a_Stats); \
     11402        Log4(("decode - %04x:%RGv %s%s [#%u]\n", IEM_GET_CTX(pVCpu)->cs.Sel, IEM_GET_CTX(pVCpu)->rip, \
     11403              pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK ? "lock " : "", a_szMnemonic, pVCpu->iem.s.cInstructions)); \
     11404    } while (0)
    1139911405#else
    11400 # define IEMOP_MNEMONIC(a_szMnemonic) do { } while (0)
    11401 # define IEMOP_MNEMONIC2(a_szMnemonic, a_szOps) do { } while (0)
     11406# define IEMOP_MNEMONIC(a_Stats, a_szMnemonic) IEMOP_INC_STATS(a_Stats)
    1140211407#endif
    1140311408
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h

    r64279 r64545  
    535535FNIEMOP_DEF(iemOp_Invalid)
    536536{
    537     IEMOP_MNEMONIC("Invalid");
     537    IEMOP_MNEMONIC(Invalid, "Invalid");
    538538    return IEMOP_RAISE_INVALID_OPCODE();
    539539}
     
    544544{
    545545    RT_NOREF_PV(bRm);
    546     IEMOP_MNEMONIC("InvalidWithRM");
     546    IEMOP_MNEMONIC(InvalidWithRm, "InvalidWithRM");
    547547    return IEMOP_RAISE_INVALID_OPCODE();
    548548}
     
    566566FNIEMOPRM_DEF(iemOp_Grp6_sldt)
    567567{
    568     IEMOP_MNEMONIC("sldt Rv/Mw");
     568    IEMOP_MNEMONIC(sldt, "sldt Rv/Mw");
    569569    IEMOP_HLP_MIN_286();
    570570    IEMOP_HLP_NO_REAL_OR_V86_MODE();
     
    624624FNIEMOPRM_DEF(iemOp_Grp6_str)
    625625{
    626     IEMOP_MNEMONIC("str Rv/Mw");
     626    IEMOP_MNEMONIC(str, "str Rv/Mw");
    627627    IEMOP_HLP_MIN_286();
    628628    IEMOP_HLP_NO_REAL_OR_V86_MODE();
     
    682682FNIEMOPRM_DEF(iemOp_Grp6_lldt)
    683683{
    684     IEMOP_MNEMONIC("lldt Ew");
     684    IEMOP_MNEMONIC(lldt, "lldt Ew");
    685685    IEMOP_HLP_MIN_286();
    686686    IEMOP_HLP_NO_REAL_OR_V86_MODE();
     
    714714FNIEMOPRM_DEF(iemOp_Grp6_ltr)
    715715{
    716     IEMOP_MNEMONIC("ltr Ew");
     716    IEMOP_MNEMONIC(ltr, "ltr Ew");
    717717    IEMOP_HLP_MIN_286();
    718718    IEMOP_HLP_NO_REAL_OR_V86_MODE();
     
    778778FNIEMOPRM_DEF(iemOp_Grp6_verr)
    779779{
    780     IEMOP_MNEMONIC("verr Ew");
     780    IEMOP_MNEMONIC(verr, "verr Ew");
    781781    IEMOP_HLP_MIN_286();
    782782    return FNIEMOP_CALL_2(iemOpCommonGrp6VerX, bRm, false);
     
    787787FNIEMOPRM_DEF(iemOp_Grp6_verw)
    788788{
    789     IEMOP_MNEMONIC("verr Ew");
     789    IEMOP_MNEMONIC(verw, "verw Ew");
    790790    IEMOP_HLP_MIN_286();
    791791    return FNIEMOP_CALL_2(iemOpCommonGrp6VerX, bRm, true);
     
    819819FNIEMOP_DEF_1(iemOp_Grp7_sgdt, uint8_t, bRm)
    820820{
    821     IEMOP_MNEMONIC("sgdt Ms");
     821    IEMOP_MNEMONIC(sgdt, "sgdt Ms");
    822822    IEMOP_HLP_MIN_286();
    823823    IEMOP_HLP_64BIT_OP_SIZE();
     
    869869FNIEMOP_DEF_1(iemOp_Grp7_sidt, uint8_t, bRm)
    870870{
    871     IEMOP_MNEMONIC("sidt Ms");
     871    IEMOP_MNEMONIC(sidt, "sidt Ms");
    872872    IEMOP_HLP_MIN_286();
    873873    IEMOP_HLP_64BIT_OP_SIZE();
     
    887887FNIEMOP_DEF(iemOp_Grp7_monitor)
    888888{
    889     IEMOP_MNEMONIC("monitor");
     889    IEMOP_MNEMONIC(monitor, "monitor");
    890890    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); /** @todo Verify that monitor is allergic to lock prefixes. */
    891891    return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_monitor, pVCpu->iem.s.iEffSeg);
     
    896896FNIEMOP_DEF(iemOp_Grp7_mwait)
    897897{
    898     IEMOP_MNEMONIC("mwait"); /** @todo Verify that mwait is allergic to lock prefixes. */
     898    IEMOP_MNEMONIC(mwait, "mwait"); /** @todo Verify that mwait is allergic to lock prefixes. */
    899899    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    900900    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_mwait);
     
    905905FNIEMOP_DEF_1(iemOp_Grp7_lgdt, uint8_t, bRm)
    906906{
    907     IEMOP_MNEMONIC("lgdt");
     907    IEMOP_MNEMONIC(lgdt, "lgdt");
    908908    IEMOP_HLP_64BIT_OP_SIZE();
    909909    IEM_MC_BEGIN(3, 1);
     
    923923FNIEMOP_DEF(iemOp_Grp7_xgetbv)
    924924{
    925     IEMOP_MNEMONIC("xgetbv");
     925    IEMOP_MNEMONIC(xgetbv, "xgetbv");
    926926    if (IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fXSaveRstor)
    927927    {
     
    936936FNIEMOP_DEF(iemOp_Grp7_xsetbv)
    937937{
    938     IEMOP_MNEMONIC("xsetbv");
     938    IEMOP_MNEMONIC(xsetbv, "xsetbv");
    939939    if (IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fXSaveRstor)
    940940    {
     
    949949FNIEMOP_DEF_1(iemOp_Grp7_lidt, uint8_t, bRm)
    950950{
     951    IEMOP_MNEMONIC(lidt, "lidt");
    951952    IEMMODE enmEffOpSize = pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT
    952953                         ? IEMMODE_64BIT
     
    992993FNIEMOP_DEF_1(iemOp_Grp7_smsw, uint8_t, bRm)
    993994{
    994     IEMOP_MNEMONIC("smsw");
     995    IEMOP_MNEMONIC(smsw, "smsw");
    995996    IEMOP_HLP_MIN_286();
    996997    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    10631064    /* The operand size is effectively ignored, all is 16-bit and only the
    10641065       lower 3-bits are used. */
    1065     IEMOP_MNEMONIC("lmsw");
     1066    IEMOP_MNEMONIC(lmsw, "lmsw");
    10661067    IEMOP_HLP_MIN_286();
    10671068    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    10921093FNIEMOP_DEF_1(iemOp_Grp7_invlpg, uint8_t, bRm)
    10931094{
    1094     IEMOP_MNEMONIC("invlpg");
     1095    IEMOP_MNEMONIC(invlpg, "invlpg");
    10951096    IEMOP_HLP_MIN_486();
    10961097    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    11071108FNIEMOP_DEF(iemOp_Grp7_swapgs)
    11081109{
    1109     IEMOP_MNEMONIC("swapgs");
     1110    IEMOP_MNEMONIC(swapgs, "swapgs");
    11101111    IEMOP_HLP_ONLY_64BIT();
    11111112    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    12991300FNIEMOP_DEF(iemOp_lar_Gv_Ew)
    13001301{
    1301     IEMOP_MNEMONIC("lar Gv,Ew");
     1302    IEMOP_MNEMONIC(lar, "lar Gv,Ew");
    13021303    return FNIEMOP_CALL_1(iemOpCommonLarLsl_Gv_Ew, true);
    13031304}
     
    13071308FNIEMOP_DEF(iemOp_lsl_Gv_Ew)
    13081309{
    1309     IEMOP_MNEMONIC("lsl Gv,Ew");
     1310    IEMOP_MNEMONIC(lsl, "lsl Gv,Ew");
    13101311    return FNIEMOP_CALL_1(iemOpCommonLarLsl_Gv_Ew, false);
    13111312}
     
    13151316FNIEMOP_DEF(iemOp_syscall)
    13161317{
    1317     IEMOP_MNEMONIC("syscall"); /** @todo 286 LOADALL   */
     1318    IEMOP_MNEMONIC(syscall, "syscall"); /** @todo 286 LOADALL   */
    13181319    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    13191320    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_syscall);
     
    13241325FNIEMOP_DEF(iemOp_clts)
    13251326{
    1326     IEMOP_MNEMONIC("clts");
     1327    IEMOP_MNEMONIC(clts, "clts");
    13271328    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    13281329    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_clts);
     
    13331334FNIEMOP_DEF(iemOp_sysret)
    13341335{
    1335     IEMOP_MNEMONIC("sysret");  /** @todo 386 LOADALL   */
     1336    IEMOP_MNEMONIC(sysret, "sysret");  /** @todo 386 LOADALL   */
    13361337    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    13371338    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_sysret);
     
    13471348FNIEMOP_DEF(iemOp_wbinvd)
    13481349{
    1349     IEMOP_MNEMONIC("wbinvd");
     1350    IEMOP_MNEMONIC(wbinvd, "wbinvd");
    13501351    IEMOP_HLP_MIN_486();
    13511352    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    13611362FNIEMOP_DEF(iemOp_ud2)
    13621363{
    1363     IEMOP_MNEMONIC("ud2");
     1364    IEMOP_MNEMONIC(ud2, "ud2");
    13641365    return IEMOP_RAISE_INVALID_OPCODE();
    13651366}
     
    13711372    if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->f3DNowPrefetch)
    13721373    {
    1373         IEMOP_MNEMONIC("GrpP");
     1374        IEMOP_MNEMONIC(GrpPNotSupported, "GrpP");
    13741375        return IEMOP_RAISE_INVALID_OPCODE();
    13751376    }
     
    13781379    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    13791380    {
    1380         IEMOP_MNEMONIC("GrpP");
     1381        IEMOP_MNEMONIC(GrpPInvalid, "GrpP");
    13811382        return IEMOP_RAISE_INVALID_OPCODE();
    13821383    }
     
    13891390        case 6: /* Aliased to /0 for the time being. */
    13901391        case 7: /* Aliased to /0 for the time being. */
    1391         case 0: IEMOP_MNEMONIC("prefetch"); break;
    1392         case 1: IEMOP_MNEMONIC("prefetchw"); break;
    1393         case 3: IEMOP_MNEMONIC("prefetchw"); break;
     1392        case 0: IEMOP_MNEMONIC(prefetch, "prefetch"); break;
     1393        case 1: IEMOP_MNEMONIC(prefetchw_1, "prefetchw"); break;
     1394        case 3: IEMOP_MNEMONIC(prefetchw_3, "prefetchw"); break;
    13941395        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    13951396    }
     
    14891490    if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->f3DNow)
    14901491    {
    1491         IEMOP_MNEMONIC("3Dnow");
     1492        IEMOP_MNEMONIC(Inv3Dnow, "3Dnow");
    14921493        return IEMOP_RAISE_INVALID_OPCODE();
    14931494    }
     
    15381539    if (fRelevantPrefix == 0)
    15391540    {
    1540         IEMOP_MNEMONIC("movups Wps,Vps");
     1541        IEMOP_MNEMONIC(movups_Wps_Vps, "movups Wps,Vps");
    15411542        uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    15421543        if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    15771578    else if (fRelevantPrefix == IEM_OP_PRF_REPNZ)
    15781579    {
    1579         IEMOP_MNEMONIC("movsd Wsd,Vsd");
     1580        IEMOP_MNEMONIC(movsd_Wsd_Vsd, "movsd Wsd,Vsd");
    15801581        uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    15811582        if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    16361637    if (pVCpu->iem.s.fPrefixes == IEM_OP_PRF_SIZE_OP)
    16371638    {
    1638         IEMOP_MNEMONIC("movlpd Mq,Vq");
     1639        IEMOP_MNEMONIC(movlpd_Mq_Vq, "movlpd Mq,Vq");
    16391640        uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    16401641        if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    17071708            case 6: /* Aliased to /0 for the time being according to AMD. */
    17081709            case 7: /* Aliased to /0 for the time being according to AMD. */
    1709             case 0: IEMOP_MNEMONIC("prefetchNTA m8"); break;
    1710             case 1: IEMOP_MNEMONIC("prefetchT0  m8"); break;
    1711             case 2: IEMOP_MNEMONIC("prefetchT1  m8"); break;
    1712             case 3: IEMOP_MNEMONIC("prefetchT2  m8"); break;
     1710            case 0: IEMOP_MNEMONIC(prefetchNTA, "prefetchNTA m8"); break;
     1711            case 1: IEMOP_MNEMONIC(prefetchT0, "prefetchT0  m8"); break;
     1712            case 2: IEMOP_MNEMONIC(prefetchT1, "prefetchT1  m8"); break;
     1713            case 3: IEMOP_MNEMONIC(prefetchT2, "prefetchT2  m8"); break;
    17131714            IEM_NOT_REACHED_DEFAULT_CASE_RET();
    17141715        }
     
    17321733FNIEMOP_DEF(iemOp_nop_Ev)
    17331734{
     1735    IEMOP_MNEMONIC(nop_Ev, "nop Ev");
    17341736    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    17351737    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    17591761{
    17601762    /* mod is ignored, as is operand size overrides. */
    1761     IEMOP_MNEMONIC("mov Rd,Cd");
     1763    IEMOP_MNEMONIC(mov_Rd_Cd, "mov Rd,Cd");
    17621764    IEMOP_HLP_MIN_386();
    17631765    if (pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT)
     
    17911793FNIEMOP_DEF(iemOp_mov_Rd_Dd)
    17921794{
    1793     IEMOP_MNEMONIC("mov Rd,Dd");
     1795    IEMOP_MNEMONIC(mov_Rd_Dd, "mov Rd,Dd");
    17941796    IEMOP_HLP_MIN_386();
    17951797    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    18071809{
    18081810    /* mod is ignored, as is operand size overrides. */
    1809     IEMOP_MNEMONIC("mov Cd,Rd");
     1811    IEMOP_MNEMONIC(mov_Cd_Rd, "mov Cd,Rd");
    18101812    IEMOP_HLP_MIN_386();
    18111813    if (pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT)
     
    18391841FNIEMOP_DEF(iemOp_mov_Dd_Rd)
    18401842{
    1841     IEMOP_MNEMONIC("mov Dd,Rd");
     1843    IEMOP_MNEMONIC(mov_Dd_Rd, "mov Dd,Rd");
    18421844    IEMOP_HLP_MIN_386();
    18431845    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    18541856FNIEMOP_DEF(iemOp_mov_Rd_Td)
    18551857{
    1856     IEMOP_MNEMONIC("mov Rd,Td");
     1858    IEMOP_MNEMONIC(mov_Rd_Td, "mov Rd,Td");
    18571859    /** @todo works on 386 and 486. */
    18581860    /* The RM byte is not considered, see testcase. */
     
    18641866FNIEMOP_DEF(iemOp_mov_Td_Rd)
    18651867{
    1866     IEMOP_MNEMONIC("mov Td,Rd");
     1868    IEMOP_MNEMONIC(mov_Td_Rd, "mov Td,Rd");
    18671869    /** @todo works on 386 and 486. */
    18681870    /* The RM byte is not considered, see testcase. */
     
    18741876FNIEMOP_DEF(iemOp_movaps_Vps_Wps__movapd_Vpd_Wpd)
    18751877{
    1876     IEMOP_MNEMONIC(!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_OP) ? "movaps r,mr" : "movapd r,mr");
     1878    if (!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_OP))
     1879        IEMOP_MNEMONIC(movaps_r_mr, "movaps r,mr");
     1880    else
     1881        IEMOP_MNEMONIC(movapd_r_mr, "movapd r,mr");
    18771882    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    18781883    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    19231928FNIEMOP_DEF(iemOp_movaps_Wps_Vps__movapd_Wpd_Vpd)
    19241929{
    1925     IEMOP_MNEMONIC(!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_OP) ? "movaps mr,r" : "movapd mr,r");
     1930    if (!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_OP))
     1931        IEMOP_MNEMONIC(movaps_mr_r, "movaps Wps,Vps");
     1932    else
     1933        IEMOP_MNEMONIC(movapd_mr_r, "movapd Wpd,Vpd");
    19261934    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    19271935    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    19761984FNIEMOP_DEF(iemOp_movntps_Mps_Vps__movntpd_Mpd_Vpd)
    19771985{
    1978     IEMOP_MNEMONIC(!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_OP) ? "movntps mr,r" : "movntpd mr,r");
     1986    if (!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_OP))
     1987        IEMOP_MNEMONIC(movntps_mr_r, "movntps Mps,Vps");
     1988    else
     1989        IEMOP_MNEMONIC(movntpd_mr_r, "movntpd Mdq,Vpd");
    19791990    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    19801991    if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT))
     
    20212032FNIEMOP_DEF(iemOp_wrmsr)
    20222033{
    2023     IEMOP_MNEMONIC("wrmsr");
     2034    IEMOP_MNEMONIC(wrmsr, "wrmsr");
    20242035    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    20252036    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_wrmsr);
     
    20302041FNIEMOP_DEF(iemOp_rdtsc)
    20312042{
    2032     IEMOP_MNEMONIC("rdtsc");
     2043    IEMOP_MNEMONIC(rdtsc, "rdtsc");
    20332044    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    20342045    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_rdtsc);
     
    20392050FNIEMOP_DEF(iemOp_rdmsr)
    20402051{
    2041     IEMOP_MNEMONIC("rdmsr");
     2052    IEMOP_MNEMONIC(rdmsr, "rdmsr");
    20422053    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    20432054    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_rdmsr);
     
    21652176FNIEMOP_DEF(iemOp_cmovo_Gv_Ev)
    21662177{
    2167     IEMOP_MNEMONIC("cmovo Gv,Ev");
     2178    IEMOP_MNEMONIC(cmovo_Gv_Ev, "cmovo Gv,Ev");
    21682179    CMOV_X(IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF));
    21692180}
     
    21732184FNIEMOP_DEF(iemOp_cmovno_Gv_Ev)
    21742185{
    2175     IEMOP_MNEMONIC("cmovno Gv,Ev");
     2186    IEMOP_MNEMONIC(cmovno_Gv_Ev, "cmovno Gv,Ev");
    21762187    CMOV_X(IEM_MC_IF_EFL_BIT_NOT_SET(X86_EFL_OF));
    21772188}
     
    21812192FNIEMOP_DEF(iemOp_cmovc_Gv_Ev)
    21822193{
    2183     IEMOP_MNEMONIC("cmovc Gv,Ev");
     2194    IEMOP_MNEMONIC(cmovc_Gv_Ev, "cmovc Gv,Ev");
    21842195    CMOV_X(IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF));
    21852196}
     
    21892200FNIEMOP_DEF(iemOp_cmovnc_Gv_Ev)
    21902201{
    2191     IEMOP_MNEMONIC("cmovnc Gv,Ev");
     2202    IEMOP_MNEMONIC(cmovnc_Gv_Ev, "cmovnc Gv,Ev");
    21922203    CMOV_X(IEM_MC_IF_EFL_BIT_NOT_SET(X86_EFL_CF));
    21932204}
     
    21972208FNIEMOP_DEF(iemOp_cmove_Gv_Ev)
    21982209{
    2199     IEMOP_MNEMONIC("cmove Gv,Ev");
     2210    IEMOP_MNEMONIC(cmove_Gv_Ev, "cmove Gv,Ev");
    22002211    CMOV_X(IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF));
    22012212}
     
    22052216FNIEMOP_DEF(iemOp_cmovne_Gv_Ev)
    22062217{
    2207     IEMOP_MNEMONIC("cmovne Gv,Ev");
     2218    IEMOP_MNEMONIC(cmovne_Gv_Ev, "cmovne Gv,Ev");
    22082219    CMOV_X(IEM_MC_IF_EFL_BIT_NOT_SET(X86_EFL_ZF));
    22092220}
     
    22132224FNIEMOP_DEF(iemOp_cmovbe_Gv_Ev)
    22142225{
    2215     IEMOP_MNEMONIC("cmovbe Gv,Ev");
     2226    IEMOP_MNEMONIC(cmovbe_Gv_Ev, "cmovbe Gv,Ev");
    22162227    CMOV_X(IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF));
    22172228}
     
    22212232FNIEMOP_DEF(iemOp_cmovnbe_Gv_Ev)
    22222233{
    2223     IEMOP_MNEMONIC("cmovnbe Gv,Ev");
     2234    IEMOP_MNEMONIC(cmovnbe_Gv_Ev, "cmovnbe Gv,Ev");
    22242235    CMOV_X(IEM_MC_IF_EFL_NO_BITS_SET(X86_EFL_CF | X86_EFL_ZF));
    22252236}
     
    22292240FNIEMOP_DEF(iemOp_cmovs_Gv_Ev)
    22302241{
    2231     IEMOP_MNEMONIC("cmovs Gv,Ev");
     2242    IEMOP_MNEMONIC(cmovs_Gv_Ev, "cmovs Gv,Ev");
    22322243    CMOV_X(IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF));
    22332244}
     
    22372248FNIEMOP_DEF(iemOp_cmovns_Gv_Ev)
    22382249{
    2239     IEMOP_MNEMONIC("cmovns Gv,Ev");
     2250    IEMOP_MNEMONIC(cmovns_Gv_Ev, "cmovns Gv,Ev");
    22402251    CMOV_X(IEM_MC_IF_EFL_BIT_NOT_SET(X86_EFL_SF));
    22412252}
     
    22452256FNIEMOP_DEF(iemOp_cmovp_Gv_Ev)
    22462257{
    2247     IEMOP_MNEMONIC("cmovp Gv,Ev");
     2258    IEMOP_MNEMONIC(cmovp_Gv_Ev, "cmovp Gv,Ev");
    22482259    CMOV_X(IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF));
    22492260}
     
    22532264FNIEMOP_DEF(iemOp_cmovnp_Gv_Ev)
    22542265{
    2255     IEMOP_MNEMONIC("cmovnp Gv,Ev");
     2266    IEMOP_MNEMONIC(cmovnp_Gv_Ev, "cmovnp Gv,Ev");
    22562267    CMOV_X(IEM_MC_IF_EFL_BIT_NOT_SET(X86_EFL_PF));
    22572268}
     
    22612272FNIEMOP_DEF(iemOp_cmovl_Gv_Ev)
    22622273{
    2263     IEMOP_MNEMONIC("cmovl Gv,Ev");
     2274    IEMOP_MNEMONIC(cmovl_Gv_Ev, "cmovl Gv,Ev");
    22642275    CMOV_X(IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF));
    22652276}
     
    22692280FNIEMOP_DEF(iemOp_cmovnl_Gv_Ev)
    22702281{
    2271     IEMOP_MNEMONIC("cmovnl Gv,Ev");
     2282    IEMOP_MNEMONIC(cmovnl_Gv_Ev, "cmovnl Gv,Ev");
    22722283    CMOV_X(IEM_MC_IF_EFL_BITS_EQ(X86_EFL_SF, X86_EFL_OF));
    22732284}
     
    22772288FNIEMOP_DEF(iemOp_cmovle_Gv_Ev)
    22782289{
    2279     IEMOP_MNEMONIC("cmovle Gv,Ev");
     2290    IEMOP_MNEMONIC(cmovle_Gv_Ev, "cmovle Gv,Ev");
    22802291    CMOV_X(IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF));
    22812292}
     
    22852296FNIEMOP_DEF(iemOp_cmovnle_Gv_Ev)
    22862297{
    2287     IEMOP_MNEMONIC("cmovnle Gv,Ev");
     2298    IEMOP_MNEMONIC(cmovnle_Gv_Ev, "cmovnle Gv,Ev");
    22882299    CMOV_X(IEM_MC_IF_EFL_BIT_NOT_SET_AND_BITS_EQ(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF));
    22892300}
     
    24402451FNIEMOP_DEF(iemOp_punpcklbw_Pq_Qd__punpcklbw_Vdq_Wdq)
    24412452{
    2442     IEMOP_MNEMONIC("punpcklbw");
     2453    IEMOP_MNEMONIC(punpcklbw, "punpcklbw");
    24432454    return FNIEMOP_CALL_1(iemOpCommonMmxSse_LowLow_To_Full, &g_iemAImpl_punpcklbw);
    24442455}
     
    24482459FNIEMOP_DEF(iemOp_punpcklwd_Pq_Qd__punpcklwd_Vdq_Wdq)
    24492460{
    2450     IEMOP_MNEMONIC("punpcklwd"); /** @todo AMD mark the MMX version as 3DNow!. Intel says MMX CPUID req. */
     2461    IEMOP_MNEMONIC(punpcklwd, "punpcklwd"); /** @todo AMD mark the MMX version as 3DNow!. Intel says MMX CPUID req. */
    24512462    return FNIEMOP_CALL_1(iemOpCommonMmxSse_LowLow_To_Full, &g_iemAImpl_punpcklwd);
    24522463}
     
    24562467FNIEMOP_DEF(iemOp_punpckldq_Pq_Qd__punpckldq_Vdq_Wdq)
    24572468{
    2458     IEMOP_MNEMONIC("punpckldq");
     2469    IEMOP_MNEMONIC(punpckldq, "punpckldq");
    24592470    return FNIEMOP_CALL_1(iemOpCommonMmxSse_LowLow_To_Full, &g_iemAImpl_punpckldq);
    24602471}
     
    25882599FNIEMOP_DEF(iemOp_punpckhbw_Pq_Qq__punpckhbw_Vdq_Wdq)
    25892600{
    2590     IEMOP_MNEMONIC("punpckhbw");
     2601    IEMOP_MNEMONIC(punpckhbw, "punpckhbw");
    25912602    return FNIEMOP_CALL_1(iemOpCommonMmxSse_HighHigh_To_Full, &g_iemAImpl_punpckhbw);
    25922603}
     
    25962607FNIEMOP_DEF(iemOp_punpckhwd_Pq_Qd__punpckhwd_Vdq_Wdq)
    25972608{
    2598     IEMOP_MNEMONIC("punpckhwd");
     2609    IEMOP_MNEMONIC(punpckhwd, "punpckhwd");
    25992610    return FNIEMOP_CALL_1(iemOpCommonMmxSse_HighHigh_To_Full, &g_iemAImpl_punpckhwd);
    26002611}
     
    26042615FNIEMOP_DEF(iemOp_punpckhdq_Pq_Qd__punpckhdq_Vdq_Wdq)
    26052616{
    2606     IEMOP_MNEMONIC("punpckhdq");
     2617    IEMOP_MNEMONIC(punpckhdq, "punpckhdq");
    26072618    return FNIEMOP_CALL_1(iemOpCommonMmxSse_HighHigh_To_Full, &g_iemAImpl_punpckhdq);
    26082619}
     
    26152626FNIEMOP_DEF(iemOp_punpcklqdq_Vdq_Wdq)
    26162627{
    2617     IEMOP_MNEMONIC("punpcklqdq");
     2628    IEMOP_MNEMONIC(punpcklqdq, "punpcklqdq");
    26182629    return FNIEMOP_CALL_1(iemOpCommonMmxSse_LowLow_To_Full, &g_iemAImpl_punpcklqdq);
    26192630}
     
    26232634FNIEMOP_DEF(iemOp_punpckhqdq_Vdq_Wdq)
    26242635{
    2625     IEMOP_MNEMONIC("punpckhqdq");
     2636    IEMOP_MNEMONIC(punpckhqdq, "punpckhqdq");
    26262637    return FNIEMOP_CALL_1(iemOpCommonMmxSse_HighHigh_To_Full, &g_iemAImpl_punpckhqdq);
    26272638}
     
    26352646    {
    26362647        case IEM_OP_PRF_SIZE_OP: /* SSE */
    2637             IEMOP_MNEMONIC("movd/q Wd/q,Ed/q");
     2648            if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
     2649                IEMOP_MNEMONIC(movdq_Wq_Eq, "movq Wq,Eq");
     2650            else
     2651                IEMOP_MNEMONIC(movdq_Wd_Ed, "movd Wd,Ed");
    26382652            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    26392653            {
     
    26852699
    26862700        case 0: /* MMX */
    2687             IEMOP_MNEMONIC("movq/d Pd/q,Ed/q");
     2701            if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
     2702                IEMOP_MNEMONIC(movq_Pq_Eq, "movq Pq,Eq");
     2703            else
     2704                IEMOP_MNEMONIC(movd_Pd_Ed, "movd Pd,Ed");
    26882705            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    26892706            {
     
    27452762        case IEM_OP_PRF_REPZ: /* SSE unaligned */
    27462763            if (fAligned)
    2747                 IEMOP_MNEMONIC("movdqa Vdq,Wdq");
     2764                IEMOP_MNEMONIC(movdqa_Vdq_Wdq, "movdqa Vdq,Wdq");
    27482765            else
    2749                 IEMOP_MNEMONIC("movdqu Vdq,Wdq");
     2766                IEMOP_MNEMONIC(movdqu_Vdq_Wdq, "movdqu Vdq,Wdq");
    27502767            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    27512768            {
     
    27872804
    27882805        case 0: /* MMX */
    2789             IEMOP_MNEMONIC("movq Pq,Qq");
     2806            IEMOP_MNEMONIC(movq_Pq_Qq, "movq Pq,Qq");
    27902807            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    27912808            {
     
    28462863            {
    28472864                case IEM_OP_PRF_SIZE_OP:
    2848                     IEMOP_MNEMONIC("pshufd Vdq,Wdq,Ib");
     2865                    IEMOP_MNEMONIC(pshufd_Vdq_Wdq, "pshufd Vdq,Wdq,Ib");
    28492866                    pfnAImpl = iemAImpl_pshufd;
    28502867                    break;
    28512868                case IEM_OP_PRF_REPNZ:
    2852                     IEMOP_MNEMONIC("pshuflw Vdq,Wdq,Ib");
     2869                    IEMOP_MNEMONIC(pshuflw_Vdq_Wdq, "pshuflw Vdq,Wdq,Ib");
    28532870                    pfnAImpl = iemAImpl_pshuflw;
    28542871                    break;
    28552872                case IEM_OP_PRF_REPZ:
    2856                     IEMOP_MNEMONIC("pshufhw Vdq,Wdq,Ib");
     2873                    IEMOP_MNEMONIC(pshufhw_Vdq_Wdq, "pshufhw Vdq,Wdq,Ib");
    28572874                    pfnAImpl = iemAImpl_pshufhw;
    28582875                    break;
     
    29082925
    29092926        case 0: /* MMX Extension */
    2910             IEMOP_MNEMONIC("pshufw Pq,Qq,Ib");
     2927            IEMOP_MNEMONIC(pshufw_Pq_Qq, "pshufw Pq,Qq,Ib");
    29112928            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    29122929            {
     
    32423259FNIEMOP_DEF(iemOp_pcmpeqb_Pq_Qq__pcmpeqb_Vdq_Wdq)
    32433260{
    3244     IEMOP_MNEMONIC("pcmpeqb");
     3261    IEMOP_MNEMONIC(pcmpeqb, "pcmpeqb");
    32453262    return FNIEMOP_CALL_1(iemOpCommonMmxSse2_FullFull_To_Full, &g_iemAImpl_pcmpeqb);
    32463263}
     
    32503267FNIEMOP_DEF(iemOp_pcmpeqw_Pq_Qq__pcmpeqw_Vdq_Wdq)
    32513268{
    3252     IEMOP_MNEMONIC("pcmpeqw");
     3269    IEMOP_MNEMONIC(pcmpeqw, "pcmpeqw");
    32533270    return FNIEMOP_CALL_1(iemOpCommonMmxSse2_FullFull_To_Full, &g_iemAImpl_pcmpeqw);
    32543271}
     
    32583275FNIEMOP_DEF(iemOp_pcmped_Pq_Qq__pcmpeqd_Vdq_Wdq)
    32593276{
    3260     IEMOP_MNEMONIC("pcmpeqd");
     3277    IEMOP_MNEMONIC(pcmpeqd, "pcmpeqd");
    32613278    return FNIEMOP_CALL_1(iemOpCommonMmxSse2_FullFull_To_Full, &g_iemAImpl_pcmpeqd);
    32623279}
     
    32823299    {
    32833300        case IEM_OP_PRF_SIZE_OP: /* SSE */
    3284             IEMOP_MNEMONIC("movd/q Ed/q,Wd/q");
     3301            if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
     3302                IEMOP_MNEMONIC(movq_Eq_Wq, "movq Eq,Wq");
     3303            else
     3304                IEMOP_MNEMONIC(movd_Ed_Wd, "movd Ed,Wd");
    32853305            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    32863306            {
     
    33323352
    33333353        case 0: /* MMX */
    3334             IEMOP_MNEMONIC("movq/d Ed/q,Pd/q");
     3354            if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
     3355                IEMOP_MNEMONIC(movq_Eq_Pq, "movq Eq,Pq");
     3356            else
     3357                IEMOP_MNEMONIC(movd_Ed_Pd, "movd Ed,Pd");
    33353358            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    33363359            {
     
    33983421        case IEM_OP_PRF_REPZ: /* SSE unaligned */
    33993422            if (fAligned)
    3400                 IEMOP_MNEMONIC("movdqa Wdq,Vdq");
     3423                IEMOP_MNEMONIC(movdqa_Wdq_Vdq, "movdqa Wdq,Vdq");
    34013424            else
    3402                 IEMOP_MNEMONIC("movdqu Wdq,Vdq");
     3425                IEMOP_MNEMONIC(movdqu_Wdq_Vdq, "movdqu Wdq,Vdq");
    34033426            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    34043427            {
     
    34413464
    34423465        case 0: /* MMX */
    3443             IEMOP_MNEMONIC("movq Qq,Pq");
     3466            IEMOP_MNEMONIC(movq_Qq_Pq, "movq Qq,Pq");
    34443467
    34453468            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    34923515FNIEMOP_DEF(iemOp_jo_Jv)
    34933516{
    3494     IEMOP_MNEMONIC("jo  Jv");
     3517    IEMOP_MNEMONIC(jo_Jv, "jo  Jv");
    34953518    IEMOP_HLP_MIN_386();
    34963519    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    35283551FNIEMOP_DEF(iemOp_jno_Jv)
    35293552{
    3530     IEMOP_MNEMONIC("jno Jv");
     3553    IEMOP_MNEMONIC(jno_Jv, "jno Jv");
    35313554    IEMOP_HLP_MIN_386();
    35323555    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    35643587FNIEMOP_DEF(iemOp_jc_Jv)
    35653588{
    3566     IEMOP_MNEMONIC("jc/jb/jnae Jv");
     3589    IEMOP_MNEMONIC(jc_Jv, "jc/jb/jnae Jv");
    35673590    IEMOP_HLP_MIN_386();
    35683591    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    36003623FNIEMOP_DEF(iemOp_jnc_Jv)
    36013624{
    3602     IEMOP_MNEMONIC("jnc/jnb/jae Jv");
     3625    IEMOP_MNEMONIC(jnc_Jv, "jnc/jnb/jae Jv");
    36033626    IEMOP_HLP_MIN_386();
    36043627    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    36363659FNIEMOP_DEF(iemOp_je_Jv)
    36373660{
    3638     IEMOP_MNEMONIC("je/jz Jv");
     3661    IEMOP_MNEMONIC(je_Jv, "je/jz Jv");
    36393662    IEMOP_HLP_MIN_386();
    36403663    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    36723695FNIEMOP_DEF(iemOp_jne_Jv)
    36733696{
    3674     IEMOP_MNEMONIC("jne/jnz Jv");
     3697    IEMOP_MNEMONIC(jne_Jv, "jne/jnz Jv");
    36753698    IEMOP_HLP_MIN_386();
    36763699    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    37083731FNIEMOP_DEF(iemOp_jbe_Jv)
    37093732{
    3710     IEMOP_MNEMONIC("jbe/jna Jv");
     3733    IEMOP_MNEMONIC(jbe_Jv, "jbe/jna Jv");
    37113734    IEMOP_HLP_MIN_386();
    37123735    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    37443767FNIEMOP_DEF(iemOp_jnbe_Jv)
    37453768{
    3746     IEMOP_MNEMONIC("jnbe/ja Jv");
     3769    IEMOP_MNEMONIC(ja_Jv, "jnbe/ja Jv");
    37473770    IEMOP_HLP_MIN_386();
    37483771    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    37803803FNIEMOP_DEF(iemOp_js_Jv)
    37813804{
    3782     IEMOP_MNEMONIC("js  Jv");
     3805    IEMOP_MNEMONIC(js_Jv, "js  Jv");
    37833806    IEMOP_HLP_MIN_386();
    37843807    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    38163839FNIEMOP_DEF(iemOp_jns_Jv)
    38173840{
    3818     IEMOP_MNEMONIC("jns Jv");
     3841    IEMOP_MNEMONIC(jns_Jv, "jns Jv");
    38193842    IEMOP_HLP_MIN_386();
    38203843    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    38523875FNIEMOP_DEF(iemOp_jp_Jv)
    38533876{
    3854     IEMOP_MNEMONIC("jp  Jv");
     3877    IEMOP_MNEMONIC(jp_Jv, "jp  Jv");
    38553878    IEMOP_HLP_MIN_386();
    38563879    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    38883911FNIEMOP_DEF(iemOp_jnp_Jv)
    38893912{
    3890     IEMOP_MNEMONIC("jo Jv");
     3913    IEMOP_MNEMONIC(jnp_Jv, "jnp Jv");
    38913914    IEMOP_HLP_MIN_386();
    38923915    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    39243947FNIEMOP_DEF(iemOp_jl_Jv)
    39253948{
    3926     IEMOP_MNEMONIC("jl/jnge Jv");
     3949    IEMOP_MNEMONIC(jl_Jv, "jl/jnge Jv");
    39273950    IEMOP_HLP_MIN_386();
    39283951    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    39603983FNIEMOP_DEF(iemOp_jnl_Jv)
    39613984{
    3962     IEMOP_MNEMONIC("jnl/jge Jv");
     3985    IEMOP_MNEMONIC(jge_Jv, "jnl/jge Jv");
    39633986    IEMOP_HLP_MIN_386();
    39643987    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    39964019FNIEMOP_DEF(iemOp_jle_Jv)
    39974020{
    3998     IEMOP_MNEMONIC("jle/jng Jv");
     4021    IEMOP_MNEMONIC(jle_Jv, "jle/jng Jv");
    39994022    IEMOP_HLP_MIN_386();
    40004023    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    40324055FNIEMOP_DEF(iemOp_jnle_Jv)
    40334056{
    4034     IEMOP_MNEMONIC("jnle/jg Jv");
     4057    IEMOP_MNEMONIC(jg_Jv, "jnle/jg Jv");
    40354058    IEMOP_HLP_MIN_386();
    40364059    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    40684091FNIEMOP_DEF(iemOp_seto_Eb)
    40694092{
    4070     IEMOP_MNEMONIC("seto Eb");
     4093    IEMOP_MNEMONIC(seto_Eb, "seto Eb");
    40714094    IEMOP_HLP_MIN_386();
    40724095    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    41104133FNIEMOP_DEF(iemOp_setno_Eb)
    41114134{
    4112     IEMOP_MNEMONIC("setno Eb");
     4135    IEMOP_MNEMONIC(setno_Eb, "setno Eb");
    41134136    IEMOP_HLP_MIN_386();
    41144137    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    41524175FNIEMOP_DEF(iemOp_setc_Eb)
    41534176{
    4154     IEMOP_MNEMONIC("setc Eb");
     4177    IEMOP_MNEMONIC(setc_Eb, "setc Eb");
    41554178    IEMOP_HLP_MIN_386();
    41564179    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    41944217FNIEMOP_DEF(iemOp_setnc_Eb)
    41954218{
    4196     IEMOP_MNEMONIC("setnc Eb");
     4219    IEMOP_MNEMONIC(setnc_Eb, "setnc Eb");
    41974220    IEMOP_HLP_MIN_386();
    41984221    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    42364259FNIEMOP_DEF(iemOp_sete_Eb)
    42374260{
    4238     IEMOP_MNEMONIC("sete Eb");
     4261    IEMOP_MNEMONIC(sete_Eb, "sete Eb");
    42394262    IEMOP_HLP_MIN_386();
    42404263    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    42784301FNIEMOP_DEF(iemOp_setne_Eb)
    42794302{
    4280     IEMOP_MNEMONIC("setne Eb");
     4303    IEMOP_MNEMONIC(setne_Eb, "setne Eb");
    42814304    IEMOP_HLP_MIN_386();
    42824305    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    43204343FNIEMOP_DEF(iemOp_setbe_Eb)
    43214344{
    4322     IEMOP_MNEMONIC("setbe Eb");
     4345    IEMOP_MNEMONIC(setbe_Eb, "setbe Eb");
    43234346    IEMOP_HLP_MIN_386();
    43244347    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    43624385FNIEMOP_DEF(iemOp_setnbe_Eb)
    43634386{
    4364     IEMOP_MNEMONIC("setnbe Eb");
     4387    IEMOP_MNEMONIC(setnbe_Eb, "setnbe Eb");
    43654388    IEMOP_HLP_MIN_386();
    43664389    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    44044427FNIEMOP_DEF(iemOp_sets_Eb)
    44054428{
    4406     IEMOP_MNEMONIC("sets Eb");
     4429    IEMOP_MNEMONIC(sets_Eb, "sets Eb");
    44074430    IEMOP_HLP_MIN_386();
    44084431    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    44464469FNIEMOP_DEF(iemOp_setns_Eb)
    44474470{
    4448     IEMOP_MNEMONIC("setns Eb");
     4471    IEMOP_MNEMONIC(setns_Eb, "setns Eb");
    44494472    IEMOP_HLP_MIN_386();
    44504473    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    44884511FNIEMOP_DEF(iemOp_setp_Eb)
    44894512{
    4490     IEMOP_MNEMONIC("setnp Eb");
     4513    IEMOP_MNEMONIC(setp_Eb, "setp Eb");
    44914514    IEMOP_HLP_MIN_386();
    44924515    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    45304553FNIEMOP_DEF(iemOp_setnp_Eb)
    45314554{
    4532     IEMOP_MNEMONIC("setnp Eb");
     4555    IEMOP_MNEMONIC(setnp_Eb, "setnp Eb");
    45334556    IEMOP_HLP_MIN_386();
    45344557    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    45724595FNIEMOP_DEF(iemOp_setl_Eb)
    45734596{
    4574     IEMOP_MNEMONIC("setl Eb");
     4597    IEMOP_MNEMONIC(setl_Eb, "setl Eb");
    45754598    IEMOP_HLP_MIN_386();
    45764599    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    46144637FNIEMOP_DEF(iemOp_setnl_Eb)
    46154638{
    4616     IEMOP_MNEMONIC("setnl Eb");
     4639    IEMOP_MNEMONIC(setnl_Eb, "setnl Eb");
    46174640    IEMOP_HLP_MIN_386();
    46184641    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    46564679FNIEMOP_DEF(iemOp_setle_Eb)
    46574680{
    4658     IEMOP_MNEMONIC("setle Eb");
     4681    IEMOP_MNEMONIC(setle_Eb, "setle Eb");
    46594682    IEMOP_HLP_MIN_386();
    46604683    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    46984721FNIEMOP_DEF(iemOp_setnle_Eb)
    46994722{
    4700     IEMOP_MNEMONIC("setnle Eb");
     4723    IEMOP_MNEMONIC(setnle_Eb, "setnle Eb");
    47014724    IEMOP_HLP_MIN_386();
    47024725    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    47844807FNIEMOP_DEF(iemOp_push_fs)
    47854808{
    4786     IEMOP_MNEMONIC("push fs");
     4809    IEMOP_MNEMONIC(push_fs, "push fs");
    47874810    IEMOP_HLP_MIN_386();
    47884811    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    47944817FNIEMOP_DEF(iemOp_pop_fs)
    47954818{
    4796     IEMOP_MNEMONIC("pop fs");
     4819    IEMOP_MNEMONIC(pop_fs, "pop fs");
    47974820    IEMOP_HLP_MIN_386();
    47984821    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    48044827FNIEMOP_DEF(iemOp_cpuid)
    48054828{
    4806     IEMOP_MNEMONIC("cpuid");
     4829    IEMOP_MNEMONIC(cpuid, "cpuid");
    48074830    IEMOP_HLP_MIN_486(); /* not all 486es. */
    48084831    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    50015024FNIEMOP_DEF(iemOp_bt_Ev_Gv)
    50025025{
    5003     IEMOP_MNEMONIC("bt  Gv,Gv");
     5026    IEMOP_MNEMONIC(bt_Gv_Gv, "bt  Gv,Gv");
    50045027    IEMOP_HLP_MIN_386();
    50055028    return FNIEMOP_CALL_1(iemOpCommonBit_Ev_Gv, &g_iemAImpl_bt);
     
    53025325FNIEMOP_DEF(iemOp_shld_Ev_Gv_Ib)
    53035326{
    5304     IEMOP_MNEMONIC("shld Ev,Gv,Ib");
     5327    IEMOP_MNEMONIC(shld_Ev_Gv_Ib, "shld Ev,Gv,Ib");
    53055328    IEMOP_HLP_MIN_386();
    53065329    return FNIEMOP_CALL_1(iemOpCommonShldShrd_Ib, &g_iemAImpl_shld);
     
    53115334FNIEMOP_DEF(iemOp_shld_Ev_Gv_CL)
    53125335{
    5313     IEMOP_MNEMONIC("shld Ev,Gv,CL");
     5336    IEMOP_MNEMONIC(shld_Ev_Gv_CL, "shld Ev,Gv,CL");
    53145337    IEMOP_HLP_MIN_386();
    53155338    return FNIEMOP_CALL_1(iemOpCommonShldShrd_CL, &g_iemAImpl_shld);
     
    53205343FNIEMOP_DEF(iemOp_push_gs)
    53215344{
    5322     IEMOP_MNEMONIC("push gs");
     5345    IEMOP_MNEMONIC(push_gs, "push gs");
    53235346    IEMOP_HLP_MIN_386();
    53245347    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    53305353FNIEMOP_DEF(iemOp_pop_gs)
    53315354{
    5332     IEMOP_MNEMONIC("pop gs");
     5355    IEMOP_MNEMONIC(pop_gs, "pop gs");
    53335356    IEMOP_HLP_MIN_386();
    53345357    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    53455368FNIEMOP_DEF(iemOp_bts_Ev_Gv)
    53465369{
    5347     IEMOP_MNEMONIC("bts Ev,Gv");
     5370    IEMOP_MNEMONIC(bts_Ev_Gv, "bts Ev,Gv");
    53485371    IEMOP_HLP_MIN_386();
    53495372    return FNIEMOP_CALL_1(iemOpCommonBit_Ev_Gv, &g_iemAImpl_bts);
     
    53545377FNIEMOP_DEF(iemOp_shrd_Ev_Gv_Ib)
    53555378{
    5356     IEMOP_MNEMONIC("shrd Ev,Gv,Ib");
     5379    IEMOP_MNEMONIC(shrd_Ev_Gv_Ib, "shrd Ev,Gv,Ib");
    53575380    IEMOP_HLP_MIN_386();
    53585381    return FNIEMOP_CALL_1(iemOpCommonShldShrd_Ib, &g_iemAImpl_shrd);
     
    53635386FNIEMOP_DEF(iemOp_shrd_Ev_Gv_CL)
    53645387{
    5365     IEMOP_MNEMONIC("shrd Ev,Gv,CL");
     5388    IEMOP_MNEMONIC(shrd_Ev_Gv_CL, "shrd Ev,Gv,CL");
    53665389    IEMOP_HLP_MIN_386();
    53675390    return FNIEMOP_CALL_1(iemOpCommonShldShrd_CL, &g_iemAImpl_shrd);
     
    53725395FNIEMOP_DEF_1(iemOp_Grp15_fxsave,   uint8_t, bRm)
    53735396{
    5374     IEMOP_MNEMONIC("fxsave m512");
     5397    IEMOP_MNEMONIC(fxsave, "fxsave m512");
    53755398    if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fFxSaveRstor)
    53765399        return IEMOP_RAISE_INVALID_OPCODE();
     
    53925415FNIEMOP_DEF_1(iemOp_Grp15_fxrstor,  uint8_t, bRm)
    53935416{
    5394     IEMOP_MNEMONIC("fxrstor m512");
     5417    IEMOP_MNEMONIC(fxrstor, "fxrstor m512");
    53955418    if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fFxSaveRstor)
    53965419        return IEMOP_RAISE_INVALID_OPCODE();
     
    54325455{
    54335456    RT_NOREF_PV(bRm);
    5434     IEMOP_MNEMONIC("lfence");
     5457    IEMOP_MNEMONIC(lfence, "lfence");
    54355458    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    54365459    if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2)
     
    54525475{
    54535476    RT_NOREF_PV(bRm);
    5454     IEMOP_MNEMONIC("mfence");
     5477    IEMOP_MNEMONIC(mfence, "mfence");
    54555478    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    54565479    if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2)
     
    54725495{
    54735496    RT_NOREF_PV(bRm);
    5474     IEMOP_MNEMONIC("sfence");
     5497    IEMOP_MNEMONIC(sfence, "sfence");
    54755498    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    54765499    if (!IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2)
     
    55655588FNIEMOP_DEF(iemOp_imul_Gv_Ev)
    55665589{
    5567     IEMOP_MNEMONIC("imul Gv,Ev");
     5590    IEMOP_MNEMONIC(imul_Gv_Ev, "imul Gv,Ev");
    55685591    IEMOP_HLP_MIN_386();
    55695592    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
     
    55755598FNIEMOP_DEF(iemOp_cmpxchg_Eb_Gb)
    55765599{
    5577     IEMOP_MNEMONIC("cmpxchg Eb,Gb");
     5600    IEMOP_MNEMONIC(cmpxchg_Eb_Gb, "cmpxchg Eb,Gb");
    55785601    IEMOP_HLP_MIN_486();
    55795602    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    56345657FNIEMOP_DEF(iemOp_cmpxchg_Ev_Gv)
    56355658{
    5636     IEMOP_MNEMONIC("cmpxchg Ev,Gv");
     5659    IEMOP_MNEMONIC(cmpxchg_Ev_Gv, "cmpxchg Ev,Gv");
    56375660    IEMOP_HLP_MIN_486();
    56385661    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    58925915FNIEMOP_DEF(iemOp_lss_Gv_Mp)
    58935916{
    5894     IEMOP_MNEMONIC("lss Gv,Mp");
     5917    IEMOP_MNEMONIC(lss_Gv_Mp, "lss Gv,Mp");
    58955918    IEMOP_HLP_MIN_386();
    58965919    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    59045927FNIEMOP_DEF(iemOp_btr_Ev_Gv)
    59055928{
    5906     IEMOP_MNEMONIC("btr Ev,Gv");
     5929    IEMOP_MNEMONIC(btr_Ev_Gv, "btr Ev,Gv");
    59075930    return FNIEMOP_CALL_1(iemOpCommonBit_Ev_Gv, &g_iemAImpl_btr);
    59085931}
     
    59125935FNIEMOP_DEF(iemOp_lfs_Gv_Mp)
    59135936{
    5914     IEMOP_MNEMONIC("lfs Gv,Mp");
     5937    IEMOP_MNEMONIC(lfs_Gv_Mp, "lfs Gv,Mp");
    59155938    IEMOP_HLP_MIN_386();
    59165939    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    59245947FNIEMOP_DEF(iemOp_lgs_Gv_Mp)
    59255948{
    5926     IEMOP_MNEMONIC("lgs Gv,Mp");
     5949    IEMOP_MNEMONIC(lgs_Gv_Mp, "lgs Gv,Mp");
    59275950    IEMOP_HLP_MIN_386();
    59285951    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    59365959FNIEMOP_DEF(iemOp_movzx_Gv_Eb)
    59375960{
    5938     IEMOP_MNEMONIC("movzx Gv,Eb");
     5961    IEMOP_MNEMONIC(movzx_Gv_Eb, "movzx Gv,Eb");
    59395962    IEMOP_HLP_MIN_386();
    59405963
     
    60316054FNIEMOP_DEF(iemOp_movzx_Gv_Ew)
    60326055{
    6033     IEMOP_MNEMONIC("movzx Gv,Ew");
     6056    IEMOP_MNEMONIC(movzx_Gv_Ew, "movzx Gv,Ew");
    60346057    IEMOP_HLP_MIN_386();
    60356058
     
    61206143        case 0: case 1: case 2: case 3:
    61216144            return IEMOP_RAISE_INVALID_OPCODE();
    6122         case 4: pImpl = &g_iemAImpl_bt;  IEMOP_MNEMONIC("bt  Ev,Ib"); break;
    6123         case 5: pImpl = &g_iemAImpl_bts; IEMOP_MNEMONIC("bts Ev,Ib"); break;
    6124         case 6: pImpl = &g_iemAImpl_btr; IEMOP_MNEMONIC("btr Ev,Ib"); break;
    6125         case 7: pImpl = &g_iemAImpl_btc; IEMOP_MNEMONIC("btc Ev,Ib"); break;
     6145        case 4: pImpl = &g_iemAImpl_bt;  IEMOP_MNEMONIC(bt_Ev_Ib,  "bt  Ev,Ib"); break;
     6146        case 5: pImpl = &g_iemAImpl_bts; IEMOP_MNEMONIC(bts_Ev_Ib, "bts Ev,Ib"); break;
     6147        case 6: pImpl = &g_iemAImpl_btr; IEMOP_MNEMONIC(btr_Ev_Ib, "btr Ev,Ib"); break;
     6148        case 7: pImpl = &g_iemAImpl_btc; IEMOP_MNEMONIC(btc_Ev_Ib, "btc Ev,Ib"); break;
    61266149        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    61276150    }
     
    62866309FNIEMOP_DEF(iemOp_btc_Ev_Gv)
    62876310{
    6288     IEMOP_MNEMONIC("btc Ev,Gv");
     6311    IEMOP_MNEMONIC(btc_Ev_Gv, "btc Ev,Gv");
    62896312    IEMOP_HLP_MIN_386();
    62906313    return FNIEMOP_CALL_1(iemOpCommonBit_Ev_Gv, &g_iemAImpl_btc);
     
    62956318FNIEMOP_DEF(iemOp_bsf_Gv_Ev)
    62966319{
    6297     IEMOP_MNEMONIC("bsf Gv,Ev");
     6320    IEMOP_MNEMONIC(bsf_Gv_Ev, "bsf Gv,Ev");
    62986321    IEMOP_HLP_MIN_386();
    62996322    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_OF | X86_EFL_SF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF);
     
    63056328FNIEMOP_DEF(iemOp_bsr_Gv_Ev)
    63066329{
    6307     IEMOP_MNEMONIC("bsr Gv,Ev");
     6330    IEMOP_MNEMONIC(bsr_Gv_Ev, "bsr Gv,Ev");
    63086331    IEMOP_HLP_MIN_386();
    63096332    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_OF | X86_EFL_SF | X86_EFL_AF | X86_EFL_PF | X86_EFL_CF);
     
    63156338FNIEMOP_DEF(iemOp_movsx_Gv_Eb)
    63166339{
    6317     IEMOP_MNEMONIC("movsx Gv,Eb");
     6340    IEMOP_MNEMONIC(movsx_Gv_Eb, "movsx Gv,Eb");
    63186341    IEMOP_HLP_MIN_386();
    63196342
     
    64106433FNIEMOP_DEF(iemOp_movsx_Gv_Ew)
    64116434{
    6412     IEMOP_MNEMONIC("movsx Gv,Ew");
     6435    IEMOP_MNEMONIC(movsx_Gv_Ew, "movsx Gv,Ew");
    64136436    IEMOP_HLP_MIN_386();
    64146437
     
    64826505    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    64836506    IEMOP_HLP_MIN_486();
    6484     IEMOP_MNEMONIC("xadd Eb,Gb");
     6507    IEMOP_MNEMONIC(xadd_Eb_Gb, "xadd Eb,Gb");
    64856508
    64866509    /*
     
    65406563FNIEMOP_DEF(iemOp_xadd_Ev_Gv)
    65416564{
    6542     IEMOP_MNEMONIC("xadd Ev,Gv");
     6565    IEMOP_MNEMONIC(xadd_Ev_Gv, "xadd Ev,Gv");
    65436566    IEMOP_HLP_MIN_486();
    65446567    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    66976720FNIEMOP_DEF(iemOp_movnti_My_Gy)
    66986721{
    6699     IEMOP_MNEMONIC("movnti My,Gy");
     6722    IEMOP_MNEMONIC(movnti_My_Gy, "movnti My,Gy");
    67006723
    67016724    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    67626785FNIEMOP_DEF_1(iemOp_Grp9_cmpxchg8b_Mq, uint8_t, bRm)
    67636786{
    6764     IEMOP_MNEMONIC("cmpxchg8b Mq");
     6787    IEMOP_MNEMONIC(cmpxchg8b, "cmpxchg8b Mq");
    67656788
    67666789    IEM_MC_BEGIN(4, 3);
     
    69136936FNIEMOP_DEF(iemOp_bswap_rAX_r8)
    69146937{
    6915     IEMOP_MNEMONIC("bswap rAX/r8");
     6938    IEMOP_MNEMONIC(bswap_rAX_r8, "bswap rAX/r8");
    69166939    /* Note! Intel manuals states that R8-R15 can be accessed by using a REX.X
    69176940             prefix.  REX.B is the correct prefix it appears.  For a parallel
     
    69256948FNIEMOP_DEF(iemOp_bswap_rCX_r9)
    69266949{
    6927     IEMOP_MNEMONIC("bswap rCX/r9");
     6950    IEMOP_MNEMONIC(bswap_rCX_r9, "bswap rCX/r9");
    69286951    IEMOP_HLP_MIN_486();
    69296952    return FNIEMOP_CALL_1(iemOpCommonBswapGReg, X86_GREG_xCX | pVCpu->iem.s.uRexB);
     
    69346957FNIEMOP_DEF(iemOp_bswap_rDX_r10)
    69356958{
    6936     IEMOP_MNEMONIC("bswap rDX/r9");
     6959    IEMOP_MNEMONIC(bswap_rDX_r9, "bswap rDX/r9");
    69376960    IEMOP_HLP_MIN_486();
    69386961    return FNIEMOP_CALL_1(iemOpCommonBswapGReg, X86_GREG_xDX | pVCpu->iem.s.uRexB);
     
    69436966FNIEMOP_DEF(iemOp_bswap_rBX_r11)
    69446967{
    6945     IEMOP_MNEMONIC("bswap rBX/r9");
     6968    IEMOP_MNEMONIC(bswap_rBX_r9, "bswap rBX/r9");
    69466969    IEMOP_HLP_MIN_486();
    69476970    return FNIEMOP_CALL_1(iemOpCommonBswapGReg, X86_GREG_xBX | pVCpu->iem.s.uRexB);
     
    69526975FNIEMOP_DEF(iemOp_bswap_rSP_r12)
    69536976{
    6954     IEMOP_MNEMONIC("bswap rSP/r12");
     6977    IEMOP_MNEMONIC(bswap_rSP_r12, "bswap rSP/r12");
    69556978    IEMOP_HLP_MIN_486();
    69566979    return FNIEMOP_CALL_1(iemOpCommonBswapGReg, X86_GREG_xSP | pVCpu->iem.s.uRexB);
     
    69616984FNIEMOP_DEF(iemOp_bswap_rBP_r13)
    69626985{
    6963     IEMOP_MNEMONIC("bswap rBP/r13");
     6986    IEMOP_MNEMONIC(bswap_rBP_r13, "bswap rBP/r13");
    69646987    IEMOP_HLP_MIN_486();
    69656988    return FNIEMOP_CALL_1(iemOpCommonBswapGReg, X86_GREG_xBP | pVCpu->iem.s.uRexB);
     
    69706993FNIEMOP_DEF(iemOp_bswap_rSI_r14)
    69716994{
    6972     IEMOP_MNEMONIC("bswap rSI/r14");
     6995    IEMOP_MNEMONIC(bswap_rSI_r14, "bswap rSI/r14");
    69736996    IEMOP_HLP_MIN_486();
    69746997    return FNIEMOP_CALL_1(iemOpCommonBswapGReg, X86_GREG_xSI | pVCpu->iem.s.uRexB);
     
    69797002FNIEMOP_DEF(iemOp_bswap_rDI_r15)
    69807003{
    6981     IEMOP_MNEMONIC("bswap rDI/r15");
     7004    IEMOP_MNEMONIC(bswap_rDI_r15, "bswap rDI/r15");
    69827005    IEMOP_HLP_MIN_486();
    69837006    return FNIEMOP_CALL_1(iemOpCommonBswapGReg, X86_GREG_xDI | pVCpu->iem.s.uRexB);
     
    70187041    {
    70197042        case IEM_OP_PRF_SIZE_OP: /* SSE */
    7020             IEMOP_MNEMONIC("pmovmskb Gd,Nq");
     7043            IEMOP_MNEMONIC(pmovmskb_Gd_Nq, "pmovmskb Gd,Nq");
    70217044            IEMOP_HLP_DECODED_NL_2(OP_PMOVMSKB, IEMOPFORM_RM_REG, OP_PARM_Gd, OP_PARM_Vdq, DISOPTYPE_SSE | DISOPTYPE_HARMLESS);
    70227045            IEM_MC_BEGIN(2, 0);
     
    70337056
    70347057        case 0: /* MMX */
    7035             IEMOP_MNEMONIC("pmovmskb Gd,Udq");
     7058            IEMOP_MNEMONIC(pmovmskb_Gd_Udq, "pmovmskb Gd,Udq");
    70367059            IEMOP_HLP_DECODED_NL_2(OP_PMOVMSKB, IEMOPFORM_RM_REG, OP_PARM_Gd, OP_PARM_Vdq, DISOPTYPE_MMX | DISOPTYPE_HARMLESS);
    70377060            IEM_MC_BEGIN(2, 0);
     
    70887111FNIEMOP_DEF(iemOp_movntq_Mq_Pq__movntdq_Mdq_Vdq)
    70897112{
    7090     IEMOP_MNEMONIC(!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_OP) ? "movntq mr,r" : "movntdq mr,r");
    70917113    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    70927114    if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT))
     
    71007122
    71017123            case IEM_OP_PRF_SIZE_OP: /* SSE */
     7124                IEMOP_MNEMONIC(movntq_Mq_Pq, "movntq Mq,Pq");
    71027125                IEM_MC_BEGIN(0, 2);
    71037126                IEM_MC_LOCAL(uint128_t,                 uSrc);
     
    71177140
    71187141            case 0: /* MMX */
     7142                IEMOP_MNEMONIC(movntdq_Mdq_Vdq, "movntdq Mdq,Vdq");
    71197143                IEM_MC_BEGIN(0, 2);
    71207144                IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    71637187FNIEMOP_DEF(iemOp_pxor_Pq_Qq__pxor_Vdq_Wdq)
    71647188{
    7165     IEMOP_MNEMONIC("pxor");
     7189    IEMOP_MNEMONIC(pxor, "pxor");
    71667190    return FNIEMOP_CALL_1(iemOpCommonMmxSse2_FullFull_To_Full, &g_iemAImpl_pxor);
    71677191}
     
    74717495FNIEMOP_DEF(iemOp_add_Eb_Gb)
    74727496{
    7473     IEMOP_MNEMONIC("add Eb,Gb");
     7497    IEMOP_MNEMONIC(add_Eb_Gb, "add Eb,Gb");
    74747498    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_add);
    74757499}
     
    74797503FNIEMOP_DEF(iemOp_add_Ev_Gv)
    74807504{
    7481     IEMOP_MNEMONIC("add Ev,Gv");
     7505    IEMOP_MNEMONIC(add_Ev_Gv, "add Ev,Gv");
    74827506    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_add);
    74837507}
     
    74877511FNIEMOP_DEF(iemOp_add_Gb_Eb)
    74887512{
    7489     IEMOP_MNEMONIC("add Gb,Eb");
     7513    IEMOP_MNEMONIC(add_Gb_Eb, "add Gb,Eb");
    74907514    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_r8_rm, &g_iemAImpl_add);
    74917515}
     
    74957519FNIEMOP_DEF(iemOp_add_Gv_Ev)
    74967520{
    7497     IEMOP_MNEMONIC("add Gv,Ev");
     7521    IEMOP_MNEMONIC(add_Gv_Ev, "add Gv,Ev");
    74987522    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rv_rm, &g_iemAImpl_add);
    74997523}
     
    75037527FNIEMOP_DEF(iemOp_add_Al_Ib)
    75047528{
    7505     IEMOP_MNEMONIC("add al,Ib");
     7529    IEMOP_MNEMONIC(add_al_Ib, "add al,Ib");
    75067530    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_AL_Ib, &g_iemAImpl_add);
    75077531}
     
    75117535FNIEMOP_DEF(iemOp_add_eAX_Iz)
    75127536{
    7513     IEMOP_MNEMONIC("add rAX,Iz");
     7537    IEMOP_MNEMONIC(add_rAX_Iz, "add rAX,Iz");
    75147538    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rAX_Iz, &g_iemAImpl_add);
    75157539}
     
    75197543FNIEMOP_DEF(iemOp_push_ES)
    75207544{
    7521     IEMOP_MNEMONIC("push es");
     7545    IEMOP_MNEMONIC(push_es, "push es");
    75227546    return FNIEMOP_CALL_1(iemOpCommonPushSReg, X86_SREG_ES);
    75237547}
     
    75277551FNIEMOP_DEF(iemOp_pop_ES)
    75287552{
    7529     IEMOP_MNEMONIC("pop es");
     7553    IEMOP_MNEMONIC(pop_es, "pop es");
    75307554    IEMOP_HLP_NO_64BIT();
    75317555    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    75377561FNIEMOP_DEF(iemOp_or_Eb_Gb)
    75387562{
    7539     IEMOP_MNEMONIC("or  Eb,Gb");
     7563    IEMOP_MNEMONIC(or_Eb_Gb, "or  Eb,Gb");
    75407564    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    75417565    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_or);
     
    75467570FNIEMOP_DEF(iemOp_or_Ev_Gv)
    75477571{
    7548     IEMOP_MNEMONIC("or  Ev,Gv ");
     7572    IEMOP_MNEMONIC(or_Ev_Gv, "or  Ev,Gv");
    75497573    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    75507574    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_or);
     
    75557579FNIEMOP_DEF(iemOp_or_Gb_Eb)
    75567580{
    7557     IEMOP_MNEMONIC("or  Gb,Eb");
     7581    IEMOP_MNEMONIC(or_Gb_Eb, "or  Gb,Eb");
    75587582    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    75597583    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_r8_rm, &g_iemAImpl_or);
     
    75647588FNIEMOP_DEF(iemOp_or_Gv_Ev)
    75657589{
    7566     IEMOP_MNEMONIC("or  Gv,Ev");
     7590    IEMOP_MNEMONIC(or_Gv_Ev, "or  Gv,Ev");
    75677591    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    75687592    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rv_rm, &g_iemAImpl_or);
     
    75737597FNIEMOP_DEF(iemOp_or_Al_Ib)
    75747598{
    7575     IEMOP_MNEMONIC("or  al,Ib");
     7599    IEMOP_MNEMONIC(or_al_Ib, "or  al,Ib");
    75767600    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    75777601    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_AL_Ib, &g_iemAImpl_or);
     
    75827606FNIEMOP_DEF(iemOp_or_eAX_Iz)
    75837607{
    7584     IEMOP_MNEMONIC("or  rAX,Iz");
     7608    IEMOP_MNEMONIC(or_rAX_Iz, "or  rAX,Iz");
    75857609    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    75867610    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rAX_Iz, &g_iemAImpl_or);
     
    75917615FNIEMOP_DEF(iemOp_push_CS)
    75927616{
    7593     IEMOP_MNEMONIC("push cs");
     7617    IEMOP_MNEMONIC(push_cs, "push cs");
    75947618    return FNIEMOP_CALL_1(iemOpCommonPushSReg, X86_SREG_CS);
    75957619}
     
    76087632FNIEMOP_DEF(iemOp_adc_Eb_Gb)
    76097633{
    7610     IEMOP_MNEMONIC("adc Eb,Gb");
     7634    IEMOP_MNEMONIC(adc_Eb_Gb, "adc Eb,Gb");
    76117635    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_adc);
    76127636}
     
    76167640FNIEMOP_DEF(iemOp_adc_Ev_Gv)
    76177641{
    7618     IEMOP_MNEMONIC("adc Ev,Gv");
     7642    IEMOP_MNEMONIC(adc_Ev_Gv, "adc Ev,Gv");
    76197643    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_adc);
    76207644}
     
    76247648FNIEMOP_DEF(iemOp_adc_Gb_Eb)
    76257649{
    7626     IEMOP_MNEMONIC("adc Gb,Eb");
     7650    IEMOP_MNEMONIC(adc_Gb_Eb, "adc Gb,Eb");
    76277651    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_r8_rm, &g_iemAImpl_adc);
    76287652}
     
    76327656FNIEMOP_DEF(iemOp_adc_Gv_Ev)
    76337657{
    7634     IEMOP_MNEMONIC("adc Gv,Ev");
     7658    IEMOP_MNEMONIC(adc_Gv_Ev, "adc Gv,Ev");
    76357659    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rv_rm, &g_iemAImpl_adc);
    76367660}
     
    76407664FNIEMOP_DEF(iemOp_adc_Al_Ib)
    76417665{
    7642     IEMOP_MNEMONIC("adc al,Ib");
     7666    IEMOP_MNEMONIC(adc_al_Ib, "adc al,Ib");
    76437667    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_AL_Ib, &g_iemAImpl_adc);
    76447668}
     
    76487672FNIEMOP_DEF(iemOp_adc_eAX_Iz)
    76497673{
    7650     IEMOP_MNEMONIC("adc rAX,Iz");
     7674    IEMOP_MNEMONIC(adc_rAX_Iz, "adc rAX,Iz");
    76517675    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rAX_Iz, &g_iemAImpl_adc);
    76527676}
     
    76567680FNIEMOP_DEF(iemOp_push_SS)
    76577681{
    7658     IEMOP_MNEMONIC("push ss");
     7682    IEMOP_MNEMONIC(push_ss, "push ss");
    76597683    return FNIEMOP_CALL_1(iemOpCommonPushSReg, X86_SREG_SS);
    76607684}
     
    76647688FNIEMOP_DEF(iemOp_pop_SS)
    76657689{
    7666     IEMOP_MNEMONIC("pop ss"); /** @todo implies instruction fusing? */
     7690    IEMOP_MNEMONIC(pop_ss, "pop ss"); /** @todo implies instruction fusing? */
    76677691    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    76687692    IEMOP_HLP_NO_64BIT();
     
    76747698FNIEMOP_DEF(iemOp_sbb_Eb_Gb)
    76757699{
    7676     IEMOP_MNEMONIC("sbb Eb,Gb");
     7700    IEMOP_MNEMONIC(sbb_Eb_Gb, "sbb Eb,Gb");
    76777701    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_sbb);
    76787702}
     
    76827706FNIEMOP_DEF(iemOp_sbb_Ev_Gv)
    76837707{
    7684     IEMOP_MNEMONIC("sbb Ev,Gv");
     7708    IEMOP_MNEMONIC(sbb_Ev_Gv, "sbb Ev,Gv");
    76857709    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_sbb);
    76867710}
     
    76907714FNIEMOP_DEF(iemOp_sbb_Gb_Eb)
    76917715{
    7692     IEMOP_MNEMONIC("sbb Gb,Eb");
     7716    IEMOP_MNEMONIC(sbb_Gb_Eb, "sbb Gb,Eb");
    76937717    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_r8_rm, &g_iemAImpl_sbb);
    76947718}
     
    76987722FNIEMOP_DEF(iemOp_sbb_Gv_Ev)
    76997723{
    7700     IEMOP_MNEMONIC("sbb Gv,Ev");
     7724    IEMOP_MNEMONIC(sbb_Gv_Ev, "sbb Gv,Ev");
    77017725    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rv_rm, &g_iemAImpl_sbb);
    77027726}
     
    77067730FNIEMOP_DEF(iemOp_sbb_Al_Ib)
    77077731{
    7708     IEMOP_MNEMONIC("sbb al,Ib");
     7732    IEMOP_MNEMONIC(sbb_al_Ib, "sbb al,Ib");
    77097733    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_AL_Ib, &g_iemAImpl_sbb);
    77107734}
     
    77147738FNIEMOP_DEF(iemOp_sbb_eAX_Iz)
    77157739{
    7716     IEMOP_MNEMONIC("sbb rAX,Iz");
     7740    IEMOP_MNEMONIC(sbb_rAX_Iz, "sbb rAX,Iz");
    77177741    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rAX_Iz, &g_iemAImpl_sbb);
    77187742}
     
    77227746FNIEMOP_DEF(iemOp_push_DS)
    77237747{
    7724     IEMOP_MNEMONIC("push ds");
     7748    IEMOP_MNEMONIC(push_ds, "push ds");
    77257749    return FNIEMOP_CALL_1(iemOpCommonPushSReg, X86_SREG_DS);
    77267750}
     
    77307754FNIEMOP_DEF(iemOp_pop_DS)
    77317755{
    7732     IEMOP_MNEMONIC("pop ds");
     7756    IEMOP_MNEMONIC(pop_ds, "pop ds");
    77337757    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    77347758    IEMOP_HLP_NO_64BIT();
     
    77407764FNIEMOP_DEF(iemOp_and_Eb_Gb)
    77417765{
    7742     IEMOP_MNEMONIC("and Eb,Gb");
     7766    IEMOP_MNEMONIC(and_Eb_Gb, "and Eb,Gb");
    77437767    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    77447768    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_and);
     
    77497773FNIEMOP_DEF(iemOp_and_Ev_Gv)
    77507774{
    7751     IEMOP_MNEMONIC("and Ev,Gv");
     7775    IEMOP_MNEMONIC(and_Ev_Gv, "and Ev,Gv");
    77527776    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    77537777    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_and);
     
    77587782FNIEMOP_DEF(iemOp_and_Gb_Eb)
    77597783{
    7760     IEMOP_MNEMONIC("and Gb,Eb");
     7784    IEMOP_MNEMONIC(and_Gb_Eb, "and Gb,Eb");
    77617785    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    77627786    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_r8_rm, &g_iemAImpl_and);
     
    77677791FNIEMOP_DEF(iemOp_and_Gv_Ev)
    77687792{
    7769     IEMOP_MNEMONIC("and Gv,Ev");
     7793    IEMOP_MNEMONIC(and_Gv_Ev, "and Gv,Ev");
    77707794    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    77717795    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rv_rm, &g_iemAImpl_and);
     
    77767800FNIEMOP_DEF(iemOp_and_Al_Ib)
    77777801{
    7778     IEMOP_MNEMONIC("and al,Ib");
     7802    IEMOP_MNEMONIC(and_al_Ib, "and al,Ib");
    77797803    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    77807804    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_AL_Ib, &g_iemAImpl_and);
     
    77857809FNIEMOP_DEF(iemOp_and_eAX_Iz)
    77867810{
    7787     IEMOP_MNEMONIC("and rAX,Iz");
     7811    IEMOP_MNEMONIC(and_rAX_Iz, "and rAX,Iz");
    77887812    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    77897813    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rAX_Iz, &g_iemAImpl_and);
     
    78067830FNIEMOP_DEF(iemOp_daa)
    78077831{
    7808     IEMOP_MNEMONIC("daa AL");
     7832    IEMOP_MNEMONIC(daa_AL, "daa AL");
    78097833    IEMOP_HLP_NO_64BIT();
    78107834    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    78177841FNIEMOP_DEF(iemOp_sub_Eb_Gb)
    78187842{
    7819     IEMOP_MNEMONIC("sub Eb,Gb");
     7843    IEMOP_MNEMONIC(sub_Eb_Gb, "sub Eb,Gb");
    78207844    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_sub);
    78217845}
     
    78257849FNIEMOP_DEF(iemOp_sub_Ev_Gv)
    78267850{
    7827     IEMOP_MNEMONIC("sub Ev,Gv");
     7851    IEMOP_MNEMONIC(sub_Ev_Gv, "sub Ev,Gv");
    78287852    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_sub);
    78297853}
     
    78337857FNIEMOP_DEF(iemOp_sub_Gb_Eb)
    78347858{
    7835     IEMOP_MNEMONIC("sub Gb,Eb");
     7859    IEMOP_MNEMONIC(sub_Gb_Eb, "sub Gb,Eb");
    78367860    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_r8_rm, &g_iemAImpl_sub);
    78377861}
     
    78417865FNIEMOP_DEF(iemOp_sub_Gv_Ev)
    78427866{
    7843     IEMOP_MNEMONIC("sub Gv,Ev");
     7867    IEMOP_MNEMONIC(sub_Gv_Ev, "sub Gv,Ev");
    78447868    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rv_rm, &g_iemAImpl_sub);
    78457869}
     
    78497873FNIEMOP_DEF(iemOp_sub_Al_Ib)
    78507874{
    7851     IEMOP_MNEMONIC("sub al,Ib");
     7875    IEMOP_MNEMONIC(sub_al_Ib, "sub al,Ib");
    78527876    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_AL_Ib, &g_iemAImpl_sub);
    78537877}
     
    78577881FNIEMOP_DEF(iemOp_sub_eAX_Iz)
    78587882{
    7859     IEMOP_MNEMONIC("sub rAX,Iz");
     7883    IEMOP_MNEMONIC(sub_rAX_Iz, "sub rAX,Iz");
    78607884    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rAX_Iz, &g_iemAImpl_sub);
    78617885}
     
    78777901FNIEMOP_DEF(iemOp_das)
    78787902{
    7879     IEMOP_MNEMONIC("das AL");
     7903    IEMOP_MNEMONIC(das_AL, "das AL");
    78807904    IEMOP_HLP_NO_64BIT();
    78817905    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    78887912FNIEMOP_DEF(iemOp_xor_Eb_Gb)
    78897913{
    7890     IEMOP_MNEMONIC("xor Eb,Gb");
     7914    IEMOP_MNEMONIC(xor_Eb_Gb, "xor Eb,Gb");
    78917915    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    78927916    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_xor);
     
    78977921FNIEMOP_DEF(iemOp_xor_Ev_Gv)
    78987922{
    7899     IEMOP_MNEMONIC("xor Ev,Gv");
     7923    IEMOP_MNEMONIC(xor_Ev_Gv, "xor Ev,Gv");
    79007924    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    79017925    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_xor);
     
    79067930FNIEMOP_DEF(iemOp_xor_Gb_Eb)
    79077931{
    7908     IEMOP_MNEMONIC("xor Gb,Eb");
     7932    IEMOP_MNEMONIC(xor_Gb_Eb, "xor Gb,Eb");
    79097933    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    79107934    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_r8_rm, &g_iemAImpl_xor);
     
    79157939FNIEMOP_DEF(iemOp_xor_Gv_Ev)
    79167940{
    7917     IEMOP_MNEMONIC("xor Gv,Ev");
     7941    IEMOP_MNEMONIC(xor_Gv_Ev, "xor Gv,Ev");
    79187942    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    79197943    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rv_rm, &g_iemAImpl_xor);
     
    79247948FNIEMOP_DEF(iemOp_xor_Al_Ib)
    79257949{
    7926     IEMOP_MNEMONIC("xor al,Ib");
     7950    IEMOP_MNEMONIC(xor_al_Ib, "xor al,Ib");
    79277951    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    79287952    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_AL_Ib, &g_iemAImpl_xor);
     
    79337957FNIEMOP_DEF(iemOp_xor_eAX_Iz)
    79347958{
    7935     IEMOP_MNEMONIC("xor rAX,Iz");
     7959    IEMOP_MNEMONIC(xor_rAX_Iz, "xor rAX,Iz");
    79367960    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    79377961    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rAX_Iz, &g_iemAImpl_xor);
     
    79587982FNIEMOP_DEF(iemOp_cmp_Eb_Gb)
    79597983{
    7960     IEMOP_MNEMONIC("cmp Eb,Gb");
     7984    IEMOP_MNEMONIC(cmp_Eb_Gb, "cmp Eb,Gb");
    79617985    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_cmp);
    79627986}
     
    79667990FNIEMOP_DEF(iemOp_cmp_Ev_Gv)
    79677991{
    7968     IEMOP_MNEMONIC("cmp Ev,Gv");
     7992    IEMOP_MNEMONIC(cmp_Ev_Gv, "cmp Ev,Gv");
    79697993    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_cmp);
    79707994}
     
    79747998FNIEMOP_DEF(iemOp_cmp_Gb_Eb)
    79757999{
    7976     IEMOP_MNEMONIC("cmp Gb,Eb");
     8000    IEMOP_MNEMONIC(cmp_Gb_Eb, "cmp Gb,Eb");
    79778001    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_r8_rm, &g_iemAImpl_cmp);
    79788002}
     
    79828006FNIEMOP_DEF(iemOp_cmp_Gv_Ev)
    79838007{
    7984     IEMOP_MNEMONIC("cmp Gv,Ev");
     8008    IEMOP_MNEMONIC(cmp_Gv_Ev, "cmp Gv,Ev");
    79858009    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rv_rm, &g_iemAImpl_cmp);
    79868010}
     
    79908014FNIEMOP_DEF(iemOp_cmp_Al_Ib)
    79918015{
    7992     IEMOP_MNEMONIC("cmp al,Ib");
     8016    IEMOP_MNEMONIC(cmp_al_Ib, "cmp al,Ib");
    79938017    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_AL_Ib, &g_iemAImpl_cmp);
    79948018}
     
    79988022FNIEMOP_DEF(iemOp_cmp_eAX_Iz)
    79998023{
    8000     IEMOP_MNEMONIC("cmp rAX,Iz");
     8024    IEMOP_MNEMONIC(cmp_rAX_Iz, "cmp rAX,Iz");
    80018025    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rAX_Iz, &g_iemAImpl_cmp);
    80028026}
     
    80798103    }
    80808104
    8081     IEMOP_MNEMONIC("inc eAX");
     8105    IEMOP_MNEMONIC(inc_eAX, "inc eAX");
    80828106    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_inc, X86_GREG_xAX);
    80838107}
     
    81008124    }
    81018125
    8102     IEMOP_MNEMONIC("inc eCX");
     8126    IEMOP_MNEMONIC(inc_eCX, "inc eCX");
    81038127    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_inc, X86_GREG_xCX);
    81048128}
     
    81218145    }
    81228146
    8123     IEMOP_MNEMONIC("inc eDX");
     8147    IEMOP_MNEMONIC(inc_eDX, "inc eDX");
    81248148    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_inc, X86_GREG_xDX);
    81258149}
     
    81448168    }
    81458169
    8146     IEMOP_MNEMONIC("inc eBX");
     8170    IEMOP_MNEMONIC(inc_eBX, "inc eBX");
    81478171    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_inc, X86_GREG_xBX);
    81488172}
     
    81658189    }
    81668190
    8167     IEMOP_MNEMONIC("inc eSP");
     8191    IEMOP_MNEMONIC(inc_eSP, "inc eSP");
    81688192    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_inc, X86_GREG_xSP);
    81698193}
     
    81878211    }
    81888212
    8189     IEMOP_MNEMONIC("inc eBP");
     8213    IEMOP_MNEMONIC(inc_eBP, "inc eBP");
    81908214    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_inc, X86_GREG_xBP);
    81918215}
     
    82098233    }
    82108234
    8211     IEMOP_MNEMONIC("inc eSI");
     8235    IEMOP_MNEMONIC(inc_eSI, "inc eSI");
    82128236    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_inc, X86_GREG_xSI);
    82138237}
     
    82328256    }
    82338257
    8234     IEMOP_MNEMONIC("inc eDI");
     8258    IEMOP_MNEMONIC(inc_eDI, "inc eDI");
    82358259    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_inc, X86_GREG_xDI);
    82368260}
     
    82538277    }
    82548278
    8255     IEMOP_MNEMONIC("dec eAX");
     8279    IEMOP_MNEMONIC(dec_eAX, "dec eAX");
    82568280    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_dec, X86_GREG_xAX);
    82578281}
     
    82758299    }
    82768300
    8277     IEMOP_MNEMONIC("dec eCX");
     8301    IEMOP_MNEMONIC(dec_eCX, "dec eCX");
    82788302    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_dec, X86_GREG_xCX);
    82798303}
     
    82978321    }
    82988322
    8299     IEMOP_MNEMONIC("dec eDX");
     8323    IEMOP_MNEMONIC(dec_eDX, "dec eDX");
    83008324    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_dec, X86_GREG_xDX);
    83018325}
     
    83208344    }
    83218345
    8322     IEMOP_MNEMONIC("dec eBX");
     8346    IEMOP_MNEMONIC(dec_eBX, "dec eBX");
    83238347    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_dec, X86_GREG_xBX);
    83248348}
     
    83428366    }
    83438367
    8344     IEMOP_MNEMONIC("dec eSP");
     8368    IEMOP_MNEMONIC(dec_eSP, "dec eSP");
    83458369    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_dec, X86_GREG_xSP);
    83468370}
     
    83658389    }
    83668390
    8367     IEMOP_MNEMONIC("dec eBP");
     8391    IEMOP_MNEMONIC(dec_eBP, "dec eBP");
    83688392    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_dec, X86_GREG_xBP);
    83698393}
     
    83888412    }
    83898413
    8390     IEMOP_MNEMONIC("dec eSI");
     8414    IEMOP_MNEMONIC(dec_eSI, "dec eSI");
    83918415    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_dec, X86_GREG_xSI);
    83928416}
     
    84128436    }
    84138437
    8414     IEMOP_MNEMONIC("dec eDI");
     8438    IEMOP_MNEMONIC(dec_eDI, "dec eDI");
    84158439    return FNIEMOP_CALL_2(iemOpCommonUnaryGReg, &g_iemAImpl_dec, X86_GREG_xDI);
    84168440}
     
    84678491FNIEMOP_DEF(iemOp_push_eAX)
    84688492{
    8469     IEMOP_MNEMONIC("push rAX");
     8493    IEMOP_MNEMONIC(push_rAX, "push rAX");
    84708494    return FNIEMOP_CALL_1(iemOpCommonPushGReg, X86_GREG_xAX);
    84718495}
     
    84758499FNIEMOP_DEF(iemOp_push_eCX)
    84768500{
    8477     IEMOP_MNEMONIC("push rCX");
     8501    IEMOP_MNEMONIC(push_rCX, "push rCX");
    84788502    return FNIEMOP_CALL_1(iemOpCommonPushGReg, X86_GREG_xCX);
    84798503}
     
    84838507FNIEMOP_DEF(iemOp_push_eDX)
    84848508{
    8485     IEMOP_MNEMONIC("push rDX");
     8509    IEMOP_MNEMONIC(push_rDX, "push rDX");
    84868510    return FNIEMOP_CALL_1(iemOpCommonPushGReg, X86_GREG_xDX);
    84878511}
     
    84918515FNIEMOP_DEF(iemOp_push_eBX)
    84928516{
    8493     IEMOP_MNEMONIC("push rBX");
     8517    IEMOP_MNEMONIC(push_rBX, "push rBX");
    84948518    return FNIEMOP_CALL_1(iemOpCommonPushGReg, X86_GREG_xBX);
    84958519}
     
    84998523FNIEMOP_DEF(iemOp_push_eSP)
    85008524{
    8501     IEMOP_MNEMONIC("push rSP");
     8525    IEMOP_MNEMONIC(push_rSP, "push rSP");
    85028526    if (IEM_GET_TARGET_CPU(pVCpu) == IEMTARGETCPU_8086)
    85038527    {
     
    85178541FNIEMOP_DEF(iemOp_push_eBP)
    85188542{
    8519     IEMOP_MNEMONIC("push rBP");
     8543    IEMOP_MNEMONIC(push_rBP, "push rBP");
    85208544    return FNIEMOP_CALL_1(iemOpCommonPushGReg, X86_GREG_xBP);
    85218545}
     
    85258549FNIEMOP_DEF(iemOp_push_eSI)
    85268550{
    8527     IEMOP_MNEMONIC("push rSI");
     8551    IEMOP_MNEMONIC(push_rSI, "push rSI");
    85288552    return FNIEMOP_CALL_1(iemOpCommonPushGReg, X86_GREG_xSI);
    85298553}
     
    85338557FNIEMOP_DEF(iemOp_push_eDI)
    85348558{
    8535     IEMOP_MNEMONIC("push rDI");
     8559    IEMOP_MNEMONIC(push_rDI, "push rDI");
    85368560    return FNIEMOP_CALL_1(iemOpCommonPushGReg, X86_GREG_xDI);
    85378561}
     
    85898613FNIEMOP_DEF(iemOp_pop_eAX)
    85908614{
    8591     IEMOP_MNEMONIC("pop rAX");
     8615    IEMOP_MNEMONIC(pop_rAX, "pop rAX");
    85928616    return FNIEMOP_CALL_1(iemOpCommonPopGReg, X86_GREG_xAX);
    85938617}
     
    85978621FNIEMOP_DEF(iemOp_pop_eCX)
    85988622{
    8599     IEMOP_MNEMONIC("pop rCX");
     8623    IEMOP_MNEMONIC(pop_rCX, "pop rCX");
    86008624    return FNIEMOP_CALL_1(iemOpCommonPopGReg, X86_GREG_xCX);
    86018625}
     
    86058629FNIEMOP_DEF(iemOp_pop_eDX)
    86068630{
    8607     IEMOP_MNEMONIC("pop rDX");
     8631    IEMOP_MNEMONIC(pop_rDX, "pop rDX");
    86088632    return FNIEMOP_CALL_1(iemOpCommonPopGReg, X86_GREG_xDX);
    86098633}
     
    86138637FNIEMOP_DEF(iemOp_pop_eBX)
    86148638{
    8615     IEMOP_MNEMONIC("pop rBX");
     8639    IEMOP_MNEMONIC(pop_rBX, "pop rBX");
    86168640    return FNIEMOP_CALL_1(iemOpCommonPopGReg, X86_GREG_xBX);
    86178641}
     
    86218645FNIEMOP_DEF(iemOp_pop_eSP)
    86228646{
    8623     IEMOP_MNEMONIC("pop rSP");
     8647    IEMOP_MNEMONIC(pop_rSP, "pop rSP");
    86248648    if (pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT)
    86258649    {
     
    86708694FNIEMOP_DEF(iemOp_pop_eBP)
    86718695{
    8672     IEMOP_MNEMONIC("pop rBP");
     8696    IEMOP_MNEMONIC(pop_rBP, "pop rBP");
    86738697    return FNIEMOP_CALL_1(iemOpCommonPopGReg, X86_GREG_xBP);
    86748698}
     
    86788702FNIEMOP_DEF(iemOp_pop_eSI)
    86798703{
    8680     IEMOP_MNEMONIC("pop rSI");
     8704    IEMOP_MNEMONIC(pop_rSI, "pop rSI");
    86818705    return FNIEMOP_CALL_1(iemOpCommonPopGReg, X86_GREG_xSI);
    86828706}
     
    86868710FNIEMOP_DEF(iemOp_pop_eDI)
    86878711{
    8688     IEMOP_MNEMONIC("pop rDI");
     8712    IEMOP_MNEMONIC(pop_rDI, "pop rDI");
    86898713    return FNIEMOP_CALL_1(iemOpCommonPopGReg, X86_GREG_xDI);
    86908714}
     
    86948718FNIEMOP_DEF(iemOp_pusha)
    86958719{
    8696     IEMOP_MNEMONIC("pusha");
     8720    IEMOP_MNEMONIC(pusha, "pusha");
    86978721    IEMOP_HLP_MIN_186();
    86988722    IEMOP_HLP_NO_64BIT();
     
    87078731FNIEMOP_DEF(iemOp_popa)
    87088732{
    8709     IEMOP_MNEMONIC("popa");
     8733    IEMOP_MNEMONIC(popa, "popa");
    87108734    IEMOP_HLP_MIN_186();
    87118735    IEMOP_HLP_NO_64BIT();
     
    87258749FNIEMOP_DEF(iemOp_arpl_Ew_Gw)
    87268750{
    8727     IEMOP_MNEMONIC("arpl Ew,Gw");
     8751    IEMOP_MNEMONIC(arpl_Ew_Gw, "arpl Ew,Gw");
    87288752    IEMOP_HLP_MIN_286();
    87298753    IEMOP_HLP_NO_REAL_OR_V86_MODE();
     
    87818805    Assert(pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT); /* Caller branched already . */
    87828806
    8783     IEMOP_MNEMONIC("movsxd Gv,Ev");
     8807    IEMOP_MNEMONIC(movsxd_Gv_Ev, "movsxd Gv,Ev");
    87848808    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    87858809
     
    88818905FNIEMOP_DEF(iemOp_push_Iz)
    88828906{
    8883     IEMOP_MNEMONIC("push Iz");
     8907    IEMOP_MNEMONIC(push_Iz, "push Iz");
    88848908    IEMOP_HLP_MIN_186();
    88858909    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    89278951FNIEMOP_DEF(iemOp_imul_Gv_Ev_Iz)
    89288952{
    8929     IEMOP_MNEMONIC("imul Gv,Ev,Iz"); /* Gv = Ev * Iz; */
     8953    IEMOP_MNEMONIC(imul_Gv_Ev_Iz, "imul Gv,Ev,Iz"); /* Gv = Ev * Iz; */
    89308954    IEMOP_HLP_MIN_186();
    89318955    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    90889112FNIEMOP_DEF(iemOp_push_Ib)
    90899113{
    9090     IEMOP_MNEMONIC("push Ib");
     9114    IEMOP_MNEMONIC(push_Ib, "push Ib");
    90919115    IEMOP_HLP_MIN_186();
    90929116    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
     
    91169140FNIEMOP_DEF(iemOp_imul_Gv_Ev_Ib)
    91179141{
    9118     IEMOP_MNEMONIC("imul Gv,Ev,Ib"); /* Gv = Ev * Iz; */
     9142    IEMOP_MNEMONIC(imul_Gv_Ev_Ib, "imul Gv,Ev,Ib"); /* Gv = Ev * Iz; */
    91199143    IEMOP_HLP_MIN_186();
    91209144    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    92759299    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPNZ | IEM_OP_PRF_REPZ))
    92769300    {
    9277         IEMOP_MNEMONIC("rep ins Yb,DX");
     9301        IEMOP_MNEMONIC(rep_insb_Yb_DX, "rep ins Yb,DX");
    92789302        switch (pVCpu->iem.s.enmEffAddrMode)
    92799303        {
     
    92869310    else
    92879311    {
    9288         IEMOP_MNEMONIC("ins Yb,DX");
     9312        IEMOP_MNEMONIC(ins_Yb_DX, "ins Yb,DX");
    92899313        switch (pVCpu->iem.s.enmEffAddrMode)
    92909314        {
     
    93059329    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPZ | IEM_OP_PRF_REPNZ))
    93069330    {
    9307         IEMOP_MNEMONIC("rep ins Yv,DX");
     9331        IEMOP_MNEMONIC(rep_ins_Yv_DX, "rep ins Yv,DX");
    93089332        switch (pVCpu->iem.s.enmEffOpSize)
    93099333        {
     
    93329356    else
    93339357    {
    9334         IEMOP_MNEMONIC("ins Yv,DX");
     9358        IEMOP_MNEMONIC(ins_Yv_DX, "ins Yv,DX");
    93359359        switch (pVCpu->iem.s.enmEffOpSize)
    93369360        {
     
    93679391    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPNZ | IEM_OP_PRF_REPZ))
    93689392    {
    9369         IEMOP_MNEMONIC("rep outs DX,Yb");
     9393        IEMOP_MNEMONIC(rep_outsb_DX_Yb, "rep outs DX,Yb");
    93709394        switch (pVCpu->iem.s.enmEffAddrMode)
    93719395        {
     
    93789402    else
    93799403    {
    9380         IEMOP_MNEMONIC("outs DX,Yb");
     9404        IEMOP_MNEMONIC(outs_DX_Yb, "outs DX,Yb");
    93819405        switch (pVCpu->iem.s.enmEffAddrMode)
    93829406        {
     
    93979421    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPZ | IEM_OP_PRF_REPNZ))
    93989422    {
    9399         IEMOP_MNEMONIC("rep outs DX,Yv");
     9423        IEMOP_MNEMONIC(rep_outs_DX_Yv, "rep outs DX,Yv");
    94009424        switch (pVCpu->iem.s.enmEffOpSize)
    94019425        {
     
    94249448    else
    94259449    {
    9426         IEMOP_MNEMONIC("outs DX,Yv");
     9450        IEMOP_MNEMONIC(outs_DX_Yv, "outs DX,Yv");
    94279451        switch (pVCpu->iem.s.enmEffOpSize)
    94289452        {
     
    94559479FNIEMOP_DEF(iemOp_jo_Jb)
    94569480{
    9457     IEMOP_MNEMONIC("jo  Jb");
     9481    IEMOP_MNEMONIC(jo_Jb, "jo  Jb");
    94589482    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    94599483    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    94749498FNIEMOP_DEF(iemOp_jno_Jb)
    94759499{
    9476     IEMOP_MNEMONIC("jno Jb");
     9500    IEMOP_MNEMONIC(jno_Jb, "jno Jb");
    94779501    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    94789502    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    94929516FNIEMOP_DEF(iemOp_jc_Jb)
    94939517{
    9494     IEMOP_MNEMONIC("jc/jnae Jb");
     9518    IEMOP_MNEMONIC(jc_Jb, "jc/jnae Jb");
    94959519    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    94969520    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    95119535FNIEMOP_DEF(iemOp_jnc_Jb)
    95129536{
    9513     IEMOP_MNEMONIC("jnc/jnb Jb");
     9537    IEMOP_MNEMONIC(jnc_Jb, "jnc/jnb Jb");
    95149538    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    95159539    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    95309554FNIEMOP_DEF(iemOp_je_Jb)
    95319555{
    9532     IEMOP_MNEMONIC("je/jz   Jb");
     9556    IEMOP_MNEMONIC(je_Jb, "je/jz   Jb");
    95339557    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    95349558    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    95499573FNIEMOP_DEF(iemOp_jne_Jb)
    95509574{
    9551     IEMOP_MNEMONIC("jne/jnz Jb");
     9575    IEMOP_MNEMONIC(jne_Jb, "jne/jnz Jb");
    95529576    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    95539577    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    95689592FNIEMOP_DEF(iemOp_jbe_Jb)
    95699593{
    9570     IEMOP_MNEMONIC("jbe/jna Jb");
     9594    IEMOP_MNEMONIC(jbe_Jb, "jbe/jna Jb");
    95719595    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    95729596    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    95879611FNIEMOP_DEF(iemOp_jnbe_Jb)
    95889612{
    9589     IEMOP_MNEMONIC("jnbe/ja Jb");
     9613    IEMOP_MNEMONIC(ja_Jb, "ja/jnbe Jb");
    95909614    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    95919615    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    96069630FNIEMOP_DEF(iemOp_js_Jb)
    96079631{
    9608     IEMOP_MNEMONIC("js  Jb");
     9632    IEMOP_MNEMONIC(js_Jb, "js  Jb");
    96099633    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    96109634    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    96259649FNIEMOP_DEF(iemOp_jns_Jb)
    96269650{
    9627     IEMOP_MNEMONIC("jns Jb");
     9651    IEMOP_MNEMONIC(jns_Jb, "jns Jb");
    96289652    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    96299653    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    96449668FNIEMOP_DEF(iemOp_jp_Jb)
    96459669{
    9646     IEMOP_MNEMONIC("jp  Jb");
     9670    IEMOP_MNEMONIC(jp_Jb, "jp  Jb");
    96479671    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    96489672    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    96639687FNIEMOP_DEF(iemOp_jnp_Jb)
    96649688{
    9665     IEMOP_MNEMONIC("jnp Jb");
     9689    IEMOP_MNEMONIC(jnp_Jb, "jnp Jb");
    96669690    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    96679691    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    96829706FNIEMOP_DEF(iemOp_jl_Jb)
    96839707{
    9684     IEMOP_MNEMONIC("jl/jnge Jb");
     9708    IEMOP_MNEMONIC(jl_Jb, "jl/jnge Jb");
    96859709    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    96869710    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    97019725FNIEMOP_DEF(iemOp_jnl_Jb)
    97029726{
    9703     IEMOP_MNEMONIC("jnl/jge Jb");
     9727    IEMOP_MNEMONIC(jge_Jb, "jnl/jge Jb");
    97049728    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    97059729    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    97209744FNIEMOP_DEF(iemOp_jle_Jb)
    97219745{
    9722     IEMOP_MNEMONIC("jle/jng Jb");
     9746    IEMOP_MNEMONIC(jle_Jb, "jle/jng Jb");
    97239747    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    97249748    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    97399763FNIEMOP_DEF(iemOp_jnle_Jb)
    97409764{
    9741     IEMOP_MNEMONIC("jnle/jg Jb");
     9765    IEMOP_MNEMONIC(jg_Jb, "jnle/jg Jb");
    97429766    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    97439767    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    97589782FNIEMOP_DEF(iemOp_Grp1_Eb_Ib_80)
    97599783{
    9760     uint8_t bRm;   IEM_OPCODE_GET_NEXT_U8(&bRm);
    9761     IEMOP_MNEMONIC2("add\0or\0\0adc\0sbb\0and\0sub\0xor\0cmp" + ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)*4, "Eb,Ib");
     9784    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     9785    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     9786    {
     9787        case 0: IEMOP_MNEMONIC(add_Eb_Ib, "add Eb,Ib"); break;
     9788        case 1: IEMOP_MNEMONIC(or_Eb_Ib,  "or  Eb,Ib"); break;
     9789        case 2: IEMOP_MNEMONIC(adc_Eb_Ib, "adc Eb,Ib"); break;
     9790        case 3: IEMOP_MNEMONIC(sbb_Eb_Ib, "sbb Eb,Ib"); break;
     9791        case 4: IEMOP_MNEMONIC(and_Eb_Ib, "and Eb,Ib"); break;
     9792        case 5: IEMOP_MNEMONIC(sub_Eb_Ib, "sub Eb,Ib"); break;
     9793        case 6: IEMOP_MNEMONIC(xor_Eb_Ib, "xor Eb,Ib"); break;
     9794        case 7: IEMOP_MNEMONIC(cmp_Eb_Ib, "cmp Eb,Ib"); break;
     9795    }
    97629796    PCIEMOPBINSIZES pImpl = g_apIemImplGrp1[(bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK];
    97639797
     
    98209854{
    98219855    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    9822     IEMOP_MNEMONIC2("add\0or\0\0adc\0sbb\0and\0sub\0xor\0cmp" + ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)*4, "Ev,Iz");
     9856    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     9857    {
     9858        case 0: IEMOP_MNEMONIC(add_Ev_Iz, "add Ev,Iz"); break;
     9859        case 1: IEMOP_MNEMONIC(or_Ev_Iz,  "or  Ev,Iz"); break;
     9860        case 2: IEMOP_MNEMONIC(adc_Ev_Iz, "adc Ev,Iz"); break;
     9861        case 3: IEMOP_MNEMONIC(sbb_Ev_Iz, "sbb Ev,Iz"); break;
     9862        case 4: IEMOP_MNEMONIC(and_Ev_Iz, "and Ev,Iz"); break;
     9863        case 5: IEMOP_MNEMONIC(sub_Ev_Iz, "sub Ev,Iz"); break;
     9864        case 6: IEMOP_MNEMONIC(xor_Ev_Iz, "xor Ev,Iz"); break;
     9865        case 7: IEMOP_MNEMONIC(cmp_Ev_Iz, "cmp Ev,Iz"); break;
     9866    }
    98239867    PCIEMOPBINSIZES pImpl = g_apIemImplGrp1[(bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK];
    98249868
     
    1000710051{
    1000810052    uint8_t bRm;   IEM_OPCODE_GET_NEXT_U8(&bRm);
    10009     IEMOP_MNEMONIC2("add\0or\0\0adc\0sbb\0and\0sub\0xor\0cmp" + ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)*4, "Ev,Ib");
     10053    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     10054    {
     10055        case 0: IEMOP_MNEMONIC(add_Ev_Ib, "add Ev,Ib"); break;
     10056        case 1: IEMOP_MNEMONIC(or_Ev_Ib,  "or  Ev,Ib"); break;
     10057        case 2: IEMOP_MNEMONIC(adc_Ev_Ib, "adc Ev,Ib"); break;
     10058        case 3: IEMOP_MNEMONIC(sbb_Ev_Ib, "sbb Ev,Ib"); break;
     10059        case 4: IEMOP_MNEMONIC(and_Ev_Ib, "and Ev,Ib"); break;
     10060        case 5: IEMOP_MNEMONIC(sub_Ev_Ib, "sub Ev,Ib"); break;
     10061        case 6: IEMOP_MNEMONIC(xor_Ev_Ib, "xor Ev,Ib"); break;
     10062        case 7: IEMOP_MNEMONIC(cmp_Ev_Ib, "cmp Ev,Ib"); break;
     10063    }
    1001010064    /* Note! Seems the OR, AND, and XOR instructions are present on CPUs prior
    1001110065             to the 386 even if absent in the intel reference manuals and some
     
    1018010234FNIEMOP_DEF(iemOp_test_Eb_Gb)
    1018110235{
    10182     IEMOP_MNEMONIC("test Eb,Gb");
     10236    IEMOP_MNEMONIC(test_Eb_Gb, "test Eb,Gb");
    1018310237    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    1018410238    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_r8, &g_iemAImpl_test);
     
    1018910243FNIEMOP_DEF(iemOp_test_Ev_Gv)
    1019010244{
    10191     IEMOP_MNEMONIC("test Ev,Gv");
     10245    IEMOP_MNEMONIC(test_Ev_Gv, "test Ev,Gv");
    1019210246    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    1019310247    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rm_rv, &g_iemAImpl_test);
     
    1019910253{
    1020010254    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    10201     IEMOP_MNEMONIC("xchg Eb,Gb");
     10255    IEMOP_MNEMONIC(xchg_Eb_Gb, "xchg Eb,Gb");
    1020210256
    1020310257    /*
     
    1024710301FNIEMOP_DEF(iemOp_xchg_Ev_Gv)
    1024810302{
    10249     IEMOP_MNEMONIC("xchg Ev,Gv");
     10303    IEMOP_MNEMONIC(xchg_Ev_Gv, "xchg Ev,Gv");
    1025010304    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    1025110305
     
    1037010424FNIEMOP_DEF(iemOp_mov_Eb_Gb)
    1037110425{
    10372     IEMOP_MNEMONIC("mov Eb,Gb");
     10426    IEMOP_MNEMONIC(mov_Eb_Gb, "mov Eb,Gb");
    1037310427
    1037410428    uint8_t bRm;
     
    1041110465FNIEMOP_DEF(iemOp_mov_Ev_Gv)
    1041210466{
    10413     IEMOP_MNEMONIC("mov Ev,Gv");
     10467    IEMOP_MNEMONIC(mov_Ev_Gv, "mov Ev,Gv");
    1041410468
    1041510469    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    1050210556FNIEMOP_DEF(iemOp_mov_Gb_Eb)
    1050310557{
    10504     IEMOP_MNEMONIC("mov Gb,Eb");
     10558    IEMOP_MNEMONIC(mov_Gb_Eb, "mov Gb,Eb");
    1050510559
    1050610560    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    1054110595FNIEMOP_DEF(iemOp_mov_Gv_Ev)
    1054210596{
    10543     IEMOP_MNEMONIC("mov Gv,Ev");
     10597    IEMOP_MNEMONIC(mov_Gv_Ev, "mov Gv,Ev");
    1054410598
    1054510599    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    1064310697FNIEMOP_DEF(iemOp_mov_Ev_Sw)
    1064410698{
    10645     IEMOP_MNEMONIC("mov Ev,Sw");
     10699    IEMOP_MNEMONIC(mov_Ev_Sw, "mov Ev,Sw");
    1064610700
    1064710701    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    1072010774FNIEMOP_DEF(iemOp_lea_Gv_M)
    1072110775{
    10722     IEMOP_MNEMONIC("lea Gv,M");
     10776    IEMOP_MNEMONIC(lea_Gv_M, "lea Gv,M");
    1072310777    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    1072410778    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    1076810822FNIEMOP_DEF(iemOp_mov_Sw_Ev)
    1076910823{
    10770     IEMOP_MNEMONIC("mov Sw,Ev");
     10824    IEMOP_MNEMONIC(mov_Sw_Ev, "mov Sw,Ev");
    1077110825
    1077210826    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    1083410888    /** @todo What's the deal with the 'reg' field and pop Ev?  Ignorning it for
    1083510889     *        now until tests show it's checked.. */
    10836     IEMOP_MNEMONIC("pop Ev");
     10890    IEMOP_MNEMONIC(pop_Ev, "pop Ev");
    1083710891
    1083810892    /* Register access is relatively easy and can share code. */
     
    1092610980    /* AMD has defined /1 thru /7 as XOP prefix (similar to three byte VEX). */
    1092710981    /** @todo XOP decoding. */
    10928     IEMOP_MNEMONIC("3-byte-xop");
     10982    IEMOP_MNEMONIC(xop_amd, "3-byte-xop");
    1092910983    return IEMOP_RAISE_INVALID_OPCODE();
    1093010984}
     
    1098811042    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_REX_B)
    1098911043    {
    10990         IEMOP_MNEMONIC("xchg r8,rAX");
     11044        IEMOP_MNEMONIC(xchg_r8_rAX, "xchg r8,rAX");
    1099111045        return FNIEMOP_CALL_1(iemOpCommonXchgGRegRax, X86_GREG_xAX);
    1099211046    }
    1099311047
    1099411048    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK)
    10995         IEMOP_MNEMONIC("pause");
     11049        IEMOP_MNEMONIC(pause, "pause");
    1099611050    else
    10997         IEMOP_MNEMONIC("nop");
     11051        IEMOP_MNEMONIC(nop, "nop");
    1099811052    IEM_MC_BEGIN(0, 0);
    1099911053    IEM_MC_ADVANCE_RIP();
     
    1100611060FNIEMOP_DEF(iemOp_xchg_eCX_eAX)
    1100711061{
    11008     IEMOP_MNEMONIC("xchg rCX,rAX");
     11062    IEMOP_MNEMONIC(xchg_rCX_rAX, "xchg rCX,rAX");
    1100911063    return FNIEMOP_CALL_1(iemOpCommonXchgGRegRax, X86_GREG_xCX);
    1101011064}
     
    1101411068FNIEMOP_DEF(iemOp_xchg_eDX_eAX)
    1101511069{
    11016     IEMOP_MNEMONIC("xchg rDX,rAX");
     11070    IEMOP_MNEMONIC(xchg_rDX_rAX, "xchg rDX,rAX");
    1101711071    return FNIEMOP_CALL_1(iemOpCommonXchgGRegRax, X86_GREG_xDX);
    1101811072}
     
    1102211076FNIEMOP_DEF(iemOp_xchg_eBX_eAX)
    1102311077{
    11024     IEMOP_MNEMONIC("xchg rBX,rAX");
     11078    IEMOP_MNEMONIC(xchg_rBX_rAX, "xchg rBX,rAX");
    1102511079    return FNIEMOP_CALL_1(iemOpCommonXchgGRegRax, X86_GREG_xBX);
    1102611080}
     
    1103011084FNIEMOP_DEF(iemOp_xchg_eSP_eAX)
    1103111085{
    11032     IEMOP_MNEMONIC("xchg rSX,rAX");
     11086    IEMOP_MNEMONIC(xchg_rSX_rAX, "xchg rSX,rAX");
    1103311087    return FNIEMOP_CALL_1(iemOpCommonXchgGRegRax, X86_GREG_xSP);
    1103411088}
     
    1103811092FNIEMOP_DEF(iemOp_xchg_eBP_eAX)
    1103911093{
    11040     IEMOP_MNEMONIC("xchg rBP,rAX");
     11094    IEMOP_MNEMONIC(xchg_rBP_rAX, "xchg rBP,rAX");
    1104111095    return FNIEMOP_CALL_1(iemOpCommonXchgGRegRax, X86_GREG_xBP);
    1104211096}
     
    1104611100FNIEMOP_DEF(iemOp_xchg_eSI_eAX)
    1104711101{
    11048     IEMOP_MNEMONIC("xchg rSI,rAX");
     11102    IEMOP_MNEMONIC(xchg_rSI_rAX, "xchg rSI,rAX");
    1104911103    return FNIEMOP_CALL_1(iemOpCommonXchgGRegRax, X86_GREG_xSI);
    1105011104}
     
    1105411108FNIEMOP_DEF(iemOp_xchg_eDI_eAX)
    1105511109{
    11056     IEMOP_MNEMONIC("xchg rDI,rAX");
     11110    IEMOP_MNEMONIC(xchg_rDI_rAX, "xchg rDI,rAX");
    1105711111    return FNIEMOP_CALL_1(iemOpCommonXchgGRegRax, X86_GREG_xDI);
    1105811112}
     
    1106611120    {
    1106711121        case IEMMODE_16BIT:
    11068             IEMOP_MNEMONIC("cbw");
     11122            IEMOP_MNEMONIC(cbw, "cbw");
    1106911123            IEM_MC_BEGIN(0, 1);
    1107011124            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 7) {
     
    1107811132
    1107911133        case IEMMODE_32BIT:
    11080             IEMOP_MNEMONIC("cwde");
     11134            IEMOP_MNEMONIC(cwde, "cwde");
    1108111135            IEM_MC_BEGIN(0, 1);
    1108211136            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 15) {
     
    1109011144
    1109111145        case IEMMODE_64BIT:
    11092             IEMOP_MNEMONIC("cdqe");
     11146            IEMOP_MNEMONIC(cdqe, "cdqe");
    1109311147            IEM_MC_BEGIN(0, 1);
    1109411148            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 31) {
     
    1111311167    {
    1111411168        case IEMMODE_16BIT:
    11115             IEMOP_MNEMONIC("cwd");
     11169            IEMOP_MNEMONIC(cwd, "cwd");
    1111611170            IEM_MC_BEGIN(0, 1);
    1111711171            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 15) {
     
    1112511179
    1112611180        case IEMMODE_32BIT:
    11127             IEMOP_MNEMONIC("cdq");
     11181            IEMOP_MNEMONIC(cdq, "cdq");
    1112811182            IEM_MC_BEGIN(0, 1);
    1112911183            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 31) {
     
    1113711191
    1113811192        case IEMMODE_64BIT:
    11139             IEMOP_MNEMONIC("cqo");
     11193            IEMOP_MNEMONIC(cqo, "cqo");
    1114011194            IEM_MC_BEGIN(0, 1);
    1114111195            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 63) {
     
    1115611210FNIEMOP_DEF(iemOp_call_Ap)
    1115711211{
    11158     IEMOP_MNEMONIC("call Ap");
     11212    IEMOP_MNEMONIC(call_Ap, "call Ap");
    1115911213    IEMOP_HLP_NO_64BIT();
    1116011214
     
    1117411228FNIEMOP_DEF(iemOp_wait)
    1117511229{
    11176     IEMOP_MNEMONIC("wait");
     11230    IEMOP_MNEMONIC(wait, "wait");
    1117711231    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1117811232
     
    1120711261FNIEMOP_DEF(iemOp_sahf)
    1120811262{
    11209     IEMOP_MNEMONIC("sahf");
     11263    IEMOP_MNEMONIC(sahf, "sahf");
    1121011264    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1121111265    if (   pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT
     
    1123111285FNIEMOP_DEF(iemOp_lahf)
    1123211286{
    11233     IEMOP_MNEMONIC("lahf");
     11287    IEMOP_MNEMONIC(lahf, "lahf");
    1123411288    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1123511289    if (   pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT
     
    1129911353     * Get the offset and fend of lock prefixes.
    1130011354     */
    11301     IEMOP_MNEMONIC("mov rAX,Ov");
     11355    IEMOP_MNEMONIC(mov_rAX_Ov, "mov rAX,Ov");
    1130211356    RTGCPTR GCPtrMemOff;
    1130311357    IEMOP_FETCH_MOFFS_XX(GCPtrMemOff);
     
    1143611490    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPNZ | IEM_OP_PRF_REPZ))
    1143711491    {
    11438         IEMOP_MNEMONIC("rep movsb Xb,Yb");
     11492        IEMOP_MNEMONIC(rep_movsb_Xb_Yb, "rep movsb Xb,Yb");
    1143911493        switch (pVCpu->iem.s.enmEffAddrMode)
    1144011494        {
     
    1144511499        }
    1144611500    }
    11447     IEMOP_MNEMONIC("movsb Xb,Yb");
     11501    IEMOP_MNEMONIC(movsb_Xb_Yb, "movsb Xb,Yb");
    1144811502
    1144911503    /*
     
    1147111525    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPNZ | IEM_OP_PRF_REPZ))
    1147211526    {
    11473         IEMOP_MNEMONIC("rep movs Xv,Yv");
     11527        IEMOP_MNEMONIC(rep_movs_Xv_Yv, "rep movs Xv,Yv");
    1147411528        switch (pVCpu->iem.s.enmEffOpSize)
    1147511529        {
     
    1150211556        }
    1150311557    }
    11504     IEMOP_MNEMONIC("movs Xv,Yv");
     11558    IEMOP_MNEMONIC(movs_Xv_Yv, "movs Xv,Yv");
    1150511559
    1150611560    /*
     
    1158311637    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_REPZ)
    1158411638    {
    11585         IEMOP_MNEMONIC("repe cmps Xb,Yb");
     11639        IEMOP_MNEMONIC(repz_cmps_Xb_Yb, "repz cmps Xb,Yb");
    1158611640        switch (pVCpu->iem.s.enmEffAddrMode)
    1158711641        {
     
    1159411648    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_REPNZ)
    1159511649    {
    11596         IEMOP_MNEMONIC("repe cmps Xb,Yb");
     11650        IEMOP_MNEMONIC(repnz_cmps_Xb_Yb, "repnz cmps Xb,Yb");
    1159711651        switch (pVCpu->iem.s.enmEffAddrMode)
    1159811652        {
     
    1160311657        }
    1160411658    }
    11605     IEMOP_MNEMONIC("cmps Xb,Yb");
     11659    IEMOP_MNEMONIC(cmps_Xb_Yb, "cmps Xb,Yb");
    1160611660
    1160711661    /*
     
    1163011684    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_REPZ)
    1163111685    {
    11632         IEMOP_MNEMONIC("repe cmps Xv,Yv");
     11686        IEMOP_MNEMONIC(repe_cmps_Xv_Yv, "repe cmps Xv,Yv");
    1163311687        switch (pVCpu->iem.s.enmEffOpSize)
    1163411688        {
     
    1166411718    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_REPNZ)
    1166511719    {
    11666         IEMOP_MNEMONIC("repne cmps Xv,Yv");
     11720        IEMOP_MNEMONIC(repne_cmps_Xv_Yv, "repne cmps Xv,Yv");
    1166711721        switch (pVCpu->iem.s.enmEffOpSize)
    1166811722        {
     
    1169611750    }
    1169711751
    11698     IEMOP_MNEMONIC("cmps Xv,Yv");
     11752    IEMOP_MNEMONIC(cmps_Xv_Yv, "cmps Xv,Yv");
    1169911753
    1170011754    /*
     
    1174411798FNIEMOP_DEF(iemOp_test_AL_Ib)
    1174511799{
    11746     IEMOP_MNEMONIC("test al,Ib");
     11800    IEMOP_MNEMONIC(test_al_Ib, "test al,Ib");
    1174711801    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    1174811802    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_AL_Ib, &g_iemAImpl_test);
     
    1175311807FNIEMOP_DEF(iemOp_test_eAX_Iz)
    1175411808{
    11755     IEMOP_MNEMONIC("test rAX,Iz");
     11809    IEMOP_MNEMONIC(test_rAX_Iz, "test rAX,Iz");
    1175611810    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    1175711811    return FNIEMOP_CALL_1(iemOpHlpBinaryOperator_rAX_Iz, &g_iemAImpl_test);
     
    1178511839    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPNZ | IEM_OP_PRF_REPZ))
    1178611840    {
    11787         IEMOP_MNEMONIC("rep stos Yb,al");
     11841        IEMOP_MNEMONIC(rep_stos_Yb_al, "rep stos Yb,al");
    1178811842        switch (pVCpu->iem.s.enmEffAddrMode)
    1178911843        {
     
    1179411848        }
    1179511849    }
    11796     IEMOP_MNEMONIC("stos Yb,al");
     11850    IEMOP_MNEMONIC(stos_Yb_al, "stos Yb,al");
    1179711851
    1179811852    /*
     
    1182011874    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPNZ | IEM_OP_PRF_REPZ))
    1182111875    {
    11822         IEMOP_MNEMONIC("rep stos Yv,rAX");
     11876        IEMOP_MNEMONIC(rep_stos_Yv_rAX, "rep stos Yv,rAX");
    1182311877        switch (pVCpu->iem.s.enmEffOpSize)
    1182411878        {
     
    1185111905        }
    1185211906    }
    11853     IEMOP_MNEMONIC("stos Yv,rAX");
     11907    IEMOP_MNEMONIC(stos_Yv_rAX, "stos Yv,rAX");
    1185411908
    1185511909    /*
     
    1192111975    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPNZ | IEM_OP_PRF_REPZ))
    1192211976    {
    11923         IEMOP_MNEMONIC("rep lodsb al,Xb");
     11977        IEMOP_MNEMONIC(rep_lodsb_AL_Xb, "rep lodsb AL,Xb");
    1192411978        switch (pVCpu->iem.s.enmEffAddrMode)
    1192511979        {
     
    1193011984        }
    1193111985    }
    11932     IEMOP_MNEMONIC("lodsb al,Xb");
     11986    IEMOP_MNEMONIC(lodsb_AL_Xb, "lodsb AL,Xb");
    1193311987
    1193411988    /*
     
    1195612010    if (pVCpu->iem.s.fPrefixes & (IEM_OP_PRF_REPNZ | IEM_OP_PRF_REPZ))
    1195712011    {
    11958         IEMOP_MNEMONIC("rep lods rAX,Xv");
     12012        IEMOP_MNEMONIC(rep_lods_rAX_Xv, "rep lods rAX,Xv");
    1195912013        switch (pVCpu->iem.s.enmEffOpSize)
    1196012014        {
     
    1198712041        }
    1198812042    }
    11989     IEMOP_MNEMONIC("lods rAX,Xv");
     12043    IEMOP_MNEMONIC(lods_rAX_Xv, "lods rAX,Xv");
    1199012044
    1199112045    /*
     
    1206312117    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_REPZ)
    1206412118    {
    12065         IEMOP_MNEMONIC("repe scasb al,Xb");
     12119        IEMOP_MNEMONIC(repe_scasb_AL_Xb, "repe scasb AL,Xb");
    1206612120        switch (pVCpu->iem.s.enmEffAddrMode)
    1206712121        {
     
    1207412128    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_REPNZ)
    1207512129    {
    12076         IEMOP_MNEMONIC("repne scasb al,Xb");
     12130        IEMOP_MNEMONIC(repone_scasb_AL_Xb, "repne scasb AL,Xb");
    1207712131        switch (pVCpu->iem.s.enmEffAddrMode)
    1207812132        {
     
    1208312137        }
    1208412138    }
    12085     IEMOP_MNEMONIC("scasb al,Xb");
     12139    IEMOP_MNEMONIC(scasb_AL_Xb, "scasb AL,Xb");
    1208612140
    1208712141    /*
     
    1210912163    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_REPZ)
    1211012164    {
    12111         IEMOP_MNEMONIC("repe scas rAX,Xv");
     12165        IEMOP_MNEMONIC(repe_scas_rAX_Xv, "repe scas rAX,Xv");
    1211212166        switch (pVCpu->iem.s.enmEffOpSize)
    1211312167        {
     
    1214212196    if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_REPNZ)
    1214312197    {
    12144         IEMOP_MNEMONIC("repne scas rAX,Xv");
     12198        IEMOP_MNEMONIC(repne_scas_rAX_Xv, "repne scas rAX,Xv");
    1214512199        switch (pVCpu->iem.s.enmEffOpSize)
    1214612200        {
     
    1217312227        }
    1217412228    }
    12175     IEMOP_MNEMONIC("scas rAX,Xv");
     12229    IEMOP_MNEMONIC(scas_rAX_Xv, "scas rAX,Xv");
    1217612230
    1217712231    /*
     
    1223812292FNIEMOP_DEF(iemOp_mov_AL_Ib)
    1223912293{
    12240     IEMOP_MNEMONIC("mov AL,Ib");
     12294    IEMOP_MNEMONIC(mov_AL_Ib, "mov AL,Ib");
    1224112295    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xAX | pVCpu->iem.s.uRexB);
    1224212296}
     
    1224612300FNIEMOP_DEF(iemOp_CL_Ib)
    1224712301{
    12248     IEMOP_MNEMONIC("mov CL,Ib");
     12302    IEMOP_MNEMONIC(mov_CL_Ib, "mov CL,Ib");
    1224912303    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xCX | pVCpu->iem.s.uRexB);
    1225012304}
     
    1225412308FNIEMOP_DEF(iemOp_DL_Ib)
    1225512309{
    12256     IEMOP_MNEMONIC("mov DL,Ib");
     12310    IEMOP_MNEMONIC(mov_DL_Ib, "mov DL,Ib");
    1225712311    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xDX | pVCpu->iem.s.uRexB);
    1225812312}
     
    1226212316FNIEMOP_DEF(iemOp_BL_Ib)
    1226312317{
    12264     IEMOP_MNEMONIC("mov BL,Ib");
     12318    IEMOP_MNEMONIC(mov_BL_Ib, "mov BL,Ib");
    1226512319    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xBX | pVCpu->iem.s.uRexB);
    1226612320}
     
    1227012324FNIEMOP_DEF(iemOp_mov_AH_Ib)
    1227112325{
    12272     IEMOP_MNEMONIC("mov AH,Ib");
     12326    IEMOP_MNEMONIC(mov_AH_Ib, "mov AH,Ib");
    1227312327    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xSP | pVCpu->iem.s.uRexB);
    1227412328}
     
    1227812332FNIEMOP_DEF(iemOp_CH_Ib)
    1227912333{
    12280     IEMOP_MNEMONIC("mov CH,Ib");
     12334    IEMOP_MNEMONIC(mov_CH_Ib, "mov CH,Ib");
    1228112335    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xBP | pVCpu->iem.s.uRexB);
    1228212336}
     
    1228612340FNIEMOP_DEF(iemOp_DH_Ib)
    1228712341{
    12288     IEMOP_MNEMONIC("mov DH,Ib");
     12342    IEMOP_MNEMONIC(mov_DH_Ib, "mov DH,Ib");
    1228912343    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xSI | pVCpu->iem.s.uRexB);
    1229012344}
     
    1229412348FNIEMOP_DEF(iemOp_BH_Ib)
    1229512349{
    12296     IEMOP_MNEMONIC("mov BH,Ib");
     12350    IEMOP_MNEMONIC(mov_BH_Ib, "mov BH,Ib");
    1229712351    return FNIEMOP_CALL_1(iemOpCommonMov_r8_Ib, X86_GREG_xDI | pVCpu->iem.s.uRexB);
    1229812352}
     
    1235212406FNIEMOP_DEF(iemOp_eAX_Iv)
    1235312407{
    12354     IEMOP_MNEMONIC("mov rAX,IV");
     12408    IEMOP_MNEMONIC(mov_rAX_IV, "mov rAX,IV");
    1235512409    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xAX | pVCpu->iem.s.uRexB);
    1235612410}
     
    1236012414FNIEMOP_DEF(iemOp_eCX_Iv)
    1236112415{
    12362     IEMOP_MNEMONIC("mov rCX,IV");
     12416    IEMOP_MNEMONIC(mov_rCX_IV, "mov rCX,IV");
    1236312417    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xCX | pVCpu->iem.s.uRexB);
    1236412418}
     
    1236812422FNIEMOP_DEF(iemOp_eDX_Iv)
    1236912423{
    12370     IEMOP_MNEMONIC("mov rDX,IV");
     12424    IEMOP_MNEMONIC(mov_rDX_IV, "mov rDX,IV");
    1237112425    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xDX | pVCpu->iem.s.uRexB);
    1237212426}
     
    1237612430FNIEMOP_DEF(iemOp_eBX_Iv)
    1237712431{
    12378     IEMOP_MNEMONIC("mov rBX,IV");
     12432    IEMOP_MNEMONIC(mov_rBX_IV, "mov rBX,IV");
    1237912433    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xBX | pVCpu->iem.s.uRexB);
    1238012434}
     
    1238412438FNIEMOP_DEF(iemOp_eSP_Iv)
    1238512439{
    12386     IEMOP_MNEMONIC("mov rSP,IV");
     12440    IEMOP_MNEMONIC(mov_rSP_IV, "mov rSP,IV");
    1238712441    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xSP | pVCpu->iem.s.uRexB);
    1238812442}
     
    1239212446FNIEMOP_DEF(iemOp_eBP_Iv)
    1239312447{
    12394     IEMOP_MNEMONIC("mov rBP,IV");
     12448    IEMOP_MNEMONIC(mov_rBP_IV, "mov rBP,IV");
    1239512449    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xBP | pVCpu->iem.s.uRexB);
    1239612450}
     
    1240012454FNIEMOP_DEF(iemOp_eSI_Iv)
    1240112455{
    12402     IEMOP_MNEMONIC("mov rSI,IV");
     12456    IEMOP_MNEMONIC(mov_rSI_IV, "mov rSI,IV");
    1240312457    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xSI | pVCpu->iem.s.uRexB);
    1240412458}
     
    1240812462FNIEMOP_DEF(iemOp_eDI_Iv)
    1240912463{
    12410     IEMOP_MNEMONIC("mov rDI,IV");
     12464    IEMOP_MNEMONIC(mov_rDI_IV, "mov rDI,IV");
    1241112465    return FNIEMOP_CALL_1(iemOpCommonMov_Rv_Iv, X86_GREG_xDI | pVCpu->iem.s.uRexB);
    1241212466}
     
    1242112475    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1242212476    {
    12423         case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC("rol Eb,Ib"); break;
    12424         case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC("ror Eb,Ib"); break;
    12425         case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC("rcl Eb,Ib"); break;
    12426         case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC("rcr Eb,Ib"); break;
    12427         case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC("shl Eb,Ib"); break;
    12428         case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC("shr Eb,Ib"); break;
    12429         case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC("sar Eb,Ib"); break;
     12477        case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC(rol_Eb_Ib, "rol Eb,Ib"); break;
     12478        case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC(ror_Eb_Ib, "ror Eb,Ib"); break;
     12479        case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC(rcl_Eb_Ib, "rcl Eb,Ib"); break;
     12480        case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC(rcr_Eb_Ib, "rcr Eb,Ib"); break;
     12481        case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC(shl_Eb_Ib, "shl Eb,Ib"); break;
     12482        case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC(shr_Eb_Ib, "shr Eb,Ib"); break;
     12483        case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC(sar_Eb_Ib, "sar Eb,Ib"); break;
    1243012484        case 6: return IEMOP_RAISE_INVALID_OPCODE();
    1243112485        IEM_NOT_REACHED_DEFAULT_CASE_RET(); /* gcc maybe stupid */
     
    1248212536    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1248312537    {
    12484         case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC("rol Ev,Ib"); break;
    12485         case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC("ror Ev,Ib"); break;
    12486         case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC("rcl Ev,Ib"); break;
    12487         case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC("rcr Ev,Ib"); break;
    12488         case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC("shl Ev,Ib"); break;
    12489         case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC("shr Ev,Ib"); break;
    12490         case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC("sar Ev,Ib"); break;
     12538        case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC(rol_Ev_Ib, "rol Ev,Ib"); break;
     12539        case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC(ror_Ev_Ib, "ror Ev,Ib"); break;
     12540        case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC(rcl_Ev_Ib, "rcl Ev,Ib"); break;
     12541        case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC(rcr_Ev_Ib, "rcr Ev,Ib"); break;
     12542        case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC(shl_Ev_Ib, "shl Ev,Ib"); break;
     12543        case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC(shr_Ev_Ib, "shr Ev,Ib"); break;
     12544        case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC(sar_Ev_Ib, "sar Ev,Ib"); break;
    1249112545        case 6: return IEMOP_RAISE_INVALID_OPCODE();
    1249212546        IEM_NOT_REACHED_DEFAULT_CASE_RET(); /* gcc maybe stupid */
     
    1261812672FNIEMOP_DEF(iemOp_retn_Iw)
    1261912673{
    12620     IEMOP_MNEMONIC("retn Iw");
     12674    IEMOP_MNEMONIC(retn_Iw, "retn Iw");
    1262112675    uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    1262212676    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1262912683FNIEMOP_DEF(iemOp_retn)
    1263012684{
    12631     IEMOP_MNEMONIC("retn");
     12685    IEMOP_MNEMONIC(retn, "retn");
    1263212686    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
    1263312687    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1264312697        || (bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    1264412698    {
    12645         IEMOP_MNEMONIC("2-byte-vex");
     12699        IEMOP_MNEMONIC(vex2_prefix, "2-byte-vex");
    1264612700        /* The LES instruction is invalid 64-bit mode. In legacy and
    1264712701           compatability mode it is invalid with MOD=3.
     
    1265312707        return IEMOP_RAISE_INVALID_OPCODE();
    1265412708    }
    12655     IEMOP_MNEMONIC("les Gv,Mp");
     12709    IEMOP_MNEMONIC(les_Gv_Mp, "les Gv,Mp");
    1265612710    return FNIEMOP_CALL_2(iemOpCommonLoadSRegAndGreg, X86_SREG_ES, bRm);
    1265712711}
     
    1267112725        if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT))
    1267212726        {
    12673             IEMOP_MNEMONIC("lds Gv,Mp");
     12727            IEMOP_MNEMONIC(lds_Gv_Mp, "lds Gv,Mp");
    1267412728            return FNIEMOP_CALL_2(iemOpCommonLoadSRegAndGreg, X86_SREG_DS, bRm);
    1267512729        }
     
    1267712731    }
    1267812732
    12679     IEMOP_MNEMONIC("3-byte-vex");
     12733    IEMOP_MNEMONIC(vex3_prefix, "3-byte-vex");
    1268012734    /** @todo Test when exctly the VEX conformance checks kick in during
    1268112735     * instruction decoding and fetching (using \#PF). */
     
    1270312757    if ((bRm & X86_MODRM_REG_MASK) != (0 << X86_MODRM_REG_SHIFT)) /* only mov Eb,Ib in this group. */
    1270412758        return IEMOP_RAISE_INVALID_OPCODE();
    12705     IEMOP_MNEMONIC("mov Eb,Ib");
     12759    IEMOP_MNEMONIC(mov_Eb_Ib, "mov Eb,Ib");
    1270612760
    1270712761    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    1273712791    if ((bRm & X86_MODRM_REG_MASK) != (0 << X86_MODRM_REG_SHIFT)) /* only mov Eb,Ib in this group. */
    1273812792        return IEMOP_RAISE_INVALID_OPCODE();
    12739     IEMOP_MNEMONIC("mov Ev,Iz");
     12793    IEMOP_MNEMONIC(mov_Ev_Iz, "mov Ev,Iz");
    1274012794
    1274112795    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    1282312877FNIEMOP_DEF(iemOp_enter_Iw_Ib)
    1282412878{
    12825     IEMOP_MNEMONIC("enter Iw,Ib");
     12879    IEMOP_MNEMONIC(enter_Iw_Ib, "enter Iw,Ib");
    1282612880    IEMOP_HLP_MIN_186();
    1282712881    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    1283612890FNIEMOP_DEF(iemOp_leave)
    1283712891{
    12838     IEMOP_MNEMONIC("retn");
     12892    IEMOP_MNEMONIC(leave, "leave");
    1283912893    IEMOP_HLP_MIN_186();
    1284012894    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    1284712901FNIEMOP_DEF(iemOp_retf_Iw)
    1284812902{
    12849     IEMOP_MNEMONIC("retf Iw");
     12903    IEMOP_MNEMONIC(retf_Iw, "retf Iw");
    1285012904    uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    1285112905    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1285812912FNIEMOP_DEF(iemOp_retf)
    1285912913{
    12860     IEMOP_MNEMONIC("retf");
     12914    IEMOP_MNEMONIC(retf, "retf");
    1286112915    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1286212916    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    1288512939FNIEMOP_DEF(iemOp_into)
    1288612940{
    12887     IEMOP_MNEMONIC("into");
     12941    IEMOP_MNEMONIC(into, "into");
    1288812942    IEMOP_HLP_NO_64BIT();
    1288912943
     
    1290012954FNIEMOP_DEF(iemOp_iret)
    1290112955{
    12902     IEMOP_MNEMONIC("iret");
     12956    IEMOP_MNEMONIC(iret, "iret");
    1290312957    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1290412958    return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_iret, pVCpu->iem.s.enmEffOpSize);
     
    1291312967    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1291412968    {
    12915         case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC("rol Eb,1"); break;
    12916         case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC("ror Eb,1"); break;
    12917         case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC("rcl Eb,1"); break;
    12918         case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC("rcr Eb,1"); break;
    12919         case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC("shl Eb,1"); break;
    12920         case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC("shr Eb,1"); break;
    12921         case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC("sar Eb,1"); break;
     12969        case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC(rol_Eb_1, "rol Eb,1"); break;
     12970        case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC(ror_Eb_1, "ror Eb,1"); break;
     12971        case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC(rcl_Eb_1, "rcl Eb,1"); break;
     12972        case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC(rcr_Eb_1, "rcr Eb,1"); break;
     12973        case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC(shl_Eb_1, "shl Eb,1"); break;
     12974        case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC(shr_Eb_1, "shr Eb,1"); break;
     12975        case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC(sar_Eb_1, "sar Eb,1"); break;
    1292212976        case 6: return IEMOP_RAISE_INVALID_OPCODE();
    1292312977        IEM_NOT_REACHED_DEFAULT_CASE_RET(); /* gcc maybe, well... */
     
    1297113025    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1297213026    {
    12973         case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC("rol Ev,1"); break;
    12974         case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC("ror Ev,1"); break;
    12975         case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC("rcl Ev,1"); break;
    12976         case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC("rcr Ev,1"); break;
    12977         case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC("shl Ev,1"); break;
    12978         case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC("shr Ev,1"); break;
    12979         case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC("sar Ev,1"); break;
     13027        case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC(rol_Ev_1, "rol Ev,1"); break;
     13028        case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC(ror_Ev_1, "ror Ev,1"); break;
     13029        case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC(rcl_Ev_1, "rcl Ev,1"); break;
     13030        case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC(rcr_Ev_1, "rcr Ev,1"); break;
     13031        case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC(shl_Ev_1, "shl Ev,1"); break;
     13032        case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC(shr_Ev_1, "shr Ev,1"); break;
     13033        case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC(sar_Ev_1, "sar Ev,1"); break;
    1298013034        case 6: return IEMOP_RAISE_INVALID_OPCODE();
    1298113035        IEM_NOT_REACHED_DEFAULT_CASE_RET(); /* gcc maybe, well... */
     
    1310413158    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1310513159    {
    13106         case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC("rol Eb,CL"); break;
    13107         case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC("ror Eb,CL"); break;
    13108         case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC("rcl Eb,CL"); break;
    13109         case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC("rcr Eb,CL"); break;
    13110         case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC("shl Eb,CL"); break;
    13111         case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC("shr Eb,CL"); break;
    13112         case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC("sar Eb,CL"); break;
     13160        case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC(rol_Eb_CL, "rol Eb,CL"); break;
     13161        case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC(ror_Eb_CL, "ror Eb,CL"); break;
     13162        case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC(rcl_Eb_CL, "rcl Eb,CL"); break;
     13163        case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC(rcr_Eb_CL, "rcr Eb,CL"); break;
     13164        case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC(shl_Eb_CL, "shl Eb,CL"); break;
     13165        case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC(shr_Eb_CL, "shr Eb,CL"); break;
     13166        case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC(sar_Eb_CL, "sar Eb,CL"); break;
    1311313167        case 6: return IEMOP_RAISE_INVALID_OPCODE();
    1311413168        IEM_NOT_REACHED_DEFAULT_CASE_RET(); /* gcc, grr. */
     
    1316313217    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1316413218    {
    13165         case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC("rol Ev,CL"); break;
    13166         case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC("ror Ev,CL"); break;
    13167         case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC("rcl Ev,CL"); break;
    13168         case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC("rcr Ev,CL"); break;
    13169         case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC("shl Ev,CL"); break;
    13170         case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC("shr Ev,CL"); break;
    13171         case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC("sar Ev,CL"); break;
     13219        case 0: pImpl = &g_iemAImpl_rol; IEMOP_MNEMONIC(rol_Ev_CL, "rol Ev,CL"); break;
     13220        case 1: pImpl = &g_iemAImpl_ror; IEMOP_MNEMONIC(ror_Ev_CL, "ror Ev,CL"); break;
     13221        case 2: pImpl = &g_iemAImpl_rcl; IEMOP_MNEMONIC(rcl_Ev_CL, "rcl Ev,CL"); break;
     13222        case 3: pImpl = &g_iemAImpl_rcr; IEMOP_MNEMONIC(rcr_Ev_CL, "rcr Ev,CL"); break;
     13223        case 4: pImpl = &g_iemAImpl_shl; IEMOP_MNEMONIC(shl_Ev_CL, "shl Ev,CL"); break;
     13224        case 5: pImpl = &g_iemAImpl_shr; IEMOP_MNEMONIC(shr_Ev_CL, "shr Ev,CL"); break;
     13225        case 7: pImpl = &g_iemAImpl_sar; IEMOP_MNEMONIC(sar_Ev_CL, "sar Ev,CL"); break;
    1317213226        case 6: return IEMOP_RAISE_INVALID_OPCODE();
    1317313227        IEM_NOT_REACHED_DEFAULT_CASE_RET(); /* gcc maybe stupid */
     
    1329713351FNIEMOP_DEF(iemOp_aam_Ib)
    1329813352{
    13299     IEMOP_MNEMONIC("aam Ib");
     13353    IEMOP_MNEMONIC(aam_Ib, "aam Ib");
    1330013354    uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1330113355    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1331013364FNIEMOP_DEF(iemOp_aad_Ib)
    1331113365{
    13312     IEMOP_MNEMONIC("aad Ib");
     13366    IEMOP_MNEMONIC(aad_Ib, "aad Ib");
    1331313367    uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1331413368    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1332113375FNIEMOP_DEF(iemOp_salc)
    1332213376{
    13323     IEMOP_MNEMONIC("salc");
     13377    IEMOP_MNEMONIC(salc, "salc");
    1332413378    IEMOP_HLP_MIN_286(); /* (undocument at the time) */
    1332513379    uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
     
    1334213396FNIEMOP_DEF(iemOp_xlat)
    1334313397{
    13344     IEMOP_MNEMONIC("xlat");
     13398    IEMOP_MNEMONIC(xlat, "xlat");
    1334513399    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1334613400    switch (pVCpu->iem.s.enmEffAddrMode)
     
    1348613540FNIEMOP_DEF_1(iemOp_fadd_stN,   uint8_t, bRm)
    1348713541{
    13488     IEMOP_MNEMONIC("fadd st0,stN");
     13542    IEMOP_MNEMONIC(fadd_st0_stN, "fadd st0,stN");
    1348913543    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, bRm, iemAImpl_fadd_r80_by_r80);
    1349013544}
     
    1349413548FNIEMOP_DEF_1(iemOp_fmul_stN,   uint8_t, bRm)
    1349513549{
    13496     IEMOP_MNEMONIC("fmul st0,stN");
     13550    IEMOP_MNEMONIC(fmul_st0_stN, "fmul st0,stN");
    1349713551    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, bRm, iemAImpl_fmul_r80_by_r80);
    1349813552}
     
    1350213556FNIEMOP_DEF_1(iemOp_fcom_stN,   uint8_t, bRm)
    1350313557{
    13504     IEMOP_MNEMONIC("fcom st0,stN");
     13558    IEMOP_MNEMONIC(fcom_st0_stN, "fcom st0,stN");
    1350513559    return FNIEMOP_CALL_2(iemOpHlpFpuNoStore_st0_stN, bRm, iemAImpl_fcom_r80_by_r80);
    1350613560}
     
    1351013564FNIEMOP_DEF_1(iemOp_fcomp_stN,  uint8_t, bRm)
    1351113565{
    13512     IEMOP_MNEMONIC("fcomp st0,stN");
     13566    IEMOP_MNEMONIC(fcomp_st0_stN, "fcomp st0,stN");
    1351313567    return FNIEMOP_CALL_2(iemOpHlpFpuNoStore_st0_stN_pop, bRm, iemAImpl_fcom_r80_by_r80);
    1351413568}
     
    1351813572FNIEMOP_DEF_1(iemOp_fsub_stN,   uint8_t, bRm)
    1351913573{
    13520     IEMOP_MNEMONIC("fsub st0,stN");
     13574    IEMOP_MNEMONIC(fsub_st0_stN, "fsub st0,stN");
    1352113575    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, bRm, iemAImpl_fsub_r80_by_r80);
    1352213576}
     
    1352613580FNIEMOP_DEF_1(iemOp_fsubr_stN,  uint8_t, bRm)
    1352713581{
    13528     IEMOP_MNEMONIC("fsubr st0,stN");
     13582    IEMOP_MNEMONIC(fsubr_st0_stN, "fsubr st0,stN");
    1352913583    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, bRm, iemAImpl_fsubr_r80_by_r80);
    1353013584}
     
    1353413588FNIEMOP_DEF_1(iemOp_fdiv_stN,   uint8_t, bRm)
    1353513589{
    13536     IEMOP_MNEMONIC("fdiv st0,stN");
     13590    IEMOP_MNEMONIC(fdiv_st0_stN, "fdiv st0,stN");
    1353713591    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, bRm, iemAImpl_fdiv_r80_by_r80);
    1353813592}
     
    1354213596FNIEMOP_DEF_1(iemOp_fdivr_stN,  uint8_t, bRm)
    1354313597{
    13544     IEMOP_MNEMONIC("fdivr st0,stN");
     13598    IEMOP_MNEMONIC(fdivr_st0_stN, "fdivr st0,stN");
    1354513599    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, bRm, iemAImpl_fdivr_r80_by_r80);
    1354613600}
     
    1358713641FNIEMOP_DEF_1(iemOp_fadd_m32r,  uint8_t, bRm)
    1358813642{
    13589     IEMOP_MNEMONIC("fadd st0,m32r");
     13643    IEMOP_MNEMONIC(fadd_st0_m32r, "fadd st0,m32r");
    1359013644    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32r, bRm, iemAImpl_fadd_r80_by_r32);
    1359113645}
     
    1359513649FNIEMOP_DEF_1(iemOp_fmul_m32r,  uint8_t, bRm)
    1359613650{
    13597     IEMOP_MNEMONIC("fmul st0,m32r");
     13651    IEMOP_MNEMONIC(fmul_st0_m32r, "fmul st0,m32r");
    1359813652    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32r, bRm, iemAImpl_fmul_r80_by_r32);
    1359913653}
     
    1360313657FNIEMOP_DEF_1(iemOp_fcom_m32r,  uint8_t, bRm)
    1360413658{
    13605     IEMOP_MNEMONIC("fcom st0,m32r");
     13659    IEMOP_MNEMONIC(fcom_st0_m32r, "fcom st0,m32r");
    1360613660
    1360713661    IEM_MC_BEGIN(3, 3);
     
    1363713691FNIEMOP_DEF_1(iemOp_fcomp_m32r, uint8_t, bRm)
    1363813692{
    13639     IEMOP_MNEMONIC("fcomp st0,m32r");
     13693    IEMOP_MNEMONIC(fcomp_st0_m32r, "fcomp st0,m32r");
    1364013694
    1364113695    IEM_MC_BEGIN(3, 3);
     
    1367113725FNIEMOP_DEF_1(iemOp_fsub_m32r,  uint8_t, bRm)
    1367213726{
    13673     IEMOP_MNEMONIC("fsub st0,m32r");
     13727    IEMOP_MNEMONIC(fsub_st0_m32r, "fsub st0,m32r");
    1367413728    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32r, bRm, iemAImpl_fsub_r80_by_r32);
    1367513729}
     
    1367913733FNIEMOP_DEF_1(iemOp_fsubr_m32r, uint8_t, bRm)
    1368013734{
    13681     IEMOP_MNEMONIC("fsubr st0,m32r");
     13735    IEMOP_MNEMONIC(fsubr_st0_m32r, "fsubr st0,m32r");
    1368213736    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32r, bRm, iemAImpl_fsubr_r80_by_r32);
    1368313737}
     
    1368713741FNIEMOP_DEF_1(iemOp_fdiv_m32r,  uint8_t, bRm)
    1368813742{
    13689     IEMOP_MNEMONIC("fdiv st0,m32r");
     13743    IEMOP_MNEMONIC(fdiv_st0_m32r, "fdiv st0,m32r");
    1369013744    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32r, bRm, iemAImpl_fdiv_r80_by_r32);
    1369113745}
     
    1369513749FNIEMOP_DEF_1(iemOp_fdivr_m32r, uint8_t, bRm)
    1369613750{
    13697     IEMOP_MNEMONIC("fdivr st0,m32r");
     13751    IEMOP_MNEMONIC(fdivr_st0_m32r, "fdivr st0,m32r");
    1369813752    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32r, bRm, iemAImpl_fdivr_r80_by_r32);
    1369913753}
     
    1374313797FNIEMOP_DEF_1(iemOp_fld_m32r, uint8_t, bRm)
    1374413798{
    13745     IEMOP_MNEMONIC("fld m32r");
     13799    IEMOP_MNEMONIC(fld_m32r, "fld m32r");
    1374613800
    1374713801    IEM_MC_BEGIN(2, 3);
     
    1377613830FNIEMOP_DEF_1(iemOp_fst_m32r, uint8_t, bRm)
    1377713831{
    13778     IEMOP_MNEMONIC("fst m32r");
     13832    IEMOP_MNEMONIC(fst_m32r, "fst m32r");
    1377913833    IEM_MC_BEGIN(3, 2);
    1378013834    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1381213866FNIEMOP_DEF_1(iemOp_fstp_m32r, uint8_t, bRm)
    1381313867{
    13814     IEMOP_MNEMONIC("fstp m32r");
     13868    IEMOP_MNEMONIC(fstp_m32r, "fstp m32r");
    1381513869    IEM_MC_BEGIN(3, 2);
    1381613870    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1384813902FNIEMOP_DEF_1(iemOp_fldenv, uint8_t, bRm)
    1384913903{
    13850     IEMOP_MNEMONIC("fldenv m14/28byte");
     13904    IEMOP_MNEMONIC(fldenv, "fldenv m14/28byte");
    1385113905    IEM_MC_BEGIN(3, 0);
    1385213906    IEM_MC_ARG_CONST(IEMMODE,           enmEffOpSize, /*=*/ pVCpu->iem.s.enmEffOpSize,  0);
     
    1386713921FNIEMOP_DEF_1(iemOp_fldcw, uint8_t, bRm)
    1386813922{
    13869     IEMOP_MNEMONIC("fldcw m2byte");
     13923    IEMOP_MNEMONIC(fldcw_m2byte, "fldcw m2byte");
    1387013924    IEM_MC_BEGIN(1, 1);
    1387113925    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    1388513939FNIEMOP_DEF_1(iemOp_fnstenv, uint8_t, bRm)
    1388613940{
    13887     IEMOP_MNEMONIC("fstenv m14/m28byte");
     13941    IEMOP_MNEMONIC(fstenv, "fstenv m14/m28byte");
    1388813942    IEM_MC_BEGIN(3, 0);
    1388913943    IEM_MC_ARG_CONST(IEMMODE,           enmEffOpSize, /*=*/ pVCpu->iem.s.enmEffOpSize,  0);
     
    1390413958FNIEMOP_DEF_1(iemOp_fnstcw, uint8_t, bRm)
    1390513959{
    13906     IEMOP_MNEMONIC("fnstcw m2byte");
     13960    IEMOP_MNEMONIC(fnstcw_m2byte, "fnstcw m2byte");
    1390713961    IEM_MC_BEGIN(2, 0);
    1390813962    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1392313977FNIEMOP_DEF(iemOp_fnop)
    1392413978{
    13925     IEMOP_MNEMONIC("fnop");
     13979    IEMOP_MNEMONIC(fnop, "fnop");
    1392613980    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1392713981
     
    1394213996FNIEMOP_DEF_1(iemOp_fld_stN, uint8_t, bRm)
    1394313997{
    13944     IEMOP_MNEMONIC("fld stN");
     13998    IEMOP_MNEMONIC(fld_stN, "fld stN");
    1394513999    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1394614000
     
    1397114025FNIEMOP_DEF_1(iemOp_fxch_stN, uint8_t, bRm)
    1397214026{
    13973     IEMOP_MNEMONIC("fxch stN");
     14027    IEMOP_MNEMONIC(fxch_stN, "fxch stN");
    1397414028    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1397514029
     
    1400314057FNIEMOP_DEF_1(iemOp_fstp_stN, uint8_t, bRm)
    1400414058{
    14005     IEMOP_MNEMONIC("fstp st0,stN");
     14059    IEMOP_MNEMONIC(fstp_st0_stN, "fstp st0,stN");
    1400614060    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1400714061
     
    1408214136FNIEMOP_DEF(iemOp_fchs)
    1408314137{
    14084     IEMOP_MNEMONIC("fchs st0");
     14138    IEMOP_MNEMONIC(fchs_st0, "fchs st0");
    1408514139    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_fchs_r80);
    1408614140}
     
    1409014144FNIEMOP_DEF(iemOp_fabs)
    1409114145{
    14092     IEMOP_MNEMONIC("fabs st0");
     14146    IEMOP_MNEMONIC(fabs_st0, "fabs st0");
    1409314147    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_fabs_r80);
    1409414148}
     
    1412814182FNIEMOP_DEF(iemOp_ftst)
    1412914183{
    14130     IEMOP_MNEMONIC("ftst st0");
     14184    IEMOP_MNEMONIC(ftst_st0, "ftst st0");
    1413114185    return FNIEMOP_CALL_1(iemOpHlpFpuNoStore_st0, iemAImpl_ftst_r80);
    1413214186}
     
    1413614190FNIEMOP_DEF(iemOp_fxam)
    1413714191{
    14138     IEMOP_MNEMONIC("fxam st0");
     14192    IEMOP_MNEMONIC(fxam_st0, "fxam st0");
    1413914193    return FNIEMOP_CALL_1(iemOpHlpFpuNoStore_st0, iemAImpl_fxam_r80);
    1414014194}
     
    1417314227FNIEMOP_DEF(iemOp_fld1)
    1417414228{
    14175     IEMOP_MNEMONIC("fld1");
     14229    IEMOP_MNEMONIC(fld1, "fld1");
    1417614230    return FNIEMOP_CALL_1(iemOpHlpFpuPushConstant, iemAImpl_fld1);
    1417714231}
     
    1418114235FNIEMOP_DEF(iemOp_fldl2t)
    1418214236{
    14183     IEMOP_MNEMONIC("fldl2t");
     14237    IEMOP_MNEMONIC(fldl2t, "fldl2t");
    1418414238    return FNIEMOP_CALL_1(iemOpHlpFpuPushConstant, iemAImpl_fldl2t);
    1418514239}
     
    1418914243FNIEMOP_DEF(iemOp_fldl2e)
    1419014244{
    14191     IEMOP_MNEMONIC("fldl2e");
     14245    IEMOP_MNEMONIC(fldl2e, "fldl2e");
    1419214246    return FNIEMOP_CALL_1(iemOpHlpFpuPushConstant, iemAImpl_fldl2e);
    1419314247}
     
    1419614250FNIEMOP_DEF(iemOp_fldpi)
    1419714251{
    14198     IEMOP_MNEMONIC("fldpi");
     14252    IEMOP_MNEMONIC(fldpi, "fldpi");
    1419914253    return FNIEMOP_CALL_1(iemOpHlpFpuPushConstant, iemAImpl_fldpi);
    1420014254}
     
    1420414258FNIEMOP_DEF(iemOp_fldlg2)
    1420514259{
    14206     IEMOP_MNEMONIC("fldlg2");
     14260    IEMOP_MNEMONIC(fldlg2, "fldlg2");
    1420714261    return FNIEMOP_CALL_1(iemOpHlpFpuPushConstant, iemAImpl_fldlg2);
    1420814262}
     
    1421114265FNIEMOP_DEF(iemOp_fldln2)
    1421214266{
    14213     IEMOP_MNEMONIC("fldln2");
     14267    IEMOP_MNEMONIC(fldln2, "fldln2");
    1421414268    return FNIEMOP_CALL_1(iemOpHlpFpuPushConstant, iemAImpl_fldln2);
    1421514269}
     
    1421914273FNIEMOP_DEF(iemOp_fldz)
    1422014274{
    14221     IEMOP_MNEMONIC("fldz");
     14275    IEMOP_MNEMONIC(fldz, "fldz");
    1422214276    return FNIEMOP_CALL_1(iemOpHlpFpuPushConstant, iemAImpl_fldz);
    1422314277}
     
    1422714281FNIEMOP_DEF(iemOp_f2xm1)
    1422814282{
    14229     IEMOP_MNEMONIC("f2xm1 st0");
     14283    IEMOP_MNEMONIC(f2xm1_st0, "f2xm1 st0");
    1423014284    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_f2xm1_r80);
    1423114285}
     
    1423514289FNIEMOP_DEF(iemOp_fylx2)
    1423614290{
    14237     IEMOP_MNEMONIC("fylx2 st0");
     14291    IEMOP_MNEMONIC(fylx2_st0, "fylx2 st0");
    1423814292    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_fyl2x_r80);
    1423914293}
     
    1427414328FNIEMOP_DEF(iemOp_fptan)
    1427514329{
    14276     IEMOP_MNEMONIC("fptan st0");
     14330    IEMOP_MNEMONIC(fptan_st0, "fptan st0");
    1427714331    return FNIEMOP_CALL_1(iemOpHlpFpuReplace_st0_push, iemAImpl_fptan_r80_r80);
    1427814332}
     
    1431514369FNIEMOP_DEF(iemOp_fpatan)
    1431614370{
    14317     IEMOP_MNEMONIC("fpatan st1,st0");
     14371    IEMOP_MNEMONIC(fpatan_st1_st0, "fpatan st1,st0");
    1431814372    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, 1, iemAImpl_fpatan_r80_by_r80);
    1431914373}
     
    1432314377FNIEMOP_DEF(iemOp_fxtract)
    1432414378{
    14325     IEMOP_MNEMONIC("fxtract st0");
     14379    IEMOP_MNEMONIC(fxtract_st0, "fxtract st0");
    1432614380    return FNIEMOP_CALL_1(iemOpHlpFpuReplace_st0_push, iemAImpl_fxtract_r80_r80);
    1432714381}
     
    1433114385FNIEMOP_DEF(iemOp_fprem1)
    1433214386{
    14333     IEMOP_MNEMONIC("fprem1 st0, st1");
     14387    IEMOP_MNEMONIC(fprem1_st0_st1, "fprem1 st0,st1");
    1433414388    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, 1, iemAImpl_fprem1_r80_by_r80);
    1433514389}
     
    1433914393FNIEMOP_DEF(iemOp_fdecstp)
    1434014394{
    14341     IEMOP_MNEMONIC("fdecstp");
     14395    IEMOP_MNEMONIC(fdecstp, "fdecstp");
    1434214396    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1434314397    /* Note! C0, C2 and C3 are documented as undefined, we clear them. */
     
    1436314417FNIEMOP_DEF(iemOp_fincstp)
    1436414418{
    14365     IEMOP_MNEMONIC("fincstp");
     14419    IEMOP_MNEMONIC(fincstp, "fincstp");
    1436614420    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1436714421    /* Note! C0, C2 and C3 are documented as undefined, we clear them. */
     
    1438714441FNIEMOP_DEF(iemOp_fprem)
    1438814442{
    14389     IEMOP_MNEMONIC("fprem st0, st1");
     14443    IEMOP_MNEMONIC(fprem_st0_st1, "fprem st0,st1");
    1439014444    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, 1, iemAImpl_fprem_r80_by_r80);
    1439114445}
     
    1439514449FNIEMOP_DEF(iemOp_fyl2xp1)
    1439614450{
    14397     IEMOP_MNEMONIC("fyl2xp1 st1,st0");
     14451    IEMOP_MNEMONIC(fyl2xp1_st1_st0, "fyl2xp1 st1,st0");
    1439814452    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, 1, iemAImpl_fyl2xp1_r80_by_r80);
    1439914453}
     
    1440314457FNIEMOP_DEF(iemOp_fsqrt)
    1440414458{
    14405     IEMOP_MNEMONIC("fsqrt st0");
     14459    IEMOP_MNEMONIC(fsqrt_st0, "fsqrt st0");
    1440614460    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_fsqrt_r80);
    1440714461}
     
    1441114465FNIEMOP_DEF(iemOp_fsincos)
    1441214466{
    14413     IEMOP_MNEMONIC("fsincos st0");
     14467    IEMOP_MNEMONIC(fsincos_st0, "fsincos st0");
    1441414468    return FNIEMOP_CALL_1(iemOpHlpFpuReplace_st0_push, iemAImpl_fsincos_r80_r80);
    1441514469}
     
    1441914473FNIEMOP_DEF(iemOp_frndint)
    1442014474{
    14421     IEMOP_MNEMONIC("frndint st0");
     14475    IEMOP_MNEMONIC(frndint_st0, "frndint st0");
    1442214476    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_frndint_r80);
    1442314477}
     
    1442714481FNIEMOP_DEF(iemOp_fscale)
    1442814482{
    14429     IEMOP_MNEMONIC("fscale st0, st1");
     14483    IEMOP_MNEMONIC(fscale_st0_st1, "fscale st0,st1");
    1443014484    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_stN, 1, iemAImpl_fscale_r80_by_r80);
    1443114485}
     
    1443514489FNIEMOP_DEF(iemOp_fsin)
    1443614490{
    14437     IEMOP_MNEMONIC("fsin st0");
     14491    IEMOP_MNEMONIC(fsin_st0, "fsin st0");
    1443814492    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_fsin_r80);
    1443914493}
     
    1444314497FNIEMOP_DEF(iemOp_fcos)
    1444414498{
    14445     IEMOP_MNEMONIC("fcos st0");
     14499    IEMOP_MNEMONIC(fcos_st0, "fcos st0");
    1444614500    return FNIEMOP_CALL_1(iemOpHlpFpu_st0, iemAImpl_fcos_r80);
    1444714501}
     
    1453314587FNIEMOP_DEF_1(iemOp_fcmovb_stN,  uint8_t, bRm)
    1453414588{
    14535     IEMOP_MNEMONIC("fcmovb st0,stN");
     14589    IEMOP_MNEMONIC(fcmovb_st0_stN, "fcmovb st0,stN");
    1453614590    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1453714591
     
    1456114615FNIEMOP_DEF_1(iemOp_fcmove_stN,  uint8_t, bRm)
    1456214616{
    14563     IEMOP_MNEMONIC("fcmove st0,stN");
     14617    IEMOP_MNEMONIC(fcmove_st0_stN, "fcmove st0,stN");
    1456414618    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1456514619
     
    1458914643FNIEMOP_DEF_1(iemOp_fcmovbe_stN, uint8_t, bRm)
    1459014644{
    14591     IEMOP_MNEMONIC("fcmovbe st0,stN");
     14645    IEMOP_MNEMONIC(fcmovbe_st0_stN, "fcmovbe st0,stN");
    1459214646    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1459314647
     
    1461714671FNIEMOP_DEF_1(iemOp_fcmovu_stN,  uint8_t, bRm)
    1461814672{
    14619     IEMOP_MNEMONIC("fcmovu st0,stN");
     14673    IEMOP_MNEMONIC(fcmovu_st0_stN, "fcmovu st0,stN");
    1462014674    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1462114675
     
    1467814732FNIEMOP_DEF(iemOp_fucompp)
    1467914733{
    14680     IEMOP_MNEMONIC("fucompp st0,stN");
     14734    IEMOP_MNEMONIC(fucompp_st0_stN, "fucompp st0,stN");
    1468114735    return FNIEMOP_CALL_1(iemOpHlpFpuNoStore_st0_stN_pop_pop, iemAImpl_fucom_r80_by_r80);
    1468214736}
     
    1472314777FNIEMOP_DEF_1(iemOp_fiadd_m32i,  uint8_t, bRm)
    1472414778{
    14725     IEMOP_MNEMONIC("fiadd m32i");
     14779    IEMOP_MNEMONIC(fiadd_m32i, "fiadd m32i");
    1472614780    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32i, bRm, iemAImpl_fiadd_r80_by_i32);
    1472714781}
     
    1473114785FNIEMOP_DEF_1(iemOp_fimul_m32i,  uint8_t, bRm)
    1473214786{
    14733     IEMOP_MNEMONIC("fimul m32i");
     14787    IEMOP_MNEMONIC(fimul_m32i, "fimul m32i");
    1473414788    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32i, bRm, iemAImpl_fimul_r80_by_i32);
    1473514789}
     
    1473914793FNIEMOP_DEF_1(iemOp_ficom_m32i,  uint8_t, bRm)
    1474014794{
    14741     IEMOP_MNEMONIC("ficom st0,m32i");
     14795    IEMOP_MNEMONIC(ficom_st0_m32i, "ficom st0,m32i");
    1474214796
    1474314797    IEM_MC_BEGIN(3, 3);
     
    1477314827FNIEMOP_DEF_1(iemOp_ficomp_m32i, uint8_t, bRm)
    1477414828{
    14775     IEMOP_MNEMONIC("ficomp st0,m32i");
     14829    IEMOP_MNEMONIC(ficomp_st0_m32i, "ficomp st0,m32i");
    1477614830
    1477714831    IEM_MC_BEGIN(3, 3);
     
    1480714861FNIEMOP_DEF_1(iemOp_fisub_m32i,  uint8_t, bRm)
    1480814862{
    14809     IEMOP_MNEMONIC("fisub m32i");
     14863    IEMOP_MNEMONIC(fisub_m32i, "fisub m32i");
    1481014864    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32i, bRm, iemAImpl_fisub_r80_by_i32);
    1481114865}
     
    1481514869FNIEMOP_DEF_1(iemOp_fisubr_m32i, uint8_t, bRm)
    1481614870{
    14817     IEMOP_MNEMONIC("fisubr m32i");
     14871    IEMOP_MNEMONIC(fisubr_m32i, "fisubr m32i");
    1481814872    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32i, bRm, iemAImpl_fisubr_r80_by_i32);
    1481914873}
     
    1482314877FNIEMOP_DEF_1(iemOp_fidiv_m32i,  uint8_t, bRm)
    1482414878{
    14825     IEMOP_MNEMONIC("fidiv m32i");
     14879    IEMOP_MNEMONIC(fidiv_m32i, "fidiv m32i");
    1482614880    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32i, bRm, iemAImpl_fidiv_r80_by_i32);
    1482714881}
     
    1483114885FNIEMOP_DEF_1(iemOp_fidivr_m32i, uint8_t, bRm)
    1483214886{
    14833     IEMOP_MNEMONIC("fidivr m32i");
     14887    IEMOP_MNEMONIC(fidivr_m32i, "fidivr m32i");
    1483414888    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m32i, bRm, iemAImpl_fidivr_r80_by_i32);
    1483514889}
     
    1488014934FNIEMOP_DEF_1(iemOp_fild_m32i, uint8_t, bRm)
    1488114935{
    14882     IEMOP_MNEMONIC("fild m32i");
     14936    IEMOP_MNEMONIC(fild_m32i, "fild m32i");
    1488314937
    1488414938    IEM_MC_BEGIN(2, 3);
     
    1491314967FNIEMOP_DEF_1(iemOp_fisttp_m32i, uint8_t, bRm)
    1491414968{
    14915     IEMOP_MNEMONIC("fisttp m32i");
     14969    IEMOP_MNEMONIC(fisttp_m32i, "fisttp m32i");
    1491614970    IEM_MC_BEGIN(3, 2);
    1491714971    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1494915003FNIEMOP_DEF_1(iemOp_fist_m32i, uint8_t, bRm)
    1495015004{
    14951     IEMOP_MNEMONIC("fist m32i");
     15005    IEMOP_MNEMONIC(fist_m32i, "fist m32i");
    1495215006    IEM_MC_BEGIN(3, 2);
    1495315007    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1498515039FNIEMOP_DEF_1(iemOp_fistp_m32i, uint8_t, bRm)
    1498615040{
    14987     IEMOP_MNEMONIC("fisttp m32i");
     15041    IEMOP_MNEMONIC(fistp_m32i, "fistp m32i");
    1498815042    IEM_MC_BEGIN(3, 2);
    1498915043    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1502115075FNIEMOP_DEF_1(iemOp_fld_m80r, uint8_t, bRm)
    1502215076{
    15023     IEMOP_MNEMONIC("fld m80r");
     15077    IEMOP_MNEMONIC(fld_m80r, "fld m80r");
    1502415078
    1502515079    IEM_MC_BEGIN(2, 3);
     
    1505415108FNIEMOP_DEF_1(iemOp_fstp_m80r, uint8_t, bRm)
    1505515109{
    15056     IEMOP_MNEMONIC("fstp m80r");
     15110    IEMOP_MNEMONIC(fstp_m80r, "fstp m80r");
    1505715111    IEM_MC_BEGIN(3, 2);
    1505815112    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1509015144FNIEMOP_DEF_1(iemOp_fcmovnb_stN,  uint8_t, bRm)
    1509115145{
    15092     IEMOP_MNEMONIC("fcmovnb st0,stN");
     15146    IEMOP_MNEMONIC(fcmovnb_st0_stN, "fcmovnb st0,stN");
    1509315147    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1509415148
     
    1511815172FNIEMOP_DEF_1(iemOp_fcmovne_stN,  uint8_t, bRm)
    1511915173{
    15120     IEMOP_MNEMONIC("fcmovne st0,stN");
     15174    IEMOP_MNEMONIC(fcmovne_st0_stN, "fcmovne st0,stN");
    1512115175    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1512215176
     
    1514615200FNIEMOP_DEF_1(iemOp_fcmovnbe_stN, uint8_t, bRm)
    1514715201{
    15148     IEMOP_MNEMONIC("fcmovnbe st0,stN");
     15202    IEMOP_MNEMONIC(fcmovnbe_st0_stN, "fcmovnbe st0,stN");
    1514915203    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1515015204
     
    1517415228FNIEMOP_DEF_1(iemOp_fcmovnnu_stN, uint8_t, bRm)
    1517515229{
    15176     IEMOP_MNEMONIC("fcmovnnu st0,stN");
     15230    IEMOP_MNEMONIC(fcmovnnu_st0_stN, "fcmovnnu st0,stN");
    1517715231    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1517815232
     
    1520215256FNIEMOP_DEF(iemOp_fneni)
    1520315257{
    15204     IEMOP_MNEMONIC("fneni (8087/ign)");
     15258    IEMOP_MNEMONIC(fneni, "fneni (8087/ign)");
    1520515259    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1520615260    IEM_MC_BEGIN(0,0);
     
    1521515269FNIEMOP_DEF(iemOp_fndisi)
    1521615270{
    15217     IEMOP_MNEMONIC("fndisi (8087/ign)");
     15271    IEMOP_MNEMONIC(fndisi, "fndisi (8087/ign)");
    1521815272    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1521915273    IEM_MC_BEGIN(0,0);
     
    1522815282FNIEMOP_DEF(iemOp_fnclex)
    1522915283{
    15230     IEMOP_MNEMONIC("fnclex");
     15284    IEMOP_MNEMONIC(fnclex, "fnclex");
    1523115285    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1523215286
     
    1524415298FNIEMOP_DEF(iemOp_fninit)
    1524515299{
    15246     IEMOP_MNEMONIC("fninit");
     15300    IEMOP_MNEMONIC(fninit, "fninit");
    1524715301    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1524815302    return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_finit, false /*fCheckXcpts*/);
     
    1525315307FNIEMOP_DEF(iemOp_fnsetpm)
    1525415308{
    15255     IEMOP_MNEMONIC("fnsetpm (80287/ign)");   /* set protected mode on fpu. */
     15309    IEMOP_MNEMONIC(fnsetpm, "fnsetpm (80287/ign)");   /* set protected mode on fpu. */
    1525615310    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1525715311    IEM_MC_BEGIN(0,0);
     
    1526615320FNIEMOP_DEF(iemOp_frstpm)
    1526715321{
    15268     IEMOP_MNEMONIC("frstpm (80287XL/ign)"); /* reset pm, back to real mode. */
     15322    IEMOP_MNEMONIC(frstpm, "frstpm (80287XL/ign)"); /* reset pm, back to real mode. */
    1526915323#if 0 /* #UDs on newer CPUs */
    1527015324    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1528315337FNIEMOP_DEF_1(iemOp_fucomi_stN, uint8_t, bRm)
    1528415338{
    15285     IEMOP_MNEMONIC("fucomi st0,stN");
     15339    IEMOP_MNEMONIC(fucomi_st0_stN, "fucomi st0,stN");
    1528615340    return IEM_MC_DEFER_TO_CIMPL_3(iemCImpl_fcomi_fucomi, bRm & X86_MODRM_RM_MASK, iemAImpl_fucomi_r80_by_r80, false /*fPop*/);
    1528715341}
     
    1529115345FNIEMOP_DEF_1(iemOp_fcomi_stN,  uint8_t, bRm)
    1529215346{
    15293     IEMOP_MNEMONIC("fcomi st0,stN");
     15347    IEMOP_MNEMONIC(fcomi_st0_stN, "fcomi st0,stN");
    1529415348    return IEM_MC_DEFER_TO_CIMPL_3(iemCImpl_fcomi_fucomi, bRm & X86_MODRM_RM_MASK, iemAImpl_fcomi_r80_by_r80, false /*fPop*/);
    1529515349}
     
    1538315437FNIEMOP_DEF_1(iemOp_fadd_stN_st0,   uint8_t, bRm)
    1538415438{
    15385     IEMOP_MNEMONIC("fadd stN,st0");
     15439    IEMOP_MNEMONIC(fadd_stN_st0, "fadd stN,st0");
    1538615440    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0, bRm, iemAImpl_fadd_r80_by_r80);
    1538715441}
     
    1539115445FNIEMOP_DEF_1(iemOp_fmul_stN_st0,   uint8_t, bRm)
    1539215446{
    15393     IEMOP_MNEMONIC("fmul stN,st0");
     15447    IEMOP_MNEMONIC(fmul_stN_st0, "fmul stN,st0");
    1539415448    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0, bRm, iemAImpl_fmul_r80_by_r80);
    1539515449}
     
    1539915453FNIEMOP_DEF_1(iemOp_fsubr_stN_st0,  uint8_t, bRm)
    1540015454{
    15401     IEMOP_MNEMONIC("fsubr stN,st0");
     15455    IEMOP_MNEMONIC(fsubr_stN_st0, "fsubr stN,st0");
    1540215456    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0, bRm, iemAImpl_fsubr_r80_by_r80);
    1540315457}
     
    1540715461FNIEMOP_DEF_1(iemOp_fsub_stN_st0,   uint8_t, bRm)
    1540815462{
    15409     IEMOP_MNEMONIC("fsub stN,st0");
     15463    IEMOP_MNEMONIC(fsub_stN_st0, "fsub stN,st0");
    1541015464    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0, bRm, iemAImpl_fsub_r80_by_r80);
    1541115465}
     
    1541515469FNIEMOP_DEF_1(iemOp_fdivr_stN_st0,  uint8_t, bRm)
    1541615470{
    15417     IEMOP_MNEMONIC("fdivr stN,st0");
     15471    IEMOP_MNEMONIC(fdivr_stN_st0, "fdivr stN,st0");
    1541815472    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0, bRm, iemAImpl_fdivr_r80_by_r80);
    1541915473}
     
    1542315477FNIEMOP_DEF_1(iemOp_fdiv_stN_st0,   uint8_t, bRm)
    1542415478{
    15425     IEMOP_MNEMONIC("fdiv stN,st0");
     15479    IEMOP_MNEMONIC(fdiv_stN_st0, "fdiv stN,st0");
    1542615480    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0, bRm, iemAImpl_fdiv_r80_by_r80);
    1542715481}
     
    1546715521FNIEMOP_DEF_1(iemOp_fadd_m64r,  uint8_t, bRm)
    1546815522{
    15469     IEMOP_MNEMONIC("fadd m64r");
     15523    IEMOP_MNEMONIC(fadd_m64r, "fadd m64r");
    1547015524    return FNIEMOP_CALL_2(iemOpHlpFpu_ST0_m64r, bRm, iemAImpl_fadd_r80_by_r64);
    1547115525}
     
    1547515529FNIEMOP_DEF_1(iemOp_fmul_m64r,  uint8_t, bRm)
    1547615530{
    15477     IEMOP_MNEMONIC("fmul m64r");
     15531    IEMOP_MNEMONIC(fmul_m64r, "fmul m64r");
    1547815532    return FNIEMOP_CALL_2(iemOpHlpFpu_ST0_m64r, bRm, iemAImpl_fmul_r80_by_r64);
    1547915533}
     
    1548315537FNIEMOP_DEF_1(iemOp_fcom_m64r,  uint8_t, bRm)
    1548415538{
    15485     IEMOP_MNEMONIC("fcom st0,m64r");
     15539    IEMOP_MNEMONIC(fcom_st0_m64r, "fcom st0,m64r");
    1548615540
    1548715541    IEM_MC_BEGIN(3, 3);
     
    1551715571FNIEMOP_DEF_1(iemOp_fcomp_m64r, uint8_t, bRm)
    1551815572{
    15519     IEMOP_MNEMONIC("fcomp st0,m64r");
     15573    IEMOP_MNEMONIC(fcomp_st0_m64r, "fcomp st0,m64r");
    1552015574
    1552115575    IEM_MC_BEGIN(3, 3);
     
    1555115605FNIEMOP_DEF_1(iemOp_fsub_m64r,  uint8_t, bRm)
    1555215606{
    15553     IEMOP_MNEMONIC("fsub m64r");
     15607    IEMOP_MNEMONIC(fsub_m64r, "fsub m64r");
    1555415608    return FNIEMOP_CALL_2(iemOpHlpFpu_ST0_m64r, bRm, iemAImpl_fsub_r80_by_r64);
    1555515609}
     
    1555915613FNIEMOP_DEF_1(iemOp_fsubr_m64r, uint8_t, bRm)
    1556015614{
    15561     IEMOP_MNEMONIC("fsubr m64r");
     15615    IEMOP_MNEMONIC(fsubr_m64r, "fsubr m64r");
    1556215616    return FNIEMOP_CALL_2(iemOpHlpFpu_ST0_m64r, bRm, iemAImpl_fsubr_r80_by_r64);
    1556315617}
     
    1556715621FNIEMOP_DEF_1(iemOp_fdiv_m64r,  uint8_t, bRm)
    1556815622{
    15569     IEMOP_MNEMONIC("fdiv m64r");
     15623    IEMOP_MNEMONIC(fdiv_m64r, "fdiv m64r");
    1557015624    return FNIEMOP_CALL_2(iemOpHlpFpu_ST0_m64r, bRm, iemAImpl_fdiv_r80_by_r64);
    1557115625}
     
    1557515629FNIEMOP_DEF_1(iemOp_fdivr_m64r, uint8_t, bRm)
    1557615630{
    15577     IEMOP_MNEMONIC("fdivr m64r");
     15631    IEMOP_MNEMONIC(fdivr_m64r, "fdivr m64r");
    1557815632    return FNIEMOP_CALL_2(iemOpHlpFpu_ST0_m64r, bRm, iemAImpl_fdivr_r80_by_r64);
    1557915633}
     
    1562215676FNIEMOP_DEF_1(iemOp_fld_m64r,    uint8_t, bRm)
    1562315677{
    15624     IEMOP_MNEMONIC("fld m64r");
     15678    IEMOP_MNEMONIC(fld_m64r, "fld m64r");
    1562515679
    1562615680    IEM_MC_BEGIN(2, 3);
     
    1565415708FNIEMOP_DEF_1(iemOp_fisttp_m64i, uint8_t, bRm)
    1565515709{
    15656     IEMOP_MNEMONIC("fisttp m64i");
     15710    IEMOP_MNEMONIC(fisttp_m64i, "fisttp m64i");
    1565715711    IEM_MC_BEGIN(3, 2);
    1565815712    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1569015744FNIEMOP_DEF_1(iemOp_fst_m64r,    uint8_t, bRm)
    1569115745{
    15692     IEMOP_MNEMONIC("fst m64r");
     15746    IEMOP_MNEMONIC(fst_m64r, "fst m64r");
    1569315747    IEM_MC_BEGIN(3, 2);
    1569415748    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1572815782FNIEMOP_DEF_1(iemOp_fstp_m64r,   uint8_t, bRm)
    1572915783{
    15730     IEMOP_MNEMONIC("fstp m64r");
     15784    IEMOP_MNEMONIC(fstp_m64r, "fstp m64r");
    1573115785    IEM_MC_BEGIN(3, 2);
    1573215786    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1576415818FNIEMOP_DEF_1(iemOp_frstor,      uint8_t, bRm)
    1576515819{
    15766     IEMOP_MNEMONIC("frstor m94/108byte");
     15820    IEMOP_MNEMONIC(frstor, "frstor m94/108byte");
    1576715821    IEM_MC_BEGIN(3, 0);
    1576815822    IEM_MC_ARG_CONST(IEMMODE,           enmEffOpSize, /*=*/ pVCpu->iem.s.enmEffOpSize,  0);
     
    1578315837FNIEMOP_DEF_1(iemOp_fnsave,      uint8_t, bRm)
    1578415838{
    15785     IEMOP_MNEMONIC("fnsave m94/108byte");
     15839    IEMOP_MNEMONIC(fnsave, "fnsave m94/108byte");
    1578615840    IEM_MC_BEGIN(3, 0);
    1578715841    IEM_MC_ARG_CONST(IEMMODE,           enmEffOpSize, /*=*/ pVCpu->iem.s.enmEffOpSize,  0);
     
    1580215856FNIEMOP_DEF_1(iemOp_fnstsw,      uint8_t, bRm)
    1580315857{
    15804     IEMOP_MNEMONIC("fnstsw m16");
     15858    IEMOP_MNEMONIC(fnstsw_m16, "fnstsw m16");
    1580515859
    1580615860    IEM_MC_BEGIN(0, 2);
     
    1582815882FNIEMOP_DEF_1(iemOp_ffree_stN,   uint8_t, bRm)
    1582915883{
    15830     IEMOP_MNEMONIC("ffree stN");
     15884    IEMOP_MNEMONIC(ffree_stN, "ffree stN");
    1583115885    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1583215886    /* Note! C0, C1, C2 and C3 are documented as undefined, we leave the
     
    1585115905FNIEMOP_DEF_1(iemOp_fst_stN,     uint8_t, bRm)
    1585215906{
    15853     IEMOP_MNEMONIC("fst st0,stN");
     15907    IEMOP_MNEMONIC(fst_st0_stN, "fst st0,stN");
    1585415908    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1585515909
     
    1587715931FNIEMOP_DEF_1(iemOp_fucom_stN_st0, uint8_t, bRm)
    1587815932{
    15879     IEMOP_MNEMONIC("fcom st0,stN");
     15933    IEMOP_MNEMONIC(fucom_st0_stN, "fucom st0,stN");
    1588015934    return FNIEMOP_CALL_2(iemOpHlpFpuNoStore_st0_stN, bRm, iemAImpl_fucom_r80_by_r80);
    1588115935}
     
    1588515939FNIEMOP_DEF_1(iemOp_fucomp_stN,  uint8_t, bRm)
    1588615940{
    15887     IEMOP_MNEMONIC("fcomp st0,stN");
     15941    IEMOP_MNEMONIC(fucomp_st0_stN, "fucomp st0,stN");
    1588815942    return FNIEMOP_CALL_2(iemOpHlpFpuNoStore_st0_stN_pop, bRm, iemAImpl_fucom_r80_by_r80);
    1588915943}
     
    1593115985FNIEMOP_DEF_1(iemOp_faddp_stN_st0, uint8_t, bRm)
    1593215986{
    15933     IEMOP_MNEMONIC("faddp stN,st0");
     15987    IEMOP_MNEMONIC(faddp_stN_st0, "faddp stN,st0");
    1593415988    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, bRm, iemAImpl_fadd_r80_by_r80);
    1593515989}
     
    1593915993FNIEMOP_DEF_1(iemOp_fmulp_stN_st0, uint8_t, bRm)
    1594015994{
    15941     IEMOP_MNEMONIC("fmulp stN,st0");
     15995    IEMOP_MNEMONIC(fmulp_stN_st0, "fmulp stN,st0");
    1594215996    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, bRm, iemAImpl_fmul_r80_by_r80);
    1594315997}
     
    1594716001FNIEMOP_DEF(iemOp_fcompp)
    1594816002{
    15949     IEMOP_MNEMONIC("fucompp st0,stN");
     16003    IEMOP_MNEMONIC(fcompp_st0_stN, "fcompp st0,stN");
    1595016004    return FNIEMOP_CALL_1(iemOpHlpFpuNoStore_st0_stN_pop_pop, iemAImpl_fcom_r80_by_r80);
    1595116005}
     
    1595516009FNIEMOP_DEF_1(iemOp_fsubrp_stN_st0, uint8_t, bRm)
    1595616010{
    15957     IEMOP_MNEMONIC("fsubrp stN,st0");
     16011    IEMOP_MNEMONIC(fsubrp_stN_st0, "fsubrp stN,st0");
    1595816012    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, bRm, iemAImpl_fsubr_r80_by_r80);
    1595916013}
     
    1596316017FNIEMOP_DEF_1(iemOp_fsubp_stN_st0, uint8_t, bRm)
    1596416018{
    15965     IEMOP_MNEMONIC("fsubp stN,st0");
     16019    IEMOP_MNEMONIC(fsubp_stN_st0, "fsubp stN,st0");
    1596616020    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, bRm, iemAImpl_fsub_r80_by_r80);
    1596716021}
     
    1597116025FNIEMOP_DEF_1(iemOp_fdivrp_stN_st0, uint8_t, bRm)
    1597216026{
    15973     IEMOP_MNEMONIC("fdivrp stN,st0");
     16027    IEMOP_MNEMONIC(fdivrp_stN_st0, "fdivrp stN,st0");
    1597416028    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, bRm, iemAImpl_fdivr_r80_by_r80);
    1597516029}
     
    1597916033FNIEMOP_DEF_1(iemOp_fdivp_stN_st0, uint8_t, bRm)
    1598016034{
    15981     IEMOP_MNEMONIC("fdivp stN,st0");
     16035    IEMOP_MNEMONIC(fdivp_stN_st0, "fdivp stN,st0");
    1598216036    return FNIEMOP_CALL_2(iemOpHlpFpu_stN_st0_pop, bRm, iemAImpl_fdiv_r80_by_r80);
    1598316037}
     
    1602416078FNIEMOP_DEF_1(iemOp_fiadd_m16i,  uint8_t, bRm)
    1602516079{
    16026     IEMOP_MNEMONIC("fiadd m16i");
     16080    IEMOP_MNEMONIC(fiadd_m16i, "fiadd m16i");
    1602716081    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m16i, bRm, iemAImpl_fiadd_r80_by_i16);
    1602816082}
     
    1603216086FNIEMOP_DEF_1(iemOp_fimul_m16i,  uint8_t, bRm)
    1603316087{
    16034     IEMOP_MNEMONIC("fimul m16i");
     16088    IEMOP_MNEMONIC(fimul_m16i, "fimul m16i");
    1603516089    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m16i, bRm, iemAImpl_fimul_r80_by_i16);
    1603616090}
     
    1604016094FNIEMOP_DEF_1(iemOp_ficom_m16i,  uint8_t, bRm)
    1604116095{
    16042     IEMOP_MNEMONIC("ficom st0,m16i");
     16096    IEMOP_MNEMONIC(ficom_st0_m16i, "ficom st0,m16i");
    1604316097
    1604416098    IEM_MC_BEGIN(3, 3);
     
    1607416128FNIEMOP_DEF_1(iemOp_ficomp_m16i, uint8_t, bRm)
    1607516129{
    16076     IEMOP_MNEMONIC("ficomp st0,m16i");
     16130    IEMOP_MNEMONIC(ficomp_st0_m16i, "ficomp st0,m16i");
    1607716131
    1607816132    IEM_MC_BEGIN(3, 3);
     
    1610816162FNIEMOP_DEF_1(iemOp_fisub_m16i,  uint8_t, bRm)
    1610916163{
    16110     IEMOP_MNEMONIC("fisub m16i");
     16164    IEMOP_MNEMONIC(fisub_m16i, "fisub m16i");
    1611116165    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m16i, bRm, iemAImpl_fisub_r80_by_i16);
    1611216166}
     
    1611616170FNIEMOP_DEF_1(iemOp_fisubr_m16i, uint8_t, bRm)
    1611716171{
    16118     IEMOP_MNEMONIC("fisubr m16i");
     16172    IEMOP_MNEMONIC(fisubr_m16i, "fisubr m16i");
    1611916173    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m16i, bRm, iemAImpl_fisubr_r80_by_i16);
    1612016174}
     
    1612416178FNIEMOP_DEF_1(iemOp_fidiv_m16i,  uint8_t, bRm)
    1612516179{
    16126     IEMOP_MNEMONIC("fiadd m16i");
     16180    IEMOP_MNEMONIC(fidiv_m16i, "fidiv m16i");
    1612716181    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m16i, bRm, iemAImpl_fidiv_r80_by_i16);
    1612816182}
     
    1613216186FNIEMOP_DEF_1(iemOp_fidivr_m16i, uint8_t, bRm)
    1613316187{
    16134     IEMOP_MNEMONIC("fiadd m16i");
     16188    IEMOP_MNEMONIC(fidivr_m16i, "fidivr m16i");
    1613516189    return FNIEMOP_CALL_2(iemOpHlpFpu_st0_m16i, bRm, iemAImpl_fidivr_r80_by_i16);
    1613616190}
     
    1618116235FNIEMOP_DEF_1(iemOp_ffreep_stN, uint8_t, bRm)
    1618216236{
    16183     IEMOP_MNEMONIC("ffreep stN");
     16237    IEMOP_MNEMONIC(ffreep_stN, "ffreep stN");
    1618416238    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1618516239
     
    1620316257FNIEMOP_DEF(iemOp_fnstsw_ax)
    1620416258{
    16205     IEMOP_MNEMONIC("fnstsw ax");
     16259    IEMOP_MNEMONIC(fnstsw_ax, "fnstsw ax");
    1620616260    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1620716261
     
    1622116275FNIEMOP_DEF_1(iemOp_fucomip_st0_stN, uint8_t, bRm)
    1622216276{
    16223     IEMOP_MNEMONIC("fcomip st0,stN");
     16277    IEMOP_MNEMONIC(fucomip_st0_stN, "fucomip st0,stN");
    1622416278    return IEM_MC_DEFER_TO_CIMPL_3(iemCImpl_fcomi_fucomi, bRm & X86_MODRM_RM_MASK, iemAImpl_fcomi_r80_by_r80, true /*fPop*/);
    1622516279}
     
    1622916283FNIEMOP_DEF_1(iemOp_fcomip_st0_stN,  uint8_t, bRm)
    1623016284{
    16231     IEMOP_MNEMONIC("fcomip st0,stN");
     16285    IEMOP_MNEMONIC(fcomip_st0_stN, "fcomip st0,stN");
    1623216286    return IEM_MC_DEFER_TO_CIMPL_3(iemCImpl_fcomi_fucomi, bRm & X86_MODRM_RM_MASK, iemAImpl_fcomi_r80_by_r80, true /*fPop*/);
    1623316287}
     
    1623716291FNIEMOP_DEF_1(iemOp_fild_m16i, uint8_t, bRm)
    1623816292{
    16239     IEMOP_MNEMONIC("fild m16i");
     16293    IEMOP_MNEMONIC(fild_m16i, "fild m16i");
    1624016294
    1624116295    IEM_MC_BEGIN(2, 3);
     
    1627016324FNIEMOP_DEF_1(iemOp_fisttp_m16i, uint8_t, bRm)
    1627116325{
    16272     IEMOP_MNEMONIC("fisttp m16i");
     16326    IEMOP_MNEMONIC(fisttp_m16i, "fisttp m16i");
    1627316327    IEM_MC_BEGIN(3, 2);
    1627416328    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1630616360FNIEMOP_DEF_1(iemOp_fist_m16i,   uint8_t, bRm)
    1630716361{
    16308     IEMOP_MNEMONIC("fistp m16i");
     16362    IEMOP_MNEMONIC(fist_m16i, "fist m16i");
    1630916363    IEM_MC_BEGIN(3, 2);
    1631016364    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1634216396FNIEMOP_DEF_1(iemOp_fistp_m16i,  uint8_t, bRm)
    1634316397{
    16344     IEMOP_MNEMONIC("fistp m16i");
     16398    IEMOP_MNEMONIC(fistp_m16i, "fistp m16i");
    1634516399    IEM_MC_BEGIN(3, 2);
    1634616400    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1638216436FNIEMOP_DEF_1(iemOp_fild_m64i,   uint8_t, bRm)
    1638316437{
    16384     IEMOP_MNEMONIC("fild m64i");
     16438    IEMOP_MNEMONIC(fild_m64i, "fild m64i");
    1638516439
    1638616440    IEM_MC_BEGIN(2, 3);
     
    1641916473FNIEMOP_DEF_1(iemOp_fistp_m64i,  uint8_t, bRm)
    1642016474{
    16421     IEMOP_MNEMONIC("fistp m64i");
     16475    IEMOP_MNEMONIC(fistp_m64i, "fistp m64i");
    1642216476    IEM_MC_BEGIN(3, 2);
    1642316477    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     
    1649416548FNIEMOP_DEF(iemOp_loopne_Jb)
    1649516549{
    16496     IEMOP_MNEMONIC("loopne Jb");
     16550    IEMOP_MNEMONIC(loopne_Jb, "loopne Jb");
    1649716551    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    1649816552    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1654216596FNIEMOP_DEF(iemOp_loope_Jb)
    1654316597{
    16544     IEMOP_MNEMONIC("loope Jb");
     16598    IEMOP_MNEMONIC(loope_Jb, "loope Jb");
    1654516599    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    1654616600    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1659016644FNIEMOP_DEF(iemOp_loop_Jb)
    1659116645{
    16592     IEMOP_MNEMONIC("loop Jb");
     16646    IEMOP_MNEMONIC(loop_Jb, "loop Jb");
    1659316647    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    1659416648    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1666516719FNIEMOP_DEF(iemOp_jecxz_Jb)
    1666616720{
    16667     IEMOP_MNEMONIC("jecxz Jb");
     16721    IEMOP_MNEMONIC(jecxz_Jb, "jecxz Jb");
    1666816722    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    1666916723    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1671016764FNIEMOP_DEF(iemOp_in_AL_Ib)
    1671116765{
    16712     IEMOP_MNEMONIC("in eAX,Ib");
     16766    IEMOP_MNEMONIC(in_AL_Ib, "in AL,Ib");
    1671316767    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1671416768    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1672016774FNIEMOP_DEF(iemOp_in_eAX_Ib)
    1672116775{
    16722     IEMOP_MNEMONIC("in eAX,Ib");
     16776    IEMOP_MNEMONIC(in_eAX_Ib, "in eAX,Ib");
    1672316777    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1672416778    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1673016784FNIEMOP_DEF(iemOp_out_Ib_AL)
    1673116785{
    16732     IEMOP_MNEMONIC("out Ib,AL");
     16786    IEMOP_MNEMONIC(out_Ib_AL, "out Ib,AL");
    1673316787    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1673416788    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1674016794FNIEMOP_DEF(iemOp_out_Ib_eAX)
    1674116795{
    16742     IEMOP_MNEMONIC("out Ib,eAX");
     16796    IEMOP_MNEMONIC(out_Ib_eAX, "out Ib,eAX");
    1674316797    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1674416798    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1675016804FNIEMOP_DEF(iemOp_call_Jv)
    1675116805{
    16752     IEMOP_MNEMONIC("call Jv");
     16806    IEMOP_MNEMONIC(call_Jv, "call Jv");
    1675316807    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
    1675416808    switch (pVCpu->iem.s.enmEffOpSize)
     
    1678016834FNIEMOP_DEF(iemOp_jmp_Jv)
    1678116835{
    16782     IEMOP_MNEMONIC("jmp Jv");
     16836    IEMOP_MNEMONIC(jmp_Jv, "jmp Jv");
    1678316837    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
    1678416838    switch (pVCpu->iem.s.enmEffOpSize)
     
    1681116865FNIEMOP_DEF(iemOp_jmp_Ap)
    1681216866{
    16813     IEMOP_MNEMONIC("jmp Ap");
     16867    IEMOP_MNEMONIC(jmp_Ap, "jmp Ap");
    1681416868    IEMOP_HLP_NO_64BIT();
    1681516869
     
    1682916883FNIEMOP_DEF(iemOp_jmp_Jb)
    1683016884{
    16831     IEMOP_MNEMONIC("jmp Jb");
     16885    IEMOP_MNEMONIC(jmp_Jb, "jmp Jb");
    1683216886    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    1683316887    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    1684416898FNIEMOP_DEF(iemOp_in_AL_DX)
    1684516899{
    16846     IEMOP_MNEMONIC("in  AL,DX");
     16900    IEMOP_MNEMONIC(in_AL_DX, "in  AL,DX");
    1684716901    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1684816902    return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_in_eAX_DX, 1);
     
    1685316907FNIEMOP_DEF(iemOp_eAX_DX)
    1685416908{
    16855     IEMOP_MNEMONIC("in  eAX,DX");
     16909    IEMOP_MNEMONIC(in_eAX_DX, "in  eAX,DX");
    1685616910    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1685716911    return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_in_eAX_DX, pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT ? 2 : 4);
     
    1686216916FNIEMOP_DEF(iemOp_out_DX_AL)
    1686316917{
    16864     IEMOP_MNEMONIC("out DX,AL");
     16918    IEMOP_MNEMONIC(out_DX_AL, "out DX,AL");
    1686516919    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1686616920    return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_out_DX_eAX, 1);
     
    1687116925FNIEMOP_DEF(iemOp_out_DX_eAX)
    1687216926{
    16873     IEMOP_MNEMONIC("out DX,eAX");
     16927    IEMOP_MNEMONIC(out_DX_eAX, "out DX,eAX");
    1687416928    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1687516929    return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_out_DX_eAX, pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT ? 2 : 4);
     
    1689116945FNIEMOP_DEF(iemOp_int_1)
    1689216946{
    16893     IEMOP_MNEMONIC("int1"); /* icebp */
     16947    IEMOP_MNEMONIC(int1, "int1"); /* icebp */
    1689416948    IEMOP_HLP_MIN_386(); /** @todo does not generate #UD on 286, or so they say... */
    1689516949    /** @todo testcase! */
     
    1693516989FNIEMOP_DEF(iemOp_cmc)
    1693616990{
    16937     IEMOP_MNEMONIC("cmc");
     16991    IEMOP_MNEMONIC(cmc, "cmc");
    1693816992    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1693916993    IEM_MC_BEGIN(0, 0);
     
    1707317127FNIEMOP_DEF_1(iemOp_grp3_test_Eb, uint8_t, bRm)
    1707417128{
    17075     IEMOP_MNEMONIC("test Eb,Ib");
     17129    IEMOP_MNEMONIC(test_Eb_Ib, "test Eb,Ib");
    1707617130    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    1707717131
     
    1712117175FNIEMOP_DEF_1(iemOp_grp3_test_Ev, uint8_t, bRm)
    1712217176{
    17123     IEMOP_MNEMONIC("test Ev,Iv");
     17177    IEMOP_MNEMONIC(test_Ev_Iv, "test Ev,Iv");
    1712417178    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF);
    1712517179
     
    1750817562            return IEMOP_RAISE_INVALID_OPCODE();
    1750917563        case 2:
    17510             IEMOP_MNEMONIC("not Eb");
     17564            IEMOP_MNEMONIC(not_Eb, "not Eb");
    1751117565            return FNIEMOP_CALL_2(iemOpCommonUnaryEb, bRm, &g_iemAImpl_not);
    1751217566        case 3:
    17513             IEMOP_MNEMONIC("neg Eb");
     17567            IEMOP_MNEMONIC(neg_Eb, "neg Eb");
    1751417568            return FNIEMOP_CALL_2(iemOpCommonUnaryEb, bRm, &g_iemAImpl_neg);
    1751517569        case 4:
    17516             IEMOP_MNEMONIC("mul Eb");
     17570            IEMOP_MNEMONIC(mul_Eb, "mul Eb");
    1751717571            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
    1751817572            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, iemAImpl_mul_u8);
    1751917573        case 5:
    17520             IEMOP_MNEMONIC("imul Eb");
     17574            IEMOP_MNEMONIC(imul_Eb, "imul Eb");
    1752117575            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
    1752217576            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, iemAImpl_imul_u8);
    1752317577        case 6:
    17524             IEMOP_MNEMONIC("div Eb");
     17578            IEMOP_MNEMONIC(div_Eb, "div Eb");
    1752517579            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_OF | X86_EFL_CF);
    1752617580            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, iemAImpl_div_u8);
    1752717581        case 7:
    17528             IEMOP_MNEMONIC("idiv Eb");
     17582            IEMOP_MNEMONIC(idiv_Eb, "idiv Eb");
    1752917583            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_OF | X86_EFL_CF);
    1753017584            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, iemAImpl_idiv_u8);
     
    1754617600            return IEMOP_RAISE_INVALID_OPCODE();
    1754717601        case 2:
    17548             IEMOP_MNEMONIC("not Ev");
     17602            IEMOP_MNEMONIC(not_Ev, "not Ev");
    1754917603            return FNIEMOP_CALL_2(iemOpCommonUnaryEv, bRm, &g_iemAImpl_not);
    1755017604        case 3:
    17551             IEMOP_MNEMONIC("neg Ev");
     17605            IEMOP_MNEMONIC(neg_Ev, "neg Ev");
    1755217606            return FNIEMOP_CALL_2(iemOpCommonUnaryEv, bRm, &g_iemAImpl_neg);
    1755317607        case 4:
    17554             IEMOP_MNEMONIC("mul Ev");
     17608            IEMOP_MNEMONIC(mul_Ev, "mul Ev");
    1755517609            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
    1755617610            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEv, bRm, &g_iemAImpl_mul);
    1755717611        case 5:
    17558             IEMOP_MNEMONIC("imul Ev");
     17612            IEMOP_MNEMONIC(imul_Ev, "imul Ev");
    1755917613            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
    1756017614            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEv, bRm, &g_iemAImpl_imul);
    1756117615        case 6:
    17562             IEMOP_MNEMONIC("div Ev");
     17616            IEMOP_MNEMONIC(div_Ev, "div Ev");
    1756317617            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_OF | X86_EFL_CF);
    1756417618            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEv, bRm, &g_iemAImpl_div);
    1756517619        case 7:
    17566             IEMOP_MNEMONIC("idiv Ev");
     17620            IEMOP_MNEMONIC(idiv_Ev, "idiv Ev");
    1756717621            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_OF | X86_EFL_CF);
    1756817622            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEv, bRm, &g_iemAImpl_idiv);
     
    1757517629FNIEMOP_DEF(iemOp_clc)
    1757617630{
    17577     IEMOP_MNEMONIC("clc");
     17631    IEMOP_MNEMONIC(clc, "clc");
    1757817632    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1757917633    IEM_MC_BEGIN(0, 0);
     
    1758817642FNIEMOP_DEF(iemOp_stc)
    1758917643{
    17590     IEMOP_MNEMONIC("stc");
     17644    IEMOP_MNEMONIC(stc, "stc");
    1759117645    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1759217646    IEM_MC_BEGIN(0, 0);
     
    1760117655FNIEMOP_DEF(iemOp_cli)
    1760217656{
    17603     IEMOP_MNEMONIC("cli");
     17657    IEMOP_MNEMONIC(cli, "cli");
    1760417658    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1760517659    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_cli);
     
    1760917663FNIEMOP_DEF(iemOp_sti)
    1761017664{
    17611     IEMOP_MNEMONIC("sti");
     17665    IEMOP_MNEMONIC(sti, "sti");
    1761217666    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1761317667    return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_sti);
     
    1761817672FNIEMOP_DEF(iemOp_cld)
    1761917673{
    17620     IEMOP_MNEMONIC("cld");
     17674    IEMOP_MNEMONIC(cld, "cld");
    1762117675    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1762217676    IEM_MC_BEGIN(0, 0);
     
    1763117685FNIEMOP_DEF(iemOp_std)
    1763217686{
    17633     IEMOP_MNEMONIC("std");
     17687    IEMOP_MNEMONIC(std, "std");
    1763417688    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1763517689    IEM_MC_BEGIN(0, 0);
     
    1764817702    {
    1764917703        case 0:
    17650             IEMOP_MNEMONIC("inc Ev");
     17704            IEMOP_MNEMONIC(inc_Eb, "inc Eb");
    1765117705            return FNIEMOP_CALL_2(iemOpCommonUnaryEb, bRm, &g_iemAImpl_inc);
    1765217706        case 1:
    17653             IEMOP_MNEMONIC("dec Ev");
     17707            IEMOP_MNEMONIC(dec_Eb, "dec Eb");
    1765417708            return FNIEMOP_CALL_2(iemOpCommonUnaryEb, bRm, &g_iemAImpl_dec);
    1765517709        default:
    17656             IEMOP_MNEMONIC("grp4-ud");
     17710            IEMOP_MNEMONIC(grp4_ud, "grp4-ud");
    1765717711            return IEMOP_RAISE_INVALID_OPCODE();
    1765817712    }
     
    1766617720FNIEMOP_DEF_1(iemOp_Grp5_calln_Ev, uint8_t, bRm)
    1766717721{
    17668     IEMOP_MNEMONIC("calln Ev");
     17722    IEMOP_MNEMONIC(calln_Ev, "calln Ev");
    1766917723    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
    1767017724
     
    1781817872FNIEMOP_DEF_1(iemOp_Grp5_callf_Ep, uint8_t, bRm)
    1781917873{
    17820     IEMOP_MNEMONIC("callf Ep");
     17874    IEMOP_MNEMONIC(callf_Ep, "callf Ep");
    1782117875    return FNIEMOP_CALL_2(iemOpHlp_Grp5_far_Ep, bRm, iemCImpl_callf);
    1782217876}
     
    1782917883FNIEMOP_DEF_1(iemOp_Grp5_jmpn_Ev, uint8_t, bRm)
    1783017884{
    17831     IEMOP_MNEMONIC("jmpn Ev");
     17885    IEMOP_MNEMONIC(jmpn_Ev, "jmpn Ev");
    1783217886    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
    1783317887
     
    1791517969FNIEMOP_DEF_1(iemOp_Grp5_jmpf_Ep, uint8_t, bRm)
    1791617970{
    17917     IEMOP_MNEMONIC("jmpf Ep");
     17971    IEMOP_MNEMONIC(jmpf_Ep, "jmpf Ep");
    1791817972    return FNIEMOP_CALL_2(iemOpHlp_Grp5_far_Ep, bRm, iemCImpl_FarJmp);
    1791917973}
     
    1792617980FNIEMOP_DEF_1(iemOp_Grp5_push_Ev, uint8_t, bRm)
    1792717981{
    17928     IEMOP_MNEMONIC("push Ev");
     17982    IEMOP_MNEMONIC(push_Ev, "push Ev");
    1792917983
    1793017984    /* Registers are handled by a common worker. */
     
    1798418038    {
    1798518039        case 0:
    17986             IEMOP_MNEMONIC("inc Ev");
     18040            IEMOP_MNEMONIC(inc_Ev, "inc Ev");
    1798718041            return FNIEMOP_CALL_2(iemOpCommonUnaryEv, bRm, &g_iemAImpl_inc);
    1798818042        case 1:
    17989             IEMOP_MNEMONIC("dec Ev");
     18043            IEMOP_MNEMONIC(dec_Ev, "dec Ev");
    1799018044            return FNIEMOP_CALL_2(iemOpCommonUnaryEv, bRm, &g_iemAImpl_dec);
    1799118045        case 2:
     
    1800018054            return FNIEMOP_CALL_1(iemOp_Grp5_push_Ev, bRm);
    1800118055        case 7:
    18002             IEMOP_MNEMONIC("grp5-ud");
     18056            IEMOP_MNEMONIC(grp5_ud, "grp5-ud");
    1800318057            return IEMOP_RAISE_INVALID_OPCODE();
    1800418058    }
  • trunk/src/VBox/VMM/VMMAll/MMAll.cpp

    r62478 r64545  
    590590        TAG2STR(EM);
    591591
     592        TAG2STR(IEM);
     593
    592594        TAG2STR(IOM);
    593595        TAG2STR(IOM_STATS);
  • trunk/src/VBox/VMM/VMMR3/IEMR3.cpp

    r62478 r64545  
    2323#include <VBox/vmm/iem.h>
    2424#include <VBox/vmm/cpum.h>
     25#include <VBox/vmm/mm.h>
    2526#include "IEMInternal.h"
    2627#include <VBox/vmm/vm.h>
     
    114115                        "Data TLB physical revision",               "/IEM/CPU%u/DataTlb-PhysRev", idCpu);
    115116
     117#ifdef VBOX_WITH_STATISTICS
     118        /* Allocate instruction statistics and register them. */
     119        pVCpu->iem.s.pStatsR3 = (PIEMINSTRSTATS)MMR3HeapAllocZ(pVM, MM_TAG_IEM, sizeof(IEMINSTRSTATS));
     120        AssertLogRelReturn(pVCpu->iem.s.pStatsR3, VERR_NO_MEMORY);
     121        int rc = MMHyperAlloc(pVM, sizeof(IEMINSTRSTATS), sizeof(uint64_t), MM_TAG_IEM, (void **)&pVCpu->iem.s.pStatsCCR3);
     122        AssertLogRelRCReturn(rc, rc);
     123        pVCpu->iem.s.pStatsR0 = MMHyperR3ToR0(pVM, pVCpu->iem.s.pStatsCCR3);
     124        pVCpu->iem.s.pStatsRC = MMHyperR3ToR0(pVM, pVCpu->iem.s.pStatsCCR3);
     125# define IEM_DO_INSTR_STAT(a_Name, a_szDesc) \
     126            STAMR3RegisterF(pVM, &pVCpu->iem.s.pStatsCCR3->a_Name, STAMTYPE_U32_RESET, STAMVISIBILITY_USED, \
     127                            STAMUNIT_COUNT, a_szDesc, "/IEM/CPU%u/r0-rc-Instr/" #a_Name, idCpu); \
     128            STAMR3RegisterF(pVM, &pVCpu->iem.s.pStatsR3->a_Name, STAMTYPE_U32_RESET, STAMVISIBILITY_USED, \
     129                            STAMUNIT_COUNT, a_szDesc, "/IEM/CPU%u/r3-Instr/" #a_Name, idCpu);
     130# include "IEMInstructionStatisticsTmpl.h"
     131# undef IEM_DO_INSTR_STAT
     132#endif
    116133
    117134        /*
     
    169186{
    170187    for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++)
     188    {
    171189        pVM->aCpus[idCpu].iem.s.pCtxRC = VM_RC_ADDR(pVM, pVM->aCpus[idCpu].iem.s.pCtxR3);
     190        if (pVM->aCpus[idCpu].iem.s.pStatsRC)
     191            pVM->aCpus[idCpu].iem.s.pStatsRC = MMHyperR3ToRC(pVM, pVM->aCpus[idCpu].iem.s.pStatsCCR3);
     192    }
    172193}
    173194
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r62478 r64545  
    6767//#define IEM_WITH_CODE_TLB// - work in progress
    6868
     69
     70#ifndef IN_TSTVMSTRUCT
     71/** Instruction statistics.   */
     72typedef struct IEMINSTRSTATS
     73{
     74# define IEM_DO_INSTR_STAT(a_Name, a_szDesc) uint32_t a_Name;
     75# include "IEMInstructionStatisticsTmpl.h"
     76# undef IEM_DO_INSTR_STAT
     77} IEMINSTRSTATS;
     78#else
     79struct IEMINSTRSTATS;
     80typedef struct IEMINSTRSTATS IEMINSTRSTATS;
     81#endif
     82/** Pointer to IEM instruction statistics. */
     83typedef IEMINSTRSTATS *PIEMINSTRSTATS;
    6984
    7085/** Finish and move to types.h */
     
    681696    /** Pointer to the CPU context - raw-mode context. */
    682697    RCPTRTYPE(PCPUMCTX)     pCtxRC;
    683     /** Alignment padding. */
    684     RTRCPTR                 uAlignment9;
     698
     699    /** Pointer to instruction statistics for raw-mode context (same as R0). */
     700    RCPTRTYPE(PIEMINSTRSTATS) pStatsRC;
     701    /** Pointer to instruction statistics for ring-0 context (same as RC). */
     702    R0PTRTYPE(PIEMINSTRSTATS) pStatsR0;
     703    /** Pointer to instruction statistics for non-ring-3 code. */
     704    R3PTRTYPE(PIEMINSTRSTATS) pStatsCCR3;
     705    /** Pointer to instruction statistics for ring-3 context. */
     706    R3PTRTYPE(PIEMINSTRSTATS) pStatsR3;
    685707
    686708#ifdef IEM_VERIFICATION_MODE_FULL
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r62478 r64545  
    2727#include <VBox/err.h>
    2828#include <VBox/log.h>
     29#define IN_TSTVMSTRUCT 1
    2930#include "../include/IEMInternal.h"
    3031#include <VBox/vmm/vm.h>
     
    126127#define IEMOP_RAISE_INVALID_OPCODE()                        VERR_TRPM_ACTIVE_TRAP
    127128#define IEMOP_RAISE_INVALID_LOCK_PREFIX()                   VERR_TRPM_ACTIVE_TRAP
    128 #define IEMOP_MNEMONIC(a_szMnemonic)                        do { } while (0)
    129 #define IEMOP_MNEMONIC2(a_szMnemonic, a_szOps)              do { } while (0)
     129#define IEMOP_MNEMONIC(a_Stats, a_szMnemonic)               do { } while (0)
    130130#define IEMOP_BITCH_ABOUT_STUB()                            do { } while (0)
    131131#define FNIEMOP_STUB(a_Name) \
  • trunk/src/VBox/VMM/testcase/tstVMStructDTrace.cpp

    r60542 r64545  
    2222*   Header Files                                                                                                                 *
    2323*********************************************************************************************************************************/
     24#define IN_TSTVMSTRUCT 1
    2425#define IN_TSTVMSTRUCTGC 1
    2526#include <VBox/vmm/cfgm.h>
  • trunk/src/VBox/VMM/testcase/tstVMStructRC.cpp

    r60542 r64545  
    5050*   Header Files                                                                                                                 *
    5151*********************************************************************************************************************************/
     52#define IN_TSTVMSTRUCT 1
    5253#define IN_TSTVMSTRUCTGC 1
    5354#include <VBox/vmm/cfgm.h>
  • trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp

    r64115 r64545  
    2222*   Header Files                                                                                                                 *
    2323*********************************************************************************************************************************/
     24#define IN_TSTVMSTRUCT 1
    2425#include <VBox/vmm/cfgm.h>
    2526#include <VBox/vmm/cpum.h>
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette