VirtualBox

Changeset 37003 in vbox


Ignore:
Timestamp:
May 8, 2011 5:36:08 PM (14 years ago)
Author:
vboxsync
Message:

IEM: More cleanup and checks.

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

Legend:

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

    r37002 r37003  
    903903 * Fetches the next opcode byte, returns automatically on failure.
    904904 *
    905  * @param   pIemCpu             The IEM state.
    906905 * @param   a_pu8               Where to return the opcode byte.
    907  */
    908 #define IEM_OPCODE_GET_NEXT_BYTE(a_pIemCpu, a_pu8) \
     906 * @remark Implicitly references pIemCpu.
     907 */
     908#define IEM_OPCODE_GET_NEXT_U8(a_pu8) \
    909909    do \
    910910    { \
    911         VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextU8((a_pIemCpu), (a_pu8)); \
     911        VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextU8(pIemCpu, (a_pu8)); \
    912912        if (rcStrict2 != VINF_SUCCESS) \
    913913            return rcStrict2; \
     
    931931 * on failure.
    932932 *
    933  * @param   pIemCpu             The IEM state.
    934933 * @param   pi8                 Where to return the signed byte.
    935  */
    936 #define IEM_OPCODE_GET_NEXT_S8(a_pIemCpu, a_pi8) \
     934 * @remark Implicitly references pIemCpu.
     935 */
     936#define IEM_OPCODE_GET_NEXT_S8(a_pi8) \
    937937    do \
    938938    { \
    939         VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextS8((a_pIemCpu), (a_pi8)); \
     939        VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextS8(pIemCpu, (a_pi8)); \
    940940        if (rcStrict2 != VINF_SUCCESS) \
    941941            return rcStrict2; \
     
    967967 * a word, returning automatically on failure.
    968968 *
    969  * @param   pIemCpu             The IEM state.
    970969 * @param   pu16                Where to return the word.
    971  */
    972 #define IEM_OPCODE_GET_NEXT_S8_SX_U16(a_pIemCpu, a_pu16) \
     970 * @remark Implicitly references pIemCpu.
     971 */
     972#define IEM_OPCODE_GET_NEXT_S8_SX_U16(a_pu16) \
    973973    do \
    974974    { \
    975         VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextS8SxU16((a_pIemCpu), (a_pu16)); \
     975        VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextS8SxU16(pIemCpu, (a_pu16)); \
    976976        if (rcStrict2 != VINF_SUCCESS) \
    977977            return rcStrict2; \
     
    10001000 * Fetches the next opcode word, returns automatically on failure.
    10011001 *
    1002  * @param   pIemCpu             The IEM state.
    10031002 * @param   a_pu16              Where to return the opcode word.
    1004  */
    1005 #define IEM_OPCODE_GET_NEXT_U16(a_pIemCpu, a_pu16) \
     1003 * @remark Implicitly references pIemCpu.
     1004 */
     1005#define IEM_OPCODE_GET_NEXT_U16(a_pu16) \
    10061006    do \
    10071007    { \
    1008         VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextU16((a_pIemCpu), (a_pu16)); \
     1008        VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextU16(pIemCpu, (a_pu16)); \
    10091009        if (rcStrict2 != VINF_SUCCESS) \
    10101010            return rcStrict2; \
     
    10641064 * Fetches the next opcode dword, returns automatically on failure.
    10651065 *
    1066  * @param   pIemCpu             The IEM state.
    10671066 * @param   a_u32               Where to return the opcode dword.
    1068  */
    1069 #define IEM_OPCODE_GET_NEXT_U32(a_pIemCpu, a_pu32) \
     1067 * @remark Implicitly references pIemCpu.
     1068 */
     1069#define IEM_OPCODE_GET_NEXT_U32(a_pu32) \
    10701070    do \
    10711071    { \
    1072         VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextU32((a_pIemCpu), (a_pu32)); \
     1072        VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextU32(pIemCpu, (a_pu32)); \
    10731073        if (rcStrict2 != VINF_SUCCESS) \
    10741074            return rcStrict2; \
     
    11301130 * returns automatically on failure.
    11311131 *
    1132  * @param   pIemCpu             The IEM state.
    11331132 * @param   a_pu64              Where to return the opcode quad word.
    1134  */
    1135 #define IEM_OPCODE_GET_NEXT_S32_SX_U64(a_pIemCpu, a_pu64) \
     1133 * @remark Implicitly references pIemCpu.
     1134 */
     1135#define IEM_OPCODE_GET_NEXT_S32_SX_U64(a_pu64) \
    11361136    do \
    11371137    { \
    1138         VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextS32SxU64((a_pIemCpu), (a_pu64)); \
     1138        VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextS32SxU64(pIemCpu, (a_pu64)); \
    11391139        if (rcStrict2 != VINF_SUCCESS) \
    11401140            return rcStrict2; \
     
    11681168
    11691169/**
    1170  * Fetches the next opcode word, returns automatically on failure.
    1171  *
    1172  * @param   pIemCpu             The IEM state.
    1173  * @param   a_pu64              Where to return the opcode qword.
    1174  */
    1175 #define IEM_OPCODE_GET_NEXT_U64(a_pIemCpu, a_pu64) \
     1170 * Fetches the next opcode quad word, returns automatically on failure.
     1171 *
     1172 * @param   a_pu64              Where to return the opcode quad word.
     1173 * @remark Implicitly references pIemCpu.
     1174 */
     1175#define IEM_OPCODE_GET_NEXT_U64(a_pu64) \
    11761176    do \
    11771177    { \
    1178         VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextU64((a_pIemCpu), (a_pu64)); \
     1178        VBOXSTRICTRC rcStrict2 = iemOpcodeGetNextU64(pIemCpu, (a_pu64)); \
    11791179        if (rcStrict2 != VINF_SUCCESS) \
    11801180            return rcStrict2; \
     
    37223722
    37233723#define IEM_MC_ASSIGN(a_VarOrArg, a_CVariableOrConst)   (a_VarOrArg) = (a_CVariableOrConst)
     3724#define IEM_MC_ASSIGN_TO_SMALLER                        IEM_MC_ASSIGN
    37243725
    37253726#define IEM_MC_FETCH_GREG_U8(a_u8Dst, a_iGReg)          (a_u8Dst)  = iemGRegFetchU8(pIemCpu, (a_iGReg))
     
    37523753#define IEM_MC_STORE_GREG_U32(a_iGReg, a_u32Value)      *(uint64_t *)iemGRegRef(pIemCpu, (a_iGReg)) = (uint32_t)(a_u32Value) /* clear high bits. */
    37533754#define IEM_MC_STORE_GREG_U64(a_iGReg, a_u64Value)      *(uint64_t *)iemGRegRef(pIemCpu, (a_iGReg)) = (a_u64Value)
     3755#define IEM_MC_STORE_GREG_U8_CONST                      IEM_MC_STORE_GREG_U8
     3756#define IEM_MC_STORE_GREG_U16_CONST                     IEM_MC_STORE_GREG_U16
     3757#define IEM_MC_STORE_GREG_U32_CONST                     IEM_MC_STORE_GREG_U32
     3758#define IEM_MC_STORE_GREG_U64_CONST                     IEM_MC_STORE_GREG_U64
    37543759#define IEM_MC_CLEAR_HIGH_GREG_U64(a_iGReg)             *(uint64_t *)iemGRegRef(pIemCpu, (a_iGReg)) &= UINT32_MAX
    37553760
     
    41754180            /* Handle the disp16 form with no registers first. */
    41764181            if ((bRm & (X86_MODRM_MOD_MASK | X86_MODRM_RM_MASK)) == 6)
    4177                 IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16EffAddr);
     4182                IEM_OPCODE_GET_NEXT_U16(&u16EffAddr);
    41784183            else
    41794184            {
     
    41814186                switch ((bRm >> X86_MODRM_MOD_SHIFT) & X86_MODRM_MOD_SMASK)
    41824187                {
    4183                     case 0:  u16EffAddr = 0;                                       break;
    4184                     case 1:  IEM_OPCODE_GET_NEXT_S8_SX_U16(pIemCpu, &u16EffAddr); break;
    4185                     case 2:  IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16EffAddr);        break;
     4188                    case 0:  u16EffAddr = 0;                             break;
     4189                    case 1:  IEM_OPCODE_GET_NEXT_S8_SX_U16(&u16EffAddr); break;
     4190                    case 2:  IEM_OPCODE_GET_NEXT_U16(&u16EffAddr);       break;
    41864191                    default: AssertFailedReturn(VERR_INTERNAL_ERROR_2); /* (caller checked for these) */
    41874192                }
     
    42124217            /* Handle the disp32 form with no registers first. */
    42134218            if ((bRm & (X86_MODRM_MOD_MASK | X86_MODRM_RM_MASK)) == 5)
    4214                 IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32EffAddr);
     4219                IEM_OPCODE_GET_NEXT_U32(&u32EffAddr);
    42154220            else
    42164221            {
     
    42244229                    case 4: /* SIB */
    42254230                    {
    4226                         uint8_t bSib; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bSib);
     4231                        uint8_t bSib; IEM_OPCODE_GET_NEXT_U8(&bSib);
    42274232
    42284233                        /* Get the index and scale it. */
     
    42584263                                {
    42594264                                    uint32_t u32Disp;
    4260                                     IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Disp);
     4265                                    IEM_OPCODE_GET_NEXT_U32(&u32Disp);
    42614266                                    u32EffAddr += u32Disp;
    42624267                                }
     
    42814286                    case 1:
    42824287                    {
    4283                         int8_t i8Disp;
    4284                         IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Disp);
     4288                        int8_t i8Disp; IEM_OPCODE_GET_NEXT_S8(&i8Disp);
    42854289                        u32EffAddr += i8Disp;
    42864290                        break;
     
    42884292                    case 2:
    42894293                    {
    4290                         uint32_t u32Disp;
    4291                         IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Disp);
     4294                        uint32_t u32Disp; IEM_OPCODE_GET_NEXT_U32(&u32Disp);
    42924295                        u32EffAddr += u32Disp;
    42934296                        break;
     
    43164319            if ((bRm & (X86_MODRM_MOD_MASK | X86_MODRM_RM_MASK)) == 5)
    43174320            {
    4318                 IEM_OPCODE_GET_NEXT_S32_SX_U64(pIemCpu, &u64EffAddr);
     4321                IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64EffAddr);
    43194322                u64EffAddr += pCtx->rip + pIemCpu->offOpcode;
    43204323            }
     
    43424345                    case 12:
    43434346                    {
    4344                         uint8_t bSib; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bSib);
     4347                        uint8_t bSib; IEM_OPCODE_GET_NEXT_U8(&bSib);
    43454348
    43464349                        /* Get the index and scale it. */
     
    43994402                                {
    44004403                                    uint32_t u32Disp;
    4401                                     IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Disp);
     4404                                    IEM_OPCODE_GET_NEXT_U32(&u32Disp);
    44024405                                    u64EffAddr += (int32_t)u32Disp;
    44034406                                }
     
    44174420                    {
    44184421                        int8_t i8Disp;
    4419                         IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Disp);
     4422                        IEM_OPCODE_GET_NEXT_S8(&i8Disp);
    44204423                        u64EffAddr += i8Disp;
    44214424                        break;
     
    44244427                    {
    44254428                        uint32_t u32Disp;
    4426                         IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Disp);
     4429                        IEM_OPCODE_GET_NEXT_U32(&u32Disp);
    44274430                        u64EffAddr += (int32_t)u32Disp;
    44284431                        break;
     
    52395242        return rcStrict;
    52405243
    5241     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5244    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    52425245    rcStrict = FNIEMOP_CALL(g_apfnOneByteMap[b]);
    52435246    if (rcStrict == VINF_SUCCESS)
     
    52565259        if (rcStrict == VINF_SUCCESS)
    52575260        {
    5258             b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5261            b; IEM_OPCODE_GET_NEXT_U8(&b);
    52595262            rcStrict = FNIEMOP_CALL(g_apfnOneByteMap[b]);
    52605263            if (rcStrict == VINF_SUCCESS)
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h

    r37002 r37003  
    3131FNIEMOP_DEF_1(iemOpHlpBinaryOperator_rm_r8, PCIEMOPBINSIZES, pImpl)
    3232{
    33     uint8_t bRm;
    34     IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     33    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    3534
    3635    /*
     
    9493FNIEMOP_DEF_1(iemOpHlpBinaryOperator_rm_rv, PCIEMOPBINSIZES, pImpl)
    9594{
    96     uint8_t bRm;
    97     IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     95    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    9896
    9997    /*
     
    241239FNIEMOP_DEF_1(iemOpHlpBinaryOperator_r8_rm, PCIEMOPBINSIZES, pImpl)
    242240{
    243     uint8_t bRm;
    244     IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     241    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    245242    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    246243
     
    295292FNIEMOP_DEF_1(iemOpHlpBinaryOperator_rv_rm, PCIEMOPBINSIZES, pImpl)
    296293{
    297     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     294    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    298295    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    299296
     
    422419FNIEMOP_DEF_1(iemOpHlpBinaryOperator_AL_Ib, PCIEMOPBINSIZES, pImpl)
    423420{
    424     uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     421    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    425422    IEMOP_HLP_NO_LOCK_PREFIX();
    426423
     
    452449        case IEMMODE_16BIT:
    453450        {
    454             uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     451            uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    455452            IEMOP_HLP_NO_LOCK_PREFIX();
    456453
     
    471468        case IEMMODE_32BIT:
    472469        {
    473             uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     470            uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    474471            IEMOP_HLP_NO_LOCK_PREFIX();
    475472
     
    490487        case IEMMODE_64BIT:
    491488        {
    492             uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(pIemCpu, &u64Imm);
     489            uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    493490            IEMOP_HLP_NO_LOCK_PREFIX();
    494491
     
    607604FNIEMOP_DEF(iemOp_Grp6)
    608605{
    609     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     606    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    610607    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    611608    {
     
    844841FNIEMOP_DEF(iemOp_Grp7)
    845842{
    846     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     843    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    847844    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    848845    {
     
    971968    /** @todo Verify that the the invalid lock sequence exception (\#UD) is raised
    972969     *        before the privilege level violation (\#GP). */
    973     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     970    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    974971    uint8_t iCrReg = ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg;
    975972    if (pIemCpu->fPrefixes & IEM_OP_PRF_LOCK)
     
    996993{
    997994    IEMOP_MNEMONIC("mov Rd,Dd");
    998     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     995    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    999996    IEMOP_HLP_NO_LOCK_PREFIX();
    1000997    if (pIemCpu->fPrefixes & IEM_OP_PRF_REX_R)
     
    10181015    /** @todo Verify that the the invalid lock sequence exception (\#UD) is raised
    10191016     *        before the privilege level violation (\#GP). */
    1020     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     1017    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    10211018    uint8_t iCrReg = ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg;
    10221019    if (pIemCpu->fPrefixes & IEM_OP_PRF_LOCK)
     
    10431040{
    10441041    IEMOP_MNEMONIC("mov Dd,Rd");
    1045     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     1042    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    10461043    IEMOP_HLP_NO_LOCK_PREFIX();
    10471044    if (pIemCpu->fPrefixes & IEM_OP_PRF_REX_R)
     
    11261123 */
    11271124#define CMOV_X(a_Cnd) \
    1128     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm); \
     1125    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); \
    11291126    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT)) \
    11301127    { \
     
    20072004{
    20082005    IEMOP_MNEMONIC("seto Eb");
    2009     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2006    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    20102007    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    20112008
     
    20182015        IEM_MC_BEGIN(0, 0);
    20192016        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
    2020             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2017            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    20212018        } IEM_MC_ELSE() {
    2022             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2019            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    20232020        } IEM_MC_ENDIF();
    20242021        IEM_MC_ADVANCE_RIP();
     
    20472044{
    20482045    IEMOP_MNEMONIC("setno Eb");
    2049     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2046    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    20502047    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    20512048
     
    20582055        IEM_MC_BEGIN(0, 0);
    20592056        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
    2060             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2057            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    20612058        } IEM_MC_ELSE() {
    2062             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2059            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    20632060        } IEM_MC_ENDIF();
    20642061        IEM_MC_ADVANCE_RIP();
     
    20872084{
    20882085    IEMOP_MNEMONIC("setc Eb");
    2089     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2086    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    20902087    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    20912088
     
    20982095        IEM_MC_BEGIN(0, 0);
    20992096        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
    2100             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2097            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    21012098        } IEM_MC_ELSE() {
    2102             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2099            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    21032100        } IEM_MC_ENDIF();
    21042101        IEM_MC_ADVANCE_RIP();
     
    21272124{
    21282125    IEMOP_MNEMONIC("setnc Eb");
    2129     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2126    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    21302127    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    21312128
     
    21382135        IEM_MC_BEGIN(0, 0);
    21392136        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
    2140             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2137            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    21412138        } IEM_MC_ELSE() {
    2142             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2139            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    21432140        } IEM_MC_ENDIF();
    21442141        IEM_MC_ADVANCE_RIP();
     
    21672164{
    21682165    IEMOP_MNEMONIC("sete Eb");
    2169     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2166    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    21702167    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    21712168
     
    21782175        IEM_MC_BEGIN(0, 0);
    21792176        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
    2180             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2177            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    21812178        } IEM_MC_ELSE() {
    2182             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2179            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    21832180        } IEM_MC_ENDIF();
    21842181        IEM_MC_ADVANCE_RIP();
     
    22072204{
    22082205    IEMOP_MNEMONIC("setne Eb");
    2209     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2206    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    22102207    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    22112208
     
    22182215        IEM_MC_BEGIN(0, 0);
    22192216        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
    2220             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2217            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    22212218        } IEM_MC_ELSE() {
    2222             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2219            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    22232220        } IEM_MC_ENDIF();
    22242221        IEM_MC_ADVANCE_RIP();
     
    22472244{
    22482245    IEMOP_MNEMONIC("setbe Eb");
    2249     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2246    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    22502247    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    22512248
     
    22582255        IEM_MC_BEGIN(0, 0);
    22592256        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
    2260             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2257            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    22612258        } IEM_MC_ELSE() {
    2262             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2259            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    22632260        } IEM_MC_ENDIF();
    22642261        IEM_MC_ADVANCE_RIP();
     
    22872284{
    22882285    IEMOP_MNEMONIC("setnbe Eb");
    2289     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2286    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    22902287    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    22912288
     
    22982295        IEM_MC_BEGIN(0, 0);
    22992296        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
    2300             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2297            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    23012298        } IEM_MC_ELSE() {
    2302             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2299            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    23032300        } IEM_MC_ENDIF();
    23042301        IEM_MC_ADVANCE_RIP();
     
    23272324{
    23282325    IEMOP_MNEMONIC("sets Eb");
    2329     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2326    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    23302327    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    23312328
     
    23382335        IEM_MC_BEGIN(0, 0);
    23392336        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
    2340             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2337            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    23412338        } IEM_MC_ELSE() {
    2342             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2339            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    23432340        } IEM_MC_ENDIF();
    23442341        IEM_MC_ADVANCE_RIP();
     
    23672364{
    23682365    IEMOP_MNEMONIC("setns Eb");
    2369     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2366    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    23702367    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    23712368
     
    23782375        IEM_MC_BEGIN(0, 0);
    23792376        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
    2380             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2377            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    23812378        } IEM_MC_ELSE() {
    2382             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2379            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    23832380        } IEM_MC_ENDIF();
    23842381        IEM_MC_ADVANCE_RIP();
     
    24072404{
    24082405    IEMOP_MNEMONIC("setnp Eb");
    2409     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2406    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    24102407    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    24112408
     
    24182415        IEM_MC_BEGIN(0, 0);
    24192416        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
    2420             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2417            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    24212418        } IEM_MC_ELSE() {
    2422             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2419            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    24232420        } IEM_MC_ENDIF();
    24242421        IEM_MC_ADVANCE_RIP();
     
    24472444{
    24482445    IEMOP_MNEMONIC("setnp Eb");
    2449     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2446    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    24502447    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    24512448
     
    24582455        IEM_MC_BEGIN(0, 0);
    24592456        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
    2460             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2457            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    24612458        } IEM_MC_ELSE() {
    2462             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2459            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    24632460        } IEM_MC_ENDIF();
    24642461        IEM_MC_ADVANCE_RIP();
     
    24872484{
    24882485    IEMOP_MNEMONIC("setl Eb");
    2489     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2486    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    24902487    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    24912488
     
    24982495        IEM_MC_BEGIN(0, 0);
    24992496        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
    2500             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2497            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    25012498        } IEM_MC_ELSE() {
    2502             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2499            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    25032500        } IEM_MC_ENDIF();
    25042501        IEM_MC_ADVANCE_RIP();
     
    25272524{
    25282525    IEMOP_MNEMONIC("setnl Eb");
    2529     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2526    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    25302527    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    25312528
     
    25382535        IEM_MC_BEGIN(0, 0);
    25392536        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
    2540             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2537            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    25412538        } IEM_MC_ELSE() {
    2542             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2539            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    25432540        } IEM_MC_ENDIF();
    25442541        IEM_MC_ADVANCE_RIP();
     
    25672564{
    25682565    IEMOP_MNEMONIC("setle Eb");
    2569     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2566    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    25702567    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    25712568
     
    25782575        IEM_MC_BEGIN(0, 0);
    25792576        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
    2580             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2577            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    25812578        } IEM_MC_ELSE() {
    2582             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2579            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    25832580        } IEM_MC_ENDIF();
    25842581        IEM_MC_ADVANCE_RIP();
     
    26072604{
    26082605    IEMOP_MNEMONIC("setnle Eb");
    2609     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2606    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    26102607    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo too early? */
    26112608
     
    26182615        IEM_MC_BEGIN(0, 0);
    26192616        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
    2620             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
     2617            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 0);
    26212618        } IEM_MC_ELSE() {
    2622             IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
     2619            IEM_MC_STORE_GREG_U8_CONST((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, 1);
    26232620        } IEM_MC_ENDIF();
    26242621        IEM_MC_ADVANCE_RIP();
     
    27202717FNIEMOP_DEF_1(iemOpCommonBit_Ev_Gv, PCIEMOPBINSIZES, pImpl)
    27212718{
    2722     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2719    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    27232720    IEMOP_HLP_NO_LOCK_PREFIX();
    27242721    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_OF | X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
     
    29032900FNIEMOP_DEF_1(iemOpCommonShldShrd_Ib, PCIEMOPSHIFTDBLSIZES, pImpl)
    29042901{
    2905     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     2902    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    29062903    IEMOP_HLP_NO_LOCK_PREFIX();
    29072904    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF | X86_EFL_OF);
     
    29092906    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    29102907    {
    2911         uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     2908        uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    29122909        IEMOP_HLP_NO_LOCK_PREFIX();
    29132910
     
    29802977
    29812978                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    2982                 uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     2979                uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    29832980                IEM_MC_ASSIGN(cShiftArg, cShift);
    29842981                IEM_MC_FETCH_GREG_U16(u16Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg);
     
    30022999
    30033000                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    3004                 uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     3001                uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    30053002                IEM_MC_ASSIGN(cShiftArg, cShift);
    30063003                IEM_MC_FETCH_GREG_U32(u32Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg);
     
    30243021
    30253022                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    3026                 uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     3023                uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    30273024                IEM_MC_ASSIGN(cShiftArg, cShift);
    30283025                IEM_MC_FETCH_GREG_U64(u64Src, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg);
     
    30483045FNIEMOP_DEF_1(iemOpCommonShldShrd_CL, PCIEMOPSHIFTDBLSIZES, pImpl)
    30493046{
    3050     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     3047    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    30513048    IEMOP_HLP_NO_LOCK_PREFIX();
    30523049    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_AF | X86_EFL_OF);
     
    32713268FNIEMOP_DEF_1(iemOpCommonLoadSRegAndGreg, uint8_t, iSegReg)
    32723269{
    3273     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     3270    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    32743271    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    32753272
     
    33683365    IEMOP_MNEMONIC("movzx Gv,Eb");
    33693366
    3370     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     3367    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    33713368    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    33723369
     
    34593456    IEMOP_MNEMONIC("movzx Gv,Ew");
    34603457
    3461     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     3458    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    34623459    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    34633460
     
    35303527FNIEMOP_DEF(iemOp_Grp8)
    35313528{
    3532     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     3529    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    35333530    PCIEMOPBINSIZES pImpl;
    35343531    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     
    35483545    {
    35493546        /* register destination. */
    3550         uint8_t u8Bit; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Bit);
     3547        uint8_t u8Bit; IEM_OPCODE_GET_NEXT_U8(&u8Bit);
    35513548        IEMOP_HLP_NO_LOCK_PREFIX();
    35523549
     
    36223619
    36233620                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    3624                 uint8_t u8Bit; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Bit);
     3621                uint8_t u8Bit; IEM_OPCODE_GET_NEXT_U8(&u8Bit);
    36253622                IEM_MC_ASSIGN(u16Src, u8Bit & 0x0f);
    36263623                IEM_MC_FETCH_EFLAGS(EFlags);
     
    36453642
    36463643                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    3647                 uint8_t u8Bit; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Bit);
     3644                uint8_t u8Bit; IEM_OPCODE_GET_NEXT_U8(&u8Bit);
    36483645                IEM_MC_ASSIGN(u32Src, u8Bit & 0x1f);
    36493646                IEM_MC_FETCH_EFLAGS(EFlags);
     
    36683665
    36693666                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    3670                 uint8_t u8Bit; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Bit);
     3667                uint8_t u8Bit; IEM_OPCODE_GET_NEXT_U8(&u8Bit);
    36713668                IEM_MC_ASSIGN(u64Src, u8Bit & 0x3f);
    36723669                IEM_MC_FETCH_EFLAGS(EFlags);
     
    37213718    IEMOP_MNEMONIC("movsx Gv,Eb");
    37223719
    3723     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     3720    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    37243721    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    37253722
     
    38123809    IEMOP_MNEMONIC("movsx Gv,Ew");
    38133810
    3814     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     3811    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    38153812    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    38163813
     
    42964293FNIEMOP_DEF(iemOp_2byteEscape)
    42974294{
    4298     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4295    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    42994296    return FNIEMOP_CALL(g_apfnTwoByteMap[b]);
    43004297}
     
    44924489    pIemCpu->iEffSeg    = X86_SREG_ES;
    44934490
    4494     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4491    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    44954492    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    44964493}
     
    45554552    pIemCpu->iEffSeg    = X86_SREG_CS;
    45564553
    4557     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4554    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    45584555    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    45594556}
     
    46244621    pIemCpu->iEffSeg    = X86_SREG_SS;
    46254622
    4626     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4623    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    46274624    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    46284625}
     
    46894686    pIemCpu->iEffSeg    = X86_SREG_DS;
    46904687
    4691     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4688    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    46924689    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    46934690}
     
    47524749        pIemCpu->fPrefixes |= IEM_OP_PRF_REX;
    47534750
    4754         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4751        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    47554752        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    47564753    }
     
    47724769        pIemCpu->uRexB     = 1 << 3;
    47734770
    4774         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4771        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    47754772        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    47764773    }
     
    47924789        pIemCpu->uRexIndex = 1 << 3;
    47934790
    4794         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4791        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    47954792        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    47964793    }
     
    48144811        pIemCpu->uRexIndex = 1 << 3;
    48154812
    4816         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4813        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    48174814        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    48184815    }
     
    48344831        pIemCpu->uRexReg   = 1 << 3;
    48354832
    4836         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4833        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    48374834        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    48384835    }
     
    48554852        pIemCpu->uRexB     = 1 << 3;
    48564853
    4857         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4854        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    48584855        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    48594856    }
     
    48764873        pIemCpu->uRexIndex = 1 << 3;
    48774874
    4878         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4875        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    48794876        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    48804877    }
     
    48984895        pIemCpu->uRexIndex = 1 << 3;
    48994896
    4900         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4897        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    49014898        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    49024899    }
     
    49184915        iemRecalEffOpSize(pIemCpu);
    49194916
    4920         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4917        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    49214918        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    49224919    }
     
    49394936        iemRecalEffOpSize(pIemCpu);
    49404937
    4941         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4938        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    49424939        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    49434940    }
     
    49604957        iemRecalEffOpSize(pIemCpu);
    49614958
    4962         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4959        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    49634960        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    49644961    }
     
    49824979        iemRecalEffOpSize(pIemCpu);
    49834980
    4984         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     4981        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    49854982        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    49864983    }
     
    50035000        iemRecalEffOpSize(pIemCpu);
    50045001
    5005         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5002        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    50065003        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    50075004    }
     
    50255022        iemRecalEffOpSize(pIemCpu);
    50265023
    5027         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5024        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    50285025        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    50295026    }
     
    50475044        iemRecalEffOpSize(pIemCpu);
    50485045
    5049         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5046        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    50505047        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    50515048    }
     
    50705067        iemRecalEffOpSize(pIemCpu);
    50715068
    5072         uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5069        uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    50735070        return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    50745071    }
     
    53415338    pIemCpu->iEffSeg    = X86_SREG_FS;
    53425339
    5343     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5340    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    53445341    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    53455342}
     
    53525349    pIemCpu->iEffSeg    = X86_SREG_GS;
    53535350
    5354     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5351    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    53555352    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    53565353}
     
    53635360    iemRecalEffOpSize(pIemCpu);
    53645361
    5365     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5362    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    53665363    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    53675364}
     
    53805377    }
    53815378
    5382     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     5379    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    53835380    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    53845381}
     
    53945391        case IEMMODE_16BIT:
    53955392        {
    5396             uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     5393            uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    53975394            IEMOP_HLP_NO_LOCK_PREFIX();
    53985395            IEM_MC_BEGIN(0,0);
     
    54055402        case IEMMODE_32BIT:
    54065403        {
    5407             uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     5404            uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    54085405            IEMOP_HLP_NO_LOCK_PREFIX();
    54095406            IEM_MC_BEGIN(0,0);
     
    54165413        case IEMMODE_64BIT:
    54175414        {
    5418             uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(pIemCpu, &u64Imm);
     5415            uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    54195416            IEMOP_HLP_NO_LOCK_PREFIX();
    54205417            IEM_MC_BEGIN(0,0);
     
    54345431{
    54355432    IEMOP_MNEMONIC("imul Gv,Ev,Iz"); /* Gv = Ev * Iz; */
    5436     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     5433    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    54375434    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
    54385435
     
    54415438        case IEMMODE_16BIT:
    54425439        {
    5443             uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     5440            uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    54445441            IEMOP_HLP_NO_LOCK_PREFIX();
    54455442            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    54865483        case IEMMODE_32BIT:
    54875484        {
    5488             uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     5485            uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    54895486            IEMOP_HLP_NO_LOCK_PREFIX();
    54905487            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    55315528        case IEMMODE_64BIT:
    55325529        {
    5533             uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(pIemCpu, &u64Imm);
     5530            uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    55345531            IEMOP_HLP_NO_LOCK_PREFIX();
    55355532            if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    55825579{
    55835580    IEMOP_MNEMONIC("push Ib");
    5584     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     5581    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    55855582    IEMOP_HLP_NO_LOCK_PREFIX();
    55865583    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    56095606{
    56105607    IEMOP_MNEMONIC("imul Gv,Ev,Ib"); /* Gv = Ev * Iz; */
    5611     uint8_t bRm;   IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
    5612     uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     5608    uint8_t bRm;   IEM_OPCODE_GET_NEXT_U8(&bRm);
     5609    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    56135610    IEMOP_HLP_NO_LOCK_PREFIX();
    56145611    IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
     
    59275924{
    59285925    IEMOP_MNEMONIC("jo  Jb");
    5929     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     5926    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    59305927    IEMOP_HLP_NO_LOCK_PREFIX();
    59315928    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    59465943{
    59475944    IEMOP_MNEMONIC("jno Jb");
    5948     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     5945    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    59495946    IEMOP_HLP_NO_LOCK_PREFIX();
    59505947    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    59645961{
    59655962    IEMOP_MNEMONIC("jc/jnae Jb");
    5966     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     5963    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    59675964    IEMOP_HLP_NO_LOCK_PREFIX();
    59685965    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    59835980{
    59845981    IEMOP_MNEMONIC("jnc/jnb Jb");
    5985     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     5982    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    59865983    IEMOP_HLP_NO_LOCK_PREFIX();
    59875984    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    60025999{
    60036000    IEMOP_MNEMONIC("je/jz   Jb");
    6004     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6001    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    60056002    IEMOP_HLP_NO_LOCK_PREFIX();
    60066003    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    60216018{
    60226019    IEMOP_MNEMONIC("jne/jnz Jb");
    6023     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6020    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    60246021    IEMOP_HLP_NO_LOCK_PREFIX();
    60256022    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    60406037{
    60416038    IEMOP_MNEMONIC("jbe/jna Jb");
    6042     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6039    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    60436040    IEMOP_HLP_NO_LOCK_PREFIX();
    60446041    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    60596056{
    60606057    IEMOP_MNEMONIC("jnbe/ja Jb");
    6061     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6058    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    60626059    IEMOP_HLP_NO_LOCK_PREFIX();
    60636060    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    60786075{
    60796076    IEMOP_MNEMONIC("js  Jb");
    6080     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6077    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    60816078    IEMOP_HLP_NO_LOCK_PREFIX();
    60826079    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    60976094{
    60986095    IEMOP_MNEMONIC("jns Jb");
    6099     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6096    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    61006097    IEMOP_HLP_NO_LOCK_PREFIX();
    61016098    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    61166113{
    61176114    IEMOP_MNEMONIC("jp  Jb");
    6118     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6115    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    61196116    IEMOP_HLP_NO_LOCK_PREFIX();
    61206117    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    61356132{
    61366133    IEMOP_MNEMONIC("jnp Jb");
    6137     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6134    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    61386135    IEMOP_HLP_NO_LOCK_PREFIX();
    61396136    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    61546151{
    61556152    IEMOP_MNEMONIC("jl/jnge Jb");
    6156     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6153    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    61576154    IEMOP_HLP_NO_LOCK_PREFIX();
    61586155    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    61736170{
    61746171    IEMOP_MNEMONIC("jnl/jge Jb");
    6175     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6172    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    61766173    IEMOP_HLP_NO_LOCK_PREFIX();
    61776174    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    61926189{
    61936190    IEMOP_MNEMONIC("jle/jng Jb");
    6194     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6191    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    61956192    IEMOP_HLP_NO_LOCK_PREFIX();
    61966193    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    62116208{
    62126209    IEMOP_MNEMONIC("jnle/jg Jb");
    6213     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     6210    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    62146211    IEMOP_HLP_NO_LOCK_PREFIX();
    62156212    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    62296226FNIEMOP_DEF(iemOp_Grp1_Eb_Ib_80)
    62306227{
    6231     uint8_t bRm;   IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     6228    uint8_t bRm;   IEM_OPCODE_GET_NEXT_U8(&bRm);
    62326229    IEMOP_MNEMONIC2("add\0or\0\0adc\0sbb\0and\0sub\0xor\0cmp" + ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)*4, "Eb,Ib");
    62336230    PCIEMOPBINSIZES pImpl = g_apIemImplGrp1[(bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK];
     
    62366233    {
    62376234        /* register target */
    6238         uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     6235        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    62396236        IEMOP_HLP_NO_LOCK_PREFIX();
    62406237        IEM_MC_BEGIN(3, 0);
     
    62676264
    62686265        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    6269         uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     6266        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    62706267        IEM_MC_ARG_CONST(uint8_t,   u8Src, /*=*/ u8Imm,     1);
    62716268
     
    62896286FNIEMOP_DEF(iemOp_Grp1_Ev_Iz)
    62906287{
    6291     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     6288    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    62926289    IEMOP_MNEMONIC2("add\0or\0\0adc\0sbb\0and\0sub\0xor\0cmp" + ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)*4, "Ev,Iz");
    62936290    PCIEMOPBINSIZES pImpl = g_apIemImplGrp1[(bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK];
     
    63006297            {
    63016298                /* register target */
    6302                 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     6299                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    63036300                IEMOP_HLP_NO_LOCK_PREFIX();
    63046301                IEM_MC_BEGIN(3, 0);
     
    63326329
    63336330                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    6334                 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     6331                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    63356332                IEM_MC_ASSIGN(u16Src, u16Imm);
    63366333                IEM_MC_MEM_MAP(pu16Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    63546351            {
    63556352                /* register target */
    6356                 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     6353                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    63576354                IEMOP_HLP_NO_LOCK_PREFIX();
    63586355                IEM_MC_BEGIN(3, 0);
     
    63866383
    63876384                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    6388                 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     6385                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    63896386                IEM_MC_ASSIGN(u32Src, u32Imm);
    63906387                IEM_MC_MEM_MAP(pu32Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    64086405            {
    64096406                /* register target */
    6410                 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(pIemCpu, &u64Imm);
     6407                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    64116408                IEMOP_HLP_NO_LOCK_PREFIX();
    64126409                IEM_MC_BEGIN(3, 0);
     
    64406437
    64416438                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    6442                 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(pIemCpu, &u64Imm);
     6439                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    64436440                IEM_MC_ASSIGN(u64Src, u64Imm);
    64446441                IEM_MC_MEM_MAP(pu64Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    64726469FNIEMOP_DEF(iemOp_Grp1_Ev_Ib)
    64736470{
    6474     uint8_t bRm;   IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     6471    uint8_t bRm;   IEM_OPCODE_GET_NEXT_U8(&bRm);
    64756472    IEMOP_MNEMONIC2("add\0or\0\0adc\0sbb\0and\0sub\0xor\0cmp" + ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)*4, "Ev,Ib");
    64766473    PCIEMOPBINSIZES pImpl = g_apIemImplGrp1[(bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK];
     
    64826479         */
    64836480        IEMOP_HLP_NO_LOCK_PREFIX();
    6484         uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     6481        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    64856482        switch (pIemCpu->enmEffOpSize)
    64866483        {
     
    65596556
    65606557                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    6561                 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     6558                uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    65626559                IEM_MC_ASSIGN(u16Src, (int8_t)u8Imm);
    65636560                IEM_MC_MEM_MAP(pu16Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    65846581
    65856582                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    6586                 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     6583                uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    65876584                IEM_MC_ASSIGN(u32Src, (int8_t)u8Imm);
    65886585                IEM_MC_MEM_MAP(pu32Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    66096606
    66106607                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    6611                 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     6608                uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    66126609                IEM_MC_ASSIGN(u64Src, (int8_t)u8Imm);
    66136610                IEM_MC_MEM_MAP(pu64Dst, fAccess, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    66536650FNIEMOP_DEF(iemOp_xchg_Eb_Gb)
    66546651{
    6655     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     6652    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    66566653    IEMOP_MNEMONIC("xchg Eb,Gb");
    66576654
     
    67026699{
    67036700    IEMOP_MNEMONIC("xchg Ev,Gv");
    6704     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     6701    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    67056702
    67066703    /*
     
    68256822
    68266823    uint8_t bRm;
    6827     IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     6824    IEM_OPCODE_GET_NEXT_U8(&bRm);
    68286825    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    68296826
     
    68646861    IEMOP_MNEMONIC("mov Ev,Gv");
    68656862
    6866     uint8_t bRm;
    6867     IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     6863    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    68686864    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    68696865
     
    69536949    IEMOP_MNEMONIC("mov Gb,Eb");
    69546950
    6955     uint8_t bRm;
    6956     IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     6951    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    69576952    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    69586953
     
    69926987    IEMOP_MNEMONIC("mov Gv,Ev");
    69936988
    6994     uint8_t bRm;
    6995     IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     6989    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    69966990    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    69976991
     
    70817075    IEMOP_MNEMONIC("mov Ev,Sw");
    70827076
    7083     uint8_t bRm;
    7084     IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     7077    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    70857078    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    70867079
     
    71577150{
    71587151    IEMOP_MNEMONIC("lea Gv,M");
    7159     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     7152    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    71607153    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    71617154    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
     
    71657158    {
    71667159        case IEMMODE_16BIT:
    7167             IEM_MC_BEGIN(0, 1);
    7168             IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     7160            IEM_MC_BEGIN(0, 2);
     7161            IEM_MC_LOCAL(RTGCPTR,  GCPtrEffSrc);
     7162            IEM_MC_LOCAL(uint16_t, u16Cast);
    71697163            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm);
    7170             IEM_MC_STORE_GREG_U16(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, GCPtrEffSrc);
     7164            IEM_MC_ASSIGN_TO_SMALLER(u16Cast, GCPtrEffSrc);
     7165            IEM_MC_STORE_GREG_U16(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u16Cast);
    71717166            IEM_MC_ADVANCE_RIP();
    71727167            IEM_MC_END();
     
    71747169
    71757170        case IEMMODE_32BIT:
    7176             IEM_MC_BEGIN(0, 1);
     7171            IEM_MC_BEGIN(0, 2);
    71777172            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     7173            IEM_MC_LOCAL(uint32_t, u32Cast);
    71787174            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm);
    7179             IEM_MC_STORE_GREG_U32(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, GCPtrEffSrc);
     7175            IEM_MC_ASSIGN_TO_SMALLER(u32Cast, GCPtrEffSrc);
     7176            IEM_MC_STORE_GREG_U32(((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pIemCpu->uRexReg, u32Cast);
    71807177            IEM_MC_ADVANCE_RIP();
    71817178            IEM_MC_END();
     
    72007197    IEMOP_MNEMONIC("mov Sw,Ev");
    72017198
    7202     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     7199    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    72037200    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    72047201
     
    72647261     *        now until tests show it's checked.. */
    72657262    IEMOP_MNEMONIC("pop Ev");
    7266     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     7263    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    72677264    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    72687265
     
    74967493            IEM_MC_BEGIN(0, 1);
    74977494            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 15) {
    7498                 IEM_MC_STORE_GREG_U16(X86_GREG_xDX, UINT16_C(0xffff));
     7495                IEM_MC_STORE_GREG_U16_CONST(X86_GREG_xDX, UINT16_C(0xffff));
    74997496            } IEM_MC_ELSE() {
    7500                 IEM_MC_STORE_GREG_U16(X86_GREG_xDX, 0);
     7497                IEM_MC_STORE_GREG_U16_CONST(X86_GREG_xDX, 0);
    75017498            } IEM_MC_ENDIF();
    75027499            IEM_MC_ADVANCE_RIP();
     
    75087505            IEM_MC_BEGIN(0, 1);
    75097506            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 31) {
    7510                 IEM_MC_STORE_GREG_U32(X86_GREG_xDX, UINT32_C(0xffffffff));
     7507                IEM_MC_STORE_GREG_U32_CONST(X86_GREG_xDX, UINT32_C(0xffffffff));
    75117508            } IEM_MC_ELSE() {
    7512                 IEM_MC_STORE_GREG_U32(X86_GREG_xDX, 0);
     7509                IEM_MC_STORE_GREG_U32_CONST(X86_GREG_xDX, 0);
    75137510            } IEM_MC_ENDIF();
    75147511            IEM_MC_ADVANCE_RIP();
     
    75207517            IEM_MC_BEGIN(0, 1);
    75217518            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 63) {
    7522                 IEM_MC_STORE_GREG_U64(X86_GREG_xDX, UINT64_C(0xffffffffffffffff));
     7519                IEM_MC_STORE_GREG_U64_CONST(X86_GREG_xDX, UINT64_C(0xffffffffffffffff));
    75237520            } IEM_MC_ELSE() {
    7524                 IEM_MC_STORE_GREG_U64(X86_GREG_xDX, 0);
     7521                IEM_MC_STORE_GREG_U64_CONST(X86_GREG_xDX, 0);
    75257522            } IEM_MC_ENDIF();
    75267523            IEM_MC_ADVANCE_RIP();
     
    75887585            case IEMMODE_16BIT: \
    75897586            { \
    7590                 uint16_t u16Off; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Off); \
     7587                uint16_t u16Off; IEM_OPCODE_GET_NEXT_U16(&u16Off); \
    75917588                (a_GCPtrMemOff) = u16Off; \
    75927589                break; \
     
    75947591            case IEMMODE_32BIT: \
    75957592            { \
    7596                 uint32_t u32Off; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Off); \
     7593                uint32_t u32Off; IEM_OPCODE_GET_NEXT_U32(&u32Off); \
    75977594                (a_GCPtrMemOff) = u32Off; \
    75987595                break; \
    75997596            } \
    76007597            case IEMMODE_64BIT: \
    7601                 IEM_OPCODE_GET_NEXT_U64(pIemCpu, &(a_GCPtrMemOff)); \
     7598                IEM_OPCODE_GET_NEXT_U64(&(a_GCPtrMemOff)); \
    76027599                break; \
    76037600            IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
     
    85578554FNIEMOP_DEF_1(iemOpCommonMov_r8_Ib, uint8_t, iReg)
    85588555{
    8559     uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     8556    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    85608557    IEMOP_HLP_NO_LOCK_PREFIX();
    85618558
     
    86438640        case IEMMODE_16BIT:
    86448641        {
    8645             uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     8642            uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    86468643            IEMOP_HLP_NO_LOCK_PREFIX();
    86478644
     
    86568653        case IEMMODE_32BIT:
    86578654        {
    8658             uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     8655            uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    86598656            IEMOP_HLP_NO_LOCK_PREFIX();
    86608657
     
    86688665        case IEMMODE_64BIT:
    86698666        {
    8670             uint64_t u64Imm; IEM_OPCODE_GET_NEXT_U64(pIemCpu, &u64Imm);
     8667            uint64_t u64Imm; IEM_OPCODE_GET_NEXT_U64(&u64Imm);
    86718668            IEMOP_HLP_NO_LOCK_PREFIX();
    86728669
     
    87518748FNIEMOP_DEF(iemOp_Grp2_Eb_Ib)
    87528749{
    8753     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     8750    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    87548751    PCIEMOPSHIFTSIZES pImpl;
    87558752    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     
    87708767    {
    87718768        /* register */
    8772         uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     8769        uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    87738770        IEMOP_HLP_NO_LOCK_PREFIX();
    87748771        IEM_MC_BEGIN(3, 0);
     
    87938790
    87948791        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    8795         uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     8792        uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    87968793        IEM_MC_ASSIGN(cShiftArg, cShift);
    87978794        IEM_MC_MEM_MAP(pu8Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    88118808FNIEMOP_DEF(iemOp_Grp2_Ev_Ib)
    88128809{
    8813     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     8810    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    88148811    PCIEMOPSHIFTSIZES pImpl;
    88158812    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     
    88308827    {
    88318828        /* register */
    8832         uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     8829        uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    88338830        IEMOP_HLP_NO_LOCK_PREFIX();
    88348831        switch (pIemCpu->enmEffOpSize)
     
    88878884
    88888885                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    8889                 uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     8886                uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    88908887                IEM_MC_ASSIGN(cShiftArg, cShift);
    88918888                IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    89078904
    89088905                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    8909                 uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     8906                uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    89108907                IEM_MC_ASSIGN(cShiftArg, cShift);
    89118908                IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    89278924
    89288925                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    8929                 uint8_t cShift; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &cShift);
     8926                uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    89308927                IEM_MC_ASSIGN(cShiftArg, cShift);
    89318928                IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    89498946{
    89508947    IEMOP_MNEMONIC("retn Iw");
    8951     uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     8948    uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    89528949    IEMOP_HLP_NO_LOCK_PREFIX();
    89538950    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    89858982FNIEMOP_DEF(iemOp_Grp11_Eb_Ib)
    89868983{
    8987     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     8984    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    89888985    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    89898986    if ((bRm & X86_MODRM_REG_MASK) != (0 << X86_MODRM_REG_SHIFT)) /* only mov Eb,Ib in this group. */
     
    89948991    {
    89958992        /* register access */
    8996         uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     8993        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    89978994        IEM_MC_BEGIN(0, 0);
    89988995        IEM_MC_STORE_GREG_U8((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, u8Imm);
     
    90069003        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    90079004        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    9008         uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     9005        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    90099006        IEM_MC_STORE_MEM_U8(pIemCpu->iEffSeg, GCPtrEffDst, u8Imm);
    90109007        IEM_MC_ADVANCE_RIP();
     
    90189015FNIEMOP_DEF(iemOp_Grp11_Ev_Iz)
    90199016{
    9020     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     9017    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    90219018    IEMOP_HLP_NO_LOCK_PREFIX(); /** @todo should probably not be raised until we've fetched all the opcode bytes? */
    90229019    if ((bRm & X86_MODRM_REG_MASK) != (0 << X86_MODRM_REG_SHIFT)) /* only mov Eb,Ib in this group. */
     
    90319028            case IEMMODE_16BIT:
    90329029                IEM_MC_BEGIN(0, 0);
    9033                 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     9030                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    90349031                IEM_MC_STORE_GREG_U16((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, u16Imm);
    90359032                IEM_MC_ADVANCE_RIP();
     
    90399036            case IEMMODE_32BIT:
    90409037                IEM_MC_BEGIN(0, 0);
    9041                 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     9038                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    90429039                IEM_MC_STORE_GREG_U32((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, u32Imm);
    90439040                IEM_MC_ADVANCE_RIP();
     
    90479044            case IEMMODE_64BIT:
    90489045                IEM_MC_BEGIN(0, 0);
    9049                 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_U64(pIemCpu, &u64Imm);
     9046                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_U64(&u64Imm);
    90509047                IEM_MC_STORE_GREG_U64((bRm & X86_MODRM_RM_MASK) | pIemCpu->uRexB, u64Imm);
    90519048                IEM_MC_ADVANCE_RIP();
     
    90659062                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    90669063                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    9067                 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     9064                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    90689065                IEM_MC_STORE_MEM_U16(pIemCpu->iEffSeg, GCPtrEffDst, u16Imm);
    90699066                IEM_MC_ADVANCE_RIP();
     
    90759072                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    90769073                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    9077                 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     9074                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    90789075                IEM_MC_STORE_MEM_U32(pIemCpu->iEffSeg, GCPtrEffDst, u32Imm);
    90799076                IEM_MC_ADVANCE_RIP();
     
    90859082                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    90869083                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    9087                 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_U64(pIemCpu, &u64Imm);
     9084                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_U64(&u64Imm);
    90889085                IEM_MC_STORE_MEM_U64(pIemCpu->iEffSeg, GCPtrEffDst, u64Imm);
    90899086                IEM_MC_ADVANCE_RIP();
     
    91179114{
    91189115    IEMOP_MNEMONIC("retf Iw");
    9119     uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     9116    uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    91209117    IEMOP_HLP_NO_LOCK_PREFIX();
    91219118    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    91449141FNIEMOP_DEF(iemOp_int_Ib)
    91459142{
    9146     uint8_t u8Int; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Int);
     9143    uint8_t u8Int; IEM_OPCODE_GET_NEXT_U8(&u8Int);
    91479144    return IEM_MC_DEFER_TO_CIMPL_2(iemCImpl_int, u8Int, false /*fIsBpInstr*/);
    91489145}
     
    91739170FNIEMOP_DEF(iemOp_Grp2_Eb_1)
    91749171{
    9175     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     9172    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    91769173    PCIEMOPSHIFTSIZES pImpl;
    91779174    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     
    92319228FNIEMOP_DEF(iemOp_Grp2_Ev_1)
    92329229{
    9233     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     9230    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    92349231    PCIEMOPSHIFTSIZES pImpl;
    92359232    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     
    93619358FNIEMOP_DEF(iemOp_Grp2_Eb_CL)
    93629359{
    9363     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     9360    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    93649361    PCIEMOPSHIFTSIZES pImpl;
    93659362    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     
    94209417FNIEMOP_DEF(iemOp_Grp2_Ev_CL)
    94219418{
    9422     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     9419    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    94239420    PCIEMOPSHIFTSIZES pImpl;
    94249421    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
     
    96879684FNIEMOP_DEF(iemOp_EscF3)
    96889685{
    9689     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     9686    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    96909687    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    96919688    {
     
    97439740FNIEMOP_DEF(iemOp_EscF6)
    97449741{
    9745     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     9742    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    97469743    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    97479744    {
     
    98059802FNIEMOP_DEF(iemOp_EscF7)
    98069803{
    9807     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     9804    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    98089805    if ((bRm & X86_MODRM_MOD_MASK) == (3 << X86_MODRM_MOD_SHIFT))
    98099806    {
     
    98379834{
    98389835    IEMOP_MNEMONIC("loopne Jb");
    9839     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     9836    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    98409837    IEMOP_HLP_NO_LOCK_PREFIX();
    98419838    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    98859882{
    98869883    IEMOP_MNEMONIC("loope Jb");
    9887     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     9884    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    98889885    IEMOP_HLP_NO_LOCK_PREFIX();
    98899886    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    99339930{
    99349931    IEMOP_MNEMONIC("loop Jb");
    9935     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     9932    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    99369933    IEMOP_HLP_NO_LOCK_PREFIX();
    99379934    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    99849981{
    99859982    IEMOP_MNEMONIC("jecxz Jb");
    9986     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     9983    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    99879984    IEMOP_HLP_NO_LOCK_PREFIX();
    99889985    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    1002910026{
    1003010027    IEMOP_MNEMONIC("in eAX,Ib");
    10031     uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     10028    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1003210029    IEMOP_HLP_NO_LOCK_PREFIX();
    1003310030    return IEM_MC_DEFER_TO_CIMPL_2(iemCImpl_in, u8Imm, 1);
     
    1003910036{
    1004010037    IEMOP_MNEMONIC("in eAX,Ib");
    10041     uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     10038    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1004210039    IEMOP_HLP_NO_LOCK_PREFIX();
    1004310040    return IEM_MC_DEFER_TO_CIMPL_2(iemCImpl_in, u8Imm, pIemCpu->enmEffOpSize == IEMMODE_16BIT ? 2 : 4);
     
    1004910046{
    1005010047    IEMOP_MNEMONIC("out Ib,AL");
    10051     uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     10048    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1005210049    IEMOP_HLP_NO_LOCK_PREFIX();
    1005310050    return IEM_MC_DEFER_TO_CIMPL_2(iemCImpl_out, u8Imm, 1);
     
    1005910056{
    1006010057    IEMOP_MNEMONIC("out Ib,eAX");
    10061     uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     10058    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1006210059    IEMOP_HLP_NO_LOCK_PREFIX();
    1006310060    return IEM_MC_DEFER_TO_CIMPL_2(iemCImpl_out, u8Imm, pIemCpu->enmEffOpSize == IEMMODE_16BIT ? 2 : 4);
     
    1007410071        case IEMMODE_16BIT:
    1007510072        {
    10076             uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     10073            uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    1007710074            return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_call_rel_16, (int32_t)u16Imm);
    1007810075        }
     
    1008010077        case IEMMODE_32BIT:
    1008110078        {
    10082             uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     10079            uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    1008310080            return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_call_rel_32, (int32_t)u32Imm);
    1008410081        }
     
    1008610083        case IEMMODE_64BIT:
    1008710084        {
    10088             uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(pIemCpu, &u64Imm);
     10085            uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    1008910086            return IEM_MC_DEFER_TO_CIMPL_1(iemCImpl_call_rel_64, u64Imm);
    1009010087        }
     
    1013510132    uint32_t offSeg;
    1013610133    if (pIemCpu->enmEffOpSize != IEMMODE_16BIT)
    10137         IEM_OPCODE_GET_NEXT_U32(pIemCpu, &offSeg);
     10134        IEM_OPCODE_GET_NEXT_U32(&offSeg);
    1013810135    else
    1013910136    {
    10140         uint16_t offSeg16; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &offSeg16);
     10137        uint16_t offSeg16; IEM_OPCODE_GET_NEXT_U16(&offSeg16);
    1014110138        offSeg = offSeg16;
    1014210139    }
    10143     uint16_t uSel;  IEM_OPCODE_GET_NEXT_U16(pIemCpu, &uSel);
     10140    uint16_t uSel;  IEM_OPCODE_GET_NEXT_U16(&uSel);
    1014410141    IEMOP_HLP_NO_LOCK_PREFIX();
    1014510142    return IEM_MC_DEFER_TO_CIMPL_3(iemCImpl_FarJmp, uSel, offSeg, pIemCpu->enmEffOpSize);
     
    1015110148{
    1015210149    IEMOP_MNEMONIC("jmp Jb");
    10153     int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(pIemCpu, &i8Imm);
     10150    int8_t i8Imm; IEM_OPCODE_GET_NEXT_S8(&i8Imm);
    1015410151    IEMOP_HLP_NO_LOCK_PREFIX();
    1015510152    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE();
     
    1020310200    pIemCpu->fPrefixes |= IEM_OP_PRF_LOCK;
    1020410201
    10205     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     10202    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    1020610203    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    1020710204}
     
    1021510212    pIemCpu->fPrefixes |= IEM_OP_PRF_REPNZ;
    1021610213
    10217     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     10214    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    1021810215    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    1021910216}
     
    1022710224    pIemCpu->fPrefixes |= IEM_OP_PRF_REPZ;
    1022810225
    10229     uint8_t b; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &b);
     10226    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
    1023010227    return FNIEMOP_CALL(g_apfnOneByteMap[b]);
    1023110228}
     
    1037810375    {
    1037910376        /* register access */
    10380         uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     10377        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1038110378        IEMOP_HLP_NO_LOCK_PREFIX();
    1038210379
     
    1040310400
    1040410401        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    10405         uint8_t u8Imm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &u8Imm);
     10402        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    1040610403        IEM_MC_ASSIGN(u8Src, u8Imm);
    1040710404        IEM_MC_MEM_MAP(pu8Dst, IEM_ACCESS_DATA_R, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    1043210429            case IEMMODE_16BIT:
    1043310430            {
    10434                 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     10431                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    1043510432                IEM_MC_BEGIN(3, 0);
    1043610433                IEM_MC_ARG(uint16_t *,      pu16Dst,                0);
     
    1044710444            case IEMMODE_32BIT:
    1044810445            {
    10449                 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     10446                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    1045010447                IEM_MC_BEGIN(3, 0);
    1045110448                IEM_MC_ARG(uint32_t *,      pu32Dst,                0);
     
    1046210459            case IEMMODE_64BIT:
    1046310460            {
    10464                 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(pIemCpu, &u64Imm);
     10461                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    1046510462                IEM_MC_BEGIN(3, 0);
    1046610463                IEM_MC_ARG(uint64_t *,      pu64Dst,                0);
     
    1049210489
    1049310490                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    10494                 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(pIemCpu, &u16Imm);
     10491                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    1049510492                IEM_MC_ASSIGN(u16Src, u16Imm);
    1049610493                IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_R, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    1051410511
    1051510512                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    10516                 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(pIemCpu, &u32Imm);
     10513                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    1051710514                IEM_MC_ASSIGN(u32Src, u32Imm);
    1051810515                IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_R, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    1053610533
    1053710534                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm);
    10538                 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(pIemCpu, &u64Imm);
     10535                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    1053910536                IEM_MC_ASSIGN(u64Src, u64Imm);
    1054010537                IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_R, pIemCpu->iEffSeg, GCPtrEffDst, 0 /*arg*/);
     
    1078210779FNIEMOP_DEF(iemOp_Grp3_Eb)
    1078310780{
    10784     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     10781    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    1078510782    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1078610783    {
     
    1079810795            IEMOP_MNEMONIC("mul Eb");
    1079910796            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
    10800             return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, &iemAImpl_mul_u8);
     10797            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, iemAImpl_mul_u8);
    1080110798        case 5:
    1080210799            IEMOP_MNEMONIC("imul Eb");
    1080310800            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF);
    10804             return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, &iemAImpl_imul_u8);
     10801            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, iemAImpl_imul_u8);
    1080510802        case 6:
    1080610803            IEMOP_MNEMONIC("div Eb");
    1080710804            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_OF | X86_EFL_CF);
    10808             return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, &iemAImpl_div_u8);
     10805            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, iemAImpl_div_u8);
    1080910806        case 7:
    1081010807            IEMOP_MNEMONIC("idiv Eb");
    1081110808            IEMOP_VERIFICATION_UNDEFINED_EFLAGS(X86_EFL_SF | X86_EFL_ZF | X86_EFL_AF | X86_EFL_PF | X86_EFL_OF | X86_EFL_CF);
    10812             return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, &iemAImpl_idiv_u8);
     10809            return FNIEMOP_CALL_2(iemOpCommonGrp3MulDivEb, bRm, iemAImpl_idiv_u8);
    1081310810        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    1081410811    }
     
    1081910816FNIEMOP_DEF(iemOp_Grp3_Ev)
    1082010817{
    10821     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     10818    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    1082210819    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1082310820    {
     
    1092510922FNIEMOP_DEF(iemOp_Grp4)
    1092610923{
    10927     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     10924    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    1092810925    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1092910926    {
     
    1129411291FNIEMOP_DEF(iemOp_Grp5)
    1129511292{
    11296     uint8_t bRm; IEM_OPCODE_GET_NEXT_BYTE(pIemCpu, &bRm);
     11293    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    1129711294    switch ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)
    1129811295    {
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r37002 r37003  
    3939
    4040#define CHK_TYPE(a_ExpectedType, a_Param) \
    41     do { a_ExpectedType *pCheckType = &(a_Param); } while (0)
     41    do { a_ExpectedType const * pCheckType = &(a_Param); } while (0)
    4242#define CHK_PTYPE(a_ExpectedType, a_Param) \
    4343    do { a_ExpectedType pCheckType = (a_Param); } while (0)
     
    5757#define IEM_NOT_REACHED_DEFAULT_CASE_RET()                  default: return VERR_INTERNAL_ERROR_4
    5858
    59 #define IEM_OPCODE_GET_NEXT_BYTE(a_pIemCpu, a_pu8)          do { *(a_pu8)  = g_bRandom; CHK_PTYPE(uint8_t  *, a_pu8);  } while (0)
    60 #define IEM_OPCODE_GET_NEXT_U16(a_pIemCpu, a_pu16)          do { *(a_pu16) = g_bRandom; CHK_PTYPE(uint16_t *, a_pu16); } while (0)
    61 #define IEM_OPCODE_GET_NEXT_U32(a_pIemCpu, a_pu32)          do { *(a_pu32) = g_bRandom; CHK_PTYPE(uint32_t *, a_pu32); } while (0)
    62 #define IEM_OPCODE_GET_NEXT_S32_SX_U64(a_pIemCpu, a_pu64)   do { *(a_pu64) = g_bRandom; CHK_PTYPE(uint64_t *, a_pu64); } while (0)
    63 #define IEM_OPCODE_GET_NEXT_U64(a_pIemCpu, a_pu64)          do { *(a_pu64) = g_bRandom; CHK_PTYPE(uint64_t *, a_pu64); } while (0)
    64 #define IEM_OPCODE_GET_NEXT_S8(a_pIemCpu,  a_pi8)           do { *(a_pi8)  = g_bRandom; CHK_PTYPE(int8_t   *, a_pi8);  } while (0)
     59#define IEM_OPCODE_GET_NEXT_U8(a_pu8)                       do { *(a_pu8)  = g_bRandom; CHK_PTYPE(uint8_t  *, a_pu8);  } while (0)
     60#define IEM_OPCODE_GET_NEXT_U16(a_pu16)                     do { *(a_pu16) = g_bRandom; CHK_PTYPE(uint16_t *, a_pu16); } while (0)
     61#define IEM_OPCODE_GET_NEXT_U32(a_pu32)                     do { *(a_pu32) = g_bRandom; CHK_PTYPE(uint32_t *, a_pu32); } while (0)
     62#define IEM_OPCODE_GET_NEXT_S32_SX_U64(a_pu64)              do { *(a_pu64) = g_bRandom; CHK_PTYPE(uint64_t *, a_pu64); } while (0)
     63#define IEM_OPCODE_GET_NEXT_U64(a_pu64)                     do { *(a_pu64) = g_bRandom; CHK_PTYPE(uint64_t *, a_pu64); } while (0)
     64#define IEM_OPCODE_GET_NEXT_S8(a_pi8)                       do { *(a_pi8)  = g_bRandom; CHK_PTYPE(int8_t   *, a_pi8);  } while (0)
    6565#define IEM_OPCODE_GET_NEXT_S16(a_pi16)                     do { *(a_pi16) = g_bRandom; CHK_PTYPE(int16_t  *, a_pi16); } while (0)
    6666#define IEM_OPCODE_GET_NEXT_S32(a_pi32)                     do { *(a_pi32) = g_bRandom; CHK_PTYPE(int32_t  *, a_pi32); } while (0)
     
    128128IEMOPSHIFTDBLSIZES g_iemAImpl_shrd;
    129129
     130
     131#define iemAImpl_idiv_u8    ((PFNIEMAIMPLMULDIVU8)0)
     132#define iemAImpl_div_u8     ((PFNIEMAIMPLMULDIVU8)0)
     133#define iemAImpl_imul_u8    ((PFNIEMAIMPLMULDIVU8)0)
     134#define iemAImpl_mul_u8     ((PFNIEMAIMPLMULDIVU8)0)
     135
    130136/** @}  */
    131137
     
    138144#define IEM_MC_PAUSE()                                  do {} while (0)
    139145#define IEM_MC_CONTINUE()                               do {} while (0)
    140 #define IEM_MC_RETURN_ON_FAILURE(a_Expr)                do {} while (0)
    141146#define IEM_MC_ADVANCE_RIP()                            do {} while (0)
    142147#define IEM_MC_REL_JMP_S8(a_i8)                         CHK_TYPE(int8_t, a_i8)
    143148#define IEM_MC_REL_JMP_S16(a_i16)                       CHK_TYPE(int16_t, a_i16)
    144149#define IEM_MC_REL_JMP_S32(a_i32)                       CHK_TYPE(int32_t, a_i32)
    145 #define IEM_MC_SET_RIP_U16(a_u16NewIP)                  do {} while (0)
    146 #define IEM_MC_SET_RIP_U32(a_u32NewIP)                  do {} while (0)
    147 #define IEM_MC_SET_RIP_U64(a_u64NewIP)                  do {} while (0)
     150#define IEM_MC_SET_RIP_U16(a_u16NewIP)                  CHK_TYPE(uint16_t, a_u16NewIP)
     151#define IEM_MC_SET_RIP_U32(a_u32NewIP)                  CHK_TYPE(uint32_t, a_u32NewIP)
     152#define IEM_MC_SET_RIP_U64(a_u64NewIP)                  CHK_TYPE(uint64_t, a_u64NewIP)
    148153#define IEM_MC_RAISE_DIVIDE_ERROR()                     return VERR_TRPM_ACTIVE_TRAP
    149154#define IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE()       do {} while (0)
     
    159164    uint32_t a_Name; \
    160165    uint32_t *a_pName = &a_Name
    161 #define IEM_MC_COMMIT_EFLAGS(a_EFlags)                  do {} while (0)
     166#define IEM_MC_COMMIT_EFLAGS(a_EFlags)                  CHK_TYPE(uint32_t, a_EFlags)
    162167#define IEM_MC_ASSIGN(a_VarOrArg, a_CVariableOrConst)   (a_VarOrArg) = (0)
    163 #define IEM_MC_FETCH_GREG_U8(a_u8Dst, a_iGReg)          (a_u8Dst)  = 0
    164 #define IEM_MC_FETCH_GREG_U8_ZX_U16(a_u16Dst, a_iGReg)  (a_u16Dst) = 0
    165 #define IEM_MC_FETCH_GREG_U8_ZX_U32(a_u32Dst, a_iGReg)  (a_u32Dst) = 0
    166 #define IEM_MC_FETCH_GREG_U8_ZX_U64(a_u64Dst, a_iGReg)  (a_u64Dst) = 0
    167 #define IEM_MC_FETCH_GREG_U8_SX_U16(a_u16Dst, a_iGReg)  (a_u16Dst) = 0
    168 #define IEM_MC_FETCH_GREG_U8_SX_U32(a_u32Dst, a_iGReg)  (a_u32Dst) = 0
    169 #define IEM_MC_FETCH_GREG_U8_SX_U64(a_u64Dst, a_iGReg)  (a_u64Dst) = 0
    170 #define IEM_MC_FETCH_GREG_U16(a_u16Dst, a_iGReg)        (a_u16Dst) = 0
    171 #define IEM_MC_FETCH_GREG_U16_ZX_U32(a_u32Dst, a_iGReg) (a_u32Dst) = 0
    172 #define IEM_MC_FETCH_GREG_U16_ZX_U64(a_u64Dst, a_iGReg) (a_u64Dst) = 0
    173 #define IEM_MC_FETCH_GREG_U16_SX_U32(a_u32Dst, a_iGReg) (a_u32Dst) = 0
    174 #define IEM_MC_FETCH_GREG_U16_SX_U64(a_u64Dst, a_iGReg) (a_u64Dst) = 0
    175 #define IEM_MC_FETCH_GREG_U32(a_u32Dst, a_iGReg)        (a_u32Dst) = 0
    176 #define IEM_MC_FETCH_GREG_U32_ZX_U64(a_u64Dst, a_iGReg) (a_u64Dst) = 0
    177 #define IEM_MC_FETCH_GREG_U32_SX_U64(a_u64Dst, a_iGReg) (a_u64Dst) = 0
    178 #define IEM_MC_FETCH_GREG_U64(a_u64Dst, a_iGReg)        (a_u64Dst) = 0
    179 #define IEM_MC_FETCH_SREG_U16(a_u16Dst, a_iSReg)        (a_u16Dst) = 0
    180 #define IEM_MC_FETCH_SREG_ZX_U32(a_u32Dst, a_iSReg)     (a_u32Dst) = 0
    181 #define IEM_MC_FETCH_SREG_ZX_U64(a_u64Dst, a_iSReg)     (a_u64Dst) = 0
    182 #define IEM_MC_FETCH_CR0_U16(a_u16Dst)                  (a_u16Dst) = 0
    183 #define IEM_MC_FETCH_CR0_U32(a_u32Dst)                  (a_u32Dst) = 0
    184 #define IEM_MC_FETCH_CR0_U64(a_u64Dst)                  (a_u64Dst) = 0
    185 #define IEM_MC_FETCH_EFLAGS(a_EFlags)                   (a_EFlags) = 0
    186 #define IEM_MC_FETCH_FSW(a_u16Fsw)                      (a_u16Fsw) = 0
    187 #define IEM_MC_STORE_GREG_U8(a_iGReg, a_u8Value)        do {} while (0)
    188 #define IEM_MC_STORE_GREG_U16(a_iGReg, a_u16Value)      do {} while (0)
    189 #define IEM_MC_STORE_GREG_U32(a_iGReg, a_u32Value)      do {} while (0)
    190 #define IEM_MC_STORE_GREG_U64(a_iGReg, a_u64Value)      do {} while (0)
    191 #define IEM_MC_CLEAR_HIGH_GREG_U64(a_iGReg)             do {} while (0)
    192 #define IEM_MC_REF_GREG_U8(a_pu8Dst, a_iGReg)           (a_pu8Dst)  = (uint8_t  *)((uintptr_t)0)
    193 #define IEM_MC_REF_GREG_U16(a_pu16Dst, a_iGReg)         (a_pu16Dst) = (uint16_t *)((uintptr_t)0)
    194 #define IEM_MC_REF_GREG_U32(a_pu32Dst, a_iGReg)         (a_pu32Dst) = (uint32_t *)((uintptr_t)0)
    195 #define IEM_MC_REF_GREG_U64(a_pu64Dst, a_iGReg)         (a_pu64Dst) = (uint64_t *)((uintptr_t)0)
    196 #define IEM_MC_REF_EFLAGS(a_pEFlags)                    (a_pEFlags) = (uint32_t *)((uintptr_t)0)
     168#define IEM_MC_ASSIGN_TO_SMALLER                        IEM_MC_ASSIGN
     169
     170#define IEM_MC_FETCH_GREG_U8(a_u8Dst, a_iGReg)          do { (a_u8Dst)  = 0; CHK_TYPE(uint8_t,  a_u8Dst);  } while (0)
     171#define IEM_MC_FETCH_GREG_U8_ZX_U16(a_u16Dst, a_iGReg)  do { (a_u16Dst) = 0; CHK_TYPE(uint16_t, a_u16Dst); } while (0)
     172#define IEM_MC_FETCH_GREG_U8_ZX_U32(a_u32Dst, a_iGReg)  do { (a_u32Dst) = 0; CHK_TYPE(uint32_t, a_u32Dst); } while (0)
     173#define IEM_MC_FETCH_GREG_U8_ZX_U64(a_u64Dst, a_iGReg)  do { (a_u64Dst) = 0; CHK_TYPE(uint64_t, a_u64Dst); } while (0)
     174#define IEM_MC_FETCH_GREG_U8_SX_U16(a_u16Dst, a_iGReg)  do { (a_u16Dst) = 0; CHK_TYPE(uint16_t, a_u16Dst); } while (0)
     175#define IEM_MC_FETCH_GREG_U8_SX_U32(a_u32Dst, a_iGReg)  do { (a_u32Dst) = 0; CHK_TYPE(uint32_t, a_u32Dst); } while (0)
     176#define IEM_MC_FETCH_GREG_U8_SX_U64(a_u64Dst, a_iGReg)  do { (a_u64Dst) = 0; CHK_TYPE(uint64_t, a_u64Dst); } while (0)
     177#define IEM_MC_FETCH_GREG_U16(a_u16Dst, a_iGReg)        do { (a_u16Dst) = 0; CHK_TYPE(uint16_t, a_u16Dst); } while (0)
     178#define IEM_MC_FETCH_GREG_U16_ZX_U32(a_u32Dst, a_iGReg) do { (a_u32Dst) = 0; CHK_TYPE(uint32_t, a_u32Dst); } while (0)
     179#define IEM_MC_FETCH_GREG_U16_ZX_U64(a_u64Dst, a_iGReg) do { (a_u64Dst) = 0; CHK_TYPE(uint64_t, a_u64Dst); } while (0)
     180#define IEM_MC_FETCH_GREG_U16_SX_U32(a_u32Dst, a_iGReg) do { (a_u32Dst) = 0; CHK_TYPE(uint32_t, a_u32Dst); } while (0)
     181#define IEM_MC_FETCH_GREG_U16_SX_U64(a_u64Dst, a_iGReg) do { (a_u64Dst) = 0; CHK_TYPE(uint64_t, a_u64Dst); } while (0)
     182#define IEM_MC_FETCH_GREG_U32(a_u32Dst, a_iGReg)        do { (a_u32Dst) = 0; CHK_TYPE(uint32_t, a_u32Dst); } while (0)
     183#define IEM_MC_FETCH_GREG_U32_ZX_U64(a_u64Dst, a_iGReg) do { (a_u64Dst) = 0; CHK_TYPE(uint64_t, a_u64Dst); } while (0)
     184#define IEM_MC_FETCH_GREG_U32_SX_U64(a_u64Dst, a_iGReg) do { (a_u64Dst) = 0; CHK_TYPE(uint64_t, a_u64Dst); } while (0)
     185#define IEM_MC_FETCH_GREG_U64(a_u64Dst, a_iGReg)        do { (a_u64Dst) = 0; CHK_TYPE(uint64_t, a_u64Dst); } while (0)
     186#define IEM_MC_FETCH_SREG_U16(a_u16Dst, a_iSReg)        do { (a_u16Dst) = 0; CHK_TYPE(uint16_t, a_u16Dst); } while (0)
     187#define IEM_MC_FETCH_SREG_ZX_U32(a_u32Dst, a_iSReg)     do { (a_u32Dst) = 0; CHK_TYPE(uint32_t, a_u32Dst); } while (0)
     188#define IEM_MC_FETCH_SREG_ZX_U64(a_u64Dst, a_iSReg)     do { (a_u64Dst) = 0; CHK_TYPE(uint64_t, a_u64Dst); } while (0)
     189#define IEM_MC_FETCH_CR0_U16(a_u16Dst)                  do { (a_u16Dst) = 0; CHK_TYPE(uint16_t, a_u16Dst); } while (0)
     190#define IEM_MC_FETCH_CR0_U32(a_u32Dst)                  do { (a_u32Dst) = 0; CHK_TYPE(uint32_t, a_u32Dst); } while (0)
     191#define IEM_MC_FETCH_CR0_U64(a_u64Dst)                  do { (a_u64Dst) = 0; CHK_TYPE(uint64_t, a_u64Dst); } while (0)
     192#define IEM_MC_FETCH_EFLAGS(a_EFlags)                   do { (a_EFlags) = 0; CHK_TYPE(uint32_t, a_EFlags); } while (0)
     193#define IEM_MC_FETCH_FSW(a_u16Fsw)                      do { (a_u16Fsw) = 0; CHK_TYPE(uint16_t, a_u16Fsw); } while (0)
     194#define IEM_MC_STORE_GREG_U8(a_iGReg, a_u8Value)        do { CHK_TYPE(uint8_t, a_u8Value); } while (0)
     195#define IEM_MC_STORE_GREG_U16(a_iGReg, a_u16Value)      do { CHK_TYPE(uint16_t, a_u16Value); } while (0)
     196#define IEM_MC_STORE_GREG_U32(a_iGReg, a_u32Value)      do {  } while (0)
     197#define IEM_MC_STORE_GREG_U64(a_iGReg, a_u64Value)      do {  } while (0)
     198#define IEM_MC_STORE_GREG_U8_CONST(a_iGReg, a_u8C)      do { AssertCompile((uint8_t )(a_u8C)  == (a_u8C) ); } while (0)
     199#define IEM_MC_STORE_GREG_U16_CONST(a_iGReg, a_u16C)    do { AssertCompile((uint16_t)(a_u16C) == (a_u16C)); } while (0)
     200#define IEM_MC_STORE_GREG_U32_CONST(a_iGReg, a_u32C)    do { AssertCompile((uint32_t)(a_u32C) == (a_u32C)); } while (0)
     201#define IEM_MC_STORE_GREG_U64_CONST(a_iGReg, a_u64C)    do { AssertCompile((uint64_t)(a_u64C) == (a_u64C)); } while (0)
     202#define IEM_MC_CLEAR_HIGH_GREG_U64(a_iGReg)             do {  } while (0)
     203#define IEM_MC_REF_GREG_U8(a_pu8Dst, a_iGReg)           do { (a_pu8Dst)  = (uint8_t  *)((uintptr_t)0); CHK_PTYPE(uint8_t  *, a_pu8Dst);  } while (0)
     204#define IEM_MC_REF_GREG_U16(a_pu16Dst, a_iGReg)         do { (a_pu16Dst) = (uint16_t *)((uintptr_t)0); CHK_PTYPE(uint16_t *, a_pu16Dst); } while (0)
     205#define IEM_MC_REF_GREG_U32(a_pu32Dst, a_iGReg)         do { (a_pu32Dst) = (uint32_t *)((uintptr_t)0); CHK_PTYPE(uint32_t *, a_pu32Dst); } while (0)
     206#define IEM_MC_REF_GREG_U64(a_pu64Dst, a_iGReg)         do { (a_pu64Dst) = (uint64_t *)((uintptr_t)0); CHK_PTYPE(uint64_t *, a_pu64Dst); } while (0)
     207#define IEM_MC_REF_EFLAGS(a_pEFlags)                    do { (a_pEFlags) = (uint32_t *)((uintptr_t)0); CHK_PTYPE(uint32_t *, a_pEFlags); } while (0)
    197208#define IEM_MC_ADD_GREG_U8(a_iGReg, a_u16Value)         do {} while (0)
    198209#define IEM_MC_ADD_GREG_U16(a_iGReg, a_u16Value)        do {} while (0)
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