VirtualBox

Changeset 97356 in vbox


Ignore:
Timestamp:
Oct 31, 2022 10:36:29 PM (2 years ago)
Author:
vboxsync
Message:

VMM/IEM: IEM_MC_ADVANCE_RIP -> IEM_MC_ADVANCE_RIP_AND_FINISH in prep for TF and other #DB stuff. bugref:9898

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

Legend:

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

    r96860 r97356  
    952952        IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU8, pu8Dst, u8Src, pEFlags);
    953953
    954         IEM_MC_ADVANCE_RIP();
     954        IEM_MC_ADVANCE_RIP_AND_FINISH();
    955955        IEM_MC_END();
    956956    }
     
    982982        IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Dst, fAccess);
    983983        IEM_MC_COMMIT_EFLAGS(EFlags);
    984         IEM_MC_ADVANCE_RIP();
     984        IEM_MC_ADVANCE_RIP_AND_FINISH();
    985985        IEM_MC_END();
    986986    }
     
    10191019                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    10201020
    1021                 IEM_MC_ADVANCE_RIP();
     1021                IEM_MC_ADVANCE_RIP_AND_FINISH();
    10221022                IEM_MC_END();
    10231023                break;
     
    10361036                if ((pImpl != &g_iemAImpl_test) && (pImpl != &g_iemAImpl_cmp))
    10371037                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    1038                 IEM_MC_ADVANCE_RIP();
     1038                IEM_MC_ADVANCE_RIP_AND_FINISH();
    10391039                IEM_MC_END();
    10401040                break;
     
    10511051                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    10521052
    1053                 IEM_MC_ADVANCE_RIP();
     1053                IEM_MC_ADVANCE_RIP_AND_FINISH();
    10541054                IEM_MC_END();
    10551055                break;
     
    10861086                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, fAccess);
    10871087                IEM_MC_COMMIT_EFLAGS(EFlags);
    1088                 IEM_MC_ADVANCE_RIP();
     1088                IEM_MC_ADVANCE_RIP_AND_FINISH();
    10891089                IEM_MC_END();
    10901090                break;
     
    11101110                IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, fAccess);
    11111111                IEM_MC_COMMIT_EFLAGS(EFlags);
    1112                 IEM_MC_ADVANCE_RIP();
     1112                IEM_MC_ADVANCE_RIP_AND_FINISH();
    11131113                IEM_MC_END();
    11141114                break;
     
    11341134                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, fAccess);
    11351135                IEM_MC_COMMIT_EFLAGS(EFlags);
    1136                 IEM_MC_ADVANCE_RIP();
     1136                IEM_MC_ADVANCE_RIP_AND_FINISH();
    11371137                IEM_MC_END();
    11381138                break;
     
    11691169        IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU8, pu8Dst, u8Src, pEFlags);
    11701170
    1171         IEM_MC_ADVANCE_RIP();
     1171        IEM_MC_ADVANCE_RIP_AND_FINISH();
    11721172        IEM_MC_END();
    11731173    }
     
    11901190        IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU8, pu8Dst, u8Src, pEFlags);
    11911191
    1192         IEM_MC_ADVANCE_RIP();
     1192        IEM_MC_ADVANCE_RIP_AND_FINISH();
    11931193        IEM_MC_END();
    11941194    }
     
    12261226                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    12271227
    1228                 IEM_MC_ADVANCE_RIP();
     1228                IEM_MC_ADVANCE_RIP_AND_FINISH();
    12291229                IEM_MC_END();
    12301230                break;
     
    12431243                if (pImpl != &g_iemAImpl_cmp)   /* Not used with TEST. */
    12441244                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    1245                 IEM_MC_ADVANCE_RIP();
     1245                IEM_MC_ADVANCE_RIP_AND_FINISH();
    12461246                IEM_MC_END();
    12471247                break;
     
    12581258                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    12591259
    1260                 IEM_MC_ADVANCE_RIP();
     1260                IEM_MC_ADVANCE_RIP_AND_FINISH();
    12611261                IEM_MC_END();
    12621262                break;
     
    12841284                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    12851285
    1286                 IEM_MC_ADVANCE_RIP();
     1286                IEM_MC_ADVANCE_RIP_AND_FINISH();
    12871287                IEM_MC_END();
    12881288                break;
     
    13041304                if (pImpl != &g_iemAImpl_cmp)
    13051305                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    1306                 IEM_MC_ADVANCE_RIP();
     1306                IEM_MC_ADVANCE_RIP_AND_FINISH();
    13071307                IEM_MC_END();
    13081308                break;
     
    13221322                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    13231323
    1324                 IEM_MC_ADVANCE_RIP();
     1324                IEM_MC_ADVANCE_RIP_AND_FINISH();
    13251325                IEM_MC_END();
    13261326                break;
     
    13511351    IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU8, pu8Dst, u8Src, pEFlags);
    13521352
    1353     IEM_MC_ADVANCE_RIP();
     1353    IEM_MC_ADVANCE_RIP_AND_FINISH();
    13541354    IEM_MC_END();
    13551355    return VINF_SUCCESS;
     
    13811381            IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    13821382
    1383             IEM_MC_ADVANCE_RIP();
     1383            IEM_MC_ADVANCE_RIP_AND_FINISH();
    13841384            IEM_MC_END();
    13851385            return VINF_SUCCESS;
     
    14021402            if ((pImpl != &g_iemAImpl_test) && (pImpl != &g_iemAImpl_cmp))
    14031403                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    1404             IEM_MC_ADVANCE_RIP();
     1404            IEM_MC_ADVANCE_RIP_AND_FINISH();
    14051405            IEM_MC_END();
    14061406            return VINF_SUCCESS;
     
    14211421            IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    14221422
    1423             IEM_MC_ADVANCE_RIP();
     1423            IEM_MC_ADVANCE_RIP_AND_FINISH();
    14241424            IEM_MC_END();
    14251425            return VINF_SUCCESS;
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsOneByte.cpp.h

    r97214 r97356  
    10981098            IEM_MC_REF_EFLAGS(pEFlags);
    10991099            IEM_MC_CALL_VOID_AIMPL_2(pImpl->pfnNormalU16, pu16Dst, pEFlags);
    1100             IEM_MC_ADVANCE_RIP();
     1100            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11011101            IEM_MC_END();
    11021102            return VINF_SUCCESS;
     
    11101110            IEM_MC_CALL_VOID_AIMPL_2(pImpl->pfnNormalU32, pu32Dst, pEFlags);
    11111111            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    1112             IEM_MC_ADVANCE_RIP();
     1112            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11131113            IEM_MC_END();
    11141114            return VINF_SUCCESS;
     
    11211121            IEM_MC_REF_EFLAGS(pEFlags);
    11221122            IEM_MC_CALL_VOID_AIMPL_2(pImpl->pfnNormalU64, pu64Dst, pEFlags);
    1123             IEM_MC_ADVANCE_RIP();
     1123            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11241124            IEM_MC_END();
    11251125            return VINF_SUCCESS;
     
    15341534            IEM_MC_FETCH_GREG_U16(u16Value, iReg);
    15351535            IEM_MC_PUSH_U16(u16Value);
    1536             IEM_MC_ADVANCE_RIP();
     1536            IEM_MC_ADVANCE_RIP_AND_FINISH();
    15371537            IEM_MC_END();
    15381538            break;
     
    15431543            IEM_MC_FETCH_GREG_U32(u32Value, iReg);
    15441544            IEM_MC_PUSH_U32(u32Value);
    1545             IEM_MC_ADVANCE_RIP();
     1545            IEM_MC_ADVANCE_RIP_AND_FINISH();
    15461546            IEM_MC_END();
    15471547            break;
     
    15521552            IEM_MC_FETCH_GREG_U64(u64Value, iReg);
    15531553            IEM_MC_PUSH_U64(u64Value);
    1554             IEM_MC_ADVANCE_RIP();
     1554            IEM_MC_ADVANCE_RIP_AND_FINISH();
    15551555            IEM_MC_END();
    15561556            break;
     
    16141614        IEM_MC_SUB_LOCAL_U16(u16Value, 2);
    16151615        IEM_MC_PUSH_U16(u16Value);
    1616         IEM_MC_ADVANCE_RIP();
     1616        IEM_MC_ADVANCE_RIP_AND_FINISH();
    16171617        IEM_MC_END();
    16181618    }
     
    16711671            IEM_MC_REF_GREG_U16(pu16Dst, iReg);
    16721672            IEM_MC_POP_U16(pu16Dst);
    1673             IEM_MC_ADVANCE_RIP();
     1673            IEM_MC_ADVANCE_RIP_AND_FINISH();
    16741674            IEM_MC_END();
    16751675            break;
     
    16811681            IEM_MC_POP_U32(pu32Dst);
    16821682            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst); /** @todo testcase*/
    1683             IEM_MC_ADVANCE_RIP();
     1683            IEM_MC_ADVANCE_RIP_AND_FINISH();
    16841684            IEM_MC_END();
    16851685            break;
     
    16901690            IEM_MC_REF_GREG_U64(pu64Dst, iReg);
    16911691            IEM_MC_POP_U64(pu64Dst);
    1692             IEM_MC_ADVANCE_RIP();
     1692            IEM_MC_ADVANCE_RIP_AND_FINISH();
    16931693            IEM_MC_END();
    16941694            break;
     
    17631763            IEM_MC_POP_U16(&u16Dst); /** @todo not correct MC, fix later. */
    17641764            IEM_MC_STORE_GREG_U16(X86_GREG_xSP, u16Dst);
    1765             IEM_MC_ADVANCE_RIP();
     1765            IEM_MC_ADVANCE_RIP_AND_FINISH();
    17661766            IEM_MC_END();
    17671767            break;
     
    17721772            IEM_MC_POP_U32(&u32Dst);
    17731773            IEM_MC_STORE_GREG_U32(X86_GREG_xSP, u32Dst);
    1774             IEM_MC_ADVANCE_RIP();
     1774            IEM_MC_ADVANCE_RIP_AND_FINISH();
    17751775            IEM_MC_END();
    17761776            break;
     
    17811781            IEM_MC_POP_U64(&u64Dst);
    17821782            IEM_MC_STORE_GREG_U64(X86_GREG_xSP, u64Dst);
    1783             IEM_MC_ADVANCE_RIP();
     1783            IEM_MC_ADVANCE_RIP_AND_FINISH();
    17841784            IEM_MC_END();
    17851785            break;
     
    20192019        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_arpl, pu16Dst, u16Src, pEFlags);
    20202020
    2021         IEM_MC_ADVANCE_RIP();
     2021        IEM_MC_ADVANCE_RIP_AND_FINISH();
    20222022        IEM_MC_END();
    20232023    }
     
    20402040        IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
    20412041        IEM_MC_COMMIT_EFLAGS(EFlags);
    2042         IEM_MC_ADVANCE_RIP();
     2042        IEM_MC_ADVANCE_RIP_AND_FINISH();
    20432043        IEM_MC_END();
    20442044    }
     
    20732073            IEM_MC_FETCH_GREG_U32_SX_U64(u64Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    20742074            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    2075             IEM_MC_ADVANCE_RIP();
     2075            IEM_MC_ADVANCE_RIP_AND_FINISH();
    20762076            IEM_MC_END();
    20772077        }
     
    20882088            IEM_MC_FETCH_MEM_U32_SX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    20892089            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    2090             IEM_MC_ADVANCE_RIP();
     2090            IEM_MC_ADVANCE_RIP_AND_FINISH();
    20912091            IEM_MC_END();
    20922092        }
     
    22062206            IEM_MC_BEGIN(0,0);
    22072207            IEM_MC_PUSH_U16(u16Imm);
    2208             IEM_MC_ADVANCE_RIP();
     2208            IEM_MC_ADVANCE_RIP_AND_FINISH();
    22092209            IEM_MC_END();
    22102210            return VINF_SUCCESS;
     
    22172217            IEM_MC_BEGIN(0,0);
    22182218            IEM_MC_PUSH_U32(u32Imm);
    2219             IEM_MC_ADVANCE_RIP();
     2219            IEM_MC_ADVANCE_RIP_AND_FINISH();
    22202220            IEM_MC_END();
    22212221            return VINF_SUCCESS;
     
    22282228            IEM_MC_BEGIN(0,0);
    22292229            IEM_MC_PUSH_U64(u64Imm);
    2230             IEM_MC_ADVANCE_RIP();
     2230            IEM_MC_ADVANCE_RIP_AND_FINISH();
    22312231            IEM_MC_END();
    22322232            return VINF_SUCCESS;
     
    22712271                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Tmp);
    22722272
    2273                 IEM_MC_ADVANCE_RIP();
     2273                IEM_MC_ADVANCE_RIP_AND_FINISH();
    22742274                IEM_MC_END();
    22752275            }
     
    22952295                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Tmp);
    22962296
    2297                 IEM_MC_ADVANCE_RIP();
     2297                IEM_MC_ADVANCE_RIP_AND_FINISH();
    22982298                IEM_MC_END();
    22992299            }
     
    23222322                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    23232323
    2324                 IEM_MC_ADVANCE_RIP();
     2324                IEM_MC_ADVANCE_RIP_AND_FINISH();
    23252325                IEM_MC_END();
    23262326            }
     
    23462346                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    23472347
    2348                 IEM_MC_ADVANCE_RIP();
     2348                IEM_MC_ADVANCE_RIP_AND_FINISH();
    23492349                IEM_MC_END();
    23502350            }
     
    23732373                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    23742374
    2375                 IEM_MC_ADVANCE_RIP();
     2375                IEM_MC_ADVANCE_RIP_AND_FINISH();
    23762376                IEM_MC_END();
    23772377            }
     
    23972397                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    23982398
    2399                 IEM_MC_ADVANCE_RIP();
     2399                IEM_MC_ADVANCE_RIP_AND_FINISH();
    24002400                IEM_MC_END();
    24012401            }
     
    24312431            break;
    24322432    }
    2433     IEM_MC_ADVANCE_RIP();
     2433    IEM_MC_ADVANCE_RIP_AND_FINISH();
    24342434    IEM_MC_END();
    24352435    return VINF_SUCCESS;
     
    24692469                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Tmp);
    24702470
    2471                 IEM_MC_ADVANCE_RIP();
     2471                IEM_MC_ADVANCE_RIP_AND_FINISH();
    24722472                IEM_MC_END();
    24732473            }
     
    24932493                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Tmp);
    24942494
    2495                 IEM_MC_ADVANCE_RIP();
     2495                IEM_MC_ADVANCE_RIP_AND_FINISH();
    24962496                IEM_MC_END();
    24972497            }
     
    25182518                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    25192519
    2520                 IEM_MC_ADVANCE_RIP();
     2520                IEM_MC_ADVANCE_RIP_AND_FINISH();
    25212521                IEM_MC_END();
    25222522            }
     
    25422542                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    25432543
    2544                 IEM_MC_ADVANCE_RIP();
     2544                IEM_MC_ADVANCE_RIP_AND_FINISH();
    25452545                IEM_MC_END();
    25462546            }
     
    25672567                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    25682568
    2569                 IEM_MC_ADVANCE_RIP();
     2569                IEM_MC_ADVANCE_RIP_AND_FINISH();
    25702570                IEM_MC_END();
    25712571            }
     
    25912591                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    25922592
    2593                 IEM_MC_ADVANCE_RIP();
     2593                IEM_MC_ADVANCE_RIP_AND_FINISH();
    25942594                IEM_MC_END();
    25952595            }
     
    28062806        IEM_MC_REL_JMP_S8(i8Imm);
    28072807    } IEM_MC_ELSE() {
    2808         IEM_MC_ADVANCE_RIP();
     2808        IEM_MC_ADVANCE_RIP_AND_FINISH();
    28092809    } IEM_MC_ENDIF();
    28102810    IEM_MC_END();
     
    28252825    IEM_MC_BEGIN(0, 0);
    28262826    IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
    2827         IEM_MC_ADVANCE_RIP();
     2827        IEM_MC_ADVANCE_RIP_AND_FINISH();
    28282828    } IEM_MC_ELSE() {
    28292829        IEM_MC_REL_JMP_S8(i8Imm);
     
    28472847        IEM_MC_REL_JMP_S8(i8Imm);
    28482848    } IEM_MC_ELSE() {
    2849         IEM_MC_ADVANCE_RIP();
     2849        IEM_MC_ADVANCE_RIP_AND_FINISH();
    28502850    } IEM_MC_ENDIF();
    28512851    IEM_MC_END();
     
    28662866    IEM_MC_BEGIN(0, 0);
    28672867    IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
    2868         IEM_MC_ADVANCE_RIP();
     2868        IEM_MC_ADVANCE_RIP_AND_FINISH();
    28692869    } IEM_MC_ELSE() {
    28702870        IEM_MC_REL_JMP_S8(i8Imm);
     
    28892889        IEM_MC_REL_JMP_S8(i8Imm);
    28902890    } IEM_MC_ELSE() {
    2891         IEM_MC_ADVANCE_RIP();
     2891        IEM_MC_ADVANCE_RIP_AND_FINISH();
    28922892    } IEM_MC_ENDIF();
    28932893    IEM_MC_END();
     
    29082908    IEM_MC_BEGIN(0, 0);
    29092909    IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
    2910         IEM_MC_ADVANCE_RIP();
     2910        IEM_MC_ADVANCE_RIP_AND_FINISH();
    29112911    } IEM_MC_ELSE() {
    29122912        IEM_MC_REL_JMP_S8(i8Imm);
     
    29312931        IEM_MC_REL_JMP_S8(i8Imm);
    29322932    } IEM_MC_ELSE() {
    2933         IEM_MC_ADVANCE_RIP();
     2933        IEM_MC_ADVANCE_RIP_AND_FINISH();
    29342934    } IEM_MC_ENDIF();
    29352935    IEM_MC_END();
     
    29502950    IEM_MC_BEGIN(0, 0);
    29512951    IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
    2952         IEM_MC_ADVANCE_RIP();
     2952        IEM_MC_ADVANCE_RIP_AND_FINISH();
    29532953    } IEM_MC_ELSE() {
    29542954        IEM_MC_REL_JMP_S8(i8Imm);
     
    29732973        IEM_MC_REL_JMP_S8(i8Imm);
    29742974    } IEM_MC_ELSE() {
    2975         IEM_MC_ADVANCE_RIP();
     2975        IEM_MC_ADVANCE_RIP_AND_FINISH();
    29762976    } IEM_MC_ENDIF();
    29772977    IEM_MC_END();
     
    29922992    IEM_MC_BEGIN(0, 0);
    29932993    IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
    2994         IEM_MC_ADVANCE_RIP();
     2994        IEM_MC_ADVANCE_RIP_AND_FINISH();
    29952995    } IEM_MC_ELSE() {
    29962996        IEM_MC_REL_JMP_S8(i8Imm);
     
    30153015        IEM_MC_REL_JMP_S8(i8Imm);
    30163016    } IEM_MC_ELSE() {
    3017         IEM_MC_ADVANCE_RIP();
     3017        IEM_MC_ADVANCE_RIP_AND_FINISH();
    30183018    } IEM_MC_ENDIF();
    30193019    IEM_MC_END();
     
    30343034    IEM_MC_BEGIN(0, 0);
    30353035    IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
    3036         IEM_MC_ADVANCE_RIP();
     3036        IEM_MC_ADVANCE_RIP_AND_FINISH();
    30373037    } IEM_MC_ELSE() {
    30383038        IEM_MC_REL_JMP_S8(i8Imm);
     
    30573057        IEM_MC_REL_JMP_S8(i8Imm);
    30583058    } IEM_MC_ELSE() {
    3059         IEM_MC_ADVANCE_RIP();
     3059        IEM_MC_ADVANCE_RIP_AND_FINISH();
    30603060    } IEM_MC_ENDIF();
    30613061    IEM_MC_END();
     
    30763076    IEM_MC_BEGIN(0, 0);
    30773077    IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
    3078         IEM_MC_ADVANCE_RIP();
     3078        IEM_MC_ADVANCE_RIP_AND_FINISH();
    30793079    } IEM_MC_ELSE() {
    30803080        IEM_MC_REL_JMP_S8(i8Imm);
     
    30993099        IEM_MC_REL_JMP_S8(i8Imm);
    31003100    } IEM_MC_ELSE() {
    3101         IEM_MC_ADVANCE_RIP();
     3101        IEM_MC_ADVANCE_RIP_AND_FINISH();
    31023102    } IEM_MC_ENDIF();
    31033103    IEM_MC_END();
     
    31183118    IEM_MC_BEGIN(0, 0);
    31193119    IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
    3120         IEM_MC_ADVANCE_RIP();
     3120        IEM_MC_ADVANCE_RIP_AND_FINISH();
    31213121    } IEM_MC_ELSE() {
    31223122        IEM_MC_REL_JMP_S8(i8Imm);
     
    31603160        IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU8, pu8Dst, u8Src, pEFlags);
    31613161
    3162         IEM_MC_ADVANCE_RIP();
     3162        IEM_MC_ADVANCE_RIP_AND_FINISH();
    31633163        IEM_MC_END();
    31643164    }
     
    31933193        IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Dst, fAccess);
    31943194        IEM_MC_COMMIT_EFLAGS(EFlags);
    3195         IEM_MC_ADVANCE_RIP();
     3195        IEM_MC_ADVANCE_RIP_AND_FINISH();
    31963196        IEM_MC_END();
    31973197    }
     
    32373237                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    32383238
    3239                 IEM_MC_ADVANCE_RIP();
     3239                IEM_MC_ADVANCE_RIP_AND_FINISH();
    32403240                IEM_MC_END();
    32413241            }
     
    32703270                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, fAccess);
    32713271                IEM_MC_COMMIT_EFLAGS(EFlags);
    3272                 IEM_MC_ADVANCE_RIP();
     3272                IEM_MC_ADVANCE_RIP_AND_FINISH();
    32733273                IEM_MC_END();
    32743274            }
     
    32943294                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    32953295
    3296                 IEM_MC_ADVANCE_RIP();
     3296                IEM_MC_ADVANCE_RIP_AND_FINISH();
    32973297                IEM_MC_END();
    32983298            }
     
    33273327                IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, fAccess);
    33283328                IEM_MC_COMMIT_EFLAGS(EFlags);
    3329                 IEM_MC_ADVANCE_RIP();
     3329                IEM_MC_ADVANCE_RIP_AND_FINISH();
    33303330                IEM_MC_END();
    33313331            }
     
    33493349                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    33503350
    3351                 IEM_MC_ADVANCE_RIP();
     3351                IEM_MC_ADVANCE_RIP_AND_FINISH();
    33523352                IEM_MC_END();
    33533353            }
     
    33823382                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, fAccess);
    33833383                IEM_MC_COMMIT_EFLAGS(EFlags);
    3384                 IEM_MC_ADVANCE_RIP();
     3384                IEM_MC_ADVANCE_RIP_AND_FINISH();
    33853385                IEM_MC_END();
    33863386            }
     
    34463446                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    34473447
    3448                 IEM_MC_ADVANCE_RIP();
     3448                IEM_MC_ADVANCE_RIP_AND_FINISH();
    34493449                IEM_MC_END();
    34503450                break;
     
    34643464                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    34653465
    3466                 IEM_MC_ADVANCE_RIP();
     3466                IEM_MC_ADVANCE_RIP_AND_FINISH();
    34673467                IEM_MC_END();
    34683468                break;
     
    34803480                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    34813481
    3482                 IEM_MC_ADVANCE_RIP();
     3482                IEM_MC_ADVANCE_RIP_AND_FINISH();
    34833483                IEM_MC_END();
    34843484                break;
     
    35233523                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, fAccess);
    35243524                IEM_MC_COMMIT_EFLAGS(EFlags);
    3525                 IEM_MC_ADVANCE_RIP();
     3525                IEM_MC_ADVANCE_RIP_AND_FINISH();
    35263526                IEM_MC_END();
    35273527                break;
     
    35523552                IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, fAccess);
    35533553                IEM_MC_COMMIT_EFLAGS(EFlags);
    3554                 IEM_MC_ADVANCE_RIP();
     3554                IEM_MC_ADVANCE_RIP_AND_FINISH();
    35553555                IEM_MC_END();
    35563556                break;
     
    35813581                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, fAccess);
    35823582                IEM_MC_COMMIT_EFLAGS(EFlags);
    3583                 IEM_MC_ADVANCE_RIP();
     3583                IEM_MC_ADVANCE_RIP_AND_FINISH();
    35843584                IEM_MC_END();
    35853585                break;
     
    36373637        IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), uTmp2);
    36383638
    3639         IEM_MC_ADVANCE_RIP();
     3639        IEM_MC_ADVANCE_RIP_AND_FINISH();
    36403640        IEM_MC_END();
    36413641    }
     
    36603660        IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Mem, IEM_ACCESS_DATA_RW);
    36613661
    3662         IEM_MC_ADVANCE_RIP();
     3662        IEM_MC_ADVANCE_RIP_AND_FINISH();
    36633663        IEM_MC_END();
    36643664    }
     
    36943694                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), uTmp2);
    36953695
    3696                 IEM_MC_ADVANCE_RIP();
     3696                IEM_MC_ADVANCE_RIP_AND_FINISH();
    36973697                IEM_MC_END();
    36983698                return VINF_SUCCESS;
     
    37083708                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), uTmp2);
    37093709
    3710                 IEM_MC_ADVANCE_RIP();
     3710                IEM_MC_ADVANCE_RIP_AND_FINISH();
    37113711                IEM_MC_END();
    37123712                return VINF_SUCCESS;
     
    37223722                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), uTmp2);
    37233723
    3724                 IEM_MC_ADVANCE_RIP();
     3724                IEM_MC_ADVANCE_RIP_AND_FINISH();
    37253725                IEM_MC_END();
    37263726                return VINF_SUCCESS;
     
    37523752                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Mem, IEM_ACCESS_DATA_RW);
    37533753
    3754                 IEM_MC_ADVANCE_RIP();
     3754                IEM_MC_ADVANCE_RIP_AND_FINISH();
    37553755                IEM_MC_END();
    37563756                return VINF_SUCCESS;
     
    37723772
    37733773                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Reg);
    3774                 IEM_MC_ADVANCE_RIP();
     3774                IEM_MC_ADVANCE_RIP_AND_FINISH();
    37753775                IEM_MC_END();
    37763776                return VINF_SUCCESS;
     
    37913791                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Mem, IEM_ACCESS_DATA_RW);
    37923792
    3793                 IEM_MC_ADVANCE_RIP();
     3793                IEM_MC_ADVANCE_RIP_AND_FINISH();
    37943794                IEM_MC_END();
    37953795                return VINF_SUCCESS;
     
    38213821        IEM_MC_FETCH_GREG_U8(u8Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    38223822        IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_RM(pVCpu, bRm), u8Value);
    3823         IEM_MC_ADVANCE_RIP();
     3823        IEM_MC_ADVANCE_RIP_AND_FINISH();
    38243824        IEM_MC_END();
    38253825    }
     
    38363836        IEM_MC_FETCH_GREG_U8(u8Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    38373837        IEM_MC_STORE_MEM_U8(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u8Value);
    3838         IEM_MC_ADVANCE_RIP();
     3838        IEM_MC_ADVANCE_RIP_AND_FINISH();
    38393839        IEM_MC_END();
    38403840    }
     
    38663866                IEM_MC_FETCH_GREG_U16(u16Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    38673867                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_RM(pVCpu, bRm), u16Value);
    3868                 IEM_MC_ADVANCE_RIP();
     3868                IEM_MC_ADVANCE_RIP_AND_FINISH();
    38693869                IEM_MC_END();
    38703870                break;
     
    38753875                IEM_MC_FETCH_GREG_U32(u32Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    38763876                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Value);
    3877                 IEM_MC_ADVANCE_RIP();
     3877                IEM_MC_ADVANCE_RIP_AND_FINISH();
    38783878                IEM_MC_END();
    38793879                break;
     
    38843884                IEM_MC_FETCH_GREG_U64(u64Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    38853885                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Value);
    3886                 IEM_MC_ADVANCE_RIP();
     3886                IEM_MC_ADVANCE_RIP_AND_FINISH();
    38873887                IEM_MC_END();
    38883888                break;
     
    39043904                IEM_MC_FETCH_GREG_U16(u16Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    39053905                IEM_MC_STORE_MEM_U16(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u16Value);
    3906                 IEM_MC_ADVANCE_RIP();
     3906                IEM_MC_ADVANCE_RIP_AND_FINISH();
    39073907                IEM_MC_END();
    39083908                break;
     
    39163916                IEM_MC_FETCH_GREG_U32(u32Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    39173917                IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u32Value);
    3918                 IEM_MC_ADVANCE_RIP();
     3918                IEM_MC_ADVANCE_RIP_AND_FINISH();
    39193919                IEM_MC_END();
    39203920                break;
     
    39283928                IEM_MC_FETCH_GREG_U64(u64Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    39293929                IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u64Value);
    3930                 IEM_MC_ADVANCE_RIP();
     3930                IEM_MC_ADVANCE_RIP_AND_FINISH();
    39313931                IEM_MC_END();
    39323932                break;
     
    39563956        IEM_MC_FETCH_GREG_U8(u8Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    39573957        IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), u8Value);
    3958         IEM_MC_ADVANCE_RIP();
     3958        IEM_MC_ADVANCE_RIP_AND_FINISH();
    39593959        IEM_MC_END();
    39603960    }
     
    39713971        IEM_MC_FETCH_MEM_U8(u8Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    39723972        IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), u8Value);
    3973         IEM_MC_ADVANCE_RIP();
     3973        IEM_MC_ADVANCE_RIP_AND_FINISH();
    39743974        IEM_MC_END();
    39753975    }
     
    40004000                IEM_MC_FETCH_GREG_U16(u16Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    40014001                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Value);
    4002                 IEM_MC_ADVANCE_RIP();
     4002                IEM_MC_ADVANCE_RIP_AND_FINISH();
    40034003                IEM_MC_END();
    40044004                break;
     
    40094009                IEM_MC_FETCH_GREG_U32(u32Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    40104010                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    4011                 IEM_MC_ADVANCE_RIP();
     4011                IEM_MC_ADVANCE_RIP_AND_FINISH();
    40124012                IEM_MC_END();
    40134013                break;
     
    40184018                IEM_MC_FETCH_GREG_U64(u64Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    40194019                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    4020                 IEM_MC_ADVANCE_RIP();
     4020                IEM_MC_ADVANCE_RIP_AND_FINISH();
    40214021                IEM_MC_END();
    40224022                break;
     
    40384038                IEM_MC_FETCH_MEM_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    40394039                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Value);
    4040                 IEM_MC_ADVANCE_RIP();
     4040                IEM_MC_ADVANCE_RIP_AND_FINISH();
    40414041                IEM_MC_END();
    40424042                break;
     
    40504050                IEM_MC_FETCH_MEM_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    40514051                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    4052                 IEM_MC_ADVANCE_RIP();
     4052                IEM_MC_ADVANCE_RIP_AND_FINISH();
    40534053                IEM_MC_END();
    40544054                break;
     
    40624062                IEM_MC_FETCH_MEM_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    40634063                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    4064                 IEM_MC_ADVANCE_RIP();
     4064                IEM_MC_ADVANCE_RIP_AND_FINISH();
    40654065                IEM_MC_END();
    40664066                break;
     
    41164116                IEM_MC_FETCH_SREG_U16(u16Value, iSegReg);
    41174117                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_RM(pVCpu, bRm), u16Value);
    4118                 IEM_MC_ADVANCE_RIP();
     4118                IEM_MC_ADVANCE_RIP_AND_FINISH();
    41194119                IEM_MC_END();
    41204120                break;
     
    41254125                IEM_MC_FETCH_SREG_ZX_U32(u32Value, iSegReg);
    41264126                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Value);
    4127                 IEM_MC_ADVANCE_RIP();
     4127                IEM_MC_ADVANCE_RIP_AND_FINISH();
    41284128                IEM_MC_END();
    41294129                break;
     
    41344134                IEM_MC_FETCH_SREG_ZX_U64(u64Value, iSegReg);
    41354135                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Value);
    4136                 IEM_MC_ADVANCE_RIP();
     4136                IEM_MC_ADVANCE_RIP_AND_FINISH();
    41374137                IEM_MC_END();
    41384138                break;
     
    41554155        IEM_MC_FETCH_SREG_U16(u16Value, iSegReg);
    41564156        IEM_MC_STORE_MEM_U16(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u16Value);
    4157         IEM_MC_ADVANCE_RIP();
     4157        IEM_MC_ADVANCE_RIP_AND_FINISH();
    41584158        IEM_MC_END();
    41594159    }
     
    41844184            IEM_MC_ASSIGN_TO_SMALLER(u16Cast, GCPtrEffSrc);
    41854185            IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Cast);
    4186             IEM_MC_ADVANCE_RIP();
     4186            IEM_MC_ADVANCE_RIP_AND_FINISH();
    41874187            IEM_MC_END();
    41884188            return VINF_SUCCESS;
     
    41964196            IEM_MC_ASSIGN_TO_SMALLER(u32Cast, GCPtrEffSrc);
    41974197            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Cast);
    4198             IEM_MC_ADVANCE_RIP();
     4198            IEM_MC_ADVANCE_RIP_AND_FINISH();
    41994199            IEM_MC_END();
    42004200            return VINF_SUCCESS;
     
    42064206            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    42074207            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), GCPtrEffSrc);
    4208             IEM_MC_ADVANCE_RIP();
     4208            IEM_MC_ADVANCE_RIP_AND_FINISH();
    42094209            IEM_MC_END();
    42104210            return VINF_SUCCESS;
     
    44494449            IEM_MC_STORE_GREG_U16(X86_GREG_xAX, u16Tmp1);
    44504450            IEM_MC_STORE_GREG_U16(iReg,         u16Tmp2);
    4451             IEM_MC_ADVANCE_RIP();
     4451            IEM_MC_ADVANCE_RIP_AND_FINISH();
    44524452            IEM_MC_END();
    44534453            return VINF_SUCCESS;
     
    44614461            IEM_MC_STORE_GREG_U32(X86_GREG_xAX, u32Tmp1);
    44624462            IEM_MC_STORE_GREG_U32(iReg,         u32Tmp2);
    4463             IEM_MC_ADVANCE_RIP();
     4463            IEM_MC_ADVANCE_RIP_AND_FINISH();
    44644464            IEM_MC_END();
    44654465            return VINF_SUCCESS;
     
    44734473            IEM_MC_STORE_GREG_U64(X86_GREG_xAX, u64Tmp1);
    44744474            IEM_MC_STORE_GREG_U64(iReg,         u64Tmp2);
    4475             IEM_MC_ADVANCE_RIP();
     4475            IEM_MC_ADVANCE_RIP_AND_FINISH();
    44764476            IEM_MC_END();
    44774477            return VINF_SUCCESS;
     
    45094509        IEMOP_MNEMONIC(nop, "nop");
    45104510    IEM_MC_BEGIN(0, 0);
    4511     IEM_MC_ADVANCE_RIP();
     4511    IEM_MC_ADVANCE_RIP_AND_FINISH();
    45124512    IEM_MC_END();
    45134513    return VINF_SUCCESS;
     
    46014601                IEM_MC_AND_GREG_U16(X86_GREG_xAX, UINT16_C(0x00ff));
    46024602            } IEM_MC_ENDIF();
    4603             IEM_MC_ADVANCE_RIP();
     4603            IEM_MC_ADVANCE_RIP_AND_FINISH();
    46044604            IEM_MC_END();
    46054605            return VINF_SUCCESS;
     
    46134613                IEM_MC_AND_GREG_U32(X86_GREG_xAX, UINT32_C(0x0000ffff));
    46144614            } IEM_MC_ENDIF();
    4615             IEM_MC_ADVANCE_RIP();
     4615            IEM_MC_ADVANCE_RIP_AND_FINISH();
    46164616            IEM_MC_END();
    46174617            return VINF_SUCCESS;
     
    46254625                IEM_MC_AND_GREG_U64(X86_GREG_xAX, UINT64_C(0x00000000ffffffff));
    46264626            } IEM_MC_ENDIF();
    4627             IEM_MC_ADVANCE_RIP();
     4627            IEM_MC_ADVANCE_RIP_AND_FINISH();
    46284628            IEM_MC_END();
    46294629            return VINF_SUCCESS;
     
    46504650                IEM_MC_STORE_GREG_U16_CONST(X86_GREG_xDX, 0);
    46514651            } IEM_MC_ENDIF();
    4652             IEM_MC_ADVANCE_RIP();
     4652            IEM_MC_ADVANCE_RIP_AND_FINISH();
    46534653            IEM_MC_END();
    46544654            return VINF_SUCCESS;
     
    46624662                IEM_MC_STORE_GREG_U32_CONST(X86_GREG_xDX, 0);
    46634663            } IEM_MC_ENDIF();
    4664             IEM_MC_ADVANCE_RIP();
     4664            IEM_MC_ADVANCE_RIP_AND_FINISH();
    46654665            IEM_MC_END();
    46664666            return VINF_SUCCESS;
     
    46744674                IEM_MC_STORE_GREG_U64_CONST(X86_GREG_xDX, 0);
    46754675            } IEM_MC_ENDIF();
    4676             IEM_MC_ADVANCE_RIP();
     4676            IEM_MC_ADVANCE_RIP_AND_FINISH();
    46774677            IEM_MC_END();
    46784678            return VINF_SUCCESS;
     
    47124712    IEM_MC_MAYBE_RAISE_WAIT_DEVICE_NOT_AVAILABLE();
    47134713    IEM_MC_MAYBE_RAISE_FPU_XCPT();
    4714     IEM_MC_ADVANCE_RIP();
     4714    IEM_MC_ADVANCE_RIP_AND_FINISH();
    47154715    IEM_MC_END();
    47164716    return VINF_SUCCESS;
     
    47624762    IEM_MC_OR_2LOCS_U32(EFlags, u32Flags);
    47634763    IEM_MC_COMMIT_EFLAGS(EFlags);
    4764     IEM_MC_ADVANCE_RIP();
     4764    IEM_MC_ADVANCE_RIP_AND_FINISH();
    47654765    IEM_MC_END();
    47664766    return VINF_SUCCESS;
     
    47824782    IEM_MC_FETCH_EFLAGS_U8(u8Flags);
    47834783    IEM_MC_STORE_GREG_U8(X86_GREG_xSP/*=AH*/, u8Flags);
    4784     IEM_MC_ADVANCE_RIP();
     4784    IEM_MC_ADVANCE_RIP_AND_FINISH();
    47854785    IEM_MC_END();
    47864786    return VINF_SUCCESS;
     
    48324832    IEM_MC_FETCH_MEM_U8(u8Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
    48334833    IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Tmp);
    4834     IEM_MC_ADVANCE_RIP();
     4834    IEM_MC_ADVANCE_RIP_AND_FINISH();
    48354835    IEM_MC_END();
    48364836    return VINF_SUCCESS;
     
    48604860            IEM_MC_FETCH_MEM_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
    48614861            IEM_MC_STORE_GREG_U16(X86_GREG_xAX, u16Tmp);
    4862             IEM_MC_ADVANCE_RIP();
     4862            IEM_MC_ADVANCE_RIP_AND_FINISH();
    48634863            IEM_MC_END();
    48644864            return VINF_SUCCESS;
     
    48694869            IEM_MC_FETCH_MEM_U32(u32Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
    48704870            IEM_MC_STORE_GREG_U32(X86_GREG_xAX, u32Tmp);
    4871             IEM_MC_ADVANCE_RIP();
     4871            IEM_MC_ADVANCE_RIP_AND_FINISH();
    48724872            IEM_MC_END();
    48734873            return VINF_SUCCESS;
     
    48784878            IEM_MC_FETCH_MEM_U64(u64Tmp, pVCpu->iem.s.iEffSeg, GCPtrMemOff);
    48794879            IEM_MC_STORE_GREG_U64(X86_GREG_xAX, u64Tmp);
    4880             IEM_MC_ADVANCE_RIP();
     4880            IEM_MC_ADVANCE_RIP_AND_FINISH();
    48814881            IEM_MC_END();
    48824882            return VINF_SUCCESS;
     
    49064906    IEM_MC_FETCH_GREG_U8(u8Tmp, X86_GREG_xAX);
    49074907    IEM_MC_STORE_MEM_U8(pVCpu->iem.s.iEffSeg, GCPtrMemOff, u8Tmp);
    4908     IEM_MC_ADVANCE_RIP();
     4908    IEM_MC_ADVANCE_RIP_AND_FINISH();
    49094909    IEM_MC_END();
    49104910    return VINF_SUCCESS;
     
    49344934            IEM_MC_FETCH_GREG_U16(u16Tmp, X86_GREG_xAX);
    49354935            IEM_MC_STORE_MEM_U16(pVCpu->iem.s.iEffSeg, GCPtrMemOff, u16Tmp);
    4936             IEM_MC_ADVANCE_RIP();
     4936            IEM_MC_ADVANCE_RIP_AND_FINISH();
    49374937            IEM_MC_END();
    49384938            return VINF_SUCCESS;
     
    49434943            IEM_MC_FETCH_GREG_U32(u32Tmp, X86_GREG_xAX);
    49444944            IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrMemOff, u32Tmp);
    4945             IEM_MC_ADVANCE_RIP();
     4945            IEM_MC_ADVANCE_RIP_AND_FINISH();
    49464946            IEM_MC_END();
    49474947            return VINF_SUCCESS;
     
    49524952            IEM_MC_FETCH_GREG_U64(u64Tmp, X86_GREG_xAX);
    49534953            IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrMemOff, u64Tmp);
    4954             IEM_MC_ADVANCE_RIP();
     4954            IEM_MC_ADVANCE_RIP_AND_FINISH();
    49554955            IEM_MC_END();
    49564956            return VINF_SUCCESS;
     
    49764976            IEM_MC_ADD_GREG_U##AddrBits(X86_GREG_xSI, ValBits / 8); \
    49774977        } IEM_MC_ENDIF(); \
    4978         IEM_MC_ADVANCE_RIP(); \
     4978        IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    49794979        IEM_MC_END();
    49804980
     
    51275127            IEM_MC_ADD_GREG_U##AddrBits(X86_GREG_xSI, ValBits / 8); \
    51285128        } IEM_MC_ENDIF(); \
    5129         IEM_MC_ADVANCE_RIP(); \
     5129        IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    51305130        IEM_MC_END(); \
    51315131
     
    53375337            IEM_MC_ADD_GREG_U##AddrBits(X86_GREG_xDI, ValBits / 8); \
    53385338        } IEM_MC_ENDIF(); \
    5339         IEM_MC_ADVANCE_RIP(); \
     5339        IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    53405340        IEM_MC_END(); \
    53415341
     
    54775477            IEM_MC_ADD_GREG_U##AddrBits(X86_GREG_xSI, ValBits / 8); \
    54785478        } IEM_MC_ENDIF(); \
    5479         IEM_MC_ADVANCE_RIP(); \
     5479        IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    54805480        IEM_MC_END();
    54815481
     
    56235623            IEM_MC_ADD_GREG_U##AddrBits(X86_GREG_xDI, ValBits / 8); \
    56245624        } IEM_MC_ENDIF(); \
    5625         IEM_MC_ADVANCE_RIP(); \
     5625        IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    56265626        IEM_MC_END();
    56275627
     
    58055805    IEM_MC_LOCAL_CONST(uint8_t, u8Value,/*=*/ u8Imm);
    58065806    IEM_MC_STORE_GREG_U8(iReg, u8Value);
    5807     IEM_MC_ADVANCE_RIP();
     5807    IEM_MC_ADVANCE_RIP_AND_FINISH();
    58085808    IEM_MC_END();
    58095809
     
    59075907            IEM_MC_LOCAL_CONST(uint16_t, u16Value,/*=*/ u16Imm);
    59085908            IEM_MC_STORE_GREG_U16(iReg, u16Value);
    5909             IEM_MC_ADVANCE_RIP();
     5909            IEM_MC_ADVANCE_RIP_AND_FINISH();
    59105910            IEM_MC_END();
    59115911            break;
     
    59205920            IEM_MC_LOCAL_CONST(uint32_t, u32Value,/*=*/ u32Imm);
    59215921            IEM_MC_STORE_GREG_U32(iReg, u32Value);
    5922             IEM_MC_ADVANCE_RIP();
     5922            IEM_MC_ADVANCE_RIP_AND_FINISH();
    59235923            IEM_MC_END();
    59245924            break;
     
    59325932            IEM_MC_LOCAL_CONST(uint64_t, u64Value,/*=*/ u64Imm);
    59335933            IEM_MC_STORE_GREG_U64(iReg, u64Value);
    5934             IEM_MC_ADVANCE_RIP();
     5934            IEM_MC_ADVANCE_RIP_AND_FINISH();
    59355935            IEM_MC_END();
    59365936            break;
     
    60566056        IEM_MC_REF_EFLAGS(pEFlags);
    60576057        IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU8, pu8Dst, cShiftArg, pEFlags);
    6058         IEM_MC_ADVANCE_RIP();
     6058        IEM_MC_ADVANCE_RIP_AND_FINISH();
    60596059        IEM_MC_END();
    60606060    }
     
    60786078        IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Dst, IEM_ACCESS_DATA_RW);
    60796079        IEM_MC_COMMIT_EFLAGS(EFlags);
    6080         IEM_MC_ADVANCE_RIP();
     6080        IEM_MC_ADVANCE_RIP_AND_FINISH();
    60816081        IEM_MC_END();
    60826082    }
     
    61226122                IEM_MC_REF_EFLAGS(pEFlags);
    61236123                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, cShiftArg, pEFlags);
    6124                 IEM_MC_ADVANCE_RIP();
     6124                IEM_MC_ADVANCE_RIP_AND_FINISH();
    61256125                IEM_MC_END();
    61266126                return VINF_SUCCESS;
     
    61356135                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU32, pu32Dst, cShiftArg, pEFlags);
    61366136                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    6137                 IEM_MC_ADVANCE_RIP();
     6137                IEM_MC_ADVANCE_RIP_AND_FINISH();
    61386138                IEM_MC_END();
    61396139                return VINF_SUCCESS;
     
    61476147                IEM_MC_REF_EFLAGS(pEFlags);
    61486148                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, cShiftArg, pEFlags);
    6149                 IEM_MC_ADVANCE_RIP();
     6149                IEM_MC_ADVANCE_RIP_AND_FINISH();
    61506150                IEM_MC_END();
    61516151                return VINF_SUCCESS;
     
    61766176                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
    61776177                IEM_MC_COMMIT_EFLAGS(EFlags);
    6178                 IEM_MC_ADVANCE_RIP();
     6178                IEM_MC_ADVANCE_RIP_AND_FINISH();
    61796179                IEM_MC_END();
    61806180                return VINF_SUCCESS;
     
    61976197                IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
    61986198                IEM_MC_COMMIT_EFLAGS(EFlags);
    6199                 IEM_MC_ADVANCE_RIP();
     6199                IEM_MC_ADVANCE_RIP_AND_FINISH();
    62006200                IEM_MC_END();
    62016201                return VINF_SUCCESS;
     
    62186218                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
    62196219                IEM_MC_COMMIT_EFLAGS(EFlags);
    6220                 IEM_MC_ADVANCE_RIP();
     6220                IEM_MC_ADVANCE_RIP_AND_FINISH();
    62216221                IEM_MC_END();
    62226222                return VINF_SUCCESS;
     
    63866386        IEM_MC_BEGIN(0, 0);
    63876387        IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_RM(pVCpu, bRm), u8Imm);
    6388         IEM_MC_ADVANCE_RIP();
     6388        IEM_MC_ADVANCE_RIP_AND_FINISH();
    63896389        IEM_MC_END();
    63906390    }
     
    63986398        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    63996399        IEM_MC_STORE_MEM_U8(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u8Imm);
    6400         IEM_MC_ADVANCE_RIP();
     6400        IEM_MC_ADVANCE_RIP_AND_FINISH();
    64016401        IEM_MC_END();
    64026402    }
     
    64256425                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64266426                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_RM(pVCpu, bRm), u16Imm);
    6427                 IEM_MC_ADVANCE_RIP();
     6427                IEM_MC_ADVANCE_RIP_AND_FINISH();
    64286428                IEM_MC_END();
    64296429                return VINF_SUCCESS;
     
    64346434                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64356435                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Imm);
    6436                 IEM_MC_ADVANCE_RIP();
     6436                IEM_MC_ADVANCE_RIP_AND_FINISH();
    64376437                IEM_MC_END();
    64386438                return VINF_SUCCESS;
     
    64436443                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64446444                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Imm);
    6445                 IEM_MC_ADVANCE_RIP();
     6445                IEM_MC_ADVANCE_RIP_AND_FINISH();
    64466446                IEM_MC_END();
    64476447                return VINF_SUCCESS;
     
    64626462                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64636463                IEM_MC_STORE_MEM_U16(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u16Imm);
    6464                 IEM_MC_ADVANCE_RIP();
     6464                IEM_MC_ADVANCE_RIP_AND_FINISH();
    64656465                IEM_MC_END();
    64666466                return VINF_SUCCESS;
     
    64736473                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64746474                IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u32Imm);
    6475                 IEM_MC_ADVANCE_RIP();
     6475                IEM_MC_ADVANCE_RIP_AND_FINISH();
    64766476                IEM_MC_END();
    64776477                return VINF_SUCCESS;
     
    64846484                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64856485                IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u64Imm);
    6486                 IEM_MC_ADVANCE_RIP();
     6486                IEM_MC_ADVANCE_RIP_AND_FINISH();
    64876487                IEM_MC_END();
    64886488                return VINF_SUCCESS;
     
    66326632        IEM_MC_REF_EFLAGS(pEFlags);
    66336633        IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU8, pu8Dst, cShiftArg, pEFlags);
    6634         IEM_MC_ADVANCE_RIP();
     6634        IEM_MC_ADVANCE_RIP_AND_FINISH();
    66356635        IEM_MC_END();
    66366636    }
     
    66526652        IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Dst, IEM_ACCESS_DATA_RW);
    66536653        IEM_MC_COMMIT_EFLAGS(EFlags);
    6654         IEM_MC_ADVANCE_RIP();
     6654        IEM_MC_ADVANCE_RIP_AND_FINISH();
    66556655        IEM_MC_END();
    66566656    }
     
    66956695                IEM_MC_REF_EFLAGS(pEFlags);
    66966696                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, cShiftArg, pEFlags);
    6697                 IEM_MC_ADVANCE_RIP();
     6697                IEM_MC_ADVANCE_RIP_AND_FINISH();
    66986698                IEM_MC_END();
    66996699                return VINF_SUCCESS;
     
    67086708                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU32, pu32Dst, cShiftArg, pEFlags);
    67096709                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    6710                 IEM_MC_ADVANCE_RIP();
     6710                IEM_MC_ADVANCE_RIP_AND_FINISH();
    67116711                IEM_MC_END();
    67126712                return VINF_SUCCESS;
     
    67206720                IEM_MC_REF_EFLAGS(pEFlags);
    67216721                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, cShiftArg, pEFlags);
    6722                 IEM_MC_ADVANCE_RIP();
     6722                IEM_MC_ADVANCE_RIP_AND_FINISH();
    67236723                IEM_MC_END();
    67246724                return VINF_SUCCESS;
     
    67476747                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
    67486748                IEM_MC_COMMIT_EFLAGS(EFlags);
    6749                 IEM_MC_ADVANCE_RIP();
     6749                IEM_MC_ADVANCE_RIP_AND_FINISH();
    67506750                IEM_MC_END();
    67516751                return VINF_SUCCESS;
     
    67666766                IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
    67676767                IEM_MC_COMMIT_EFLAGS(EFlags);
    6768                 IEM_MC_ADVANCE_RIP();
     6768                IEM_MC_ADVANCE_RIP_AND_FINISH();
    67696769                IEM_MC_END();
    67706770                return VINF_SUCCESS;
     
    67856785                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
    67866786                IEM_MC_COMMIT_EFLAGS(EFlags);
    6787                 IEM_MC_ADVANCE_RIP();
     6787                IEM_MC_ADVANCE_RIP_AND_FINISH();
    67886788                IEM_MC_END();
    67896789                return VINF_SUCCESS;
     
    68286828        IEM_MC_REF_EFLAGS(pEFlags);
    68296829        IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU8, pu8Dst, cShiftArg, pEFlags);
    6830         IEM_MC_ADVANCE_RIP();
     6830        IEM_MC_ADVANCE_RIP_AND_FINISH();
    68316831        IEM_MC_END();
    68326832    }
     
    68496849        IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Dst, IEM_ACCESS_DATA_RW);
    68506850        IEM_MC_COMMIT_EFLAGS(EFlags);
    6851         IEM_MC_ADVANCE_RIP();
     6851        IEM_MC_ADVANCE_RIP_AND_FINISH();
    68526852        IEM_MC_END();
    68536853    }
     
    68926892                IEM_MC_REF_EFLAGS(pEFlags);
    68936893                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, cShiftArg, pEFlags);
    6894                 IEM_MC_ADVANCE_RIP();
     6894                IEM_MC_ADVANCE_RIP_AND_FINISH();
    68956895                IEM_MC_END();
    68966896                return VINF_SUCCESS;
     
    69066906                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU32, pu32Dst, cShiftArg, pEFlags);
    69076907                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    6908                 IEM_MC_ADVANCE_RIP();
     6908                IEM_MC_ADVANCE_RIP_AND_FINISH();
    69096909                IEM_MC_END();
    69106910                return VINF_SUCCESS;
     
    69196919                IEM_MC_REF_EFLAGS(pEFlags);
    69206920                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, cShiftArg, pEFlags);
    6921                 IEM_MC_ADVANCE_RIP();
     6921                IEM_MC_ADVANCE_RIP_AND_FINISH();
    69226922                IEM_MC_END();
    69236923                return VINF_SUCCESS;
     
    69476947                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
    69486948                IEM_MC_COMMIT_EFLAGS(EFlags);
    6949                 IEM_MC_ADVANCE_RIP();
     6949                IEM_MC_ADVANCE_RIP_AND_FINISH();
    69506950                IEM_MC_END();
    69516951                return VINF_SUCCESS;
     
    69676967                IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
    69686968                IEM_MC_COMMIT_EFLAGS(EFlags);
    6969                 IEM_MC_ADVANCE_RIP();
     6969                IEM_MC_ADVANCE_RIP_AND_FINISH();
    69706970                IEM_MC_END();
    69716971                return VINF_SUCCESS;
     
    69876987                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
    69886988                IEM_MC_COMMIT_EFLAGS(EFlags);
    6989                 IEM_MC_ADVANCE_RIP();
     6989                IEM_MC_ADVANCE_RIP_AND_FINISH();
    69906990                IEM_MC_END();
    69916991                return VINF_SUCCESS;
     
    70397039        IEM_MC_STORE_GREG_U8_CONST(X86_GREG_xAX, 0x00);
    70407040    } IEM_MC_ENDIF();
    7041     IEM_MC_ADVANCE_RIP();
     7041    IEM_MC_ADVANCE_RIP_AND_FINISH();
    70427042    IEM_MC_END();
    70437043    return VINF_SUCCESS;
     
    70627062            IEM_MC_FETCH_MEM16_U8(u8Tmp, pVCpu->iem.s.iEffSeg, u16Addr);
    70637063            IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Tmp);
    7064             IEM_MC_ADVANCE_RIP();
     7064            IEM_MC_ADVANCE_RIP_AND_FINISH();
    70657065            IEM_MC_END();
    70667066            return VINF_SUCCESS;
     
    70747074            IEM_MC_FETCH_MEM32_U8(u8Tmp, pVCpu->iem.s.iEffSeg, u32Addr);
    70757075            IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Tmp);
    7076             IEM_MC_ADVANCE_RIP();
     7076            IEM_MC_ADVANCE_RIP_AND_FINISH();
    70777077            IEM_MC_END();
    70787078            return VINF_SUCCESS;
     
    70867086            IEM_MC_FETCH_MEM_U8(u8Tmp, pVCpu->iem.s.iEffSeg, u64Addr);
    70877087            IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Tmp);
    7088             IEM_MC_ADVANCE_RIP();
     7088            IEM_MC_ADVANCE_RIP_AND_FINISH();
    70897089            IEM_MC_END();
    70907090            return VINF_SUCCESS;
     
    71217121        IEM_MC_FPU_STACK_UNDERFLOW(0);
    71227122    IEM_MC_ENDIF();
    7123     IEM_MC_ADVANCE_RIP();
     7123    IEM_MC_ADVANCE_RIP_AND_FINISH();
    71247124
    71257125    IEM_MC_END();
     
    71547154        IEM_MC_FPU_STACK_UNDERFLOW(UINT8_MAX);
    71557155    IEM_MC_ENDIF();
    7156     IEM_MC_ADVANCE_RIP();
     7156    IEM_MC_ADVANCE_RIP_AND_FINISH();
    71577157
    71587158    IEM_MC_END();
     
    71877187        IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP(UINT8_MAX);
    71887188    IEM_MC_ENDIF();
    7189     IEM_MC_ADVANCE_RIP();
     7189    IEM_MC_ADVANCE_RIP_AND_FINISH();
    71907190
    71917191    IEM_MC_END();
     
    72897289        IEM_MC_FPU_STACK_UNDERFLOW(0);
    72907290    IEM_MC_ENDIF();
    7291     IEM_MC_ADVANCE_RIP();
     7291    IEM_MC_ADVANCE_RIP_AND_FINISH();
    72927292
    72937293    IEM_MC_END();
     
    73397339        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    73407340    IEM_MC_ENDIF();
    7341     IEM_MC_ADVANCE_RIP();
     7341    IEM_MC_ADVANCE_RIP_AND_FINISH();
    73427342
    73437343    IEM_MC_END();
     
    73737373        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    73747374    IEM_MC_ENDIF();
    7375     IEM_MC_ADVANCE_RIP();
     7375    IEM_MC_ADVANCE_RIP_AND_FINISH();
    73767376
    73777377    IEM_MC_END();
     
    74807480        IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP(pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    74817481    IEM_MC_ENDIF();
    7482     IEM_MC_ADVANCE_RIP();
     7482    IEM_MC_ADVANCE_RIP_AND_FINISH();
    74837483
    74847484    IEM_MC_END();
     
    75167516        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    75177517    IEM_MC_ENDIF();
    7518     IEM_MC_ADVANCE_RIP();
     7518    IEM_MC_ADVANCE_RIP_AND_FINISH();
    75197519
    75207520    IEM_MC_END();
     
    75527552        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    75537553    IEM_MC_ENDIF();
    7554     IEM_MC_ADVANCE_RIP();
     7554    IEM_MC_ADVANCE_RIP_AND_FINISH();
    75557555
    75567556    IEM_MC_END();
     
    76287628    IEM_MC_FETCH_FCW(u16Fcw);
    76297629    IEM_MC_STORE_MEM_U16(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u16Fcw);
    7630     IEM_MC_ADVANCE_RIP(); /* C0-C3 are documented as undefined, we leave them unmodified. */
     7630    IEM_MC_ADVANCE_RIP_AND_FINISH(); /* C0-C3 are documented as undefined, we leave them unmodified. */
    76317631    IEM_MC_END();
    76327632    return VINF_SUCCESS;
     
    76477647     *        intel optimizations. Investigate. */
    76487648    IEM_MC_UPDATE_FPU_OPCODE_IP();
    7649     IEM_MC_ADVANCE_RIP(); /* C0-C3 are documented as undefined, we leave them unmodified. */
     7649    IEM_MC_ADVANCE_RIP_AND_FINISH(); /* C0-C3 are documented as undefined, we leave them unmodified. */
    76507650    IEM_MC_END();
    76517651    return VINF_SUCCESS;
     
    76757675    IEM_MC_ENDIF();
    76767676
    7677     IEM_MC_ADVANCE_RIP();
     7677    IEM_MC_ADVANCE_RIP_AND_FINISH();
    76787678    IEM_MC_END();
    76797679
     
    77077707    IEM_MC_ENDIF();
    77087708
    7709     IEM_MC_ADVANCE_RIP();
     7709    IEM_MC_ADVANCE_RIP_AND_FINISH();
    77107710    IEM_MC_END();
    77117711
     
    77367736        IEM_MC_ENDIF();
    77377737
    7738         IEM_MC_ADVANCE_RIP();
     7738        IEM_MC_ADVANCE_RIP_AND_FINISH();
    77397739        IEM_MC_END();
    77407740    }
     
    77557755        IEM_MC_ENDIF();
    77567756
    7757         IEM_MC_ADVANCE_RIP();
     7757        IEM_MC_ADVANCE_RIP_AND_FINISH();
    77587758        IEM_MC_END();
    77597759    }
     
    77867786        IEM_MC_FPU_STACK_UNDERFLOW(0);
    77877787    IEM_MC_ENDIF();
    7788     IEM_MC_ADVANCE_RIP();
     7788    IEM_MC_ADVANCE_RIP_AND_FINISH();
    77897789
    77907790    IEM_MC_END();
     
    78297829        IEM_MC_FPU_STACK_UNDERFLOW(UINT8_MAX);
    78307830    IEM_MC_ENDIF();
    7831     IEM_MC_ADVANCE_RIP();
     7831    IEM_MC_ADVANCE_RIP_AND_FINISH();
    78327832
    78337833    IEM_MC_END();
     
    78537853    IEM_MC_CALL_FPU_AIMPL_2(iemAImpl_fxam_r80, pu16Fsw, pr80Value);
    78547854    IEM_MC_UPDATE_FSW(u16Fsw);
    7855     IEM_MC_ADVANCE_RIP();
     7855    IEM_MC_ADVANCE_RIP_AND_FINISH();
    78567856
    78577857    IEM_MC_END();
     
    78827882        IEM_MC_FPU_STACK_PUSH_OVERFLOW();
    78837883    IEM_MC_ENDIF();
    7884     IEM_MC_ADVANCE_RIP();
     7884    IEM_MC_ADVANCE_RIP_AND_FINISH();
    78857885
    78867886    IEM_MC_END();
     
    79857985        IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP(IEM_GET_MODRM_RM_8(bRm));
    79867986    IEM_MC_ENDIF();
    7987     IEM_MC_ADVANCE_RIP();
     7987    IEM_MC_ADVANCE_RIP_AND_FINISH();
    79887988
    79897989    IEM_MC_END();
     
    80248024        IEM_MC_FPU_STACK_PUSH_UNDERFLOW_TWO();
    80258025    IEM_MC_ENDIF();
    8026     IEM_MC_ADVANCE_RIP();
     8026    IEM_MC_ADVANCE_RIP_AND_FINISH();
    80278027
    80288028    IEM_MC_END();
     
    80818081    IEM_MC_UPDATE_FSW_CONST(0);
    80828082
    8083     IEM_MC_ADVANCE_RIP();
     8083    IEM_MC_ADVANCE_RIP_AND_FINISH();
    80848084    IEM_MC_END();
    80858085    return VINF_SUCCESS;
     
    81058105    IEM_MC_UPDATE_FSW_CONST(0);
    81068106
    8107     IEM_MC_ADVANCE_RIP();
     8107    IEM_MC_ADVANCE_RIP_AND_FINISH();
    81088108    IEM_MC_END();
    81098109    return VINF_SUCCESS;
     
    82808280        IEM_MC_FPU_STACK_UNDERFLOW(0);
    82818281    IEM_MC_ENDIF();
    8282     IEM_MC_ADVANCE_RIP();
     8282    IEM_MC_ADVANCE_RIP_AND_FINISH();
    82838283
    82848284    IEM_MC_END();
     
    83088308        IEM_MC_FPU_STACK_UNDERFLOW(0);
    83098309    IEM_MC_ENDIF();
    8310     IEM_MC_ADVANCE_RIP();
     8310    IEM_MC_ADVANCE_RIP_AND_FINISH();
    83118311
    83128312    IEM_MC_END();
     
    83368336        IEM_MC_FPU_STACK_UNDERFLOW(0);
    83378337    IEM_MC_ENDIF();
    8338     IEM_MC_ADVANCE_RIP();
     8338    IEM_MC_ADVANCE_RIP_AND_FINISH();
    83398339
    83408340    IEM_MC_END();
     
    83648364        IEM_MC_FPU_STACK_UNDERFLOW(0);
    83658365    IEM_MC_ENDIF();
    8366     IEM_MC_ADVANCE_RIP();
     8366    IEM_MC_ADVANCE_RIP_AND_FINISH();
    83678367
    83688368    IEM_MC_END();
     
    83978397        IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP_POP();
    83988398    IEM_MC_ENDIF();
    8399     IEM_MC_ADVANCE_RIP();
     8399    IEM_MC_ADVANCE_RIP_AND_FINISH();
    84008400
    84018401    IEM_MC_END();
     
    84438443        IEM_MC_FPU_STACK_UNDERFLOW(0);
    84448444    IEM_MC_ENDIF();
    8445     IEM_MC_ADVANCE_RIP();
     8445    IEM_MC_ADVANCE_RIP_AND_FINISH();
    84468446
    84478447    IEM_MC_END();
     
    84938493        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    84948494    IEM_MC_ENDIF();
    8495     IEM_MC_ADVANCE_RIP();
     8495    IEM_MC_ADVANCE_RIP_AND_FINISH();
    84968496
    84978497    IEM_MC_END();
     
    85278527        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    85288528    IEM_MC_ENDIF();
    8529     IEM_MC_ADVANCE_RIP();
     8529    IEM_MC_ADVANCE_RIP_AND_FINISH();
    85308530
    85318531    IEM_MC_END();
     
    86358635        IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP(pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    86368636    IEM_MC_ENDIF();
    8637     IEM_MC_ADVANCE_RIP();
     8637    IEM_MC_ADVANCE_RIP_AND_FINISH();
    86388638
    86398639    IEM_MC_END();
     
    86718671        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    86728672    IEM_MC_ENDIF();
    8673     IEM_MC_ADVANCE_RIP();
     8673    IEM_MC_ADVANCE_RIP_AND_FINISH();
    86748674
    86758675    IEM_MC_END();
     
    87078707        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    87088708    IEM_MC_ENDIF();
    8709     IEM_MC_ADVANCE_RIP();
     8709    IEM_MC_ADVANCE_RIP_AND_FINISH();
    87108710
    87118711    IEM_MC_END();
     
    87438743        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    87448744    IEM_MC_ENDIF();
    8745     IEM_MC_ADVANCE_RIP();
     8745    IEM_MC_ADVANCE_RIP_AND_FINISH();
    87468746
    87478747    IEM_MC_END();
     
    87768776        IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP(pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    87778777    IEM_MC_ENDIF();
    8778     IEM_MC_ADVANCE_RIP();
     8778    IEM_MC_ADVANCE_RIP_AND_FINISH();
    87798779
    87808780    IEM_MC_END();
     
    88128812        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    88138813    IEM_MC_ENDIF();
    8814     IEM_MC_ADVANCE_RIP();
     8814    IEM_MC_ADVANCE_RIP_AND_FINISH();
    88158815
    88168816    IEM_MC_END();
     
    88408840        IEM_MC_FPU_STACK_UNDERFLOW(0);
    88418841    IEM_MC_ENDIF();
    8842     IEM_MC_ADVANCE_RIP();
     8842    IEM_MC_ADVANCE_RIP_AND_FINISH();
    88438843
    88448844    IEM_MC_END();
     
    88688868        IEM_MC_FPU_STACK_UNDERFLOW(0);
    88698869    IEM_MC_ENDIF();
    8870     IEM_MC_ADVANCE_RIP();
     8870    IEM_MC_ADVANCE_RIP_AND_FINISH();
    88718871
    88728872    IEM_MC_END();
     
    88968896        IEM_MC_FPU_STACK_UNDERFLOW(0);
    88978897    IEM_MC_ENDIF();
    8898     IEM_MC_ADVANCE_RIP();
     8898    IEM_MC_ADVANCE_RIP_AND_FINISH();
    88998899
    89008900    IEM_MC_END();
     
    89248924        IEM_MC_FPU_STACK_UNDERFLOW(0);
    89258925    IEM_MC_ENDIF();
    8926     IEM_MC_ADVANCE_RIP();
     8926    IEM_MC_ADVANCE_RIP_AND_FINISH();
    89278927
    89288928    IEM_MC_END();
     
    89388938    IEM_MC_BEGIN(0,0);
    89398939    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    8940     IEM_MC_ADVANCE_RIP();
     8940    IEM_MC_ADVANCE_RIP_AND_FINISH();
    89418941    IEM_MC_END();
    89428942    return VINF_SUCCESS;
     
    89518951    IEM_MC_BEGIN(0,0);
    89528952    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    8953     IEM_MC_ADVANCE_RIP();
     8953    IEM_MC_ADVANCE_RIP_AND_FINISH();
    89548954    IEM_MC_END();
    89558955    return VINF_SUCCESS;
     
    89678967    IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE();
    89688968    IEM_MC_CLEAR_FSW_EX();
    8969     IEM_MC_ADVANCE_RIP();
     8969    IEM_MC_ADVANCE_RIP_AND_FINISH();
    89708970    IEM_MC_END();
    89718971    return VINF_SUCCESS;
     
    89898989    IEM_MC_BEGIN(0,0);
    89908990    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    8991     IEM_MC_ADVANCE_RIP();
     8991    IEM_MC_ADVANCE_RIP_AND_FINISH();
    89928992    IEM_MC_END();
    89938993    return VINF_SUCCESS;
     
    90039003    IEM_MC_BEGIN(0,0);
    90049004    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
    9005     IEM_MC_ADVANCE_RIP();
     9005    IEM_MC_ADVANCE_RIP_AND_FINISH();
    90069006    IEM_MC_END();
    90079007    return VINF_SUCCESS;
     
    91089108        IEM_MC_FPU_STACK_UNDERFLOW(IEM_GET_MODRM_RM_8(bRm));
    91099109    IEM_MC_ENDIF();
    9110     IEM_MC_ADVANCE_RIP();
     9110    IEM_MC_ADVANCE_RIP_AND_FINISH();
    91119111
    91129112    IEM_MC_END();
     
    91939193        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(0, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    91949194    IEM_MC_ENDIF();
    9195     IEM_MC_ADVANCE_RIP();
     9195    IEM_MC_ADVANCE_RIP_AND_FINISH();
    91969196
    91979197    IEM_MC_END();
     
    92439243        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    92449244    IEM_MC_ENDIF();
    9245     IEM_MC_ADVANCE_RIP();
     9245    IEM_MC_ADVANCE_RIP_AND_FINISH();
    92469246
    92479247    IEM_MC_END();
     
    92779277        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    92789278    IEM_MC_ENDIF();
    9279     IEM_MC_ADVANCE_RIP();
     9279    IEM_MC_ADVANCE_RIP_AND_FINISH();
    92809280
    92819281    IEM_MC_END();
     
    93829382        IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP(pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    93839383    IEM_MC_ENDIF();
    9384     IEM_MC_ADVANCE_RIP();
     9384    IEM_MC_ADVANCE_RIP_AND_FINISH();
    93859385
    93869386    IEM_MC_END();
     
    94189418        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    94199419    IEM_MC_ENDIF();
    9420     IEM_MC_ADVANCE_RIP();
     9420    IEM_MC_ADVANCE_RIP_AND_FINISH();
    94219421
    94229422    IEM_MC_END();
     
    94549454        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    94559455    IEM_MC_ENDIF();
    9456     IEM_MC_ADVANCE_RIP();
     9456    IEM_MC_ADVANCE_RIP_AND_FINISH();
    94579457
    94589458    IEM_MC_END();
     
    94929492        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    94939493    IEM_MC_ENDIF();
    9494     IEM_MC_ADVANCE_RIP();
     9494    IEM_MC_ADVANCE_RIP_AND_FINISH();
    94959495
    94969496    IEM_MC_END();
     
    95539553    IEM_MC_FETCH_FSW(u16Tmp);
    95549554    IEM_MC_STORE_MEM_U16(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u16Tmp);
    9555     IEM_MC_ADVANCE_RIP();
     9555    IEM_MC_ADVANCE_RIP_AND_FINISH();
    95569556
    95579557/** @todo Debug / drop a hint to the verifier that things may differ
     
    95809580    IEM_MC_UPDATE_FPU_OPCODE_IP();
    95819581
    9582     IEM_MC_ADVANCE_RIP();
     9582    IEM_MC_ADVANCE_RIP_AND_FINISH();
    95839583    IEM_MC_END();
    95849584    return VINF_SUCCESS;
     
    96069606    IEM_MC_ENDIF();
    96079607
    9608     IEM_MC_ADVANCE_RIP();
     9608    IEM_MC_ADVANCE_RIP_AND_FINISH();
    96099609    IEM_MC_END();
    96109610    return VINF_SUCCESS;
     
    97559755        IEM_MC_FPU_STACK_UNDERFLOW(0);
    97569756    IEM_MC_ENDIF();
    9757     IEM_MC_ADVANCE_RIP();
     9757    IEM_MC_ADVANCE_RIP_AND_FINISH();
    97589758
    97599759    IEM_MC_END();
     
    98059805        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    98069806    IEM_MC_ENDIF();
    9807     IEM_MC_ADVANCE_RIP();
     9807    IEM_MC_ADVANCE_RIP_AND_FINISH();
    98089808
    98099809    IEM_MC_END();
     
    98399839        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    98409840    IEM_MC_ENDIF();
    9841     IEM_MC_ADVANCE_RIP();
     9841    IEM_MC_ADVANCE_RIP_AND_FINISH();
    98429842
    98439843    IEM_MC_END();
     
    99379937    IEM_MC_UPDATE_FPU_OPCODE_IP();
    99389938
    9939     IEM_MC_ADVANCE_RIP();
     9939    IEM_MC_ADVANCE_RIP_AND_FINISH();
    99409940    IEM_MC_END();
    99419941    return VINF_SUCCESS;
     
    99559955    IEM_MC_FETCH_FSW(u16Tmp);
    99569956    IEM_MC_STORE_GREG_U16(X86_GREG_xAX, u16Tmp);
    9957     IEM_MC_ADVANCE_RIP();
     9957    IEM_MC_ADVANCE_RIP_AND_FINISH();
    99589958    IEM_MC_END();
    99599959    return VINF_SUCCESS;
     
    1000310003        IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP(pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1000410004    IEM_MC_ENDIF();
    10005     IEM_MC_ADVANCE_RIP();
     10005    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1000610006
    1000710007    IEM_MC_END();
     
    1003910039        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1004010040    IEM_MC_ENDIF();
    10041     IEM_MC_ADVANCE_RIP();
     10041    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1004210042
    1004310043    IEM_MC_END();
     
    1007510075        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1007610076    IEM_MC_ENDIF();
    10077     IEM_MC_ADVANCE_RIP();
     10077    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1007810078
    1007910079    IEM_MC_END();
     
    1011110111        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1011210112    IEM_MC_ENDIF();
    10113     IEM_MC_ADVANCE_RIP();
     10113    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1011410114
    1011510115    IEM_MC_END();
     
    1014410144        IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP(pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1014510145    IEM_MC_ENDIF();
    10146     IEM_MC_ADVANCE_RIP();
     10146    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1014710147
    1014810148    IEM_MC_END();
     
    1017710177        IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP(pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1017810178    IEM_MC_ENDIF();
    10179     IEM_MC_ADVANCE_RIP();
     10179    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1018010180
    1018110181    IEM_MC_END();
     
    1021310213        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1021410214    IEM_MC_ENDIF();
    10215     IEM_MC_ADVANCE_RIP();
     10215    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1021610216
    1021710217    IEM_MC_END();
     
    1024910249        IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP(UINT8_MAX, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1025010250    IEM_MC_ENDIF();
    10251     IEM_MC_ADVANCE_RIP();
     10251    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1025210252
    1025310253    IEM_MC_END();
     
    1031510315                IEM_MC_REL_JMP_S8(i8Imm);
    1031610316            } IEM_MC_ELSE() {
    10317                 IEM_MC_ADVANCE_RIP();
     10317                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1031810318            } IEM_MC_ENDIF();
    1031910319            IEM_MC_END();
     
    1032610326                IEM_MC_REL_JMP_S8(i8Imm);
    1032710327            } IEM_MC_ELSE() {
    10328                 IEM_MC_ADVANCE_RIP();
     10328                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1032910329            } IEM_MC_ENDIF();
    1033010330            IEM_MC_END();
     
    1033710337                IEM_MC_REL_JMP_S8(i8Imm);
    1033810338            } IEM_MC_ELSE() {
    10339                 IEM_MC_ADVANCE_RIP();
     10339                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1034010340            } IEM_MC_ENDIF();
    1034110341            IEM_MC_END();
     
    1036510365                IEM_MC_REL_JMP_S8(i8Imm);
    1036610366            } IEM_MC_ELSE() {
    10367                 IEM_MC_ADVANCE_RIP();
     10367                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1036810368            } IEM_MC_ENDIF();
    1036910369            IEM_MC_END();
     
    1037610376                IEM_MC_REL_JMP_S8(i8Imm);
    1037710377            } IEM_MC_ELSE() {
    10378                 IEM_MC_ADVANCE_RIP();
     10378                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1037910379            } IEM_MC_ENDIF();
    1038010380            IEM_MC_END();
     
    1038710387                IEM_MC_REL_JMP_S8(i8Imm);
    1038810388            } IEM_MC_ELSE() {
    10389                 IEM_MC_ADVANCE_RIP();
     10389                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1039010390            } IEM_MC_ENDIF();
    1039110391            IEM_MC_END();
     
    1042210422                IEM_MC_BEGIN(0,0);
    1042310423                IEM_MC_STORE_GREG_U16_CONST(X86_GREG_xCX, 0);
    10424                 IEM_MC_ADVANCE_RIP();
     10424                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1042510425                IEM_MC_END();
    1042610426                return VINF_SUCCESS;
     
    1042910429                IEM_MC_BEGIN(0,0);
    1043010430                IEM_MC_STORE_GREG_U32_CONST(X86_GREG_xCX, 0);
    10431                 IEM_MC_ADVANCE_RIP();
     10431                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1043210432                IEM_MC_END();
    1043310433                return VINF_SUCCESS;
     
    1043610436                IEM_MC_BEGIN(0,0);
    1043710437                IEM_MC_STORE_GREG_U64_CONST(X86_GREG_xCX, 0);
    10438                 IEM_MC_ADVANCE_RIP();
     10438                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1043910439                IEM_MC_END();
    1044010440                return VINF_SUCCESS;
     
    1045310453                IEM_MC_REL_JMP_S8(i8Imm);
    1045410454            } IEM_MC_ELSE() {
    10455                 IEM_MC_ADVANCE_RIP();
     10455                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1045610456            } IEM_MC_ENDIF();
    1045710457            IEM_MC_END();
     
    1046410464                IEM_MC_REL_JMP_S8(i8Imm);
    1046510465            } IEM_MC_ELSE() {
    10466                 IEM_MC_ADVANCE_RIP();
     10466                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1046710467            } IEM_MC_ENDIF();
    1046810468            IEM_MC_END();
     
    1047510475                IEM_MC_REL_JMP_S8(i8Imm);
    1047610476            } IEM_MC_ELSE() {
    10477                 IEM_MC_ADVANCE_RIP();
     10477                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1047810478            } IEM_MC_ENDIF();
    1047910479            IEM_MC_END();
     
    1050010500            IEM_MC_BEGIN(0,0);
    1050110501            IEM_MC_IF_CX_IS_NZ() {
    10502                 IEM_MC_ADVANCE_RIP();
     10502                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1050310503            } IEM_MC_ELSE() {
    1050410504                IEM_MC_REL_JMP_S8(i8Imm);
     
    1051010510            IEM_MC_BEGIN(0,0);
    1051110511            IEM_MC_IF_ECX_IS_NZ() {
    10512                 IEM_MC_ADVANCE_RIP();
     10512                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1051310513            } IEM_MC_ELSE() {
    1051410514                IEM_MC_REL_JMP_S8(i8Imm);
     
    1052010520            IEM_MC_BEGIN(0,0);
    1052110521            IEM_MC_IF_RCX_IS_NZ() {
    10522                 IEM_MC_ADVANCE_RIP();
     10522                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1052310523            } IEM_MC_ELSE() {
    1052410524                IEM_MC_REL_JMP_S8(i8Imm);
     
    1079710797    IEM_MC_BEGIN(0, 0);
    1079810798    IEM_MC_FLIP_EFL_BIT(X86_EFL_CF);
    10799     IEM_MC_ADVANCE_RIP();
     10799    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1080010800    IEM_MC_END();
    1080110801    return VINF_SUCCESS;
     
    1082010820        IEM_MC_REF_EFLAGS(pEFlags);
    1082110821        IEM_MC_CALL_VOID_AIMPL_2(pImpl->pfnNormalU8, pu8Dst, pEFlags);
    10822         IEM_MC_ADVANCE_RIP();
     10822        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1082310823        IEM_MC_END();
    1082410824    }
     
    1084110841        IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Dst, IEM_ACCESS_DATA_RW);
    1084210842        IEM_MC_COMMIT_EFLAGS(EFlags);
    10843         IEM_MC_ADVANCE_RIP();
     10843        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1084410844        IEM_MC_END();
    1084510845    }
     
    1087910879            IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
    1088010880            IEM_MC_COMMIT_EFLAGS(EFlags);
    10881             IEM_MC_ADVANCE_RIP();
     10881            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1088210882            IEM_MC_END();
    1088310883            return VINF_SUCCESS;
     
    1089910899            IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
    1090010900            IEM_MC_COMMIT_EFLAGS(EFlags);
    10901             IEM_MC_ADVANCE_RIP();
     10901            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1090210902            IEM_MC_END();
    1090310903            return VINF_SUCCESS;
     
    1091910919            IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
    1092010920            IEM_MC_COMMIT_EFLAGS(EFlags);
    10921             IEM_MC_ADVANCE_RIP();
     10921            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1092210922            IEM_MC_END();
    1092310923            return VINF_SUCCESS;
     
    1094710947        IEM_MC_REF_EFLAGS(pEFlags);
    1094810948        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_test_u8, pu8Dst, u8Src, pEFlags);
    10949         IEM_MC_ADVANCE_RIP();
     10949        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1095010950        IEM_MC_END();
    1095110951    }
     
    1096910969        IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Dst, IEM_ACCESS_DATA_R);
    1097010970        IEM_MC_COMMIT_EFLAGS(EFlags);
    10971         IEM_MC_ADVANCE_RIP();
     10971        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1097210972        IEM_MC_END();
    1097310973    }
     
    1099810998                IEM_MC_REF_EFLAGS(pEFlags);
    1099910999                IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_test_u16, pu16Dst, u16Src, pEFlags);
    11000                 IEM_MC_ADVANCE_RIP();
     11000                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1100111001                IEM_MC_END();
    1100211002                return VINF_SUCCESS;
     
    1101411014                IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_test_u32, pu32Dst, u32Src, pEFlags);
    1101511015                /* No clearing the high dword here - test doesn't write back the result. */
    11016                 IEM_MC_ADVANCE_RIP();
     11016                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1101711017                IEM_MC_END();
    1101811018                return VINF_SUCCESS;
     
    1102911029                IEM_MC_REF_EFLAGS(pEFlags);
    1103011030                IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_test_u64, pu64Dst, u64Src, pEFlags);
    11031                 IEM_MC_ADVANCE_RIP();
     11031                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1103211032                IEM_MC_END();
    1103311033                return VINF_SUCCESS;
     
    1106011060                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_R);
    1106111061                IEM_MC_COMMIT_EFLAGS(EFlags);
    11062                 IEM_MC_ADVANCE_RIP();
     11062                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1106311063                IEM_MC_END();
    1106411064                return VINF_SUCCESS;
     
    1108311083                IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_R);
    1108411084                IEM_MC_COMMIT_EFLAGS(EFlags);
    11085                 IEM_MC_ADVANCE_RIP();
     11085                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1108611086                IEM_MC_END();
    1108711087                return VINF_SUCCESS;
     
    1110611106                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_R);
    1110711107                IEM_MC_COMMIT_EFLAGS(EFlags);
    11108                 IEM_MC_ADVANCE_RIP();
     11108                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1110911109                IEM_MC_END();
    1111011110                return VINF_SUCCESS;
     
    1113511135        IEM_MC_CALL_AIMPL_3(rc, pfnU8, pu16AX, u8Value, pEFlags);
    1113611136        IEM_MC_IF_LOCAL_IS_Z(rc) {
    11137             IEM_MC_ADVANCE_RIP();
     11137            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1113811138        } IEM_MC_ELSE() {
    1113911139            IEM_MC_RAISE_DIVIDE_ERROR();
     
    1115911159        IEM_MC_CALL_AIMPL_3(rc, pfnU8, pu16AX, u8Value, pEFlags);
    1116011160        IEM_MC_IF_LOCAL_IS_Z(rc) {
    11161             IEM_MC_ADVANCE_RIP();
     11161            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1116211162        } IEM_MC_ELSE() {
    1116311163            IEM_MC_RAISE_DIVIDE_ERROR();
     
    1119711197                IEM_MC_CALL_AIMPL_4(rc, pImpl->pfnU16, pu16AX, pu16DX, u16Value, pEFlags);
    1119811198                IEM_MC_IF_LOCAL_IS_Z(rc) {
    11199                     IEM_MC_ADVANCE_RIP();
     11199                    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1120011200                } IEM_MC_ELSE() {
    1120111201                    IEM_MC_RAISE_DIVIDE_ERROR();
     
    1122411224                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32AX);
    1122511225                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32DX);
    11226                     IEM_MC_ADVANCE_RIP();
     11226                    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1122711227                } IEM_MC_ELSE() {
    1122811228                    IEM_MC_RAISE_DIVIDE_ERROR();
     
    1124911249                IEM_MC_CALL_AIMPL_4(rc, pImpl->pfnU64, pu64AX, pu64DX, u64Value, pEFlags);
    1125011250                IEM_MC_IF_LOCAL_IS_Z(rc) {
    11251                     IEM_MC_ADVANCE_RIP();
     11251                    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1125211252                } IEM_MC_ELSE() {
    1125311253                    IEM_MC_RAISE_DIVIDE_ERROR();
     
    1128411284                IEM_MC_CALL_AIMPL_4(rc, pImpl->pfnU16, pu16AX, pu16DX, u16Value, pEFlags);
    1128511285                IEM_MC_IF_LOCAL_IS_Z(rc) {
    11286                     IEM_MC_ADVANCE_RIP();
     11286                    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1128711287                } IEM_MC_ELSE() {
    1128811288                    IEM_MC_RAISE_DIVIDE_ERROR();
     
    1131311313                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32AX);
    1131411314                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32DX);
    11315                     IEM_MC_ADVANCE_RIP();
     11315                    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1131611316                } IEM_MC_ELSE() {
    1131711317                    IEM_MC_RAISE_DIVIDE_ERROR();
     
    1134011340                IEM_MC_CALL_AIMPL_4(rc, pImpl->pfnU64, pu64AX, pu64DX, u64Value, pEFlags);
    1134111341                IEM_MC_IF_LOCAL_IS_Z(rc) {
    11342                     IEM_MC_ADVANCE_RIP();
     11342                    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1134311343                } IEM_MC_ELSE() {
    1134411344                    IEM_MC_RAISE_DIVIDE_ERROR();
     
    1144311443    IEM_MC_BEGIN(0, 0);
    1144411444    IEM_MC_CLEAR_EFL_BIT(X86_EFL_CF);
    11445     IEM_MC_ADVANCE_RIP();
     11445    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1144611446    IEM_MC_END();
    1144711447    return VINF_SUCCESS;
     
    1145811458    IEM_MC_BEGIN(0, 0);
    1145911459    IEM_MC_SET_EFL_BIT(X86_EFL_CF);
    11460     IEM_MC_ADVANCE_RIP();
     11460    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1146111461    IEM_MC_END();
    1146211462    return VINF_SUCCESS;
     
    1149211492    IEM_MC_BEGIN(0, 0);
    1149311493    IEM_MC_CLEAR_EFL_BIT(X86_EFL_DF);
    11494     IEM_MC_ADVANCE_RIP();
     11494    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1149511495    IEM_MC_END();
    1149611496    return VINF_SUCCESS;
     
    1150711507    IEM_MC_BEGIN(0, 0);
    1150811508    IEM_MC_SET_EFL_BIT(X86_EFL_DF);
    11509     IEM_MC_ADVANCE_RIP();
     11509    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1151011510    IEM_MC_END();
    1151111511    return VINF_SUCCESS;
     
    1181911819            IEM_MC_FETCH_MEM_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1182011820            IEM_MC_PUSH_U16(u16Src);
    11821             IEM_MC_ADVANCE_RIP();
     11821            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1182211822            IEM_MC_END();
    1182311823            return VINF_SUCCESS;
     
    1183111831            IEM_MC_FETCH_MEM_U32(u32Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1183211832            IEM_MC_PUSH_U32(u32Src);
    11833             IEM_MC_ADVANCE_RIP();
     11833            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1183411834            IEM_MC_END();
    1183511835            return VINF_SUCCESS;
     
    1184311843            IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1184411844            IEM_MC_PUSH_U64(u64Src);
    11845             IEM_MC_ADVANCE_RIP();
     11845            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1184611846            IEM_MC_END();
    1184711847            return VINF_SUCCESS;
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h

    r97153 r97356  
    6363        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    6464        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
    65         IEM_MC_ADVANCE_RIP();
     65        IEM_MC_ADVANCE_RIP_AND_FINISH();
    6666        IEM_MC_END();
    6767    }
     
    8686        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
    8787
    88         IEM_MC_ADVANCE_RIP();
     88        IEM_MC_ADVANCE_RIP_AND_FINISH();
    8989        IEM_MC_END();
    9090    }
     
    120120        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    121121        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
    122         IEM_MC_ADVANCE_RIP();
     122        IEM_MC_ADVANCE_RIP_AND_FINISH();
    123123        IEM_MC_END();
    124124    }
     
    143143        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
    144144
    145         IEM_MC_ADVANCE_RIP();
     145        IEM_MC_ADVANCE_RIP_AND_FINISH();
    146146        IEM_MC_END();
    147147    }
     
    180180        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    181181        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    182         IEM_MC_ADVANCE_RIP();
     182        IEM_MC_ADVANCE_RIP_AND_FINISH();
    183183        IEM_MC_END();
    184184    }
     
    203203        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    204204
    205         IEM_MC_ADVANCE_RIP();
     205        IEM_MC_ADVANCE_RIP_AND_FINISH();
    206206        IEM_MC_END();
    207207    }
     
    237237        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    238238        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
    239         IEM_MC_ADVANCE_RIP();
     239        IEM_MC_ADVANCE_RIP_AND_FINISH();
    240240        IEM_MC_END();
    241241    }
     
    260260        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, puDst, puSrc);
    261261
    262         IEM_MC_ADVANCE_RIP();
     262        IEM_MC_ADVANCE_RIP_AND_FINISH();
    263263        IEM_MC_END();
    264264    }
     
    297297        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    298298        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    299         IEM_MC_ADVANCE_RIP();
     299        IEM_MC_ADVANCE_RIP_AND_FINISH();
    300300        IEM_MC_END();
    301301    }
     
    320320        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    321321
    322         IEM_MC_ADVANCE_RIP();
     322        IEM_MC_ADVANCE_RIP_AND_FINISH();
    323323        IEM_MC_END();
    324324    }
     
    603603                                                             iemAImpl_ ## a_Instr ## _u128_fallback), \
    604604                                 puDst, puSrc, puMask); \
    605         IEM_MC_ADVANCE_RIP(); \
     605        IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    606606        IEM_MC_END(); \
    607607    } \
     
    628628                                                             iemAImpl_ ## a_Instr ## _u128_fallback), \
    629629                                 puDst, puSrc, puMask); \
    630         IEM_MC_ADVANCE_RIP(); \
     630        IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    631631        IEM_MC_END(); \
    632632    } \
     
    695695        IEM_MC_REF_EFLAGS(pEFlags);
    696696        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_ptest_u128, puSrc1, puSrc2, pEFlags);
    697         IEM_MC_ADVANCE_RIP();
     697        IEM_MC_ADVANCE_RIP_AND_FINISH();
    698698        IEM_MC_END();
    699699    }
     
    720720        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_ptest_u128, puSrc1, puSrc2, pEFlags);
    721721
    722         IEM_MC_ADVANCE_RIP();
     722        IEM_MC_ADVANCE_RIP_AND_FINISH();
    723723        IEM_MC_END();
    724724    }
     
    821821                                                             iemAImpl_v ## a_Instr ## _u128_fallback), \
    822822                                 puDst, uSrc); \
    823         IEM_MC_ADVANCE_RIP(); \
     823        IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    824824        IEM_MC_END(); \
    825825    } \
     
    843843                                                             iemAImpl_v ## a_Instr ## _u128_fallback), \
    844844                                 puDst, uSrc); \
    845         IEM_MC_ADVANCE_RIP(); \
     845        IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    846846        IEM_MC_END(); \
    847847    } \
     
    954954        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    955955
    956         IEM_MC_ADVANCE_RIP();
     956        IEM_MC_ADVANCE_RIP_AND_FINISH();
    957957        IEM_MC_END();
    958958        return VINF_SUCCESS;
     
    15431543        IEM_MC_CALL_VOID_AIMPL_2(IEM_SELECT_HOST_OR_FALLBACK(fSse42, iemAImpl_crc32_u8, iemAImpl_crc32_u8_fallback), puDst, uSrc);
    15441544        IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(puDst);
    1545         IEM_MC_ADVANCE_RIP();
     1545        IEM_MC_ADVANCE_RIP_AND_FINISH();
    15461546        IEM_MC_END();
    15471547    }
     
    15641564        IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(puDst);
    15651565
    1566         IEM_MC_ADVANCE_RIP();
     1566        IEM_MC_ADVANCE_RIP_AND_FINISH();
    15671567        IEM_MC_END();
    15681568    }
     
    16031603                                         puDst, uSrc);
    16041604                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(puDst);
    1605                 IEM_MC_ADVANCE_RIP();
     1605                IEM_MC_ADVANCE_RIP_AND_FINISH();
    16061606                IEM_MC_END();
    16071607                return VINF_SUCCESS;
     
    16161616                                         puDst, uSrc);
    16171617                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(puDst);
    1618                 IEM_MC_ADVANCE_RIP();
     1618                IEM_MC_ADVANCE_RIP_AND_FINISH();
    16191619                IEM_MC_END();
    16201620                return VINF_SUCCESS;
     
    16291629                                         puDst, uSrc);
    16301630                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(puDst);
    1631                 IEM_MC_ADVANCE_RIP();
     1631                IEM_MC_ADVANCE_RIP_AND_FINISH();
    16321632                IEM_MC_END();
    16331633                return VINF_SUCCESS;
     
    16581658                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(puDst);
    16591659
    1660                 IEM_MC_ADVANCE_RIP();
     1660                IEM_MC_ADVANCE_RIP_AND_FINISH();
    16611661                IEM_MC_END();
    16621662                return VINF_SUCCESS;
     
    16771677                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(puDst);
    16781678
    1679                 IEM_MC_ADVANCE_RIP();
     1679                IEM_MC_ADVANCE_RIP_AND_FINISH();
    16801680                IEM_MC_END();
    16811681                return VINF_SUCCESS;
     
    16961696                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(puDst);
    16971697
    1698                 IEM_MC_ADVANCE_RIP();
     1698                IEM_MC_ADVANCE_RIP_AND_FINISH();
    16991699                IEM_MC_END();
    17001700                return VINF_SUCCESS;
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h

    r97153 r97356  
    6262        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    6363        IEM_MC_CALL_VOID_AIMPL_3(pfnU128, puDst, puSrc, bImmArg);
    64         IEM_MC_ADVANCE_RIP();
     64        IEM_MC_ADVANCE_RIP_AND_FINISH();
    6565        IEM_MC_END();
    6666    }
     
    8787        IEM_MC_CALL_VOID_AIMPL_3(pfnU128, puDst, puSrc, bImmArg);
    8888
    89         IEM_MC_ADVANCE_RIP();
     89        IEM_MC_ADVANCE_RIP_AND_FINISH();
    9090        IEM_MC_END();
    9191    }
     
    122122        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    123123        IEM_MC_CALL_VOID_AIMPL_3(pfnU128, puDst, puSrc, bImmArg);
    124         IEM_MC_ADVANCE_RIP();
     124        IEM_MC_ADVANCE_RIP_AND_FINISH();
    125125        IEM_MC_END();
    126126    }
     
    147147        IEM_MC_CALL_VOID_AIMPL_3(pfnU128, puDst, puSrc, bImmArg);
    148148
    149         IEM_MC_ADVANCE_RIP();
     149        IEM_MC_ADVANCE_RIP_AND_FINISH();
    150150        IEM_MC_END();
    151151    }
     
    183183        IEM_MC_REF_XREG_U128_CONST(puSrc,       IEM_GET_MODRM_RM(pVCpu, bRm));
    184184        IEM_MC_CALL_VOID_AIMPL_3(pfnU128, puDst, puSrc, bImmArg);
    185         IEM_MC_ADVANCE_RIP();
     185        IEM_MC_ADVANCE_RIP_AND_FINISH();
    186186        IEM_MC_END();
    187187    }
     
    208208        IEM_MC_CALL_VOID_AIMPL_3(pfnU128, puDst, puSrc, bImmArg);
    209209
    210         IEM_MC_ADVANCE_RIP();
     210        IEM_MC_ADVANCE_RIP_AND_FINISH();
    211211        IEM_MC_END();
    212212    }
     
    286286        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    287287        IEM_MC_FPU_TO_MMX_MODE();
    288         IEM_MC_ADVANCE_RIP();
     288        IEM_MC_ADVANCE_RIP_AND_FINISH();
    289289        IEM_MC_END();
    290290    }
     
    313313        IEM_MC_FPU_TO_MMX_MODE();
    314314
    315         IEM_MC_ADVANCE_RIP();
     315        IEM_MC_ADVANCE_RIP_AND_FINISH();
    316316        IEM_MC_END();
    317317    }
     
    424424                                                             iemAImpl_pclmulqdq_u128_fallback),
    425425                                 puDst, puSrc, bImmArg);
    426         IEM_MC_ADVANCE_RIP();
     426        IEM_MC_ADVANCE_RIP_AND_FINISH();
    427427        IEM_MC_END();
    428428    }
     
    452452                                 puDst, puSrc, bImmArg);
    453453
    454         IEM_MC_ADVANCE_RIP();
     454        IEM_MC_ADVANCE_RIP_AND_FINISH();
    455455        IEM_MC_END();
    456456    }
     
    526526                                 pu32Ecx, pEFlags, pSrc, bImmArg);
    527527        /** @todo testcase: High dword of RCX cleared? */
    528         IEM_MC_ADVANCE_RIP();
     528        IEM_MC_ADVANCE_RIP_AND_FINISH();
    529529        IEM_MC_END();
    530530    }
     
    557557                                 pu32Ecx, pEFlags, pSrc, bImmArg);
    558558        /** @todo testcase: High dword of RCX cleared? */
    559         IEM_MC_ADVANCE_RIP();
     559        IEM_MC_ADVANCE_RIP_AND_FINISH();
    560560        IEM_MC_END();
    561561    }
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h

    r97348 r97356  
    6363        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    6464
    65         IEM_MC_ADVANCE_RIP();
     65        IEM_MC_ADVANCE_RIP_AND_FINISH();
    6666        IEM_MC_END();
    6767    }
     
    8989        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    9090
    91         IEM_MC_ADVANCE_RIP();
     91        IEM_MC_ADVANCE_RIP_AND_FINISH();
    9292        IEM_MC_END();
    9393    }
     
    126126        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    127127
    128         IEM_MC_ADVANCE_RIP();
     128        IEM_MC_ADVANCE_RIP_AND_FINISH();
    129129        IEM_MC_END();
    130130    }
     
    152152        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    153153
    154         IEM_MC_ADVANCE_RIP();
     154        IEM_MC_ADVANCE_RIP_AND_FINISH();
    155155        IEM_MC_END();
    156156    }
     
    187187        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    188188
    189         IEM_MC_ADVANCE_RIP();
     189        IEM_MC_ADVANCE_RIP_AND_FINISH();
    190190        IEM_MC_END();
    191191    }
     
    213213        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    214214
    215         IEM_MC_ADVANCE_RIP();
     215        IEM_MC_ADVANCE_RIP_AND_FINISH();
    216216        IEM_MC_END();
    217217    }
     
    251251        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    252252
    253         IEM_MC_ADVANCE_RIP();
     253        IEM_MC_ADVANCE_RIP_AND_FINISH();
    254254        IEM_MC_END();
    255255    }
     
    277277        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    278278
    279         IEM_MC_ADVANCE_RIP();
     279        IEM_MC_ADVANCE_RIP_AND_FINISH();
    280280        IEM_MC_END();
    281281    }
     
    312312        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    313313
    314         IEM_MC_ADVANCE_RIP();
     314        IEM_MC_ADVANCE_RIP_AND_FINISH();
    315315        IEM_MC_END();
    316316    }
     
    338338        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    339339
    340         IEM_MC_ADVANCE_RIP();
     340        IEM_MC_ADVANCE_RIP_AND_FINISH();
    341341        IEM_MC_END();
    342342    }
     
    371371        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    372372        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    373         IEM_MC_ADVANCE_RIP();
     373        IEM_MC_ADVANCE_RIP_AND_FINISH();
    374374        IEM_MC_END();
    375375    }
     
    394394        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    395395
    396         IEM_MC_ADVANCE_RIP();
     396        IEM_MC_ADVANCE_RIP_AND_FINISH();
    397397        IEM_MC_END();
    398398    }
     
    427427        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    428428        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    429         IEM_MC_ADVANCE_RIP();
     429        IEM_MC_ADVANCE_RIP_AND_FINISH();
    430430        IEM_MC_END();
    431431    }
     
    450450        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    451451
    452         IEM_MC_ADVANCE_RIP();
     452        IEM_MC_ADVANCE_RIP_AND_FINISH();
    453453        IEM_MC_END();
    454454    }
     
    486486        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    487487        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, pDst, pSrc);
    488         IEM_MC_ADVANCE_RIP();
     488        IEM_MC_ADVANCE_RIP_AND_FINISH();
    489489        IEM_MC_END();
    490490    }
     
    509509        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, pDst, pSrc);
    510510
    511         IEM_MC_ADVANCE_RIP();
     511        IEM_MC_ADVANCE_RIP_AND_FINISH();
    512512        IEM_MC_END();
    513513    }
     
    544544        IEM_MC_MODIFIED_MREG_BY_REF(puDst);
    545545
    546         IEM_MC_ADVANCE_RIP();
     546        IEM_MC_ADVANCE_RIP_AND_FINISH();
    547547        IEM_MC_END();
    548548    }
     
    570570        IEM_MC_MODIFIED_MREG_BY_REF(puDst);
    571571
    572         IEM_MC_ADVANCE_RIP();
     572        IEM_MC_ADVANCE_RIP_AND_FINISH();
    573573        IEM_MC_END();
    574574    }
     
    603603        IEM_MC_REF_XREG_U128_CONST(puSrc,   IEM_GET_MODRM_RM(pVCpu, bRm));
    604604        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    605         IEM_MC_ADVANCE_RIP();
     605        IEM_MC_ADVANCE_RIP_AND_FINISH();
    606606        IEM_MC_END();
    607607    }
     
    631631        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    632632
    633         IEM_MC_ADVANCE_RIP();
     633        IEM_MC_ADVANCE_RIP_AND_FINISH();
    634634        IEM_MC_END();
    635635    }
     
    664664        IEM_MC_REF_XREG_U128_CONST(puSrc,   IEM_GET_MODRM_RM(pVCpu, bRm));
    665665        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    666         IEM_MC_ADVANCE_RIP();
     666        IEM_MC_ADVANCE_RIP_AND_FINISH();
    667667        IEM_MC_END();
    668668    }
     
    692692        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    693693
    694         IEM_MC_ADVANCE_RIP();
     694        IEM_MC_ADVANCE_RIP_AND_FINISH();
    695695        IEM_MC_END();
    696696    }
     
    729729        IEM_MC_MODIFIED_MREG_BY_REF(puDst);
    730730
    731         IEM_MC_ADVANCE_RIP();
     731        IEM_MC_ADVANCE_RIP_AND_FINISH();
    732732        IEM_MC_END();
    733733    }
     
    755755        IEM_MC_MODIFIED_MREG_BY_REF(puDst);
    756756
    757         IEM_MC_ADVANCE_RIP();
     757        IEM_MC_ADVANCE_RIP_AND_FINISH();
    758758        IEM_MC_END();
    759759    }
     
    788788        IEM_MC_REF_XREG_U128_CONST(puSrc,   IEM_GET_MODRM_RM(pVCpu, bRm));
    789789        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    790         IEM_MC_ADVANCE_RIP();
     790        IEM_MC_ADVANCE_RIP_AND_FINISH();
    791791        IEM_MC_END();
    792792    }
     
    816816        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    817817
    818         IEM_MC_ADVANCE_RIP();
     818        IEM_MC_ADVANCE_RIP_AND_FINISH();
    819819        IEM_MC_END();
    820820    }
     
    854854        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    855855
    856         IEM_MC_ADVANCE_RIP();
     856        IEM_MC_ADVANCE_RIP_AND_FINISH();
    857857        IEM_MC_END();
    858858    }
     
    881881        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    882882
    883         IEM_MC_ADVANCE_RIP();
     883        IEM_MC_ADVANCE_RIP_AND_FINISH();
    884884        IEM_MC_END();
    885885    }
     
    919919        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    920920
    921         IEM_MC_ADVANCE_RIP();
     921        IEM_MC_ADVANCE_RIP_AND_FINISH();
    922922        IEM_MC_END();
    923923    }
     
    946946        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    947947
    948         IEM_MC_ADVANCE_RIP();
     948        IEM_MC_ADVANCE_RIP_AND_FINISH();
    949949        IEM_MC_END();
    950950    }
     
    984984        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    985985
    986         IEM_MC_ADVANCE_RIP();
     986        IEM_MC_ADVANCE_RIP_AND_FINISH();
    987987        IEM_MC_END();
    988988    }
     
    10111011        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    10121012
    1013         IEM_MC_ADVANCE_RIP();
     1013        IEM_MC_ADVANCE_RIP_AND_FINISH();
    10141014        IEM_MC_END();
    10151015    }
     
    10491049        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    10501050
    1051         IEM_MC_ADVANCE_RIP();
     1051        IEM_MC_ADVANCE_RIP_AND_FINISH();
    10521052        IEM_MC_END();
    10531053    }
     
    10761076        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    10771077
    1078         IEM_MC_ADVANCE_RIP();
     1078        IEM_MC_ADVANCE_RIP_AND_FINISH();
    10791079        IEM_MC_END();
    10801080    }
     
    11091109        IEM_MC_REF_XREG_U128_CONST(puSrc,   IEM_GET_MODRM_RM(pVCpu, bRm));
    11101110        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    1111         IEM_MC_ADVANCE_RIP();
     1111        IEM_MC_ADVANCE_RIP_AND_FINISH();
    11121112        IEM_MC_END();
    11131113    }
     
    11371137        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, puDst, puSrc);
    11381138
    1139         IEM_MC_ADVANCE_RIP();
     1139        IEM_MC_ADVANCE_RIP_AND_FINISH();
    11401140        IEM_MC_END();
    11411141    }
     
    11751175        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    11761176
    1177         IEM_MC_ADVANCE_RIP();
     1177        IEM_MC_ADVANCE_RIP_AND_FINISH();
    11781178        IEM_MC_END();
    11791179    }
     
    12021202        IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    12031203
    1204         IEM_MC_ADVANCE_RIP();
     1204        IEM_MC_ADVANCE_RIP_AND_FINISH();
    12051205        IEM_MC_END();
    12061206    }
     
    20752075    /* Currently a NOP. */
    20762076    NOREF(GCPtrEffSrc);
    2077     IEM_MC_ADVANCE_RIP();
     2077    IEM_MC_ADVANCE_RIP_AND_FINISH();
    20782078    IEM_MC_END();
    20792079    return VINF_SUCCESS;
     
    20922092    IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE();
    20932093    IEM_MC_FPU_FROM_MMX_MODE();
    2094     IEM_MC_ADVANCE_RIP();
     2094    IEM_MC_ADVANCE_RIP_AND_FINISH();
    20952095    IEM_MC_END();
    20962096    return VINF_SUCCESS;
     
    21422142        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm),
    21432143                              IEM_GET_MODRM_RM(pVCpu, bRm));
    2144         IEM_MC_ADVANCE_RIP();
     2144        IEM_MC_ADVANCE_RIP_AND_FINISH();
    21452145        IEM_MC_END();
    21462146    }
     
    21622162        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    21632163
    2164         IEM_MC_ADVANCE_RIP();
     2164        IEM_MC_ADVANCE_RIP_AND_FINISH();
    21652165        IEM_MC_END();
    21662166    }
     
    21942194        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm),
    21952195                              IEM_GET_MODRM_RM(pVCpu, bRm));
    2196         IEM_MC_ADVANCE_RIP();
     2196        IEM_MC_ADVANCE_RIP_AND_FINISH();
    21972197        IEM_MC_END();
    21982198    }
     
    22142214        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    22152215
    2216         IEM_MC_ADVANCE_RIP();
     2216        IEM_MC_ADVANCE_RIP_AND_FINISH();
    22172217        IEM_MC_END();
    22182218    }
     
    22482248        IEM_MC_STORE_XREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    22492249
    2250         IEM_MC_ADVANCE_RIP();
     2250        IEM_MC_ADVANCE_RIP_AND_FINISH();
    22512251        IEM_MC_END();
    22522252    }
     
    22682268        IEM_MC_STORE_XREG_U32_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    22692269
    2270         IEM_MC_ADVANCE_RIP();
     2270        IEM_MC_ADVANCE_RIP_AND_FINISH();
    22712271        IEM_MC_END();
    22722272    }
     
    23022302        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    23032303
    2304         IEM_MC_ADVANCE_RIP();
     2304        IEM_MC_ADVANCE_RIP_AND_FINISH();
    23052305        IEM_MC_END();
    23062306    }
     
    23222322        IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    23232323
    2324         IEM_MC_ADVANCE_RIP();
     2324        IEM_MC_ADVANCE_RIP_AND_FINISH();
    23252325        IEM_MC_END();
    23262326    }
     
    23532353        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_RM(pVCpu, bRm),
    23542354                              IEM_GET_MODRM_REG(pVCpu, bRm));
    2355         IEM_MC_ADVANCE_RIP();
     2355        IEM_MC_ADVANCE_RIP_AND_FINISH();
    23562356        IEM_MC_END();
    23572357    }
     
    23732373        IEM_MC_STORE_MEM_U128(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    23742374
    2375         IEM_MC_ADVANCE_RIP();
     2375        IEM_MC_ADVANCE_RIP_AND_FINISH();
    23762376        IEM_MC_END();
    23772377    }
     
    24042404        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_RM(pVCpu, bRm),
    24052405                              IEM_GET_MODRM_REG(pVCpu, bRm));
    2406         IEM_MC_ADVANCE_RIP();
     2406        IEM_MC_ADVANCE_RIP_AND_FINISH();
    24072407        IEM_MC_END();
    24082408    }
     
    24242424        IEM_MC_STORE_MEM_U128(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    24252425
    2426         IEM_MC_ADVANCE_RIP();
     2426        IEM_MC_ADVANCE_RIP_AND_FINISH();
    24272427        IEM_MC_END();
    24282428    }
     
    24582458        IEM_MC_STORE_XREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), uSrc);
    24592459
    2460         IEM_MC_ADVANCE_RIP();
     2460        IEM_MC_ADVANCE_RIP_AND_FINISH();
    24612461        IEM_MC_END();
    24622462    }
     
    24782478        IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    24792479
    2480         IEM_MC_ADVANCE_RIP();
     2480        IEM_MC_ADVANCE_RIP_AND_FINISH();
    24812481        IEM_MC_END();
    24822482    }
     
    25122512        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), uSrc);
    25132513
    2514         IEM_MC_ADVANCE_RIP();
     2514        IEM_MC_ADVANCE_RIP_AND_FINISH();
    25152515        IEM_MC_END();
    25162516    }
     
    25322532        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    25332533
    2534         IEM_MC_ADVANCE_RIP();
     2534        IEM_MC_ADVANCE_RIP_AND_FINISH();
    25352535        IEM_MC_END();
    25362536    }
     
    25652565        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    25662566
    2567         IEM_MC_ADVANCE_RIP();
     2567        IEM_MC_ADVANCE_RIP_AND_FINISH();
    25682568        IEM_MC_END();
    25692569    }
     
    25962596        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    25972597
    2598         IEM_MC_ADVANCE_RIP();
     2598        IEM_MC_ADVANCE_RIP_AND_FINISH();
    25992599        IEM_MC_END();
    26002600    }
     
    26322632        IEM_MC_STORE_XREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    26332633
    2634         IEM_MC_ADVANCE_RIP();
     2634        IEM_MC_ADVANCE_RIP_AND_FINISH();
    26352635        IEM_MC_END();
    26362636        return VINF_SUCCESS;
     
    26812681        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movsldup, puDst, puSrc);
    26822682
    2683         IEM_MC_ADVANCE_RIP();
     2683        IEM_MC_ADVANCE_RIP_AND_FINISH();
    26842684        IEM_MC_END();
    26852685    }
     
    27042704        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movsldup, puDst, puSrc);
    27052705
    2706         IEM_MC_ADVANCE_RIP();
     2706        IEM_MC_ADVANCE_RIP_AND_FINISH();
    27072707        IEM_MC_END();
    27082708    }
     
    27412741        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movddup, puDst, uSrc);
    27422742
    2743         IEM_MC_ADVANCE_RIP();
     2743        IEM_MC_ADVANCE_RIP_AND_FINISH();
    27442744        IEM_MC_END();
    27452745    }
     
    27632763        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movddup, puDst, uSrc);
    27642764
    2765         IEM_MC_ADVANCE_RIP();
     2765        IEM_MC_ADVANCE_RIP_AND_FINISH();
    27662766        IEM_MC_END();
    27672767    }
     
    27992799        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    28002800
    2801         IEM_MC_ADVANCE_RIP();
     2801        IEM_MC_ADVANCE_RIP_AND_FINISH();
    28022802        IEM_MC_END();
    28032803        return VINF_SUCCESS;
     
    28462846        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    28472847
    2848         IEM_MC_ADVANCE_RIP();
     2848        IEM_MC_ADVANCE_RIP_AND_FINISH();
    28492849        IEM_MC_END();
    28502850        return VINF_SUCCESS;
     
    29882988        IEM_MC_STORE_XREG_HI_U64(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    29892989
    2990         IEM_MC_ADVANCE_RIP();
     2990        IEM_MC_ADVANCE_RIP_AND_FINISH();
    29912991        IEM_MC_END();
    29922992    }
     
    30193019        IEM_MC_STORE_XREG_HI_U64(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    30203020
    3021         IEM_MC_ADVANCE_RIP();
     3021        IEM_MC_ADVANCE_RIP_AND_FINISH();
    30223022        IEM_MC_END();
    30233023    }
     
    30543054        IEM_MC_STORE_XREG_HI_U64(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    30553055
    3056         IEM_MC_ADVANCE_RIP();
     3056        IEM_MC_ADVANCE_RIP_AND_FINISH();
    30573057        IEM_MC_END();
    30583058        return VINF_SUCCESS;
     
    31033103        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movshdup, puDst, puSrc);
    31043104
    3105         IEM_MC_ADVANCE_RIP();
     3105        IEM_MC_ADVANCE_RIP_AND_FINISH();
    31063106        IEM_MC_END();
    31073107    }
     
    31263126        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movshdup, puDst, puSrc);
    31273127
    3128         IEM_MC_ADVANCE_RIP();
     3128        IEM_MC_ADVANCE_RIP_AND_FINISH();
    31293129        IEM_MC_END();
    31303130    }
     
    31733173        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    31743174
    3175         IEM_MC_ADVANCE_RIP();
     3175        IEM_MC_ADVANCE_RIP_AND_FINISH();
    31763176        IEM_MC_END();
    31773177        return VINF_SUCCESS;
     
    32213221        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    32223222
    3223         IEM_MC_ADVANCE_RIP();
     3223        IEM_MC_ADVANCE_RIP_AND_FINISH();
    32243224        IEM_MC_END();
    32253225        return VINF_SUCCESS;
     
    32873287        /* Currently a NOP. */
    32883288        NOREF(GCPtrEffSrc);
    3289         IEM_MC_ADVANCE_RIP();
     3289        IEM_MC_ADVANCE_RIP_AND_FINISH();
    32903290        IEM_MC_END();
    32913291        return VINF_SUCCESS;
     
    33053305        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    33063306        IEM_MC_BEGIN(0, 0);
    3307         IEM_MC_ADVANCE_RIP();
     3307        IEM_MC_ADVANCE_RIP_AND_FINISH();
    33083308        IEM_MC_END();
    33093309    }
     
    33163316        /* Currently a NOP. */
    33173317        NOREF(GCPtrEffSrc);
    3318         IEM_MC_ADVANCE_RIP();
     3318        IEM_MC_ADVANCE_RIP_AND_FINISH();
    33193319        IEM_MC_END();
    33203320    }
     
    34733473        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm),
    34743474                              IEM_GET_MODRM_RM(pVCpu, bRm));
    3475         IEM_MC_ADVANCE_RIP();
     3475        IEM_MC_ADVANCE_RIP_AND_FINISH();
    34763476        IEM_MC_END();
    34773477    }
     
    34933493        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    34943494
    3495         IEM_MC_ADVANCE_RIP();
     3495        IEM_MC_ADVANCE_RIP_AND_FINISH();
    34963496        IEM_MC_END();
    34973497    }
     
    35233523        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm),
    35243524                              IEM_GET_MODRM_RM(pVCpu, bRm));
    3525         IEM_MC_ADVANCE_RIP();
     3525        IEM_MC_ADVANCE_RIP_AND_FINISH();
    35263526        IEM_MC_END();
    35273527    }
     
    35433543        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    35443544
    3545         IEM_MC_ADVANCE_RIP();
     3545        IEM_MC_ADVANCE_RIP_AND_FINISH();
    35463546        IEM_MC_END();
    35473547    }
     
    35763576        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_RM(pVCpu, bRm),
    35773577                              IEM_GET_MODRM_REG(pVCpu, bRm));
    3578         IEM_MC_ADVANCE_RIP();
     3578        IEM_MC_ADVANCE_RIP_AND_FINISH();
    35793579        IEM_MC_END();
    35803580    }
     
    35963596        IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    35973597
    3598         IEM_MC_ADVANCE_RIP();
     3598        IEM_MC_ADVANCE_RIP_AND_FINISH();
    35993599        IEM_MC_END();
    36003600    }
     
    36263626        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_RM(pVCpu, bRm),
    36273627                              IEM_GET_MODRM_REG(pVCpu, bRm));
    3628         IEM_MC_ADVANCE_RIP();
     3628        IEM_MC_ADVANCE_RIP_AND_FINISH();
    36293629        IEM_MC_END();
    36303630    }
     
    36463646        IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    36473647
    3648         IEM_MC_ADVANCE_RIP();
     3648        IEM_MC_ADVANCE_RIP_AND_FINISH();
    36493649        IEM_MC_END();
    36503650    }
     
    36883688        IEM_MC_ENDIF();
    36893689
    3690         IEM_MC_ADVANCE_RIP();
     3690        IEM_MC_ADVANCE_RIP_AND_FINISH();
    36913691        IEM_MC_END();
    36923692    }
     
    37193719        IEM_MC_ENDIF();
    37203720
    3721         IEM_MC_ADVANCE_RIP();
     3721        IEM_MC_ADVANCE_RIP_AND_FINISH();
    37223722        IEM_MC_END();
    37233723    }
     
    37573757        IEM_MC_ENDIF();
    37583758
    3759         IEM_MC_ADVANCE_RIP();
     3759        IEM_MC_ADVANCE_RIP_AND_FINISH();
    37603760        IEM_MC_END();
    37613761    }
     
    37883788        IEM_MC_ENDIF();
    37893789
    3790         IEM_MC_ADVANCE_RIP();
     3790        IEM_MC_ADVANCE_RIP_AND_FINISH();
    37913791        IEM_MC_END();
    37923792    }
     
    38263826            IEM_MC_ENDIF();
    38273827
    3828             IEM_MC_ADVANCE_RIP();
     3828            IEM_MC_ADVANCE_RIP_AND_FINISH();
    38293829            IEM_MC_END();
    38303830        }
     
    38553855            IEM_MC_ENDIF();
    38563856
    3857             IEM_MC_ADVANCE_RIP();
     3857            IEM_MC_ADVANCE_RIP_AND_FINISH();
    38583858            IEM_MC_END();
    38593859        }
     
    38843884            IEM_MC_ENDIF();
    38853885
    3886             IEM_MC_ADVANCE_RIP();
     3886            IEM_MC_ADVANCE_RIP_AND_FINISH();
    38873887            IEM_MC_END();
    38883888        }
     
    39133913            IEM_MC_ENDIF();
    39143914
    3915             IEM_MC_ADVANCE_RIP();
     3915            IEM_MC_ADVANCE_RIP_AND_FINISH();
    39163916            IEM_MC_END();
    39173917        }
     
    39523952            IEM_MC_ENDIF();
    39533953
    3954             IEM_MC_ADVANCE_RIP();
     3954            IEM_MC_ADVANCE_RIP_AND_FINISH();
    39553955            IEM_MC_END();
    39563956        }
     
    39813981            IEM_MC_ENDIF();
    39823982
    3983             IEM_MC_ADVANCE_RIP();
     3983            IEM_MC_ADVANCE_RIP_AND_FINISH();
    39843984            IEM_MC_END();
    39853985        }
     
    40104010            IEM_MC_ENDIF();
    40114011
    4012             IEM_MC_ADVANCE_RIP();
     4012            IEM_MC_ADVANCE_RIP_AND_FINISH();
    40134013            IEM_MC_END();
    40144014        }
     
    40394039            IEM_MC_ENDIF();
    40404040
    4041             IEM_MC_ADVANCE_RIP();
     4041            IEM_MC_ADVANCE_RIP_AND_FINISH();
    40424042            IEM_MC_END();
    40434043        }
     
    40784078        IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    40794079
    4080         IEM_MC_ADVANCE_RIP();
     4080        IEM_MC_ADVANCE_RIP_AND_FINISH();
    40814081        IEM_MC_END();
    40824082    }
     
    41184118        IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    41194119
    4120         IEM_MC_ADVANCE_RIP();
     4120        IEM_MC_ADVANCE_RIP_AND_FINISH();
    41214121        IEM_MC_END();
    41224122    }
     
    41614161        IEM_MC_ENDIF();
    41624162
    4163         IEM_MC_ADVANCE_RIP();
     4163        IEM_MC_ADVANCE_RIP_AND_FINISH();
    41644164        IEM_MC_END();
    41654165    }
     
    41924192        IEM_MC_ENDIF();
    41934193
    4194         IEM_MC_ADVANCE_RIP();
     4194        IEM_MC_ADVANCE_RIP_AND_FINISH();
    41954195        IEM_MC_END();
    41964196    }
     
    42304230        IEM_MC_ENDIF();
    42314231
    4232         IEM_MC_ADVANCE_RIP();
     4232        IEM_MC_ADVANCE_RIP_AND_FINISH();
    42334233        IEM_MC_END();
    42344234    }
     
    42634263        IEM_MC_ENDIF();
    42644264
    4265         IEM_MC_ADVANCE_RIP();
     4265        IEM_MC_ADVANCE_RIP_AND_FINISH();
    42664266        IEM_MC_END();
    42674267    }
     
    43014301            IEM_MC_ENDIF();
    43024302
    4303             IEM_MC_ADVANCE_RIP();
     4303            IEM_MC_ADVANCE_RIP_AND_FINISH();
    43044304            IEM_MC_END();
    43054305        }
     
    43304330            IEM_MC_ENDIF();
    43314331
    4332             IEM_MC_ADVANCE_RIP();
     4332            IEM_MC_ADVANCE_RIP_AND_FINISH();
    43334333            IEM_MC_END();
    43344334        }
     
    43594359            IEM_MC_ENDIF();
    43604360
    4361             IEM_MC_ADVANCE_RIP();
     4361            IEM_MC_ADVANCE_RIP_AND_FINISH();
    43624362            IEM_MC_END();
    43634363        }
     
    43884388            IEM_MC_ENDIF();
    43894389
    4390             IEM_MC_ADVANCE_RIP();
     4390            IEM_MC_ADVANCE_RIP_AND_FINISH();
    43914391            IEM_MC_END();
    43924392        }
     
    44274427            IEM_MC_ENDIF();
    44284428
    4429             IEM_MC_ADVANCE_RIP();
     4429            IEM_MC_ADVANCE_RIP_AND_FINISH();
    44304430            IEM_MC_END();
    44314431        }
     
    44564456            IEM_MC_ENDIF();
    44574457
    4458             IEM_MC_ADVANCE_RIP();
     4458            IEM_MC_ADVANCE_RIP_AND_FINISH();
    44594459            IEM_MC_END();
    44604460        }
     
    44854485            IEM_MC_ENDIF();
    44864486
    4487             IEM_MC_ADVANCE_RIP();
     4487            IEM_MC_ADVANCE_RIP_AND_FINISH();
    44884488            IEM_MC_END();
    44894489        }
     
    45144514            IEM_MC_ENDIF();
    45154515
    4516             IEM_MC_ADVANCE_RIP();
     4516            IEM_MC_ADVANCE_RIP_AND_FINISH();
    45174517            IEM_MC_END();
    45184518        }
     
    45534553        IEM_MC_ENDIF();
    45544554
    4555         IEM_MC_ADVANCE_RIP();
     4555        IEM_MC_ADVANCE_RIP_AND_FINISH();
    45564556        IEM_MC_END();
    45574557    }
     
    45844584        IEM_MC_ENDIF();
    45854585
    4586         IEM_MC_ADVANCE_RIP();
     4586        IEM_MC_ADVANCE_RIP_AND_FINISH();
    45874587        IEM_MC_END();
    45884588    }
     
    46224622        IEM_MC_ENDIF();
    46234623
    4624         IEM_MC_ADVANCE_RIP();
     4624        IEM_MC_ADVANCE_RIP_AND_FINISH();
    46254625        IEM_MC_END();
    46264626    }
     
    46554655        IEM_MC_ENDIF();
    46564656
    4657         IEM_MC_ADVANCE_RIP();
     4657        IEM_MC_ADVANCE_RIP_AND_FINISH();
    46584658        IEM_MC_END();
    46594659    }
     
    46934693            IEM_MC_ENDIF();
    46944694
    4695             IEM_MC_ADVANCE_RIP();
     4695            IEM_MC_ADVANCE_RIP_AND_FINISH();
    46964696            IEM_MC_END();
    46974697        }
     
    47224722            IEM_MC_ENDIF();
    47234723
    4724             IEM_MC_ADVANCE_RIP();
     4724            IEM_MC_ADVANCE_RIP_AND_FINISH();
    47254725            IEM_MC_END();
    47264726        }
     
    47514751            IEM_MC_ENDIF();
    47524752
    4753             IEM_MC_ADVANCE_RIP();
     4753            IEM_MC_ADVANCE_RIP_AND_FINISH();
    47544754            IEM_MC_END();
    47554755        }
     
    47804780            IEM_MC_ENDIF();
    47814781
    4782             IEM_MC_ADVANCE_RIP();
     4782            IEM_MC_ADVANCE_RIP_AND_FINISH();
    47834783            IEM_MC_END();
    47844784        }
     
    48194819            IEM_MC_ENDIF();
    48204820
    4821             IEM_MC_ADVANCE_RIP();
     4821            IEM_MC_ADVANCE_RIP_AND_FINISH();
    48224822            IEM_MC_END();
    48234823        }
     
    48484848            IEM_MC_ENDIF();
    48494849
    4850             IEM_MC_ADVANCE_RIP();
     4850            IEM_MC_ADVANCE_RIP_AND_FINISH();
    48514851            IEM_MC_END();
    48524852        }
     
    48774877            IEM_MC_ENDIF();
    48784878
    4879             IEM_MC_ADVANCE_RIP();
     4879            IEM_MC_ADVANCE_RIP_AND_FINISH();
    48804880            IEM_MC_END();
    48814881        }
     
    49064906            IEM_MC_ENDIF();
    49074907
    4908             IEM_MC_ADVANCE_RIP();
     4908            IEM_MC_ADVANCE_RIP_AND_FINISH();
    49094909            IEM_MC_END();
    49104910        }
     
    49444944        IEM_MC_ENDIF();
    49454945
    4946         IEM_MC_ADVANCE_RIP();
     4946        IEM_MC_ADVANCE_RIP_AND_FINISH();
    49474947        IEM_MC_END();
    49484948    }
     
    49774977        IEM_MC_ENDIF();
    49784978
    4979         IEM_MC_ADVANCE_RIP();
     4979        IEM_MC_ADVANCE_RIP_AND_FINISH();
    49804980        IEM_MC_END();
    49814981    }
     
    50145014        IEM_MC_ENDIF();
    50155015
    5016         IEM_MC_ADVANCE_RIP();
     5016        IEM_MC_ADVANCE_RIP_AND_FINISH();
    50175017        IEM_MC_END();
    50185018    }
     
    50475047        IEM_MC_ENDIF();
    50485048
    5049         IEM_MC_ADVANCE_RIP();
     5049        IEM_MC_ADVANCE_RIP_AND_FINISH();
    50505050        IEM_MC_END();
    50515051    }
     
    50885088        IEM_MC_ENDIF();
    50895089
    5090         IEM_MC_ADVANCE_RIP();
     5090        IEM_MC_ADVANCE_RIP_AND_FINISH();
    50915091        IEM_MC_END();
    50925092    }
     
    51215121        IEM_MC_ENDIF();
    51225122
    5123         IEM_MC_ADVANCE_RIP();
     5123        IEM_MC_ADVANCE_RIP_AND_FINISH();
    51245124        IEM_MC_END();
    51255125    }
     
    51585158        IEM_MC_ENDIF();
    51595159
    5160         IEM_MC_ADVANCE_RIP();
     5160        IEM_MC_ADVANCE_RIP_AND_FINISH();
    51615161        IEM_MC_END();
    51625162    }
     
    51915191        IEM_MC_ENDIF();
    51925192
    5193         IEM_MC_ADVANCE_RIP();
     5193        IEM_MC_ADVANCE_RIP_AND_FINISH();
    51945194        IEM_MC_END();
    51955195    }
     
    53045304                    IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Tmp); \
    53055305                } IEM_MC_ENDIF(); \
    5306                 IEM_MC_ADVANCE_RIP(); \
     5306                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    53075307                IEM_MC_END(); \
    53085308                return VINF_SUCCESS; \
     
    53175317                    IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm)); \
    53185318                } IEM_MC_ENDIF(); \
    5319                 IEM_MC_ADVANCE_RIP(); \
     5319                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    53205320                IEM_MC_END(); \
    53215321                return VINF_SUCCESS; \
     
    53285328                    IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp); \
    53295329                } IEM_MC_ENDIF(); \
    5330                 IEM_MC_ADVANCE_RIP(); \
     5330                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    53315331                IEM_MC_END(); \
    53325332                return VINF_SUCCESS; \
     
    53485348                    IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Tmp); \
    53495349                } IEM_MC_ENDIF(); \
    5350                 IEM_MC_ADVANCE_RIP(); \
     5350                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    53515351                IEM_MC_END(); \
    53525352                return VINF_SUCCESS; \
     
    53635363                    IEM_MC_CLEAR_HIGH_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm)); \
    53645364                } IEM_MC_ENDIF(); \
    5365                 IEM_MC_ADVANCE_RIP(); \
     5365                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    53665366                IEM_MC_END(); \
    53675367                return VINF_SUCCESS; \
     
    53765376                    IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp); \
    53775377                } IEM_MC_ENDIF(); \
    5378                 IEM_MC_ADVANCE_RIP(); \
     5378                IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    53795379                IEM_MC_END(); \
    53805380                return VINF_SUCCESS; \
     
    55355535        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movmskps_u128, pu8Dst, puSrc);
    55365536        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u8Dst);
    5537         IEM_MC_ADVANCE_RIP();
     5537        IEM_MC_ADVANCE_RIP_AND_FINISH();
    55385538        IEM_MC_END();
    55395539        return VINF_SUCCESS;
     
    55655565        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movmskpd_u128, pu8Dst, puSrc);
    55665566        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u8Dst);
    5567         IEM_MC_ADVANCE_RIP();
     5567        IEM_MC_ADVANCE_RIP_AND_FINISH();
    55685568        IEM_MC_END();
    55695569        return VINF_SUCCESS;
     
    62566256            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Tmp);
    62576257
    6258             IEM_MC_ADVANCE_RIP();
     6258            IEM_MC_ADVANCE_RIP_AND_FINISH();
    62596259            IEM_MC_END();
    62606260        }
     
    62756275            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Tmp);
    62766276
    6277             IEM_MC_ADVANCE_RIP();
     6277            IEM_MC_ADVANCE_RIP_AND_FINISH();
    62786278            IEM_MC_END();
    62796279        }
     
    63086308            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Tmp);
    63096309
    6310             IEM_MC_ADVANCE_RIP();
     6310            IEM_MC_ADVANCE_RIP_AND_FINISH();
    63116311            IEM_MC_END();
    63126312        }
     
    63276327            IEM_MC_STORE_MREG_U32_ZX_U64(IEM_GET_MODRM_REG_8(bRm), u32Tmp);
    63286328
    6329             IEM_MC_ADVANCE_RIP();
     6329            IEM_MC_ADVANCE_RIP_AND_FINISH();
    63306330            IEM_MC_END();
    63316331        }
     
    63636363            IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    63646364
    6365             IEM_MC_ADVANCE_RIP();
     6365            IEM_MC_ADVANCE_RIP_AND_FINISH();
    63666366            IEM_MC_END();
    63676367        }
     
    63816381            IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    63826382
    6383             IEM_MC_ADVANCE_RIP();
     6383            IEM_MC_ADVANCE_RIP_AND_FINISH();
    63846384            IEM_MC_END();
    63856385        }
     
    64136413            IEM_MC_STORE_XREG_U32_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    64146414
    6415             IEM_MC_ADVANCE_RIP();
     6415            IEM_MC_ADVANCE_RIP_AND_FINISH();
    64166416            IEM_MC_END();
    64176417        }
     
    64316431            IEM_MC_STORE_XREG_U32_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    64326432
    6433             IEM_MC_ADVANCE_RIP();
     6433            IEM_MC_ADVANCE_RIP_AND_FINISH();
    64346434            IEM_MC_END();
    64356435        }
     
    64706470        IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Tmp);
    64716471
    6472         IEM_MC_ADVANCE_RIP();
     6472        IEM_MC_ADVANCE_RIP_AND_FINISH();
    64736473        IEM_MC_END();
    64746474    }
     
    64916491        IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Tmp);
    64926492
    6493         IEM_MC_ADVANCE_RIP();
     6493        IEM_MC_ADVANCE_RIP_AND_FINISH();
    64946494        IEM_MC_END();
    64956495    }
     
    65236523        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm),
    65246524                              IEM_GET_MODRM_RM(pVCpu, bRm));
    6525         IEM_MC_ADVANCE_RIP();
     6525        IEM_MC_ADVANCE_RIP_AND_FINISH();
    65266526        IEM_MC_END();
    65276527    }
     
    65436543        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    65446544
    6545         IEM_MC_ADVANCE_RIP();
     6545        IEM_MC_ADVANCE_RIP_AND_FINISH();
    65466546        IEM_MC_END();
    65476547    }
     
    65736573        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm),
    65746574                              IEM_GET_MODRM_RM(pVCpu, bRm));
    6575         IEM_MC_ADVANCE_RIP();
     6575        IEM_MC_ADVANCE_RIP_AND_FINISH();
    65766576        IEM_MC_END();
    65776577    }
     
    65926592        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    65936593
    6594         IEM_MC_ADVANCE_RIP();
     6594        IEM_MC_ADVANCE_RIP_AND_FINISH();
    65956595        IEM_MC_END();
    65966596    }
     
    66256625        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    66266626
    6627         IEM_MC_ADVANCE_RIP();
     6627        IEM_MC_ADVANCE_RIP_AND_FINISH();
    66286628        IEM_MC_END();
    66296629    }
     
    66536653        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    66546654
    6655         IEM_MC_ADVANCE_RIP();
     6655        IEM_MC_ADVANCE_RIP_AND_FINISH();
    66566656        IEM_MC_END();
    66576657    }
     
    66896689        IEM_MC_REF_XREG_U128_CONST(puSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    66906690        IEM_MC_CALL_VOID_AIMPL_3(pfnWorker, puDst, puSrc, bEvilArg);
    6691         IEM_MC_ADVANCE_RIP();
     6691        IEM_MC_ADVANCE_RIP_AND_FINISH();
    66926692        IEM_MC_END();
    66936693    }
     
    67146714        IEM_MC_CALL_VOID_AIMPL_3(pfnWorker, puDst, puSrc, bEvilArg);
    67156715
    6716         IEM_MC_ADVANCE_RIP();
     6716        IEM_MC_ADVANCE_RIP_AND_FINISH();
    67176717        IEM_MC_END();
    67186718    }
     
    67786778        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    67796779
    6780         IEM_MC_ADVANCE_RIP();
     6780        IEM_MC_ADVANCE_RIP_AND_FINISH();
    67816781        IEM_MC_END();
    67826782    }
     
    68216821        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_RM(pVCpu, bRm));
    68226822        IEM_MC_CALL_VOID_AIMPL_2(pfnU128, pDst, bShiftArg);
    6823         IEM_MC_ADVANCE_RIP();
     6823        IEM_MC_ADVANCE_RIP_AND_FINISH();
    68246824        IEM_MC_END();
    68256825    }
     
    71347134    IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE();
    71357135    IEM_MC_FPU_FROM_MMX_MODE();
    7136     IEM_MC_ADVANCE_RIP();
     7136    IEM_MC_ADVANCE_RIP_AND_FINISH();
    71377137    IEM_MC_END();
    71387138    return VINF_SUCCESS;
     
    73877387            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Tmp);
    73887388
    7389             IEM_MC_ADVANCE_RIP();
     7389            IEM_MC_ADVANCE_RIP_AND_FINISH();
    73907390            IEM_MC_END();
    73917391        }
     
    74067406            IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u64Tmp);
    74077407
    7408             IEM_MC_ADVANCE_RIP();
     7408            IEM_MC_ADVANCE_RIP_AND_FINISH();
    74097409            IEM_MC_END();
    74107410        }
     
    74397439            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Tmp);
    74407440
    7441             IEM_MC_ADVANCE_RIP();
     7441            IEM_MC_ADVANCE_RIP_AND_FINISH();
    74427442            IEM_MC_END();
    74437443        }
     
    74587458            IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u32Tmp);
    74597459
    7460             IEM_MC_ADVANCE_RIP();
     7460            IEM_MC_ADVANCE_RIP_AND_FINISH();
    74617461            IEM_MC_END();
    74627462        }
     
    74967496            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Tmp);
    74977497
    7498             IEM_MC_ADVANCE_RIP();
     7498            IEM_MC_ADVANCE_RIP_AND_FINISH();
    74997499            IEM_MC_END();
    75007500        }
     
    75147514            IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u64Tmp);
    75157515
    7516             IEM_MC_ADVANCE_RIP();
     7516            IEM_MC_ADVANCE_RIP_AND_FINISH();
    75177517            IEM_MC_END();
    75187518        }
     
    75467546            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Tmp);
    75477547
    7548             IEM_MC_ADVANCE_RIP();
     7548            IEM_MC_ADVANCE_RIP_AND_FINISH();
    75497549            IEM_MC_END();
    75507550        }
     
    75647564            IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u32Tmp);
    75657565
    7566             IEM_MC_ADVANCE_RIP();
     7566            IEM_MC_ADVANCE_RIP_AND_FINISH();
    75677567            IEM_MC_END();
    75687568        }
     
    76007600        IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    76017601
    7602         IEM_MC_ADVANCE_RIP();
     7602        IEM_MC_ADVANCE_RIP_AND_FINISH();
    76037603        IEM_MC_END();
    76047604    }
     
    76207620        IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    76217621
    7622         IEM_MC_ADVANCE_RIP();
     7622        IEM_MC_ADVANCE_RIP_AND_FINISH();
    76237623        IEM_MC_END();
    76247624    }
     
    76517651        IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_RM_8(bRm), u64Tmp);
    76527652
    7653         IEM_MC_ADVANCE_RIP();
     7653        IEM_MC_ADVANCE_RIP_AND_FINISH();
    76547654        IEM_MC_END();
    76557655    }
     
    76727672        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u64Tmp);
    76737673
    7674         IEM_MC_ADVANCE_RIP();
     7674        IEM_MC_ADVANCE_RIP_AND_FINISH();
    76757675        IEM_MC_END();
    76767676    }
     
    76947694        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_RM(pVCpu, bRm),
    76957695                              IEM_GET_MODRM_REG(pVCpu, bRm));
    7696         IEM_MC_ADVANCE_RIP();
     7696        IEM_MC_ADVANCE_RIP_AND_FINISH();
    76977697        IEM_MC_END();
    76987698    }
     
    77147714        IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u128Tmp);
    77157715
    7716         IEM_MC_ADVANCE_RIP();
     7716        IEM_MC_ADVANCE_RIP_AND_FINISH();
    77177717        IEM_MC_END();
    77187718    }
     
    77367736        IEM_MC_COPY_XREG_U128(IEM_GET_MODRM_RM(pVCpu, bRm),
    77377737                              IEM_GET_MODRM_REG(pVCpu, bRm));
    7738         IEM_MC_ADVANCE_RIP();
     7738        IEM_MC_ADVANCE_RIP_AND_FINISH();
    77397739        IEM_MC_END();
    77407740    }
     
    77567756        IEM_MC_STORE_MEM_U128(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u128Tmp);
    77577757
    7758         IEM_MC_ADVANCE_RIP();
     7758        IEM_MC_ADVANCE_RIP_AND_FINISH();
    77597759        IEM_MC_END();
    77607760    }
     
    77817781            IEM_MC_REL_JMP_S16(i16Imm);
    77827782        } IEM_MC_ELSE() {
    7783             IEM_MC_ADVANCE_RIP();
     7783            IEM_MC_ADVANCE_RIP_AND_FINISH();
    77847784        } IEM_MC_ENDIF();
    77857785        IEM_MC_END();
     
    77947794            IEM_MC_REL_JMP_S32(i32Imm);
    77957795        } IEM_MC_ELSE() {
    7796             IEM_MC_ADVANCE_RIP();
     7796            IEM_MC_ADVANCE_RIP_AND_FINISH();
    77977797        } IEM_MC_ENDIF();
    77987798        IEM_MC_END();
     
    78157815        IEM_MC_BEGIN(0, 0);
    78167816        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
    7817             IEM_MC_ADVANCE_RIP();
     7817            IEM_MC_ADVANCE_RIP_AND_FINISH();
    78187818        } IEM_MC_ELSE() {
    78197819            IEM_MC_REL_JMP_S16(i16Imm);
     
    78287828        IEM_MC_BEGIN(0, 0);
    78297829        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
    7830             IEM_MC_ADVANCE_RIP();
     7830            IEM_MC_ADVANCE_RIP_AND_FINISH();
    78317831        } IEM_MC_ELSE() {
    78327832            IEM_MC_REL_JMP_S32(i32Imm);
     
    78537853            IEM_MC_REL_JMP_S16(i16Imm);
    78547854        } IEM_MC_ELSE() {
    7855             IEM_MC_ADVANCE_RIP();
     7855            IEM_MC_ADVANCE_RIP_AND_FINISH();
    78567856        } IEM_MC_ENDIF();
    78577857        IEM_MC_END();
     
    78667866            IEM_MC_REL_JMP_S32(i32Imm);
    78677867        } IEM_MC_ELSE() {
    7868             IEM_MC_ADVANCE_RIP();
     7868            IEM_MC_ADVANCE_RIP_AND_FINISH();
    78697869        } IEM_MC_ENDIF();
    78707870        IEM_MC_END();
     
    78877887        IEM_MC_BEGIN(0, 0);
    78887888        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
    7889             IEM_MC_ADVANCE_RIP();
     7889            IEM_MC_ADVANCE_RIP_AND_FINISH();
    78907890        } IEM_MC_ELSE() {
    78917891            IEM_MC_REL_JMP_S16(i16Imm);
     
    79007900        IEM_MC_BEGIN(0, 0);
    79017901        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
    7902             IEM_MC_ADVANCE_RIP();
     7902            IEM_MC_ADVANCE_RIP_AND_FINISH();
    79037903        } IEM_MC_ELSE() {
    79047904            IEM_MC_REL_JMP_S32(i32Imm);
     
    79257925            IEM_MC_REL_JMP_S16(i16Imm);
    79267926        } IEM_MC_ELSE() {
    7927             IEM_MC_ADVANCE_RIP();
     7927            IEM_MC_ADVANCE_RIP_AND_FINISH();
    79287928        } IEM_MC_ENDIF();
    79297929        IEM_MC_END();
     
    79387938            IEM_MC_REL_JMP_S32(i32Imm);
    79397939        } IEM_MC_ELSE() {
    7940             IEM_MC_ADVANCE_RIP();
     7940            IEM_MC_ADVANCE_RIP_AND_FINISH();
    79417941        } IEM_MC_ENDIF();
    79427942        IEM_MC_END();
     
    79597959        IEM_MC_BEGIN(0, 0);
    79607960        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
    7961             IEM_MC_ADVANCE_RIP();
     7961            IEM_MC_ADVANCE_RIP_AND_FINISH();
    79627962        } IEM_MC_ELSE() {
    79637963            IEM_MC_REL_JMP_S16(i16Imm);
     
    79727972        IEM_MC_BEGIN(0, 0);
    79737973        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
    7974             IEM_MC_ADVANCE_RIP();
     7974            IEM_MC_ADVANCE_RIP_AND_FINISH();
    79757975        } IEM_MC_ELSE() {
    79767976            IEM_MC_REL_JMP_S32(i32Imm);
     
    79977997            IEM_MC_REL_JMP_S16(i16Imm);
    79987998        } IEM_MC_ELSE() {
    7999             IEM_MC_ADVANCE_RIP();
     7999            IEM_MC_ADVANCE_RIP_AND_FINISH();
    80008000        } IEM_MC_ENDIF();
    80018001        IEM_MC_END();
     
    80108010            IEM_MC_REL_JMP_S32(i32Imm);
    80118011        } IEM_MC_ELSE() {
    8012             IEM_MC_ADVANCE_RIP();
     8012            IEM_MC_ADVANCE_RIP_AND_FINISH();
    80138013        } IEM_MC_ENDIF();
    80148014        IEM_MC_END();
     
    80318031        IEM_MC_BEGIN(0, 0);
    80328032        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
    8033             IEM_MC_ADVANCE_RIP();
     8033            IEM_MC_ADVANCE_RIP_AND_FINISH();
    80348034        } IEM_MC_ELSE() {
    80358035            IEM_MC_REL_JMP_S16(i16Imm);
     
    80448044        IEM_MC_BEGIN(0, 0);
    80458045        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
    8046             IEM_MC_ADVANCE_RIP();
     8046            IEM_MC_ADVANCE_RIP_AND_FINISH();
    80478047        } IEM_MC_ELSE() {
    80488048            IEM_MC_REL_JMP_S32(i32Imm);
     
    80698069            IEM_MC_REL_JMP_S16(i16Imm);
    80708070        } IEM_MC_ELSE() {
    8071             IEM_MC_ADVANCE_RIP();
     8071            IEM_MC_ADVANCE_RIP_AND_FINISH();
    80728072        } IEM_MC_ENDIF();
    80738073        IEM_MC_END();
     
    80828082            IEM_MC_REL_JMP_S32(i32Imm);
    80838083        } IEM_MC_ELSE() {
    8084             IEM_MC_ADVANCE_RIP();
     8084            IEM_MC_ADVANCE_RIP_AND_FINISH();
    80858085        } IEM_MC_ENDIF();
    80868086        IEM_MC_END();
     
    81038103        IEM_MC_BEGIN(0, 0);
    81048104        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
    8105             IEM_MC_ADVANCE_RIP();
     8105            IEM_MC_ADVANCE_RIP_AND_FINISH();
    81068106        } IEM_MC_ELSE() {
    81078107            IEM_MC_REL_JMP_S16(i16Imm);
     
    81168116        IEM_MC_BEGIN(0, 0);
    81178117        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
    8118             IEM_MC_ADVANCE_RIP();
     8118            IEM_MC_ADVANCE_RIP_AND_FINISH();
    81198119        } IEM_MC_ELSE() {
    81208120            IEM_MC_REL_JMP_S32(i32Imm);
     
    81418141            IEM_MC_REL_JMP_S16(i16Imm);
    81428142        } IEM_MC_ELSE() {
    8143             IEM_MC_ADVANCE_RIP();
     8143            IEM_MC_ADVANCE_RIP_AND_FINISH();
    81448144        } IEM_MC_ENDIF();
    81458145        IEM_MC_END();
     
    81548154            IEM_MC_REL_JMP_S32(i32Imm);
    81558155        } IEM_MC_ELSE() {
    8156             IEM_MC_ADVANCE_RIP();
     8156            IEM_MC_ADVANCE_RIP_AND_FINISH();
    81578157        } IEM_MC_ENDIF();
    81588158        IEM_MC_END();
     
    81758175        IEM_MC_BEGIN(0, 0);
    81768176        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
    8177             IEM_MC_ADVANCE_RIP();
     8177            IEM_MC_ADVANCE_RIP_AND_FINISH();
    81788178        } IEM_MC_ELSE() {
    81798179            IEM_MC_REL_JMP_S16(i16Imm);
     
    81888188        IEM_MC_BEGIN(0, 0);
    81898189        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
    8190             IEM_MC_ADVANCE_RIP();
     8190            IEM_MC_ADVANCE_RIP_AND_FINISH();
    81918191        } IEM_MC_ELSE() {
    81928192            IEM_MC_REL_JMP_S32(i32Imm);
     
    82138213            IEM_MC_REL_JMP_S16(i16Imm);
    82148214        } IEM_MC_ELSE() {
    8215             IEM_MC_ADVANCE_RIP();
     8215            IEM_MC_ADVANCE_RIP_AND_FINISH();
    82168216        } IEM_MC_ENDIF();
    82178217        IEM_MC_END();
     
    82268226            IEM_MC_REL_JMP_S32(i32Imm);
    82278227        } IEM_MC_ELSE() {
    8228             IEM_MC_ADVANCE_RIP();
     8228            IEM_MC_ADVANCE_RIP_AND_FINISH();
    82298229        } IEM_MC_ENDIF();
    82308230        IEM_MC_END();
     
    82478247        IEM_MC_BEGIN(0, 0);
    82488248        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
    8249             IEM_MC_ADVANCE_RIP();
     8249            IEM_MC_ADVANCE_RIP_AND_FINISH();
    82508250        } IEM_MC_ELSE() {
    82518251            IEM_MC_REL_JMP_S16(i16Imm);
     
    82608260        IEM_MC_BEGIN(0, 0);
    82618261        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
    8262             IEM_MC_ADVANCE_RIP();
     8262            IEM_MC_ADVANCE_RIP_AND_FINISH();
    82638263        } IEM_MC_ELSE() {
    82648264            IEM_MC_REL_JMP_S32(i32Imm);
     
    82858285            IEM_MC_REL_JMP_S16(i16Imm);
    82868286        } IEM_MC_ELSE() {
    8287             IEM_MC_ADVANCE_RIP();
     8287            IEM_MC_ADVANCE_RIP_AND_FINISH();
    82888288        } IEM_MC_ENDIF();
    82898289        IEM_MC_END();
     
    82988298            IEM_MC_REL_JMP_S32(i32Imm);
    82998299        } IEM_MC_ELSE() {
    8300             IEM_MC_ADVANCE_RIP();
     8300            IEM_MC_ADVANCE_RIP_AND_FINISH();
    83018301        } IEM_MC_ENDIF();
    83028302        IEM_MC_END();
     
    83198319        IEM_MC_BEGIN(0, 0);
    83208320        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
    8321             IEM_MC_ADVANCE_RIP();
     8321            IEM_MC_ADVANCE_RIP_AND_FINISH();
    83228322        } IEM_MC_ELSE() {
    83238323            IEM_MC_REL_JMP_S16(i16Imm);
     
    83328332        IEM_MC_BEGIN(0, 0);
    83338333        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
    8334             IEM_MC_ADVANCE_RIP();
     8334            IEM_MC_ADVANCE_RIP_AND_FINISH();
    83358335        } IEM_MC_ELSE() {
    83368336            IEM_MC_REL_JMP_S32(i32Imm);
     
    83628362            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 0);
    83638363        } IEM_MC_ENDIF();
    8364         IEM_MC_ADVANCE_RIP();
     8364        IEM_MC_ADVANCE_RIP_AND_FINISH();
    83658365        IEM_MC_END();
    83668366    }
     
    83778377            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
    83788378        } IEM_MC_ENDIF();
    8379         IEM_MC_ADVANCE_RIP();
     8379        IEM_MC_ADVANCE_RIP_AND_FINISH();
    83808380        IEM_MC_END();
    83818381    }
     
    84048404            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 1);
    84058405        } IEM_MC_ENDIF();
    8406         IEM_MC_ADVANCE_RIP();
     8406        IEM_MC_ADVANCE_RIP_AND_FINISH();
    84078407        IEM_MC_END();
    84088408    }
     
    84198419            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1);
    84208420        } IEM_MC_ENDIF();
    8421         IEM_MC_ADVANCE_RIP();
     8421        IEM_MC_ADVANCE_RIP_AND_FINISH();
    84228422        IEM_MC_END();
    84238423    }
     
    84468446            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 0);
    84478447        } IEM_MC_ENDIF();
    8448         IEM_MC_ADVANCE_RIP();
     8448        IEM_MC_ADVANCE_RIP_AND_FINISH();
    84498449        IEM_MC_END();
    84508450    }
     
    84618461            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
    84628462        } IEM_MC_ENDIF();
    8463         IEM_MC_ADVANCE_RIP();
     8463        IEM_MC_ADVANCE_RIP_AND_FINISH();
    84648464        IEM_MC_END();
    84658465    }
     
    84888488            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 1);
    84898489        } IEM_MC_ENDIF();
    8490         IEM_MC_ADVANCE_RIP();
     8490        IEM_MC_ADVANCE_RIP_AND_FINISH();
    84918491        IEM_MC_END();
    84928492    }
     
    85038503            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1);
    85048504        } IEM_MC_ENDIF();
    8505         IEM_MC_ADVANCE_RIP();
     8505        IEM_MC_ADVANCE_RIP_AND_FINISH();
    85068506        IEM_MC_END();
    85078507    }
     
    85308530            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 0);
    85318531        } IEM_MC_ENDIF();
    8532         IEM_MC_ADVANCE_RIP();
     8532        IEM_MC_ADVANCE_RIP_AND_FINISH();
    85338533        IEM_MC_END();
    85348534    }
     
    85458545            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
    85468546        } IEM_MC_ENDIF();
    8547         IEM_MC_ADVANCE_RIP();
     8547        IEM_MC_ADVANCE_RIP_AND_FINISH();
    85488548        IEM_MC_END();
    85498549    }
     
    85728572            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 1);
    85738573        } IEM_MC_ENDIF();
    8574         IEM_MC_ADVANCE_RIP();
     8574        IEM_MC_ADVANCE_RIP_AND_FINISH();
    85758575        IEM_MC_END();
    85768576    }
     
    85878587            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1);
    85888588        } IEM_MC_ENDIF();
    8589         IEM_MC_ADVANCE_RIP();
     8589        IEM_MC_ADVANCE_RIP_AND_FINISH();
    85908590        IEM_MC_END();
    85918591    }
     
    86148614            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 0);
    86158615        } IEM_MC_ENDIF();
    8616         IEM_MC_ADVANCE_RIP();
     8616        IEM_MC_ADVANCE_RIP_AND_FINISH();
    86178617        IEM_MC_END();
    86188618    }
     
    86298629            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
    86308630        } IEM_MC_ENDIF();
    8631         IEM_MC_ADVANCE_RIP();
     8631        IEM_MC_ADVANCE_RIP_AND_FINISH();
    86328632        IEM_MC_END();
    86338633    }
     
    86568656            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 1);
    86578657        } IEM_MC_ENDIF();
    8658         IEM_MC_ADVANCE_RIP();
     8658        IEM_MC_ADVANCE_RIP_AND_FINISH();
    86598659        IEM_MC_END();
    86608660    }
     
    86718671            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1);
    86728672        } IEM_MC_ENDIF();
    8673         IEM_MC_ADVANCE_RIP();
     8673        IEM_MC_ADVANCE_RIP_AND_FINISH();
    86748674        IEM_MC_END();
    86758675    }
     
    86988698            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 0);
    86998699        } IEM_MC_ENDIF();
    8700         IEM_MC_ADVANCE_RIP();
     8700        IEM_MC_ADVANCE_RIP_AND_FINISH();
    87018701        IEM_MC_END();
    87028702    }
     
    87138713            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
    87148714        } IEM_MC_ENDIF();
    8715         IEM_MC_ADVANCE_RIP();
     8715        IEM_MC_ADVANCE_RIP_AND_FINISH();
    87168716        IEM_MC_END();
    87178717    }
     
    87408740            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 1);
    87418741        } IEM_MC_ENDIF();
    8742         IEM_MC_ADVANCE_RIP();
     8742        IEM_MC_ADVANCE_RIP_AND_FINISH();
    87438743        IEM_MC_END();
    87448744    }
     
    87558755            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1);
    87568756        } IEM_MC_ENDIF();
    8757         IEM_MC_ADVANCE_RIP();
     8757        IEM_MC_ADVANCE_RIP_AND_FINISH();
    87588758        IEM_MC_END();
    87598759    }
     
    87828782            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 0);
    87838783        } IEM_MC_ENDIF();
    8784         IEM_MC_ADVANCE_RIP();
     8784        IEM_MC_ADVANCE_RIP_AND_FINISH();
    87858785        IEM_MC_END();
    87868786    }
     
    87978797            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
    87988798        } IEM_MC_ENDIF();
    8799         IEM_MC_ADVANCE_RIP();
     8799        IEM_MC_ADVANCE_RIP_AND_FINISH();
    88008800        IEM_MC_END();
    88018801    }
     
    88248824            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 1);
    88258825        } IEM_MC_ENDIF();
    8826         IEM_MC_ADVANCE_RIP();
     8826        IEM_MC_ADVANCE_RIP_AND_FINISH();
    88278827        IEM_MC_END();
    88288828    }
     
    88398839            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1);
    88408840        } IEM_MC_ENDIF();
    8841         IEM_MC_ADVANCE_RIP();
     8841        IEM_MC_ADVANCE_RIP_AND_FINISH();
    88428842        IEM_MC_END();
    88438843    }
     
    88668866            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 0);
    88678867        } IEM_MC_ENDIF();
    8868         IEM_MC_ADVANCE_RIP();
     8868        IEM_MC_ADVANCE_RIP_AND_FINISH();
    88698869        IEM_MC_END();
    88708870    }
     
    88818881            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
    88828882        } IEM_MC_ENDIF();
    8883         IEM_MC_ADVANCE_RIP();
     8883        IEM_MC_ADVANCE_RIP_AND_FINISH();
    88848884        IEM_MC_END();
    88858885    }
     
    89088908            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 1);
    89098909        } IEM_MC_ENDIF();
    8910         IEM_MC_ADVANCE_RIP();
     8910        IEM_MC_ADVANCE_RIP_AND_FINISH();
    89118911        IEM_MC_END();
    89128912    }
     
    89238923            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1);
    89248924        } IEM_MC_ENDIF();
    8925         IEM_MC_ADVANCE_RIP();
     8925        IEM_MC_ADVANCE_RIP_AND_FINISH();
    89268926        IEM_MC_END();
    89278927    }
     
    89508950            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 0);
    89518951        } IEM_MC_ENDIF();
    8952         IEM_MC_ADVANCE_RIP();
     8952        IEM_MC_ADVANCE_RIP_AND_FINISH();
    89538953        IEM_MC_END();
    89548954    }
     
    89658965            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
    89668966        } IEM_MC_ENDIF();
    8967         IEM_MC_ADVANCE_RIP();
     8967        IEM_MC_ADVANCE_RIP_AND_FINISH();
    89688968        IEM_MC_END();
    89698969    }
     
    89928992            IEM_MC_STORE_GREG_U8_CONST(IEM_GET_MODRM_RM(pVCpu, bRm), 1);
    89938993        } IEM_MC_ENDIF();
    8994         IEM_MC_ADVANCE_RIP();
     8994        IEM_MC_ADVANCE_RIP_AND_FINISH();
    89958995        IEM_MC_END();
    89968996    }
     
    90079007            IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, 1);
    90089008        } IEM_MC_ENDIF();
    9009         IEM_MC_ADVANCE_RIP();
     9009        IEM_MC_ADVANCE_RIP_AND_FINISH();
    90109010        IEM_MC_END();
    90119011    }
     
    90309030            IEM_MC_FETCH_SREG_U16(u16Value, iReg);
    90319031            IEM_MC_PUSH_U16(u16Value);
    9032             IEM_MC_ADVANCE_RIP();
     9032            IEM_MC_ADVANCE_RIP_AND_FINISH();
    90339033            IEM_MC_END();
    90349034            break;
     
    90399039            IEM_MC_FETCH_SREG_ZX_U32(u32Value, iReg);
    90409040            IEM_MC_PUSH_U32_SREG(u32Value);
    9041             IEM_MC_ADVANCE_RIP();
     9041            IEM_MC_ADVANCE_RIP_AND_FINISH();
    90429042            IEM_MC_END();
    90439043            break;
     
    90489048            IEM_MC_FETCH_SREG_ZX_U64(u64Value, iReg);
    90499049            IEM_MC_PUSH_U64(u64Value);
    9050             IEM_MC_ADVANCE_RIP();
     9050            IEM_MC_ADVANCE_RIP_AND_FINISH();
    90519051            IEM_MC_END();
    90529052            break;
     
    91149114                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    91159115
    9116                 IEM_MC_ADVANCE_RIP();
     9116                IEM_MC_ADVANCE_RIP_AND_FINISH();
    91179117                IEM_MC_END();
    91189118                return VINF_SUCCESS;
     
    91319131
    91329132                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    9133                 IEM_MC_ADVANCE_RIP();
     9133                IEM_MC_ADVANCE_RIP_AND_FINISH();
    91349134                IEM_MC_END();
    91359135                return VINF_SUCCESS;
     
    91479147                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    91489148
    9149                 IEM_MC_ADVANCE_RIP();
     9149                IEM_MC_ADVANCE_RIP_AND_FINISH();
    91509150                IEM_MC_END();
    91519151                return VINF_SUCCESS;
     
    91969196
    91979197                IEM_MC_COMMIT_EFLAGS(EFlags);
    9198                 IEM_MC_ADVANCE_RIP();
     9198                IEM_MC_ADVANCE_RIP_AND_FINISH();
    91999199                IEM_MC_END();
    92009200                return VINF_SUCCESS;
     
    92299229
    92309230                IEM_MC_COMMIT_EFLAGS(EFlags);
    9231                 IEM_MC_ADVANCE_RIP();
     9231                IEM_MC_ADVANCE_RIP_AND_FINISH();
    92329232                IEM_MC_END();
    92339233                return VINF_SUCCESS;
     
    92629262
    92639263                IEM_MC_COMMIT_EFLAGS(EFlags);
    9264                 IEM_MC_ADVANCE_RIP();
     9264                IEM_MC_ADVANCE_RIP_AND_FINISH();
    92659265                IEM_MC_END();
    92669266                return VINF_SUCCESS;
     
    93089308                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU16, pu16Dst, u16Src, cShiftArg, pEFlags);
    93099309
    9310                 IEM_MC_ADVANCE_RIP();
     9310                IEM_MC_ADVANCE_RIP_AND_FINISH();
    93119311                IEM_MC_END();
    93129312                return VINF_SUCCESS;
     
    93259325
    93269326                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    9327                 IEM_MC_ADVANCE_RIP();
     9327                IEM_MC_ADVANCE_RIP_AND_FINISH();
    93289328                IEM_MC_END();
    93299329                return VINF_SUCCESS;
     
    93419341                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU64, pu64Dst, u64Src, cShiftArg, pEFlags);
    93429342
    9343                 IEM_MC_ADVANCE_RIP();
     9343                IEM_MC_ADVANCE_RIP_AND_FINISH();
    93449344                IEM_MC_END();
    93459345                return VINF_SUCCESS;
     
    93719371                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
    93729372                IEM_MC_COMMIT_EFLAGS(EFlags);
    9373                 IEM_MC_ADVANCE_RIP();
     9373                IEM_MC_ADVANCE_RIP_AND_FINISH();
    93749374                IEM_MC_END();
    93759375                return VINF_SUCCESS;
     
    93949394                IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
    93959395                IEM_MC_COMMIT_EFLAGS(EFlags);
    9396                 IEM_MC_ADVANCE_RIP();
     9396                IEM_MC_ADVANCE_RIP_AND_FINISH();
    93979397                IEM_MC_END();
    93989398                return VINF_SUCCESS;
     
    94179417                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
    94189418                IEM_MC_COMMIT_EFLAGS(EFlags);
    9419                 IEM_MC_ADVANCE_RIP();
     9419                IEM_MC_ADVANCE_RIP_AND_FINISH();
    94209420                IEM_MC_END();
    94219421                return VINF_SUCCESS;
     
    94549454                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU16, pu16Dst, u16Src, cShiftArg, pEFlags);
    94559455
    9456                 IEM_MC_ADVANCE_RIP();
     9456                IEM_MC_ADVANCE_RIP_AND_FINISH();
    94579457                IEM_MC_END();
    94589458                return VINF_SUCCESS;
     
    94729472
    94739473                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    9474                 IEM_MC_ADVANCE_RIP();
     9474                IEM_MC_ADVANCE_RIP_AND_FINISH();
    94759475                IEM_MC_END();
    94769476                return VINF_SUCCESS;
     
    94899489                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU64, pu64Dst, u64Src, cShiftArg, pEFlags);
    94909490
    9491                 IEM_MC_ADVANCE_RIP();
     9491                IEM_MC_ADVANCE_RIP_AND_FINISH();
    94929492                IEM_MC_END();
    94939493                return VINF_SUCCESS;
     
    95189518                IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
    95199519                IEM_MC_COMMIT_EFLAGS(EFlags);
    9520                 IEM_MC_ADVANCE_RIP();
     9520                IEM_MC_ADVANCE_RIP_AND_FINISH();
    95219521                IEM_MC_END();
    95229522                return VINF_SUCCESS;
     
    95409540                IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
    95419541                IEM_MC_COMMIT_EFLAGS(EFlags);
    9542                 IEM_MC_ADVANCE_RIP();
     9542                IEM_MC_ADVANCE_RIP_AND_FINISH();
    95439543                IEM_MC_END();
    95449544                return VINF_SUCCESS;
     
    95629562                IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
    95639563                IEM_MC_COMMIT_EFLAGS(EFlags);
    9564                 IEM_MC_ADVANCE_RIP();
     9564                IEM_MC_ADVANCE_RIP_AND_FINISH();
    95659565                IEM_MC_END();
    95669566                return VINF_SUCCESS;
     
    98939893        IEM_MC_CALL_VOID_AIMPL_0(iemAImpl_alt_mem_fence);
    98949894#endif
    9895     IEM_MC_ADVANCE_RIP();
     9895    IEM_MC_ADVANCE_RIP_AND_FINISH();
    98969896    IEM_MC_END();
    98979897    return VINF_SUCCESS;
     
    99179917        IEM_MC_CALL_VOID_AIMPL_0(iemAImpl_alt_mem_fence);
    99189918#endif
    9919     IEM_MC_ADVANCE_RIP();
     9919    IEM_MC_ADVANCE_RIP_AND_FINISH();
    99209920    IEM_MC_END();
    99219921    return VINF_SUCCESS;
     
    99419941        IEM_MC_CALL_VOID_AIMPL_0(iemAImpl_alt_mem_fence);
    99429942#endif
    9943     IEM_MC_ADVANCE_RIP();
     9943    IEM_MC_ADVANCE_RIP_AND_FINISH();
    99449944    IEM_MC_END();
    99459945    return VINF_SUCCESS;
     
    99599959        IEM_MC_FETCH_SREG_BASE_U64(u64Dst, X86_SREG_FS);
    99609960        IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Dst);
    9961         IEM_MC_ADVANCE_RIP();
     9961        IEM_MC_ADVANCE_RIP_AND_FINISH();
    99629962        IEM_MC_END();
    99639963    }
     
    99699969        IEM_MC_FETCH_SREG_BASE_U32(u32Dst, X86_SREG_FS);
    99709970        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Dst);
    9971         IEM_MC_ADVANCE_RIP();
     9971        IEM_MC_ADVANCE_RIP_AND_FINISH();
    99729972        IEM_MC_END();
    99739973    }
     
    99889988        IEM_MC_FETCH_SREG_BASE_U64(u64Dst, X86_SREG_GS);
    99899989        IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Dst);
    9990         IEM_MC_ADVANCE_RIP();
     9990        IEM_MC_ADVANCE_RIP_AND_FINISH();
    99919991        IEM_MC_END();
    99929992    }
     
    99989998        IEM_MC_FETCH_SREG_BASE_U32(u32Dst, X86_SREG_GS);
    99999999        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Dst);
    10000         IEM_MC_ADVANCE_RIP();
     10000        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1000110001        IEM_MC_END();
    1000210002    }
     
    1001810018        IEM_MC_MAYBE_RAISE_NON_CANONICAL_ADDR_GP0(u64Dst);
    1001910019        IEM_MC_STORE_SREG_BASE_U64(X86_SREG_FS, u64Dst);
    10020         IEM_MC_ADVANCE_RIP();
     10020        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1002110021        IEM_MC_END();
    1002210022    }
     
    1002810028        IEM_MC_FETCH_GREG_U32(u32Dst, IEM_GET_MODRM_RM(pVCpu, bRm));
    1002910029        IEM_MC_STORE_SREG_BASE_U64(X86_SREG_FS, u32Dst);
    10030         IEM_MC_ADVANCE_RIP();
     10030        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1003110031        IEM_MC_END();
    1003210032    }
     
    1004810048        IEM_MC_MAYBE_RAISE_NON_CANONICAL_ADDR_GP0(u64Dst);
    1004910049        IEM_MC_STORE_SREG_BASE_U64(X86_SREG_GS, u64Dst);
    10050         IEM_MC_ADVANCE_RIP();
     10050        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1005110051        IEM_MC_END();
    1005210052    }
     
    1005810058        IEM_MC_FETCH_GREG_U32(u32Dst, IEM_GET_MODRM_RM(pVCpu, bRm));
    1005910059        IEM_MC_STORE_SREG_BASE_U64(X86_SREG_GS, u32Dst);
    10060         IEM_MC_ADVANCE_RIP();
     10060        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1006110061        IEM_MC_END();
    1006210062    }
     
    1014910149            IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_cmpxchg_u8_locked, pu8Dst, pu8Al, u8Src, pEFlags);
    1015010150
    10151         IEM_MC_ADVANCE_RIP();
     10151        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1015210152        IEM_MC_END();
    1015310153    }
     
    1017710177        IEM_MC_COMMIT_EFLAGS(EFlags);
    1017810178        IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Al);
    10179         IEM_MC_ADVANCE_RIP();
     10179        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1018010180        IEM_MC_END();
    1018110181    }
     
    1021110211                    IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_cmpxchg_u16_locked, pu16Dst, pu16Ax, u16Src, pEFlags);
    1021210212
    10213                 IEM_MC_ADVANCE_RIP();
     10213                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1021410214                IEM_MC_END();
    1021510215                return VINF_SUCCESS;
     
    1023710237                } IEM_MC_ENDIF();
    1023810238
    10239                 IEM_MC_ADVANCE_RIP();
     10239                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1024010240                IEM_MC_END();
    1024110241                return VINF_SUCCESS;
     
    1026910269#endif
    1027010270
    10271                 IEM_MC_ADVANCE_RIP();
     10271                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1027210272                IEM_MC_END();
    1027310273                return VINF_SUCCESS;
     
    1030410304                IEM_MC_COMMIT_EFLAGS(EFlags);
    1030510305                IEM_MC_STORE_GREG_U16(X86_GREG_xAX, u16Ax);
    10306                 IEM_MC_ADVANCE_RIP();
     10306                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1030710307                IEM_MC_END();
    1030810308                return VINF_SUCCESS;
     
    1033610336                IEM_MC_ENDIF();
    1033710337
    10338                 IEM_MC_ADVANCE_RIP();
     10338                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1033910339                IEM_MC_END();
    1034010340                return VINF_SUCCESS;
     
    1037610376                IEM_MC_COMMIT_EFLAGS(EFlags);
    1037710377                IEM_MC_STORE_GREG_U64(X86_GREG_xAX, u64Rax);
    10378                 IEM_MC_ADVANCE_RIP();
     10378                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1037910379                IEM_MC_END();
    1038010380                return VINF_SUCCESS;
     
    1051510515                IEM_MC_FETCH_GREG_U8_ZX_U16(u16Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1051610516                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Value);
    10517                 IEM_MC_ADVANCE_RIP();
     10517                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1051810518                IEM_MC_END();
    1051910519                return VINF_SUCCESS;
     
    1052410524                IEM_MC_FETCH_GREG_U8_ZX_U32(u32Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1052510525                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    10526                 IEM_MC_ADVANCE_RIP();
     10526                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1052710527                IEM_MC_END();
    1052810528                return VINF_SUCCESS;
     
    1053310533                IEM_MC_FETCH_GREG_U8_ZX_U64(u64Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1053410534                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    10535                 IEM_MC_ADVANCE_RIP();
     10535                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1053610536                IEM_MC_END();
    1053710537                return VINF_SUCCESS;
     
    1055510555                IEM_MC_FETCH_MEM_U8_ZX_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1055610556                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Value);
    10557                 IEM_MC_ADVANCE_RIP();
     10557                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1055810558                IEM_MC_END();
    1055910559                return VINF_SUCCESS;
     
    1056710567                IEM_MC_FETCH_MEM_U8_ZX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1056810568                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    10569                 IEM_MC_ADVANCE_RIP();
     10569                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1057010570                IEM_MC_END();
    1057110571                return VINF_SUCCESS;
     
    1057910579                IEM_MC_FETCH_MEM_U8_ZX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1058010580                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    10581                 IEM_MC_ADVANCE_RIP();
     10581                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1058210582                IEM_MC_END();
    1058310583                return VINF_SUCCESS;
     
    1061210612            IEM_MC_FETCH_GREG_U16_ZX_U32(u32Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1061310613            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    10614             IEM_MC_ADVANCE_RIP();
     10614            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1061510615            IEM_MC_END();
    1061610616        }
     
    1062110621            IEM_MC_FETCH_GREG_U16_ZX_U64(u64Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1062210622            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    10623             IEM_MC_ADVANCE_RIP();
     10623            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1062410624            IEM_MC_END();
    1062510625        }
     
    1063910639            IEM_MC_FETCH_MEM_U16_ZX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1064010640            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    10641             IEM_MC_ADVANCE_RIP();
     10641            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1064210642            IEM_MC_END();
    1064310643        }
     
    1065110651            IEM_MC_FETCH_MEM_U16_ZX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1065210652            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    10653             IEM_MC_ADVANCE_RIP();
     10653            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1065410654            IEM_MC_END();
    1065510655        }
     
    1073510735                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    1073610736
    10737                 IEM_MC_ADVANCE_RIP();
     10737                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1073810738                IEM_MC_END();
    1073910739                return VINF_SUCCESS;
     
    1075010750
    1075110751                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    10752                 IEM_MC_ADVANCE_RIP();
     10752                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1075310753                IEM_MC_END();
    1075410754                return VINF_SUCCESS;
     
    1076410764                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    1076510765
    10766                 IEM_MC_ADVANCE_RIP();
     10766                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1076710767                IEM_MC_END();
    1076810768                return VINF_SUCCESS;
     
    1080710807
    1080810808                IEM_MC_COMMIT_EFLAGS(EFlags);
    10809                 IEM_MC_ADVANCE_RIP();
     10809                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1081010810                IEM_MC_END();
    1081110811                return VINF_SUCCESS;
     
    1083410834
    1083510835                IEM_MC_COMMIT_EFLAGS(EFlags);
    10836                 IEM_MC_ADVANCE_RIP();
     10836                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1083710837                IEM_MC_END();
    1083810838                return VINF_SUCCESS;
     
    1086110861
    1086210862                IEM_MC_COMMIT_EFLAGS(EFlags);
    10863                 IEM_MC_ADVANCE_RIP();
     10863                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1086410864                IEM_MC_END();
    1086510865                return VINF_SUCCESS;
     
    1091210912                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    1091310913
    10914                 IEM_MC_ADVANCE_RIP();
     10914                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1091510915                IEM_MC_END();
    1091610916                break;
     
    1092910929                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    1093010930                IEM_MC_ENDIF();
    10931                 IEM_MC_ADVANCE_RIP();
     10931                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1093210932                IEM_MC_END();
    1093310933                break;
     
    1094410944                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    1094510945
    10946                 IEM_MC_ADVANCE_RIP();
     10946                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1094710947                IEM_MC_END();
    1094810948                break;
     
    1097010970                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, u16Src, pEFlags);
    1097110971
    10972                 IEM_MC_ADVANCE_RIP();
     10972                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1097310973                IEM_MC_END();
    1097410974                break;
     
    1099110991                    IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    1099210992                IEM_MC_ENDIF();
    10993                 IEM_MC_ADVANCE_RIP();
     10993                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1099410994                IEM_MC_END();
    1099510995                break;
     
    1100911009                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, u64Src, pEFlags);
    1101011010
    11011                 IEM_MC_ADVANCE_RIP();
     11011                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1101211012                IEM_MC_END();
    1101311013                break;
     
    1111211112                IEM_MC_FETCH_GREG_U8_SX_U16(u16Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1111311113                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Value);
    11114                 IEM_MC_ADVANCE_RIP();
     11114                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1111511115                IEM_MC_END();
    1111611116                return VINF_SUCCESS;
     
    1112111121                IEM_MC_FETCH_GREG_U8_SX_U32(u32Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1112211122                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    11123                 IEM_MC_ADVANCE_RIP();
     11123                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1112411124                IEM_MC_END();
    1112511125                return VINF_SUCCESS;
     
    1113011130                IEM_MC_FETCH_GREG_U8_SX_U64(u64Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1113111131                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    11132                 IEM_MC_ADVANCE_RIP();
     11132                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1113311133                IEM_MC_END();
    1113411134                return VINF_SUCCESS;
     
    1115211152                IEM_MC_FETCH_MEM_U8_SX_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1115311153                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16Value);
    11154                 IEM_MC_ADVANCE_RIP();
     11154                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1115511155                IEM_MC_END();
    1115611156                return VINF_SUCCESS;
     
    1116411164                IEM_MC_FETCH_MEM_U8_SX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1116511165                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    11166                 IEM_MC_ADVANCE_RIP();
     11166                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1116711167                IEM_MC_END();
    1116811168                return VINF_SUCCESS;
     
    1117611176                IEM_MC_FETCH_MEM_U8_SX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1117711177                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    11178                 IEM_MC_ADVANCE_RIP();
     11178                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1117911179                IEM_MC_END();
    1118011180                return VINF_SUCCESS;
     
    1120911209            IEM_MC_FETCH_GREG_U16_SX_U32(u32Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1121011210            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    11211             IEM_MC_ADVANCE_RIP();
     11211            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1121211212            IEM_MC_END();
    1121311213        }
     
    1121811218            IEM_MC_FETCH_GREG_U16_SX_U64(u64Value, IEM_GET_MODRM_RM(pVCpu, bRm));
    1121911219            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    11220             IEM_MC_ADVANCE_RIP();
     11220            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1122111221            IEM_MC_END();
    1122211222        }
     
    1123611236            IEM_MC_FETCH_MEM_U16_SX_U32(u32Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1123711237            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32Value);
    11238             IEM_MC_ADVANCE_RIP();
     11238            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1123911239            IEM_MC_END();
    1124011240        }
     
    1124811248            IEM_MC_FETCH_MEM_U16_SX_U64(u64Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1124911249            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Value);
    11250             IEM_MC_ADVANCE_RIP();
     11250            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1125111251            IEM_MC_END();
    1125211252        }
     
    1128011280        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u8, pu8Dst, pu8Reg, pEFlags);
    1128111281
    11282         IEM_MC_ADVANCE_RIP();
     11282        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1128311283        IEM_MC_END();
    1128411284    }
     
    1130811308        IEM_MC_COMMIT_EFLAGS(EFlags);
    1130911309        IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), u8RegCopy);
    11310         IEM_MC_ADVANCE_RIP();
     11310        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1131111311        IEM_MC_END();
    1131211312        return VINF_SUCCESS;
     
    1134311343                IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u16, pu16Dst, pu16Reg, pEFlags);
    1134411344
    11345                 IEM_MC_ADVANCE_RIP();
     11345                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1134611346                IEM_MC_END();
    1134711347                return VINF_SUCCESS;
     
    1136011360                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    1136111361                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Reg);
    11362                 IEM_MC_ADVANCE_RIP();
     11362                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1136311363                IEM_MC_END();
    1136411364                return VINF_SUCCESS;
     
    1137511375                IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u64, pu64Dst, pu64Reg, pEFlags);
    1137611376
    11377                 IEM_MC_ADVANCE_RIP();
     11377                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1137811378                IEM_MC_END();
    1137911379                return VINF_SUCCESS;
     
    1141011410                IEM_MC_COMMIT_EFLAGS(EFlags);
    1141111411                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16RegCopy);
    11412                 IEM_MC_ADVANCE_RIP();
     11412                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1141311413                IEM_MC_END();
    1141411414                return VINF_SUCCESS;
     
    1143511435                IEM_MC_COMMIT_EFLAGS(EFlags);
    1143611436                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32RegCopy);
    11437                 IEM_MC_ADVANCE_RIP();
     11437                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1143811438                IEM_MC_END();
    1143911439                return VINF_SUCCESS;
     
    1146011460                IEM_MC_COMMIT_EFLAGS(EFlags);
    1146111461                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64RegCopy);
    11462                 IEM_MC_ADVANCE_RIP();
     11462                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1146311463                IEM_MC_END();
    1146411464                return VINF_SUCCESS;
     
    1150211502        IEM_MC_ENDIF();
    1150311503
    11504         IEM_MC_ADVANCE_RIP();
     11504        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1150511505        IEM_MC_END();
    1150611506    }
     
    1153511535        IEM_MC_ENDIF();
    1153611536
    11537         IEM_MC_ADVANCE_RIP();
     11537        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1153811538        IEM_MC_END();
    1153911539    }
     
    1157411574        IEM_MC_ENDIF();
    1157511575
    11576         IEM_MC_ADVANCE_RIP();
     11576        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1157711577        IEM_MC_END();
    1157811578    }
     
    1160711607        IEM_MC_ENDIF();
    1160811608
    11609         IEM_MC_ADVANCE_RIP();
     11609        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1161011610        IEM_MC_END();
    1161111611    }
     
    1164611646        IEM_MC_ENDIF();
    1164711647
    11648         IEM_MC_ADVANCE_RIP();
     11648        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1164911649        IEM_MC_END();
    1165011650    }
     
    1167911679        IEM_MC_ENDIF();
    1168011680
    11681         IEM_MC_ADVANCE_RIP();
     11681        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1168211682        IEM_MC_END();
    1168311683    }
     
    1171811718        IEM_MC_ENDIF();
    1171911719
    11720         IEM_MC_ADVANCE_RIP();
     11720        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1172111721        IEM_MC_END();
    1172211722    }
     
    1175111751        IEM_MC_ENDIF();
    1175211752
    11753         IEM_MC_ADVANCE_RIP();
     11753        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1175411754        IEM_MC_END();
    1175511755    }
     
    1178211782                IEM_MC_FETCH_GREG_U32(u32Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    1178311783                IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u32Value);
    11784                 IEM_MC_ADVANCE_RIP();
     11784                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1178511785                IEM_MC_END();
    1178611786                break;
     
    1179811798                IEM_MC_FETCH_GREG_U64(u64Value, IEM_GET_MODRM_REG(pVCpu, bRm));
    1179911799                IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u64Value);
    11800                 IEM_MC_ADVANCE_RIP();
     11800                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1180111801                IEM_MC_END();
    1180211802                break;
     
    1184111841        IEM_MC_MODIFIED_MREG_BY_REF(pu64Dst);
    1184211842        IEM_MC_FPU_TO_MMX_MODE();
    11843         IEM_MC_ADVANCE_RIP();
     11843        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1184411844        IEM_MC_END();
    1184511845    }
     
    1186611866        IEM_MC_MODIFIED_MREG_BY_REF(pu64Dst);
    1186711867        IEM_MC_FPU_TO_MMX_MODE();
    11868         IEM_MC_ADVANCE_RIP();
     11868        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1186911869        IEM_MC_END();
    1187011870    }
     
    1189411894        IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_RM(pVCpu, bRm));
    1189511895        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pinsrw_u128, puDst, u16Src, bEvilArg);
    11896         IEM_MC_ADVANCE_RIP();
     11896        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1189711897        IEM_MC_END();
    1189811898    }
     
    1191711917        IEM_MC_REF_XREG_U128(puDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    1191811918        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pinsrw_u128, puDst, u16Src, bEvilArg);
    11919         IEM_MC_ADVANCE_RIP();
     11919        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1192011920        IEM_MC_END();
    1192111921    }
     
    1195111951        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u16Dst);
    1195211952        IEM_MC_FPU_TO_MMX_MODE();
    11953         IEM_MC_ADVANCE_RIP();
     11953        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1195411954        IEM_MC_END();
    1195511955        return VINF_SUCCESS;
     
    1198311983        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pextrw_u128, pu16Dst, puSrc, bEvilArg);
    1198411984        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u16Dst);
    11985         IEM_MC_ADVANCE_RIP();
     11985        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1198611986        IEM_MC_END();
    1198711987        return VINF_SUCCESS;
     
    1201812018        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    1201912019        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_shufps_u128, pDst, pSrc, bEvilArg);
    12020         IEM_MC_ADVANCE_RIP();
     12020        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1202112021        IEM_MC_END();
    1202212022    }
     
    1204312043        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_shufps_u128, pDst, pSrc, bEvilArg);
    1204412044
    12045         IEM_MC_ADVANCE_RIP();
     12045        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1204612046        IEM_MC_END();
    1204712047    }
     
    1207112071        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    1207212072        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_shufpd_u128, pDst, pSrc, bEvilArg);
    12073         IEM_MC_ADVANCE_RIP();
     12073        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1207412074        IEM_MC_END();
    1207512075    }
     
    1209612096        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_shufpd_u128, pDst, pSrc, bEvilArg);
    1209712097
    12098         IEM_MC_ADVANCE_RIP();
     12098        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1209912099        IEM_MC_END();
    1210012100    }
     
    1214512145        IEM_MC_STORE_GREG_U32(X86_GREG_xDX, u64EaxEdx.s.Hi);
    1214612146    IEM_MC_ENDIF();
    12147     IEM_MC_ADVANCE_RIP();
     12147    IEM_MC_ADVANCE_RIP_AND_FINISH();
    1214812148
    1214912149    IEM_MC_END();
     
    1222212222            IEM_MC_STORE_GREG_U64(X86_GREG_xDX, u128RaxRdx.s.Hi);
    1222312223        IEM_MC_ENDIF();
    12224         IEM_MC_ADVANCE_RIP();
     12224        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1222512225
    1222612226        IEM_MC_END();
     
    1226212262                                         pu16Dst, pEFlags);
    1226312263
    12264                 IEM_MC_ADVANCE_RIP();
     12264                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1226512265                IEM_MC_END();
    1226612266                return VINF_SUCCESS;
     
    1227712277
    1227812278                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    12279                 IEM_MC_ADVANCE_RIP();
     12279                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1228012280                IEM_MC_END();
    1228112281                return VINF_SUCCESS;
     
    1229112291                                         pu64Dst, pEFlags);
    1229212292
    12293                 IEM_MC_ADVANCE_RIP();
     12293                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1229412294                IEM_MC_END();
    1229512295                return VINF_SUCCESS;
     
    1241012410                                         pu16Dst, pEFlags);
    1241112411
    12412                 IEM_MC_ADVANCE_RIP();
     12412                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1241312413                IEM_MC_END();
    1241412414                return VINF_SUCCESS;
     
    1242512425
    1242612426                IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    12427                 IEM_MC_ADVANCE_RIP();
     12427                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1242812428                IEM_MC_END();
    1242912429                return VINF_SUCCESS;
     
    1243912439                                         pu64Dst, pEFlags);
    1244012440
    12441                 IEM_MC_ADVANCE_RIP();
     12441                IEM_MC_ADVANCE_RIP_AND_FINISH();
    1244212442                IEM_MC_END();
    1244312443                return VINF_SUCCESS;
     
    1251412514            IEM_MC_REF_GREG_U32(pu32Dst, iReg);     /* Don't clear the high dword! */
    1251512515            IEM_MC_CALL_VOID_AIMPL_1(iemAImpl_bswap_u16, pu32Dst);
    12516             IEM_MC_ADVANCE_RIP();
     12516            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1251712517            IEM_MC_END();
    1251812518            return VINF_SUCCESS;
     
    1252412524            IEM_MC_CALL_VOID_AIMPL_1(iemAImpl_bswap_u32, pu32Dst);
    1252512525            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pu32Dst);
    12526             IEM_MC_ADVANCE_RIP();
     12526            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1252712527            IEM_MC_END();
    1252812528            return VINF_SUCCESS;
     
    1253312533            IEM_MC_REF_GREG_U64(pu64Dst, iReg);
    1253412534            IEM_MC_CALL_VOID_AIMPL_1(iemAImpl_bswap_u64, pu64Dst);
    12535             IEM_MC_ADVANCE_RIP();
     12535            IEM_MC_ADVANCE_RIP_AND_FINISH();
    1253612536            IEM_MC_END();
    1253712537            return VINF_SUCCESS;
     
    1276312763        IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_RM(pVCpu, bRm), uSrc);
    1276412764
    12765         IEM_MC_ADVANCE_RIP();
     12765        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1276612766        IEM_MC_END();
    1276712767    }
     
    1278312783        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    1278412784
    12785         IEM_MC_ADVANCE_RIP();
     12785        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1278612786        IEM_MC_END();
    1278712787    }
     
    1281912819        IEM_MC_STORE_XREG_U64_ZX_U128(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    1282012820
    12821         IEM_MC_ADVANCE_RIP();
     12821        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1282212822        IEM_MC_END();
    1282312823        return VINF_SUCCESS;
     
    1287112871        IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), uSrc);
    1287212872
    12873         IEM_MC_ADVANCE_RIP();
     12873        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1287412874        IEM_MC_END();
    1287512875        return VINF_SUCCESS;
     
    1291112911        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_pmovmskb_u64, puDst, puSrc);
    1291212912
    12913         IEM_MC_ADVANCE_RIP();
     12913        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1291412914        IEM_MC_END();
    1291512915        return VINF_SUCCESS;
     
    1293712937        IEM_MC_REF_XREG_U128_CONST(puSrc,   IEM_GET_MODRM_RM(pVCpu, bRm));
    1293812938        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_pmovmskb_u128, puDst, puSrc);
    12939         IEM_MC_ADVANCE_RIP();
     12939        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1294012940        IEM_MC_END();
    1294112941        return VINF_SUCCESS;
     
    1327013270        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    1327113271
    13272         IEM_MC_ADVANCE_RIP();
     13272        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1327313273        IEM_MC_END();
    1327413274        return VINF_SUCCESS;
     
    1331613316        IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    1331713317
    13318         IEM_MC_ADVANCE_RIP();
     13318        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1331913319        IEM_MC_END();
    1332013320        return VINF_SUCCESS;
     
    1352613526        IEM_MC_STORE_XREG_U128(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    1352713527
    13528         IEM_MC_ADVANCE_RIP();
     13528        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1352913529        IEM_MC_END();
    1353013530    }
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap1.cpp.h

    r97127 r97356  
    6666            IEM_MC_CALL_AVX_AIMPL_3(pImpl->pfnU256, puDst, puSrc1, puSrc2);
    6767            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    68             IEM_MC_ADVANCE_RIP();
     68            IEM_MC_ADVANCE_RIP_AND_FINISH();
    6969            IEM_MC_END();
    7070        }
     
    8484            IEM_MC_CALL_AVX_AIMPL_3(pImpl->pfnU128, puDst, puSrc1, puSrc2);
    8585            IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm));
    86             IEM_MC_ADVANCE_RIP();
     86            IEM_MC_ADVANCE_RIP_AND_FINISH();
    8787            IEM_MC_END();
    8888        }
     
    115115            IEM_MC_STORE_YREG_U256_ZX_VLMAX(   IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    116116
    117             IEM_MC_ADVANCE_RIP();
     117            IEM_MC_ADVANCE_RIP_AND_FINISH();
    118118            IEM_MC_END();
    119119        }
     
    139139            IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    140140
    141             IEM_MC_ADVANCE_RIP();
     141            IEM_MC_ADVANCE_RIP_AND_FINISH();
    142142            IEM_MC_END();
    143143        }
     
    180180            IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnU256, puDst, puSrc1, puSrc2);
    181181            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    182             IEM_MC_ADVANCE_RIP();
     182            IEM_MC_ADVANCE_RIP_AND_FINISH();
    183183            IEM_MC_END();
    184184        }
     
    197197            IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnU128, puDst, puSrc1, puSrc2);
    198198            IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm));
    199             IEM_MC_ADVANCE_RIP();
     199            IEM_MC_ADVANCE_RIP_AND_FINISH();
    200200            IEM_MC_END();
    201201        }
     
    227227            IEM_MC_STORE_YREG_U256_ZX_VLMAX(   IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    228228
    229             IEM_MC_ADVANCE_RIP();
     229            IEM_MC_ADVANCE_RIP_AND_FINISH();
    230230            IEM_MC_END();
    231231        }
     
    250250            IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    251251
    252             IEM_MC_ADVANCE_RIP();
     252            IEM_MC_ADVANCE_RIP_AND_FINISH();
    253253            IEM_MC_END();
    254254        }
     
    320320            IEM_MC_CALL_VOID_AIMPL_2(pImpl->pfnU256, puDst, puSrc);
    321321            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    322             IEM_MC_ADVANCE_RIP();
     322            IEM_MC_ADVANCE_RIP_AND_FINISH();
    323323            IEM_MC_END();
    324324        }
     
    335335            IEM_MC_CALL_VOID_AIMPL_2(pImpl->pfnU128, puDst, puSrc);
    336336            IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm));
    337             IEM_MC_ADVANCE_RIP();
     337            IEM_MC_ADVANCE_RIP_AND_FINISH();
    338338            IEM_MC_END();
    339339        }
     
    362362            IEM_MC_STORE_YREG_U256_ZX_VLMAX(   IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    363363
    364             IEM_MC_ADVANCE_RIP();
     364            IEM_MC_ADVANCE_RIP_AND_FINISH();
    365365            IEM_MC_END();
    366366        }
     
    383383            IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    384384
    385             IEM_MC_ADVANCE_RIP();
     385            IEM_MC_ADVANCE_RIP_AND_FINISH();
    386386            IEM_MC_END();
    387387        }
     
    445445            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    446446                                           IEM_GET_MODRM_RM(pVCpu, bRm));
    447         IEM_MC_ADVANCE_RIP();
     447        IEM_MC_ADVANCE_RIP_AND_FINISH();
    448448        IEM_MC_END();
    449449    }
     
    465465        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    466466
    467         IEM_MC_ADVANCE_RIP();
     467        IEM_MC_ADVANCE_RIP_AND_FINISH();
    468468        IEM_MC_END();
    469469    }
     
    485485        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    486486
    487         IEM_MC_ADVANCE_RIP();
     487        IEM_MC_ADVANCE_RIP_AND_FINISH();
    488488        IEM_MC_END();
    489489    }
     
    521521            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    522522                                           IEM_GET_MODRM_RM(pVCpu, bRm));
    523         IEM_MC_ADVANCE_RIP();
     523        IEM_MC_ADVANCE_RIP_AND_FINISH();
    524524        IEM_MC_END();
    525525    }
     
    541541        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    542542
    543         IEM_MC_ADVANCE_RIP();
     543        IEM_MC_ADVANCE_RIP_AND_FINISH();
    544544        IEM_MC_END();
    545545    }
     
    561561        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    562562
    563         IEM_MC_ADVANCE_RIP();
     563        IEM_MC_ADVANCE_RIP_AND_FINISH();
    564564        IEM_MC_END();
    565565    }
     
    596596                                           IEM_GET_MODRM_RM(pVCpu, bRm) /*U32*/,
    597597                                           IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hss*/);
    598         IEM_MC_ADVANCE_RIP();
     598        IEM_MC_ADVANCE_RIP_AND_FINISH();
    599599        IEM_MC_END();
    600600    }
     
    626626        IEM_MC_STORE_YREG_U32_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    627627
    628         IEM_MC_ADVANCE_RIP();
     628        IEM_MC_ADVANCE_RIP_AND_FINISH();
    629629        IEM_MC_END();
    630630    }
     
    662662                                           IEM_GET_MODRM_RM(pVCpu, bRm) /*U32*/,
    663663                                           IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hss*/);
    664         IEM_MC_ADVANCE_RIP();
     664        IEM_MC_ADVANCE_RIP_AND_FINISH();
    665665        IEM_MC_END();
    666666    }
     
    692692        IEM_MC_STORE_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    693693
    694         IEM_MC_ADVANCE_RIP();
     694        IEM_MC_ADVANCE_RIP_AND_FINISH();
    695695        IEM_MC_END();
    696696    }
     
    729729            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_RM(pVCpu, bRm),
    730730                                           IEM_GET_MODRM_REG(pVCpu, bRm));
    731         IEM_MC_ADVANCE_RIP();
     731        IEM_MC_ADVANCE_RIP_AND_FINISH();
    732732        IEM_MC_END();
    733733    }
     
    749749        IEM_MC_STORE_MEM_U128(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    750750
    751         IEM_MC_ADVANCE_RIP();
     751        IEM_MC_ADVANCE_RIP_AND_FINISH();
    752752        IEM_MC_END();
    753753    }
     
    769769        IEM_MC_STORE_MEM_U256(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    770770
    771         IEM_MC_ADVANCE_RIP();
     771        IEM_MC_ADVANCE_RIP_AND_FINISH();
    772772        IEM_MC_END();
    773773    }
     
    805805            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_RM(pVCpu, bRm),
    806806                                           IEM_GET_MODRM_REG(pVCpu, bRm));
    807         IEM_MC_ADVANCE_RIP();
     807        IEM_MC_ADVANCE_RIP_AND_FINISH();
    808808        IEM_MC_END();
    809809    }
     
    825825        IEM_MC_STORE_MEM_U128(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    826826
    827         IEM_MC_ADVANCE_RIP();
     827        IEM_MC_ADVANCE_RIP_AND_FINISH();
    828828        IEM_MC_END();
    829829    }
     
    845845        IEM_MC_STORE_MEM_U256(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    846846
    847         IEM_MC_ADVANCE_RIP();
     847        IEM_MC_ADVANCE_RIP_AND_FINISH();
    848848        IEM_MC_END();
    849849    }
     
    879879                                           IEM_GET_MODRM_REG(pVCpu, bRm),
    880880                                           IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hss*/);
    881         IEM_MC_ADVANCE_RIP();
     881        IEM_MC_ADVANCE_RIP_AND_FINISH();
    882882        IEM_MC_END();
    883883    }
     
    909909        IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    910910
    911         IEM_MC_ADVANCE_RIP();
     911        IEM_MC_ADVANCE_RIP_AND_FINISH();
    912912        IEM_MC_END();
    913913    }
     
    945945                                           IEM_GET_MODRM_REG(pVCpu, bRm),
    946946                                           IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hss*/);
    947         IEM_MC_ADVANCE_RIP();
     947        IEM_MC_ADVANCE_RIP_AND_FINISH();
    948948        IEM_MC_END();
    949949    }
     
    975975        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    976976
    977         IEM_MC_ADVANCE_RIP();
     977        IEM_MC_ADVANCE_RIP_AND_FINISH();
    978978        IEM_MC_END();
    979979    }
     
    10121012                                               IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hq*/);
    10131013
    1014         IEM_MC_ADVANCE_RIP();
     1014        IEM_MC_ADVANCE_RIP_AND_FINISH();
    10151015        IEM_MC_END();
    10161016    }
     
    10471047                                                  IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hq*/);
    10481048
    1049         IEM_MC_ADVANCE_RIP();
     1049        IEM_MC_ADVANCE_RIP_AND_FINISH();
    10501050        IEM_MC_END();
    10511051    }
     
    10871087                                                  IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hq*/);
    10881088
    1089         IEM_MC_ADVANCE_RIP();
     1089        IEM_MC_ADVANCE_RIP_AND_FINISH();
    10901090        IEM_MC_END();
    10911091        return VINF_SUCCESS;
     
    11431143            IEM_MC_CLEAR_YREG_128_UP(IEM_GET_MODRM_REG(pVCpu, bRm));
    11441144
    1145             IEM_MC_ADVANCE_RIP();
     1145            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11461146            IEM_MC_END();
    11471147        }
     
    11571157            IEM_MC_CALL_AVX_AIMPL_2(iemAImpl_vmovsldup_256_rr, iYRegDst, iYRegSrc);
    11581158
    1159             IEM_MC_ADVANCE_RIP();
     1159            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11601160            IEM_MC_END();
    11611161        }
     
    11841184            IEM_MC_CLEAR_YREG_128_UP(IEM_GET_MODRM_REG(pVCpu, bRm));
    11851185
    1186             IEM_MC_ADVANCE_RIP();
     1186            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11871187            IEM_MC_END();
    11881188        }
     
    12041204            IEM_MC_CALL_AVX_AIMPL_2(iemAImpl_vmovsldup_256_rm, iYRegDst, puSrc);
    12051205
    1206             IEM_MC_ADVANCE_RIP();
     1206            IEM_MC_ADVANCE_RIP_AND_FINISH();
    12071207            IEM_MC_END();
    12081208        }
     
    12471247            IEM_MC_CLEAR_YREG_128_UP(IEM_GET_MODRM_REG(pVCpu, bRm));
    12481248
    1249             IEM_MC_ADVANCE_RIP();
     1249            IEM_MC_ADVANCE_RIP_AND_FINISH();
    12501250            IEM_MC_END();
    12511251        }
     
    12611261            IEM_MC_CALL_AVX_AIMPL_2(iemAImpl_vmovddup_256_rr, iYRegDst, iYRegSrc);
    12621262
    1263             IEM_MC_ADVANCE_RIP();
     1263            IEM_MC_ADVANCE_RIP_AND_FINISH();
    12641264            IEM_MC_END();
    12651265        }
     
    12871287            IEM_MC_CLEAR_YREG_128_UP(IEM_GET_MODRM_REG(pVCpu, bRm));
    12881288
    1289             IEM_MC_ADVANCE_RIP();
     1289            IEM_MC_ADVANCE_RIP_AND_FINISH();
    12901290            IEM_MC_END();
    12911291        }
     
    13071307            IEM_MC_CALL_AVX_AIMPL_2(iemAImpl_vmovddup_256_rm, iYRegDst, puSrc);
    13081308
    1309             IEM_MC_ADVANCE_RIP();
     1309            IEM_MC_ADVANCE_RIP_AND_FINISH();
    13101310            IEM_MC_END();
    13111311        }
     
    13441344        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    13451345
    1346         IEM_MC_ADVANCE_RIP();
     1346        IEM_MC_ADVANCE_RIP_AND_FINISH();
    13471347        IEM_MC_END();
    13481348        return VINF_SUCCESS;
     
    13911391        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    13921392
    1393         IEM_MC_ADVANCE_RIP();
     1393        IEM_MC_ADVANCE_RIP_AND_FINISH();
    13941394        IEM_MC_END();
    13951395        return VINF_SUCCESS;
     
    14801480                                               IEM_GET_EFFECTIVE_VVVV(pVCpu) /*Hq*/);
    14811481
    1482         IEM_MC_ADVANCE_RIP();
     1482        IEM_MC_ADVANCE_RIP_AND_FINISH();
    14831483        IEM_MC_END();
    14841484    }
     
    15111511                                                  uSrc);
    15121512
    1513         IEM_MC_ADVANCE_RIP();
     1513        IEM_MC_ADVANCE_RIP_AND_FINISH();
    15141514        IEM_MC_END();
    15151515    }
     
    15471547                                                  uSrc);
    15481548
    1549         IEM_MC_ADVANCE_RIP();
     1549        IEM_MC_ADVANCE_RIP_AND_FINISH();
    15501550        IEM_MC_END();
    15511551        return VINF_SUCCESS;
     
    15991599            IEM_MC_CLEAR_YREG_128_UP(IEM_GET_MODRM_REG(pVCpu, bRm));
    16001600
    1601             IEM_MC_ADVANCE_RIP();
     1601            IEM_MC_ADVANCE_RIP_AND_FINISH();
    16021602            IEM_MC_END();
    16031603        }
     
    16131613            IEM_MC_CALL_AVX_AIMPL_2(iemAImpl_vmovshdup_256_rr, iYRegDst, iYRegSrc);
    16141614
    1615             IEM_MC_ADVANCE_RIP();
     1615            IEM_MC_ADVANCE_RIP_AND_FINISH();
    16161616            IEM_MC_END();
    16171617        }
     
    16401640            IEM_MC_CLEAR_YREG_128_UP(IEM_GET_MODRM_REG(pVCpu, bRm));
    16411641
    1642             IEM_MC_ADVANCE_RIP();
     1642            IEM_MC_ADVANCE_RIP_AND_FINISH();
    16431643            IEM_MC_END();
    16441644        }
     
    16601660            IEM_MC_CALL_AVX_AIMPL_2(iemAImpl_vmovshdup_256_rm, iYRegDst, puSrc);
    16611661
    1662             IEM_MC_ADVANCE_RIP();
     1662            IEM_MC_ADVANCE_RIP_AND_FINISH();
    16631663            IEM_MC_END();
    16641664        }
     
    16981698        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    16991699
    1700         IEM_MC_ADVANCE_RIP();
     1700        IEM_MC_ADVANCE_RIP_AND_FINISH();
    17011701        IEM_MC_END();
    17021702        return VINF_SUCCESS;
     
    17431743        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    17441744
    1745         IEM_MC_ADVANCE_RIP();
     1745        IEM_MC_ADVANCE_RIP_AND_FINISH();
    17461746        IEM_MC_END();
    17471747        return VINF_SUCCESS;
     
    18151815            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    18161816                                           IEM_GET_MODRM_RM(pVCpu, bRm));
    1817         IEM_MC_ADVANCE_RIP();
     1817        IEM_MC_ADVANCE_RIP_AND_FINISH();
    18181818        IEM_MC_END();
    18191819    }
     
    18371837            IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    18381838
    1839             IEM_MC_ADVANCE_RIP();
     1839            IEM_MC_ADVANCE_RIP_AND_FINISH();
    18401840            IEM_MC_END();
    18411841        }
     
    18541854            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    18551855
    1856             IEM_MC_ADVANCE_RIP();
     1856            IEM_MC_ADVANCE_RIP_AND_FINISH();
    18571857            IEM_MC_END();
    18581858        }
     
    18931893            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    18941894                                           IEM_GET_MODRM_RM(pVCpu, bRm));
    1895         IEM_MC_ADVANCE_RIP();
     1895        IEM_MC_ADVANCE_RIP_AND_FINISH();
    18961896        IEM_MC_END();
    18971897    }
     
    19151915            IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    19161916
    1917             IEM_MC_ADVANCE_RIP();
     1917            IEM_MC_ADVANCE_RIP_AND_FINISH();
    19181918            IEM_MC_END();
    19191919        }
     
    19321932            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    19331933
    1934             IEM_MC_ADVANCE_RIP();
     1934            IEM_MC_ADVANCE_RIP_AND_FINISH();
    19351935            IEM_MC_END();
    19361936        }
     
    19901990            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_RM(pVCpu, bRm),
    19911991                                           IEM_GET_MODRM_REG(pVCpu, bRm));
    1992         IEM_MC_ADVANCE_RIP();
     1992        IEM_MC_ADVANCE_RIP_AND_FINISH();
    19931993        IEM_MC_END();
    19941994    }
     
    20122012            IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    20132013
    2014             IEM_MC_ADVANCE_RIP();
     2014            IEM_MC_ADVANCE_RIP_AND_FINISH();
    20152015            IEM_MC_END();
    20162016        }
     
    20292029            IEM_MC_STORE_MEM_U256_ALIGN_AVX(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    20302030
    2031             IEM_MC_ADVANCE_RIP();
     2031            IEM_MC_ADVANCE_RIP_AND_FINISH();
    20322032            IEM_MC_END();
    20332033        }
     
    20672067            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_RM(pVCpu, bRm),
    20682068                                           IEM_GET_MODRM_REG(pVCpu, bRm));
    2069         IEM_MC_ADVANCE_RIP();
     2069        IEM_MC_ADVANCE_RIP_AND_FINISH();
    20702070        IEM_MC_END();
    20712071    }
     
    20892089            IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    20902090
    2091             IEM_MC_ADVANCE_RIP();
     2091            IEM_MC_ADVANCE_RIP_AND_FINISH();
    20922092            IEM_MC_END();
    20932093        }
     
    21062106            IEM_MC_STORE_MEM_U256_ALIGN_AVX(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    21072107
    2108             IEM_MC_ADVANCE_RIP();
     2108            IEM_MC_ADVANCE_RIP_AND_FINISH();
    21092109            IEM_MC_END();
    21102110        }
     
    21782178            IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    21792179
    2180             IEM_MC_ADVANCE_RIP();
     2180            IEM_MC_ADVANCE_RIP_AND_FINISH();
    21812181            IEM_MC_END();
    21822182        }
     
    21952195            IEM_MC_STORE_MEM_U256_ALIGN_AVX(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    21962196
    2197             IEM_MC_ADVANCE_RIP();
     2197            IEM_MC_ADVANCE_RIP_AND_FINISH();
    21982198            IEM_MC_END();
    21992199        }
     
    22402240            IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    22412241
    2242             IEM_MC_ADVANCE_RIP();
     2242            IEM_MC_ADVANCE_RIP_AND_FINISH();
    22432243            IEM_MC_END();
    22442244        }
     
    22572257            IEM_MC_STORE_MEM_U256_ALIGN_AVX(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    22582258
    2259             IEM_MC_ADVANCE_RIP();
     2259            IEM_MC_ADVANCE_RIP_AND_FINISH();
    22602260            IEM_MC_END();
    22612261        }
     
    23342334        IEM_MC_ENDIF();
    23352335
    2336         IEM_MC_ADVANCE_RIP();
     2336        IEM_MC_ADVANCE_RIP_AND_FINISH();
    23372337        IEM_MC_END();
    23382338    }
     
    23682368        IEM_MC_ENDIF();
    23692369
    2370         IEM_MC_ADVANCE_RIP();
     2370        IEM_MC_ADVANCE_RIP_AND_FINISH();
    23712371        IEM_MC_END();
    23722372    }
     
    24062406        IEM_MC_ENDIF();
    24072407
    2408         IEM_MC_ADVANCE_RIP();
     2408        IEM_MC_ADVANCE_RIP_AND_FINISH();
    24092409        IEM_MC_END();
    24102410    }
     
    24402440        IEM_MC_ENDIF();
    24412441
    2442         IEM_MC_ADVANCE_RIP();
     2442        IEM_MC_ADVANCE_RIP_AND_FINISH();
    24432443        IEM_MC_END();
    24442444    }
     
    24812481        IEM_MC_ENDIF();
    24822482
    2483         IEM_MC_ADVANCE_RIP();
     2483        IEM_MC_ADVANCE_RIP_AND_FINISH();
    24842484        IEM_MC_END();
    24852485    }
     
    25152515        IEM_MC_ENDIF();
    25162516
    2517         IEM_MC_ADVANCE_RIP();
     2517        IEM_MC_ADVANCE_RIP_AND_FINISH();
    25182518        IEM_MC_END();
    25192519    }
     
    25532553        IEM_MC_ENDIF();
    25542554
    2555         IEM_MC_ADVANCE_RIP();
     2555        IEM_MC_ADVANCE_RIP_AND_FINISH();
    25562556        IEM_MC_END();
    25572557    }
     
    25872587        IEM_MC_ENDIF();
    25882588
    2589         IEM_MC_ADVANCE_RIP();
     2589        IEM_MC_ADVANCE_RIP_AND_FINISH();
    25902590        IEM_MC_END();
    25912591    }
     
    26542654                                     pu8Dst, puSrc);
    26552655            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u8Dst);
    2656             IEM_MC_ADVANCE_RIP();
     2656            IEM_MC_ADVANCE_RIP_AND_FINISH();
    26572657            IEM_MC_END();
    26582658        }
     
    26722672                                     pu8Dst, puSrc);
    26732673            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u8Dst);
    2674             IEM_MC_ADVANCE_RIP();
     2674            IEM_MC_ADVANCE_RIP_AND_FINISH();
    26752675            IEM_MC_END();
    26762676        }
     
    27072707                                     pu8Dst, puSrc);
    27082708            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u8Dst);
    2709             IEM_MC_ADVANCE_RIP();
     2709            IEM_MC_ADVANCE_RIP_AND_FINISH();
    27102710            IEM_MC_END();
    27112711        }
     
    27252725                                     pu8Dst, puSrc);
    27262726            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u8Dst);
    2727             IEM_MC_ADVANCE_RIP();
     2727            IEM_MC_ADVANCE_RIP_AND_FINISH();
    27282728            IEM_MC_END();
    27292729        }
     
    30653065//        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    30663066//        IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
    3067 //        IEM_MC_ADVANCE_RIP();
     3067//        IEM_MC_ADVANCE_RIP_AND_FINISH();
    30683068//        IEM_MC_END();
    30693069//    }
     
    30883088//        IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
    30893089//
    3090 //        IEM_MC_ADVANCE_RIP();
     3090//        IEM_MC_ADVANCE_RIP_AND_FINISH();
    30913091//        IEM_MC_END();
    30923092//    }
     
    32163216            IEM_MC_STORE_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    32173217
    3218             IEM_MC_ADVANCE_RIP();
     3218            IEM_MC_ADVANCE_RIP_AND_FINISH();
    32193219            IEM_MC_END();
    32203220        }
     
    32343234            IEM_MC_STORE_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u64Tmp);
    32353235
    3236             IEM_MC_ADVANCE_RIP();
     3236            IEM_MC_ADVANCE_RIP_AND_FINISH();
    32373237            IEM_MC_END();
    32383238        }
     
    32663266            IEM_MC_STORE_YREG_U32_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    32673267
    3268             IEM_MC_ADVANCE_RIP();
     3268            IEM_MC_ADVANCE_RIP_AND_FINISH();
    32693269            IEM_MC_END();
    32703270        }
     
    32843284            IEM_MC_STORE_YREG_U32_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u32Tmp);
    32853285
    3286             IEM_MC_ADVANCE_RIP();
     3286            IEM_MC_ADVANCE_RIP_AND_FINISH();
    32873287            IEM_MC_END();
    32883288        }
     
    33273327            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    33283328                                           IEM_GET_MODRM_RM(pVCpu, bRm));
    3329         IEM_MC_ADVANCE_RIP();
     3329        IEM_MC_ADVANCE_RIP_AND_FINISH();
    33303330        IEM_MC_END();
    33313331    }
     
    33473347        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    33483348
    3349         IEM_MC_ADVANCE_RIP();
     3349        IEM_MC_ADVANCE_RIP_AND_FINISH();
    33503350        IEM_MC_END();
    33513351    }
     
    33673367        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u256Tmp);
    33683368
    3369         IEM_MC_ADVANCE_RIP();
     3369        IEM_MC_ADVANCE_RIP_AND_FINISH();
    33703370        IEM_MC_END();
    33713371    }
     
    34033403            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    34043404                                           IEM_GET_MODRM_RM(pVCpu, bRm));
    3405         IEM_MC_ADVANCE_RIP();
     3405        IEM_MC_ADVANCE_RIP_AND_FINISH();
    34063406        IEM_MC_END();
    34073407    }
     
    34233423        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    34243424
    3425         IEM_MC_ADVANCE_RIP();
     3425        IEM_MC_ADVANCE_RIP_AND_FINISH();
    34263426        IEM_MC_END();
    34273427    }
     
    34433443        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u256Tmp);
    34443444
    3445         IEM_MC_ADVANCE_RIP();
     3445        IEM_MC_ADVANCE_RIP_AND_FINISH();
    34463446        IEM_MC_END();
    34473447    }
     
    34833483            IEM_MC_CALL_VOID_AIMPL_3(pfnU256, puDst, puSrc, bEvilArg);
    34843484            IEM_MC_STORE_YREG_U256_ZX_VLMAX(    IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    3485             IEM_MC_ADVANCE_RIP();
     3485            IEM_MC_ADVANCE_RIP_AND_FINISH();
    34863486            IEM_MC_END();
    34873487        }
     
    34993499            IEM_MC_CALL_VOID_AIMPL_3(pfnU128, puDst, puSrc, bEvilArg);
    35003500            IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    3501             IEM_MC_ADVANCE_RIP();
     3501            IEM_MC_ADVANCE_RIP_AND_FINISH();
    35023502            IEM_MC_END();
    35033503        }
     
    35283528            IEM_MC_STORE_YREG_U256_ZX_VLMAX(    IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    35293529
    3530             IEM_MC_ADVANCE_RIP();
     3530            IEM_MC_ADVANCE_RIP_AND_FINISH();
    35313531            IEM_MC_END();
    35323532        }
     
    35513551            IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    35523552
    3553             IEM_MC_ADVANCE_RIP();
     3553            IEM_MC_ADVANCE_RIP_AND_FINISH();
    35543554            IEM_MC_END();
    35553555        }
     
    37983798        }
    37993799
    3800         IEM_MC_ADVANCE_RIP();
     3800        IEM_MC_ADVANCE_RIP_AND_FINISH();
    38013801        IEM_MC_END();
    38023802    }
     
    38363836        }
    38373837
    3838         IEM_MC_ADVANCE_RIP();
     3838        IEM_MC_ADVANCE_RIP_AND_FINISH();
    38393839        IEM_MC_END();
    38403840    }
     
    39133913            IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Tmp);
    39143914
    3915             IEM_MC_ADVANCE_RIP();
     3915            IEM_MC_ADVANCE_RIP_AND_FINISH();
    39163916            IEM_MC_END();
    39173917        }
     
    39313931            IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u64Tmp);
    39323932
    3933             IEM_MC_ADVANCE_RIP();
     3933            IEM_MC_ADVANCE_RIP_AND_FINISH();
    39343934            IEM_MC_END();
    39353935        }
     
    39633963            IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_RM(pVCpu, bRm), u32Tmp);
    39643964
    3965             IEM_MC_ADVANCE_RIP();
     3965            IEM_MC_ADVANCE_RIP_AND_FINISH();
    39663966            IEM_MC_END();
    39673967        }
     
    39813981            IEM_MC_STORE_MEM_U32(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u32Tmp);
    39823982
    3983             IEM_MC_ADVANCE_RIP();
     3983            IEM_MC_ADVANCE_RIP_AND_FINISH();
    39843984            IEM_MC_END();
    39853985        }
     
    40144014        IEM_MC_COPY_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm),
    40154015                                      IEM_GET_MODRM_RM(pVCpu, bRm));
    4016         IEM_MC_ADVANCE_RIP();
     4016        IEM_MC_ADVANCE_RIP_AND_FINISH();
    40174017        IEM_MC_END();
    40184018    }
     
    40344034        IEM_MC_STORE_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    40354035
    4036         IEM_MC_ADVANCE_RIP();
     4036        IEM_MC_ADVANCE_RIP_AND_FINISH();
    40374037        IEM_MC_END();
    40384038    }
     
    40754075            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_RM(pVCpu, bRm),
    40764076                                           IEM_GET_MODRM_REG(pVCpu, bRm));
    4077         IEM_MC_ADVANCE_RIP();
     4077        IEM_MC_ADVANCE_RIP_AND_FINISH();
    40784078        IEM_MC_END();
    40794079    }
     
    40954095        IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u128Tmp);
    40964096
    4097         IEM_MC_ADVANCE_RIP();
     4097        IEM_MC_ADVANCE_RIP_AND_FINISH();
    40984098        IEM_MC_END();
    40994099    }
     
    41154115        IEM_MC_STORE_MEM_U256_ALIGN_AVX(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u256Tmp);
    41164116
    4117         IEM_MC_ADVANCE_RIP();
     4117        IEM_MC_ADVANCE_RIP_AND_FINISH();
    41184118        IEM_MC_END();
    41194119    }
     
    41514151            IEM_MC_COPY_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_RM(pVCpu, bRm),
    41524152                                           IEM_GET_MODRM_REG(pVCpu, bRm));
    4153         IEM_MC_ADVANCE_RIP();
     4153        IEM_MC_ADVANCE_RIP_AND_FINISH();
    41544154        IEM_MC_END();
    41554155    }
     
    41714171        IEM_MC_STORE_MEM_U128(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u128Tmp);
    41724172
    4173         IEM_MC_ADVANCE_RIP();
     4173        IEM_MC_ADVANCE_RIP_AND_FINISH();
    41744174        IEM_MC_END();
    41754175    }
     
    41914191        IEM_MC_STORE_MEM_U256(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u256Tmp);
    41924192
    4193         IEM_MC_ADVANCE_RIP();
     4193        IEM_MC_ADVANCE_RIP_AND_FINISH();
    41944194        IEM_MC_END();
    41954195    }
     
    44604460                                 puDst, puSrc, u16Src, bEvilArg);
    44614461        IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm));
    4462         IEM_MC_ADVANCE_RIP();
     4462        IEM_MC_ADVANCE_RIP_AND_FINISH();
    44634463        IEM_MC_END();
    44644464    }
     
    44884488        IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    44894489
    4490         IEM_MC_ADVANCE_RIP();
     4490        IEM_MC_ADVANCE_RIP_AND_FINISH();
    44914491        IEM_MC_END();
    44924492    }
     
    45254525                                 pu16Dst, puSrc, bEvilArg);
    45264526        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u16Dst);
    4527         IEM_MC_ADVANCE_RIP();
     4527        IEM_MC_ADVANCE_RIP_AND_FINISH();
    45284528        IEM_MC_END();
    45294529        return VINF_SUCCESS;
     
    45654565                                                                 iemAImpl_ ## a_Instr ## _u256_fallback), puDst, puSrc1, puSrc2, bEvilArg); \
    45664566            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uDst); \
    4567             IEM_MC_ADVANCE_RIP(); \
     4567            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    45684568            IEM_MC_END(); \
    45694569        } \
     
    45854585                                                                 iemAImpl_ ## a_Instr ## _u128_fallback), puDst, puSrc1, puSrc2, bEvilArg); \
    45864586            IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm)); \
    4587             IEM_MC_ADVANCE_RIP(); \
     4587            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    45884588            IEM_MC_END(); \
    45894589        } \
     
    46154615                                                                 iemAImpl_ ## a_Instr ## _u256_fallback), puDst, puSrc1, puSrc2, bEvilArg); \
    46164616            IEM_MC_STORE_YREG_U256_ZX_VLMAX(   IEM_GET_MODRM_REG(pVCpu, bRm), uDst); \
    4617             IEM_MC_ADVANCE_RIP(); \
     4617            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    46184618            IEM_MC_END(); \
    46194619        } \
     
    46384638                                                                 iemAImpl_ ## a_Instr ## _u128_fallback), puDst, puSrc1, puSrc2, bEvilArg); \
    46394639            IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm)); \
    4640             IEM_MC_ADVANCE_RIP(); \
     4640            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    46414641            IEM_MC_END(); \
    46424642        } \
     
    47624762        IEM_MC_COPY_YREG_U64_ZX_VLMAX(IEM_GET_MODRM_RM(pVCpu, bRm),
    47634763                                      IEM_GET_MODRM_REG(pVCpu, bRm));
    4764         IEM_MC_ADVANCE_RIP();
     4764        IEM_MC_ADVANCE_RIP_AND_FINISH();
    47654765        IEM_MC_END();
    47664766    }
     
    47824782        IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    47834783
    4784         IEM_MC_ADVANCE_RIP();
     4784        IEM_MC_ADVANCE_RIP_AND_FINISH();
    47854785        IEM_MC_END();
    47864786    }
     
    48164816            IEM_MC_CALL_VOID_AIMPL_2(IEM_SELECT_HOST_OR_FALLBACK(fAvx2, iemAImpl_vpmovmskb_u256,
    48174817                                                                 iemAImpl_vpmovmskb_u256_fallback), puDst, puSrc);
    4818             IEM_MC_ADVANCE_RIP();
     4818            IEM_MC_ADVANCE_RIP_AND_FINISH();
    48194819            IEM_MC_END();
    48204820        }
     
    48294829            IEM_MC_REF_XREG_U128_CONST(puSrc,   IEM_GET_MODRM_RM(pVCpu, bRm));
    48304830            IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_pmovmskb_u128, puDst, puSrc);
    4831             IEM_MC_ADVANCE_RIP();
     4831            IEM_MC_ADVANCE_RIP_AND_FINISH();
    48324832            IEM_MC_END();
    48334833        }
     
    50435043            IEM_MC_STORE_MEM_U128_ALIGN_SSE(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    50445044
    5045             IEM_MC_ADVANCE_RIP();
     5045            IEM_MC_ADVANCE_RIP_AND_FINISH();
    50465046            IEM_MC_END();
    50475047        }
     
    50635063            IEM_MC_STORE_MEM_U256_ALIGN_AVX(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc);
    50645064
    5065             IEM_MC_ADVANCE_RIP();
     5065            IEM_MC_ADVANCE_RIP_AND_FINISH();
    50665066            IEM_MC_END();
    50675067        }
     
    52055205        IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u128Tmp);
    52065206
    5207         IEM_MC_ADVANCE_RIP();
     5207        IEM_MC_ADVANCE_RIP_AND_FINISH();
    52085208        IEM_MC_END();
    52095209    }
     
    52255225        IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), u256Tmp);
    52265226
    5227         IEM_MC_ADVANCE_RIP();
     5227        IEM_MC_ADVANCE_RIP_AND_FINISH();
    52285228        IEM_MC_END();
    52295229    }
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap2.cpp.h

    r96438 r97356  
    235235            IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vptest_u256, iemAImpl_vptest_u256_fallback),
    236236                                     puSrc1, puSrc2, pEFlags);
    237             IEM_MC_ADVANCE_RIP();
     237            IEM_MC_ADVANCE_RIP_AND_FINISH();
    238238            IEM_MC_END();
    239239        }
     
    251251            IEM_MC_REF_EFLAGS(pEFlags);
    252252            IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_ptest_u128, puSrc1, puSrc2, pEFlags);
    253             IEM_MC_ADVANCE_RIP();
     253            IEM_MC_ADVANCE_RIP_AND_FINISH();
    254254            IEM_MC_END();
    255255        }
     
    281281                                     puSrc1, puSrc2, pEFlags);
    282282
    283             IEM_MC_ADVANCE_RIP();
     283            IEM_MC_ADVANCE_RIP_AND_FINISH();
    284284            IEM_MC_END();
    285285        }
     
    303303            IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_ptest_u128, puSrc1, puSrc2, pEFlags);
    304304
    305             IEM_MC_ADVANCE_RIP();
     305            IEM_MC_ADVANCE_RIP_AND_FINISH();
    306306            IEM_MC_END();
    307307        }
     
    384384                                     puDst, puSrc); \
    385385            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uDst); \
    386             IEM_MC_ADVANCE_RIP(); \
     386            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    387387            IEM_MC_END(); \
    388388        } \
     
    401401                                     puDst, uSrc); \
    402402            IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm)); \
    403             IEM_MC_ADVANCE_RIP(); \
     403            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    404404            IEM_MC_END(); \
    405405        } \
     
    427427                                     puDst, puSrc); \
    428428            IEM_MC_STORE_YREG_U256_ZX_VLMAX(   IEM_GET_MODRM_REG(pVCpu, bRm), uDst); \
    429             IEM_MC_ADVANCE_RIP(); \
     429            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    430430            IEM_MC_END(); \
    431431        } \
     
    446446                                     puDst, uSrc); \
    447447            IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm)); \
    448             IEM_MC_ADVANCE_RIP(); \
     448            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    449449            IEM_MC_END(); \
    450450        } \
     
    561561            IEM_MC_STORE_YREG_U128_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    562562
    563             IEM_MC_ADVANCE_RIP();
     563            IEM_MC_ADVANCE_RIP_AND_FINISH();
    564564            IEM_MC_END();
    565565        }
     
    592592            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uSrc);
    593593
    594             IEM_MC_ADVANCE_RIP();
     594            IEM_MC_ADVANCE_RIP_AND_FINISH();
    595595            IEM_MC_END();
    596596        }
     
    800800                                 puDst, puSrc);
    801801        IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm));
    802         IEM_MC_ADVANCE_RIP();
     802        IEM_MC_ADVANCE_RIP_AND_FINISH();
    803803        IEM_MC_END();
    804804    }
     
    825825        IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    826826
    827         IEM_MC_ADVANCE_RIP();
     827        IEM_MC_ADVANCE_RIP_AND_FINISH();
    828828        IEM_MC_END();
    829829    }
     
    11271127            IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fBmi1, iemAImpl_andn_u64, iemAImpl_andn_u64_fallback),
    11281128                                     pDst, uSrc1, uSrc2, pEFlags);
    1129             IEM_MC_ADVANCE_RIP();
     1129            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11301130            IEM_MC_END();
    11311131        }
     
    11441144                                     pDst, uSrc1, uSrc2, pEFlags);
    11451145            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst);
    1146             IEM_MC_ADVANCE_RIP();
     1146            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11471147            IEM_MC_END();
    11481148        }
     
    11691169            IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fBmi1, iemAImpl_andn_u64, iemAImpl_andn_u64_fallback),
    11701170                                     pDst, uSrc1, uSrc2, pEFlags);
    1171             IEM_MC_ADVANCE_RIP();
     1171            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11721172            IEM_MC_END();
    11731173        }
     
    11891189                                     pDst, uSrc1, uSrc2, pEFlags);
    11901190            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst);
    1191             IEM_MC_ADVANCE_RIP();
     1191            IEM_MC_ADVANCE_RIP_AND_FINISH();
    11921192            IEM_MC_END();
    11931193        }
     
    12281228            IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fBmi1, iemAImpl_ ## a_Instr ## _u64, \
    12291229                                                                 iemAImpl_ ## a_Instr ## _u64_fallback), pDst, uSrc, pEFlags); \
    1230             IEM_MC_ADVANCE_RIP(); \
     1230            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    12311231            IEM_MC_END(); \
    12321232        } \
     
    12431243                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc, pEFlags); \
    12441244            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
    1245             IEM_MC_ADVANCE_RIP(); \
     1245            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    12461246            IEM_MC_END(); \
    12471247        } \
     
    12661266            IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fBmi1, iemAImpl_ ## a_Instr ## _u64, \
    12671267                                                                 iemAImpl_ ## a_Instr ## _u64_fallback), pDst, uSrc, pEFlags); \
    1268             IEM_MC_ADVANCE_RIP(); \
     1268            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    12691269            IEM_MC_END(); \
    12701270        } \
     
    12841284                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc, pEFlags); \
    12851285            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
    1286             IEM_MC_ADVANCE_RIP(); \
     1286            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    12871287            IEM_MC_END(); \
    12881288        } \
     
    13831383                                                                 iemAImpl_ ## a_Instr ## _u64_fallback), \
    13841384                                     pDst, uSrc1, uSrc2, pEFlags); \
    1385             IEM_MC_ADVANCE_RIP(); \
     1385            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    13861386            IEM_MC_END(); \
    13871387        } \
     
    14011401                                     pDst, uSrc1, uSrc2, pEFlags); \
    14021402            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
    1403             IEM_MC_ADVANCE_RIP(); \
     1403            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    14041404            IEM_MC_END(); \
    14051405        } \
     
    14271427                                                                 iemAImpl_ ## a_Instr ## _u64_fallback), \
    14281428                                     pDst, uSrc1, uSrc2, pEFlags); \
    1429             IEM_MC_ADVANCE_RIP(); \
     1429            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    14301430            IEM_MC_END(); \
    14311431        } \
     
    14481448                                     pDst, uSrc1, uSrc2, pEFlags); \
    14491449            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
    1450             IEM_MC_ADVANCE_RIP(); \
     1450            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    14511451            IEM_MC_END(); \
    14521452        } \
     
    14771477            IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(a_fFeatureMember, iemAImpl_ ## a_Instr ## _u64, \
    14781478                                                                 iemAImpl_ ## a_Instr ## _u64_fallback), pDst, uSrc1, uSrc2); \
    1479             IEM_MC_ADVANCE_RIP(); \
     1479            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    14801480            IEM_MC_END(); \
    14811481        } \
     
    14921492                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc1, uSrc2); \
    14931493            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
    1494             IEM_MC_ADVANCE_RIP(); \
     1494            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    14951495            IEM_MC_END(); \
    14961496        } \
     
    15151515            IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(a_fFeatureMember, iemAImpl_ ## a_Instr ## _u64, \
    15161516                                                                 iemAImpl_ ## a_Instr ## _u64_fallback), pDst, uSrc1, uSrc2); \
    1517             IEM_MC_ADVANCE_RIP(); \
     1517            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    15181518            IEM_MC_END(); \
    15191519        } \
     
    15331533                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc1, uSrc2); \
    15341534            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
    1535             IEM_MC_ADVANCE_RIP(); \
     1535            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    15361536            IEM_MC_END(); \
    15371537        } \
     
    15711571                                                                 iemAImpl_ ## a_Instr ## _u64, \
    15721572                                                                 iemAImpl_ ## a_Instr ## _u64_fallback), pDst, uSrc1, uSrc2); \
    1573             IEM_MC_ADVANCE_RIP(); \
     1573            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    15741574            IEM_MC_END(); \
    15751575        } \
     
    15871587                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc1, uSrc2); \
    15881588            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
    1589             IEM_MC_ADVANCE_RIP(); \
     1589            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    15901590            IEM_MC_END(); \
    15911591        } \
     
    16111611                                                                 iemAImpl_ ## a_Instr ## _u64, \
    16121612                                                                 iemAImpl_ ## a_Instr ## _u64_fallback), pDst, uSrc1, uSrc2); \
    1613             IEM_MC_ADVANCE_RIP(); \
     1613            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    16141614            IEM_MC_END(); \
    16151615        } \
     
    16301630                                                                 iemAImpl_ ## a_Instr ## _u32_fallback), pDst, uSrc1, uSrc2); \
    16311631            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst); \
    1632             IEM_MC_ADVANCE_RIP(); \
     1632            IEM_MC_ADVANCE_RIP_AND_FINISH(); \
    16331633            IEM_MC_END(); \
    16341634        } \
     
    16841684            IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fBmi2, iemAImpl_mulx_u64, iemAImpl_mulx_u64_fallback),
    16851685                                     pDst1, pDst2, uSrc1, uSrc2);
    1686             IEM_MC_ADVANCE_RIP();
     1686            IEM_MC_ADVANCE_RIP_AND_FINISH();
    16871687            IEM_MC_END();
    16881688        }
     
    17021702            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst2);
    17031703            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst1);
    1704             IEM_MC_ADVANCE_RIP();
     1704            IEM_MC_ADVANCE_RIP_AND_FINISH();
    17051705            IEM_MC_END();
    17061706        }
     
    17271727            IEM_MC_CALL_VOID_AIMPL_4(IEM_SELECT_HOST_OR_FALLBACK(fBmi2, iemAImpl_mulx_u64, iemAImpl_mulx_u64_fallback),
    17281728                                     pDst1, pDst2, uSrc1, uSrc2);
    1729             IEM_MC_ADVANCE_RIP();
     1729            IEM_MC_ADVANCE_RIP_AND_FINISH();
    17301730            IEM_MC_END();
    17311731        }
     
    17481748            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst2);
    17491749            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst1);
    1750             IEM_MC_ADVANCE_RIP();
     1750            IEM_MC_ADVANCE_RIP_AND_FINISH();
    17511751            IEM_MC_END();
    17521752        }
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap3.cpp.h

    r96652 r97356  
    6969            IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnU256, puDst, puSrc1, puSrc2, bImmArg);
    7070            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    71             IEM_MC_ADVANCE_RIP();
     71            IEM_MC_ADVANCE_RIP_AND_FINISH();
    7272            IEM_MC_END();
    7373        }
     
    8888            IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnU128, puDst, puSrc1, puSrc2, bImmArg);
    8989            IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm));
    90             IEM_MC_ADVANCE_RIP();
     90            IEM_MC_ADVANCE_RIP_AND_FINISH();
    9191            IEM_MC_END();
    9292        }
     
    120120            IEM_MC_STORE_YREG_U256_ZX_VLMAX(   IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    121121
    122             IEM_MC_ADVANCE_RIP();
     122            IEM_MC_ADVANCE_RIP_AND_FINISH();
    123123            IEM_MC_END();
    124124        }
     
    145145            IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    146146
    147             IEM_MC_ADVANCE_RIP();
     147            IEM_MC_ADVANCE_RIP_AND_FINISH();
    148148            IEM_MC_END();
    149149        }
     
    317317                                                             puDst, puSrc1, puSrc2, bImmArg);
    318318        IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm));
    319         IEM_MC_ADVANCE_RIP();
     319        IEM_MC_ADVANCE_RIP_AND_FINISH();
    320320        IEM_MC_END();
    321321    }
     
    346346        IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    347347
    348         IEM_MC_ADVANCE_RIP();
     348        IEM_MC_ADVANCE_RIP_AND_FINISH();
    349349        IEM_MC_END();
    350350    }
     
    399399            IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnU256, puDst, puSrc1, puSrc2, puSrc3);
    400400            IEM_MC_STORE_YREG_U256_ZX_VLMAX(IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    401             IEM_MC_ADVANCE_RIP();
     401            IEM_MC_ADVANCE_RIP_AND_FINISH();
    402402            IEM_MC_END();
    403403        }
     
    420420            IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnU128, puDst, puSrc1, puSrc2, puSrc3);
    421421            IEM_MC_CLEAR_YREG_128_UP(          IEM_GET_MODRM_REG(pVCpu, bRm));
    422             IEM_MC_ADVANCE_RIP();
     422            IEM_MC_ADVANCE_RIP_AND_FINISH();
    423423            IEM_MC_END();
    424424        }
     
    456456            IEM_MC_STORE_YREG_U256_ZX_VLMAX(   IEM_GET_MODRM_REG(pVCpu, bRm), uDst);
    457457
    458             IEM_MC_ADVANCE_RIP();
     458            IEM_MC_ADVANCE_RIP_AND_FINISH();
    459459            IEM_MC_END();
    460460        }
     
    483483            IEM_MC_CLEAR_YREG_128_UP(           IEM_GET_MODRM_REG(pVCpu, bRm));
    484484
    485             IEM_MC_ADVANCE_RIP();
     485            IEM_MC_ADVANCE_RIP_AND_FINISH();
    486486            IEM_MC_END();
    487487        }
     
    663663            IEM_MC_FETCH_GREG_U64(uSrc1, IEM_GET_MODRM_RM(pVCpu, bRm));
    664664            IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_rorx_u64, pDst, uSrc1, uSrc2);
    665             IEM_MC_ADVANCE_RIP();
     665            IEM_MC_ADVANCE_RIP_AND_FINISH();
    666666            IEM_MC_END();
    667667        }
     
    676676            IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_rorx_u32, pDst, uSrc1, uSrc2);
    677677            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst);
    678             IEM_MC_ADVANCE_RIP();
     678            IEM_MC_ADVANCE_RIP_AND_FINISH();
    679679            IEM_MC_END();
    680680        }
     
    698698            IEM_MC_REF_GREG_U64(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    699699            IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_rorx_u64, pDst, uSrc1, uSrc2);
    700             IEM_MC_ADVANCE_RIP();
     700            IEM_MC_ADVANCE_RIP_AND_FINISH();
    701701            IEM_MC_END();
    702702        }
     
    715715            IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_rorx_u32, pDst, uSrc1, uSrc2);
    716716            IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF(pDst);
    717             IEM_MC_ADVANCE_RIP();
     717            IEM_MC_ADVANCE_RIP_AND_FINISH();
    718718            IEM_MC_END();
    719719        }
  • trunk/src/VBox/VMM/include/IEMMc.h

    r97350 r97356  
    5353
    5454
    55 #define IEM_MC_ADVANCE_RIP()                            iemRegUpdateRipAndClearRF(pVCpu)
     55/** Advances RIP and finishes the instruction.
     56 * This may include raising debug exceptions and such.
     57 * @todo Make this be the return point, so we can get unreachable code erros
     58 *       if not the last MC statement. */
     59#define IEM_MC_ADVANCE_RIP_AND_FINISH()                 iemRegUpdateRipAndClearRF(pVCpu)
    5660#define IEM_MC_REL_JMP_S8(a_i8)                         IEM_MC_RETURN_ON_FAILURE(iemRegRipRelativeJumpS8(pVCpu, a_i8))
    5761#define IEM_MC_REL_JMP_S16(a_i16)                       IEM_MC_RETURN_ON_FAILURE(iemRegRipRelativeJumpS16(pVCpu, a_i16))
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r97350 r97356  
    575575    }
    576576
    577 #define IEM_MC_ADVANCE_RIP()                            do { (void)fMcBegin; } while (0)
     577#define IEM_MC_ADVANCE_RIP_AND_FINISH()                 do { (void)fMcBegin; return VINF_SUCCESS; } while (0)
    578578#define IEM_MC_REL_JMP_S8(a_i8)                         do { (void)fMcBegin; CHK_TYPE(int8_t, a_i8); } while (0)
    579579#define IEM_MC_REL_JMP_S16(a_i16)                       do { (void)fMcBegin; CHK_TYPE(int16_t, a_i16); } 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