VirtualBox

Changeset 100833 in vbox


Ignore:
Timestamp:
Aug 9, 2023 2:40:15 PM (16 months ago)
Author:
vboxsync
Message:

VMM/IEM: More conversion from IEM_MC_MEM_MAP to IEM_MC_MEM_MAP_XXX. bugref:10369

File:
1 edited

Legend:

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

    r100832 r100833  
    46164616 * iemOp_Grp1_Ev_Ib.
    46174617 */
    4618 #define IEMOP_BODY_BINARY_Ev_Ib(a_fnNormalU16, a_fnNormalU32, a_fnNormalU64, a_fRW) \
     4618#define IEMOP_BODY_BINARY_Ev_Ib_RW(a_fnNormalU16, a_fnNormalU32, a_fnNormalU64) \
    46194619    if (IEM_IS_MODRM_REG_MODE(bRm)) \
    46204620    { \
     
    46534653                IEM_MC_REF_EFLAGS(pEFlags); \
    46544654                IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU32, pu32Dst, u32Src, pEFlags); \
    4655                 if ((a_fRW) != IEM_ACCESS_DATA_R) \
    4656                     IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst); \
     4655                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst); \
    46574656                \
    46584657                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     
    46924691                case IEMMODE_16BIT: \
    46934692                { \
    4694                     IEM_MC_BEGIN(3, 2); \
     4693                    IEM_MC_BEGIN(3, 3); \
    46954694                    IEM_MC_ARG(uint16_t *,      pu16Dst,                    0); \
    46964695                    IEM_MC_ARG(uint16_t,        u16Src,                     1); \
    46974696                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags,            2); \
    46984697                    IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \
     4698                    IEM_MC_LOCAL(uint8_t, bUnmapInfo); \
    46994699                    \
    47004700                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); \
     
    47024702                    IEM_MC_ASSIGN(u16Src, (int8_t)u8Imm); \
    47034703                    IEMOP_HLP_DONE_DECODING(); \
    4704                     IEM_MC_MEM_MAP(pu16Dst, a_fRW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \
     4704                    IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    47054705                    IEM_MC_FETCH_EFLAGS(EFlags); \
    47064706                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU16, pu16Dst, u16Src, pEFlags); \
    47074707                    \
    4708                     IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, a_fRW); \
     4708                    IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo); \
    47094709                    IEM_MC_COMMIT_EFLAGS(EFlags); \
    47104710                    IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     
    47154715                case IEMMODE_32BIT: \
    47164716                { \
    4717                     IEM_MC_BEGIN(3, 2); \
     4717                    IEM_MC_BEGIN(3, 3); \
    47184718                    IEM_MC_ARG(uint32_t *,      pu32Dst,                    0); \
    47194719                    IEM_MC_ARG(uint32_t,        u32Src,                     1); \
    47204720                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags,            2); \
    47214721                    IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \
     4722                    IEM_MC_LOCAL(uint8_t, bUnmapInfo); \
    47224723                    \
    47234724                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); \
     
    47254726                    IEM_MC_ASSIGN(u32Src, (int8_t)u8Imm); \
    47264727                    IEMOP_HLP_DONE_DECODING(); \
    4727                     IEM_MC_MEM_MAP(pu32Dst, a_fRW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \
     4728                    IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    47284729                    IEM_MC_FETCH_EFLAGS(EFlags); \
    47294730                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU32, pu32Dst, u32Src, pEFlags); \
    47304731                    \
    4731                     IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, a_fRW); \
     4732                    IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo); \
    47324733                    IEM_MC_COMMIT_EFLAGS(EFlags); \
    47334734                    IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     
    47384739                case IEMMODE_64BIT: \
    47394740                { \
    4740                     IEM_MC_BEGIN(3, 2); \
     4741                    IEM_MC_BEGIN(3, 3); \
    47414742                    IEM_MC_ARG(uint64_t *,      pu64Dst,                    0); \
    47424743                    IEM_MC_ARG(uint64_t,        u64Src,                     1); \
    47434744                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags,            2); \
    47444745                    IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \
     4746                    IEM_MC_LOCAL(uint8_t, bUnmapInfo); \
    47454747                    \
    47464748                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); \
     
    47484750                    IEM_MC_ASSIGN(u64Src, (int8_t)u8Imm); \
    47494751                    IEMOP_HLP_DONE_DECODING(); \
    4750                     IEM_MC_MEM_MAP(pu64Dst, a_fRW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \
     4752                    IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    47514753                    IEM_MC_FETCH_EFLAGS(EFlags); \
    47524754                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU64, pu64Dst, u64Src, pEFlags); \
    47534755                    \
    4754                     IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, a_fRW); \
     4756                    IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo); \
    47554757                    IEM_MC_COMMIT_EFLAGS(EFlags); \
    47564758                    IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     
    47654767        { \
    47664768            (void)0
    4767 
    4768 #define IEMOP_BODY_BINARY_Ev_Ib_NO_LOCK() \
    4769             IEMOP_HLP_DONE_DECODING(); \
    4770             IEMOP_RAISE_INVALID_LOCK_PREFIX_RET(); \
    4771         } \
    4772     } \
    4773     (void)0
    4774 
     4769/* Separate macro to work around parsing issue in IEMAllInstPython.py */
    47754770#define IEMOP_BODY_BINARY_Ev_Ib_LOCKED(a_fnLockedU16, a_fnLockedU32, a_fnLockedU64) \
    47764771            switch (pVCpu->iem.s.enmEffOpSize) \
     
    47784773                case IEMMODE_16BIT: \
    47794774                { \
    4780                     IEM_MC_BEGIN(3, 2); \
     4775                    IEM_MC_BEGIN(3, 3); \
    47814776                    IEM_MC_ARG(uint16_t *,      pu16Dst,                    0); \
    47824777                    IEM_MC_ARG(uint16_t,        u16Src,                     1); \
    47834778                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags,            2); \
    47844779                    IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \
     4780                    IEM_MC_LOCAL(uint8_t, bUnmapInfo); \
    47854781                    \
    47864782                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); \
     
    47884784                    IEM_MC_ASSIGN(u16Src, (int8_t)u8Imm); \
    47894785                    IEMOP_HLP_DONE_DECODING(); \
    4790                     IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \
     4786                    IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    47914787                    IEM_MC_FETCH_EFLAGS(EFlags); \
    47924788                    IEM_MC_CALL_VOID_AIMPL_3(a_fnLockedU16, pu16Dst, u16Src, pEFlags); \
    47934789                    \
    4794                     IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW); \
     4790                    IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo); \
    47954791                    IEM_MC_COMMIT_EFLAGS(EFlags); \
    47964792                    IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     
    48014797                case IEMMODE_32BIT: \
    48024798                { \
    4803                     IEM_MC_BEGIN(3, 2); \
     4799                    IEM_MC_BEGIN(3, 3); \
    48044800                    IEM_MC_ARG(uint32_t *,      pu32Dst,                    0); \
    48054801                    IEM_MC_ARG(uint32_t,        u32Src,                     1); \
    48064802                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags,            2); \
    48074803                    IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \
     4804                    IEM_MC_LOCAL(uint8_t, bUnmapInfo); \
    48084805                    \
    48094806                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); \
     
    48114808                    IEM_MC_ASSIGN(u32Src, (int8_t)u8Imm); \
    48124809                    IEMOP_HLP_DONE_DECODING(); \
    4813                     IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \
     4810                    IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    48144811                    IEM_MC_FETCH_EFLAGS(EFlags); \
    48154812                    IEM_MC_CALL_VOID_AIMPL_3(a_fnLockedU32, pu32Dst, u32Src, pEFlags); \
    48164813                    \
    4817                     IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW); \
     4814                    IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo); \
    48184815                    IEM_MC_COMMIT_EFLAGS(EFlags); \
    48194816                    IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     
    48244821                case IEMMODE_64BIT: \
    48254822                { \
    4826                     IEM_MC_BEGIN(3, 2); \
     4823                    IEM_MC_BEGIN(3, 3); \
    48274824                    IEM_MC_ARG(uint64_t *,      pu64Dst,                    0); \
    48284825                    IEM_MC_ARG(uint64_t,        u64Src,                     1); \
    48294826                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags,            2); \
    48304827                    IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \
     4828                    IEM_MC_LOCAL(uint8_t, bUnmapInfo); \
    48314829                    \
    48324830                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); \
     
    48344832                    IEM_MC_ASSIGN(u64Src, (int8_t)u8Imm); \
    48354833                    IEMOP_HLP_DONE_DECODING(); \
    4836                     IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \
     4834                    IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    48374835                    IEM_MC_FETCH_EFLAGS(EFlags); \
    48384836                    IEM_MC_CALL_VOID_AIMPL_3(a_fnLockedU64, pu64Dst, u64Src, pEFlags); \
    48394837                    \
    4840                     IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW); \
     4838                    IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo); \
    48414839                    IEM_MC_COMMIT_EFLAGS(EFlags); \
    48424840                    IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     
    48514849    (void)0
    48524850
     4851/* read-only variant */
     4852#define IEMOP_BODY_BINARY_Ev_Ib_RO(a_fnNormalU16, a_fnNormalU32, a_fnNormalU64) \
     4853    if (IEM_IS_MODRM_REG_MODE(bRm)) \
     4854    { \
     4855        /* \
     4856         * Register target \
     4857         */ \
     4858        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); \
     4859        switch (pVCpu->iem.s.enmEffOpSize) \
     4860        { \
     4861            case IEMMODE_16BIT: \
     4862            { \
     4863                IEM_MC_BEGIN(3, 0); \
     4864                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     4865                IEM_MC_ARG(uint16_t *,      pu16Dst,                    0); \
     4866                IEM_MC_ARG_CONST(uint16_t,  u16Src, /*=*/ (int8_t)u8Imm,1); \
     4867                IEM_MC_ARG(uint32_t *,      pEFlags,                    2); \
     4868                \
     4869                IEM_MC_REF_GREG_U16(pu16Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     4870                IEM_MC_REF_EFLAGS(pEFlags); \
     4871                IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU16, pu16Dst, u16Src, pEFlags); \
     4872                \
     4873                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     4874                IEM_MC_END(); \
     4875                break; \
     4876            } \
     4877            \
     4878            case IEMMODE_32BIT: \
     4879            { \
     4880                IEM_MC_BEGIN(3, 0); \
     4881                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     4882                IEM_MC_ARG(uint32_t *,      pu32Dst,                    0); \
     4883                IEM_MC_ARG_CONST(uint32_t,  u32Src, /*=*/ (int8_t)u8Imm,1); \
     4884                IEM_MC_ARG(uint32_t *,      pEFlags,                    2); \
     4885                \
     4886                IEM_MC_REF_GREG_U32(pu32Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     4887                IEM_MC_REF_EFLAGS(pEFlags); \
     4888                IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU32, pu32Dst, u32Src, pEFlags); \
     4889                \
     4890                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     4891                IEM_MC_END(); \
     4892                break; \
     4893            } \
     4894            \
     4895            case IEMMODE_64BIT: \
     4896            { \
     4897                IEM_MC_BEGIN(3, 0); \
     4898                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     4899                IEM_MC_ARG(uint64_t *,      pu64Dst,                    0); \
     4900                IEM_MC_ARG_CONST(uint64_t,  u64Src, /*=*/ (int8_t)u8Imm,1); \
     4901                IEM_MC_ARG(uint32_t *,      pEFlags,                    2); \
     4902                \
     4903                IEM_MC_REF_GREG_U64(pu64Dst, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     4904                IEM_MC_REF_EFLAGS(pEFlags); \
     4905                IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU64, pu64Dst, u64Src, pEFlags); \
     4906                \
     4907                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     4908                IEM_MC_END(); \
     4909                break; \
     4910            } \
     4911            \
     4912            IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
     4913        } \
     4914    } \
     4915    else \
     4916    { \
     4917        /* \
     4918         * Memory target. \
     4919         */ \
     4920        if (!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK)) \
     4921        { \
     4922            switch (pVCpu->iem.s.enmEffOpSize) \
     4923            { \
     4924                case IEMMODE_16BIT: \
     4925                { \
     4926                    IEM_MC_BEGIN(3, 3); \
     4927                    IEM_MC_ARG(uint16_t const *, pu16Dst,                   0); \
     4928                    IEM_MC_ARG(uint16_t,         u16Src,                    1); \
     4929                    IEM_MC_ARG_LOCAL_EFLAGS(     pEFlags, EFlags,           2); \
     4930                    IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \
     4931                    IEM_MC_LOCAL(uint8_t, bUnmapInfo); \
     4932                    \
     4933                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); \
     4934                    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); \
     4935                    IEM_MC_ASSIGN(u16Src, (int8_t)u8Imm); \
     4936                    IEMOP_HLP_DONE_DECODING(); \
     4937                    IEM_MC_MEM_MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     4938                    IEM_MC_FETCH_EFLAGS(EFlags); \
     4939                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU16, pu16Dst, u16Src, pEFlags); \
     4940                    \
     4941                    IEM_MC_MEM_COMMIT_AND_UNMAP_RO(pu16Dst, bUnmapInfo); \
     4942                    IEM_MC_COMMIT_EFLAGS(EFlags); \
     4943                    IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     4944                    IEM_MC_END(); \
     4945                    break; \
     4946                } \
     4947                \
     4948                case IEMMODE_32BIT: \
     4949                { \
     4950                    IEM_MC_BEGIN(3, 3); \
     4951                    IEM_MC_ARG(uint32_t const *, pu32Dst,                   0); \
     4952                    IEM_MC_ARG(uint32_t,         u32Src,                    1); \
     4953                    IEM_MC_ARG_LOCAL_EFLAGS(     pEFlags, EFlags,           2); \
     4954                    IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \
     4955                    IEM_MC_LOCAL(uint8_t, bUnmapInfo); \
     4956                    \
     4957                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); \
     4958                    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); \
     4959                    IEM_MC_ASSIGN(u32Src, (int8_t)u8Imm); \
     4960                    IEMOP_HLP_DONE_DECODING(); \
     4961                    IEM_MC_MEM_MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     4962                    IEM_MC_FETCH_EFLAGS(EFlags); \
     4963                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU32, pu32Dst, u32Src, pEFlags); \
     4964                    \
     4965                    IEM_MC_MEM_COMMIT_AND_UNMAP_RO(pu32Dst, bUnmapInfo); \
     4966                    IEM_MC_COMMIT_EFLAGS(EFlags); \
     4967                    IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     4968                    IEM_MC_END(); \
     4969                    break; \
     4970                } \
     4971                \
     4972                case IEMMODE_64BIT: \
     4973                { \
     4974                    IEM_MC_BEGIN(3, 3); \
     4975                    IEM_MC_ARG(uint64_t const *, pu64Dst,                   0); \
     4976                    IEM_MC_ARG(uint64_t,         u64Src,                    1); \
     4977                    IEM_MC_ARG_LOCAL_EFLAGS(     pEFlags, EFlags,           2); \
     4978                    IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \
     4979                    IEM_MC_LOCAL(uint8_t, bUnmapInfo); \
     4980                    \
     4981                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); \
     4982                    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); \
     4983                    IEM_MC_ASSIGN(u64Src, (int8_t)u8Imm); \
     4984                    IEMOP_HLP_DONE_DECODING(); \
     4985                    IEM_MC_MEM_MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
     4986                    IEM_MC_FETCH_EFLAGS(EFlags); \
     4987                    IEM_MC_CALL_VOID_AIMPL_3(a_fnNormalU64, pu64Dst, u64Src, pEFlags); \
     4988                    \
     4989                    IEM_MC_MEM_COMMIT_AND_UNMAP_RO(pu64Dst, bUnmapInfo); \
     4990                    IEM_MC_COMMIT_EFLAGS(EFlags); \
     4991                    IEM_MC_ADVANCE_RIP_AND_FINISH(); \
     4992                    IEM_MC_END(); \
     4993                    break; \
     4994                } \
     4995                \
     4996                IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
     4997            } \
     4998        } \
     4999        else \
     5000        { \
     5001            IEMOP_HLP_DONE_DECODING(); \
     5002            IEMOP_RAISE_INVALID_LOCK_PREFIX_RET(); \
     5003        } \
     5004    } \
     5005    (void)0
     5006
    48535007/**
    48545008 * @opmaps      grp1_83
     
    48585012{
    48595013    IEMOP_MNEMONIC(add_Ev_Ib, "add Ev,Ib");
    4860     IEMOP_BODY_BINARY_Ev_Ib(       iemAImpl_add_u16,        iemAImpl_add_u32,        iemAImpl_add_u64, IEM_ACCESS_DATA_RW);
     5014    IEMOP_BODY_BINARY_Ev_Ib_RW(    iemAImpl_add_u16,        iemAImpl_add_u32,        iemAImpl_add_u64);
    48615015    IEMOP_BODY_BINARY_Ev_Ib_LOCKED(iemAImpl_add_u16_locked, iemAImpl_add_u32_locked, iemAImpl_add_u64_locked);
    48625016}
     
    48705024{
    48715025    IEMOP_MNEMONIC(or_Ev_Ib, "or Ev,Ib");
    4872     IEMOP_BODY_BINARY_Ev_Ib(       iemAImpl_or_u16,        iemAImpl_or_u32,        iemAImpl_or_u64, IEM_ACCESS_DATA_RW);
     5026    IEMOP_BODY_BINARY_Ev_Ib_RW(    iemAImpl_or_u16,        iemAImpl_or_u32,        iemAImpl_or_u64);
    48735027    IEMOP_BODY_BINARY_Ev_Ib_LOCKED(iemAImpl_or_u16_locked, iemAImpl_or_u32_locked, iemAImpl_or_u64_locked);
    48745028}
     
    48825036{
    48835037    IEMOP_MNEMONIC(adc_Ev_Ib, "adc Ev,Ib");
    4884     IEMOP_BODY_BINARY_Ev_Ib(       iemAImpl_adc_u16,        iemAImpl_adc_u32,        iemAImpl_adc_u64, IEM_ACCESS_DATA_RW);
     5038    IEMOP_BODY_BINARY_Ev_Ib_RW(    iemAImpl_adc_u16,        iemAImpl_adc_u32,        iemAImpl_adc_u64);
    48855039    IEMOP_BODY_BINARY_Ev_Ib_LOCKED(iemAImpl_adc_u16_locked, iemAImpl_adc_u32_locked, iemAImpl_adc_u64_locked);
    48865040}
     
    48945048{
    48955049    IEMOP_MNEMONIC(sbb_Ev_Ib, "sbb Ev,Ib");
    4896     IEMOP_BODY_BINARY_Ev_Ib(       iemAImpl_sbb_u16,        iemAImpl_sbb_u32,        iemAImpl_sbb_u64, IEM_ACCESS_DATA_RW);
     5050    IEMOP_BODY_BINARY_Ev_Ib_RW(    iemAImpl_sbb_u16,        iemAImpl_sbb_u32,        iemAImpl_sbb_u64);
    48975051    IEMOP_BODY_BINARY_Ev_Ib_LOCKED(iemAImpl_sbb_u16_locked, iemAImpl_sbb_u32_locked, iemAImpl_sbb_u64_locked);
    48985052}
     
    49065060{
    49075061    IEMOP_MNEMONIC(and_Ev_Ib, "and Ev,Ib");
    4908     IEMOP_BODY_BINARY_Ev_Ib(       iemAImpl_and_u16,        iemAImpl_and_u32,        iemAImpl_and_u64, IEM_ACCESS_DATA_RW);
     5062    IEMOP_BODY_BINARY_Ev_Ib_RW(    iemAImpl_and_u16,        iemAImpl_and_u32,        iemAImpl_and_u64);
    49095063    IEMOP_BODY_BINARY_Ev_Ib_LOCKED(iemAImpl_and_u16_locked, iemAImpl_and_u32_locked, iemAImpl_and_u64_locked);
    49105064}
     
    49185072{
    49195073    IEMOP_MNEMONIC(sub_Ev_Ib, "sub Ev,Ib");
    4920     IEMOP_BODY_BINARY_Ev_Ib(       iemAImpl_sub_u16,        iemAImpl_sub_u32,        iemAImpl_sub_u64, IEM_ACCESS_DATA_RW);
     5074    IEMOP_BODY_BINARY_Ev_Ib_RW(    iemAImpl_sub_u16,        iemAImpl_sub_u32,        iemAImpl_sub_u64);
    49215075    IEMOP_BODY_BINARY_Ev_Ib_LOCKED(iemAImpl_sub_u16_locked, iemAImpl_sub_u32_locked, iemAImpl_sub_u64_locked);
    49225076}
     
    49305084{
    49315085    IEMOP_MNEMONIC(xor_Ev_Ib, "xor Ev,Ib");
    4932     IEMOP_BODY_BINARY_Ev_Ib(       iemAImpl_xor_u16,        iemAImpl_xor_u32,        iemAImpl_xor_u64, IEM_ACCESS_DATA_RW);
     5086    IEMOP_BODY_BINARY_Ev_Ib_RW(    iemAImpl_xor_u16,        iemAImpl_xor_u32,        iemAImpl_xor_u64);
    49335087    IEMOP_BODY_BINARY_Ev_Ib_LOCKED(iemAImpl_xor_u16_locked, iemAImpl_xor_u32_locked, iemAImpl_xor_u64_locked);
    49345088}
     
    49425096{
    49435097    IEMOP_MNEMONIC(cmp_Ev_Ib, "cmp Ev,Ib");
    4944     IEMOP_BODY_BINARY_Ev_Ib(       iemAImpl_cmp_u16,        iemAImpl_cmp_u32,        iemAImpl_cmp_u64, IEM_ACCESS_DATA_R);
    4945     IEMOP_BODY_BINARY_Ev_Ib_NO_LOCK();
     5098    IEMOP_BODY_BINARY_Ev_Ib_RO(iemAImpl_cmp_u16, iemAImpl_cmp_u32, iemAImpl_cmp_u64);
    49465099}
    49475100
Note: See TracChangeset for help on using the changeset viewer.

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