Lines Matching refs:rcStrict

1172     VBOXSTRICTRC rcStrict = iemOpcodeFetchMoreBytes(pIemCpu, 1);
1173 if (rcStrict == VINF_SUCCESS)
1181 return rcStrict;
1259 VBOXSTRICTRC rcStrict = iemOpcodeGetNextU8Slow(pIemCpu, &u8);
1260 if (rcStrict == VINF_SUCCESS)
1262 return rcStrict;
1312 VBOXSTRICTRC rcStrict = iemOpcodeGetNextU8Slow(pIemCpu, &u8);
1313 if (rcStrict == VINF_SUCCESS)
1315 return rcStrict;
1365 VBOXSTRICTRC rcStrict = iemOpcodeGetNextU8Slow(pIemCpu, &u8);
1366 if (rcStrict == VINF_SUCCESS)
1368 return rcStrict;
1417 VBOXSTRICTRC rcStrict = iemOpcodeFetchMoreBytes(pIemCpu, 2);
1418 if (rcStrict == VINF_SUCCESS)
1426 return rcStrict;
1473 VBOXSTRICTRC rcStrict = iemOpcodeFetchMoreBytes(pIemCpu, 2);
1474 if (rcStrict == VINF_SUCCESS)
1482 return rcStrict;
1530 VBOXSTRICTRC rcStrict = iemOpcodeFetchMoreBytes(pIemCpu, 2);
1531 if (rcStrict == VINF_SUCCESS)
1539 return rcStrict;
1616 VBOXSTRICTRC rcStrict = iemOpcodeFetchMoreBytes(pIemCpu, 4);
1617 if (rcStrict == VINF_SUCCESS)
1628 return rcStrict;
1678 VBOXSTRICTRC rcStrict = iemOpcodeFetchMoreBytes(pIemCpu, 4);
1679 if (rcStrict == VINF_SUCCESS)
1690 return rcStrict;
1769 VBOXSTRICTRC rcStrict = iemOpcodeFetchMoreBytes(pIemCpu, 4);
1770 if (rcStrict == VINF_SUCCESS)
1781 return rcStrict;
1833 VBOXSTRICTRC rcStrict = iemOpcodeFetchMoreBytes(pIemCpu, 8);
1834 if (rcStrict == VINF_SUCCESS)
1849 return rcStrict;
1931 VBOXSTRICTRC rcStrict = iemMemFetchSelDesc(pIemCpu, pDesc, NewSS, X86_XCPT_TS);
1932 if (rcStrict != VINF_SUCCESS)
1933 return rcStrict;
2047 VBOXSTRICTRC rcStrict;
2068 rcStrict = iemMemFetchSysU32(pIemCpu, &u32Tmp, UINT8_MAX, pCtx->tr.u64Base + off);
2069 if (rcStrict == VINF_SUCCESS)
2092 rcStrict = iemMemFetchSysU64(pIemCpu, &u64Tmp, UINT8_MAX, pCtx->tr.u64Base + off);
2093 if (rcStrict == VINF_SUCCESS)
2105 return rcStrict;
2195 VBOXSTRICTRC rcStrict = iemMemFetchDataU32(pIemCpu, (uint32_t *)&Idte, UINT8_MAX,
2197 if (RT_UNLIKELY(rcStrict != VINF_SUCCESS))
2198 return rcStrict;
2205 rcStrict = iemMemStackPushBeginSpecial(pIemCpu, 6, (void **)&pu16Frame, &uNewRsp);
2206 if (rcStrict != VINF_SUCCESS)
2207 return rcStrict;
2213 rcStrict = iemMemStackPushCommitSpecial(pIemCpu, pu16Frame, uNewRsp);
2214 if (RT_UNLIKELY(rcStrict != VINF_SUCCESS))
2215 return rcStrict;
2341 VBOXSTRICTRC rcStrict = iemMemFetchSelDesc(pIemCpu, &Desc, uSel, X86_XCPT_TS);
2342 if (rcStrict != VINF_SUCCESS)
2345 VBOXSTRICTRC_VAL(rcStrict)));
2346 return rcStrict;
2389 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, uSel);
2390 if (rcStrict != VINF_SUCCESS)
2391 return rcStrict;
2506 VBOXSTRICTRC rcStrict = iemMemMap(pIemCpu, &pvNewTSS, cbNewTSS, UINT8_MAX, GCPtrNewTSS, IEM_ACCESS_SYS_RW);
2507 if (rcStrict != VINF_SUCCESS)
2510 cbNewTSS, uNewTSSLimit, VBOXSTRICTRC_VAL(rcStrict)));
2511 return rcStrict;
2522 rcStrict = iemMemMap(pIemCpu, (void **)&pDescCurTSS, sizeof(*pDescCurTSS), UINT8_MAX,
2524 if (rcStrict != VINF_SUCCESS)
2527 enmTaskSwitch, pCtx->gdtr.pGdt, VBOXSTRICTRC_VAL(rcStrict)));
2528 return rcStrict;
2532 rcStrict = iemMemCommitAndUnmap(pIemCpu, pDescCurTSS, IEM_ACCESS_SYS_RW);
2533 if (rcStrict != VINF_SUCCESS)
2536 enmTaskSwitch, pCtx->gdtr.pGdt, VBOXSTRICTRC_VAL(rcStrict)));
2537 return rcStrict;
2569 rcStrict = iemMemMap(pIemCpu, &pvCurTSS32, cbCurTSS, UINT8_MAX, GCPtrCurTSS + offCurTSS, IEM_ACCESS_SYS_RW);
2570 if (rcStrict != VINF_SUCCESS)
2573 enmTaskSwitch, GCPtrCurTSS, cbCurTSS, VBOXSTRICTRC_VAL(rcStrict)));
2574 return rcStrict;
2596 rcStrict = iemMemCommitAndUnmap(pIemCpu, pvCurTSS32, IEM_ACCESS_SYS_RW);
2597 if (rcStrict != VINF_SUCCESS)
2600 VBOXSTRICTRC_VAL(rcStrict)));
2601 return rcStrict;
2613 rcStrict = iemMemMap(pIemCpu, &pvCurTSS16, cbCurTSS, UINT8_MAX, GCPtrCurTSS + offCurTSS, IEM_ACCESS_SYS_RW);
2614 if (rcStrict != VINF_SUCCESS)
2617 enmTaskSwitch, GCPtrCurTSS, cbCurTSS, VBOXSTRICTRC_VAL(rcStrict)));
2618 return rcStrict;
2638 rcStrict = iemMemCommitAndUnmap(pIemCpu, pvCurTSS16, IEM_ACCESS_SYS_RW);
2639 if (rcStrict != VINF_SUCCESS)
2642 VBOXSTRICTRC_VAL(rcStrict)));
2643 return rcStrict;
2719 rcStrict = iemMemCommitAndUnmap(pIemCpu, pvNewTSS, IEM_ACCESS_SYS_RW);
2720 if (rcStrict != VINF_SUCCESS)
2722 Log(("iemTaskSwitch: Failed to commit new TSS. enmTaskSwitch=%u rc=%Rrc\n", enmTaskSwitch, VBOXSTRICTRC_VAL(rcStrict)));
2723 return rcStrict;
2731 rcStrict = iemMemMap(pIemCpu, (void **)&pNewDescTSS, sizeof(*pNewDescTSS), UINT8_MAX,
2733 if (rcStrict != VINF_SUCCESS)
2736 enmTaskSwitch, pCtx->gdtr.pGdt, VBOXSTRICTRC_VAL(rcStrict)));
2737 return rcStrict;
2746 rcStrict = iemMemCommitAndUnmap(pIemCpu, pNewDescTSS, IEM_ACCESS_SYS_RW);
2747 if (rcStrict != VINF_SUCCESS)
2750 enmTaskSwitch, pCtx->gdtr.pGdt, VBOXSTRICTRC_VAL(rcStrict)));
2751 return rcStrict;
2875 rcStrict = iemMemFetchSelDesc(pIemCpu, &DescNewLdt, uNewLdt, X86_XCPT_TS);
2876 if (rcStrict != VINF_SUCCESS)
2879 uNewLdt, pCtx->gdtr.cbGdt, VBOXSTRICTRC_VAL(rcStrict)));
2880 return rcStrict;
2926 rcStrict = iemMemFetchSelDesc(pIemCpu, &DescSS, uNewSS, X86_XCPT_TS);
2927 if (rcStrict != VINF_SUCCESS)
2930 VBOXSTRICTRC_VAL(rcStrict)));
2931 return rcStrict;
2966 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, uNewSS);
2967 if (rcStrict != VINF_SUCCESS)
2968 return rcStrict;
2987 rcStrict = iemHlpTaskSwitchLoadDataSelectorInProtMode(pIemCpu, &pCtx->es, uNewES);
2988 if (rcStrict != VINF_SUCCESS)
2989 return rcStrict;
2990 rcStrict = iemHlpTaskSwitchLoadDataSelectorInProtMode(pIemCpu, &pCtx->ds, uNewDS);
2991 if (rcStrict != VINF_SUCCESS)
2992 return rcStrict;
2993 rcStrict = iemHlpTaskSwitchLoadDataSelectorInProtMode(pIemCpu, &pCtx->fs, uNewFS);
2994 if (rcStrict != VINF_SUCCESS)
2995 return rcStrict;
2996 rcStrict = iemHlpTaskSwitchLoadDataSelectorInProtMode(pIemCpu, &pCtx->gs, uNewGS);
2997 if (rcStrict != VINF_SUCCESS)
2998 return rcStrict;
3011 rcStrict = iemMemFetchSelDesc(pIemCpu, &DescCS, uNewCS, X86_XCPT_TS);
3012 if (rcStrict != VINF_SUCCESS)
3014 Log(("iemTaskSwitch: failed to fetch CS. uNewCS=%u rc=%Rrc\n", uNewCS, VBOXSTRICTRC_VAL(rcStrict)));
3015 return rcStrict;
3058 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, uNewCS);
3059 if (rcStrict != VINF_SUCCESS)
3060 return rcStrict;
3127 rcStrict = iemMemStackPushU32(pIemCpu, uErr);
3129 rcStrict = iemMemStackPushU16(pIemCpu, uErr);
3130 if (rcStrict != VINF_SUCCESS)
3133 VBOXSTRICTRC_VAL(rcStrict)));
3134 return rcStrict;
3183 VBOXSTRICTRC rcStrict = iemMemFetchSysU64(pIemCpu, &Idte.u, UINT8_MAX,
3185 if (RT_UNLIKELY(rcStrict != VINF_SUCCESS))
3186 return rcStrict;
3276 rcStrict = iemMemFetchSelDescWithErr(pIemCpu, &DescTSS, SelTSS, X86_XCPT_GP, (SelTSS & uSelMask) | uExt);
3277 if (rcStrict != VINF_SUCCESS)
3280 VBOXSTRICTRC_VAL(rcStrict)));
3281 return rcStrict;
3315 rcStrict = iemMemFetchSelDesc(pIemCpu, &DescCS, NewCS, X86_XCPT_GP); /** @todo correct exception? */
3316 if (rcStrict != VINF_SUCCESS)
3318 Log(("RaiseXcptOrIntInProtMode %#x - CS=%#x - rc=%Rrc\n", u8Vector, NewCS, VBOXSTRICTRC_VAL(rcStrict)));
3319 return rcStrict;
3390 rcStrict = iemRaiseLoadStackFromTss32Or16(pIemCpu, pCtx, uNewCpl, &NewSS, &uNewEsp);
3391 if (rcStrict != VINF_SUCCESS)
3392 return rcStrict;
3395 rcStrict = iemMiscValidateNewSS(pIemCpu, pCtx, NewSS, uNewCpl, &DescSS);
3396 if (rcStrict != VINF_SUCCESS)
3397 return rcStrict;
3432 rcStrict = iemMemMap(pIemCpu, &uStackFrame.pv, cbStackFrame, UINT8_MAX,
3434 if (rcStrict != VINF_SUCCESS)
3435 return rcStrict;
3473 rcStrict = iemMemCommitAndUnmap(pIemCpu, pvStackFrame, IEM_ACCESS_STACK_W | IEM_ACCESS_WHAT_SYS);
3474 if (rcStrict != VINF_SUCCESS)
3475 return rcStrict;
3483 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, NewCS);
3484 if (rcStrict != VINF_SUCCESS)
3485 return rcStrict;
3491 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, NewSS);
3492 if (rcStrict != VINF_SUCCESS)
3493 return rcStrict;
3525 rcStrict = iemMemStackPushBeginSpecial(pIemCpu, cbStackFrame, &uStackFrame.pv, &uNewRsp);
3526 if (rcStrict != VINF_SUCCESS)
3527 return rcStrict;
3546 rcStrict = iemMemCommitAndUnmap(pIemCpu, pvStackFrame, IEM_ACCESS_STACK_W); /* don't use the commit here */
3547 if (rcStrict != VINF_SUCCESS)
3548 return rcStrict;
3553 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, NewCS);
3554 if (rcStrict != VINF_SUCCESS)
3555 return rcStrict;
3619 VBOXSTRICTRC rcStrict = iemMemFetchSysU64(pIemCpu, &Idte.au64[0], UINT8_MAX, pCtx->idtr.pIdt + offIdt);
3620 if (RT_LIKELY(rcStrict == VINF_SUCCESS))
3621 rcStrict = iemMemFetchSysU64(pIemCpu, &Idte.au64[1], UINT8_MAX, pCtx->idtr.pIdt + offIdt + 8);
3622 if (RT_UNLIKELY(rcStrict != VINF_SUCCESS))
3623 return rcStrict;
3678 rcStrict = iemMemFetchSelDesc(pIemCpu, &DescCS, NewCS, X86_XCPT_GP);
3679 if (rcStrict != VINF_SUCCESS)
3681 Log(("iemRaiseXcptOrIntInLongMode %#x - CS=%#x - rc=%Rrc\n", u8Vector, NewCS, VBOXSTRICTRC_VAL(rcStrict)));
3682 return rcStrict;
3741 rcStrict = iemRaiseLoadStackFromTss64(pIemCpu, pCtx, uNewCpl, Idte.Gate.u3IST, &uNewRsp);
3742 if (rcStrict != VINF_SUCCESS)
3743 return rcStrict;
3765 rcStrict = iemMemMap(pIemCpu, &uStackFrame.pv, cbStackFrame, UINT8_MAX,
3767 if (rcStrict != VINF_SUCCESS)
3768 return rcStrict;
3778 rcStrict = iemMemCommitAndUnmap(pIemCpu, pvStackFrame, IEM_ACCESS_STACK_W | IEM_ACCESS_WHAT_SYS);
3779 if (rcStrict != VINF_SUCCESS)
3780 return rcStrict;
3788 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, NewCS);
3789 if (rcStrict != VINF_SUCCESS)
3790 return rcStrict;
3957 VBOXSTRICTRC rcStrict;
3959 rcStrict = iemRaiseXcptOrIntInRealMode( pIemCpu, pCtx, cbInstr, u8Vector, fFlags, uErr, uCr2);
3961 rcStrict = iemRaiseXcptOrIntInLongMode( pIemCpu, pCtx, cbInstr, u8Vector, fFlags, uErr, uCr2);
3963 rcStrict = iemRaiseXcptOrIntInProtMode( pIemCpu, pCtx, cbInstr, u8Vector, fFlags, uErr, uCr2);
3972 VBOXSTRICTRC_VAL(rcStrict), u8Vector, pCtx->cs.Sel, pCtx->rip, pCtx->ss.Sel, pCtx->esp, pIemCpu->uCpl));
3973 return rcStrict;
6534 VBOXSTRICTRC rcStrict = iemMemPageTranslateAndCheckAccess(pIemCpu, GCPtrFirst, fAccess, &GCPhysFirst);
6535 if (rcStrict != VINF_SUCCESS)
6536 return rcStrict;
6541 rcStrict = iemMemPageTranslateAndCheckAccess(pIemCpu, GCPtrFirst + (cbMem - 1), fAccess, &GCPhysSecond);
6542 if (rcStrict != VINF_SUCCESS)
6543 return rcStrict;
6806 VBOXSTRICTRC rcStrict = iemMemApplySegment(pIemCpu, fAccess, iSegReg, cbMem, &GCPtrMem);
6807 if (rcStrict != VINF_SUCCESS)
6808 return rcStrict;
6814 rcStrict = iemMemPageTranslateAndCheckAccess(pIemCpu, GCPtrMem, fAccess, &GCPhysFirst);
6815 if (rcStrict != VINF_SUCCESS)
6816 return rcStrict;
6819 rcStrict = iemMemPageMap(pIemCpu, GCPhysFirst, fAccess, &pvMem, &pIemCpu->aMemMappingLocks[iMemMap].Lock);
6820 if (rcStrict != VINF_SUCCESS)
6821 return iemMemBounceBufferMapPhys(pIemCpu, iMemMap, ppvMem, cbMem, GCPhysFirst, fAccess, rcStrict);
7148 VBOXSTRICTRC rcStrict = iemMemMap(pIemCpu,
7158 if (rcStrict == VINF_SUCCESS)
7176 rcStrict = iemMemCommitAndUnmap(pIemCpu, (void *)pu8Src, IEM_ACCESS_DATA_R);
7178 return rcStrict;
7347 VBOXSTRICTRC rcStrict = iemMemMap(pIemCpu,
7357 if (rcStrict == VINF_SUCCESS)
7377 rcStrict = iemMemCommitAndUnmap(pIemCpu, (void *)pu8Src, IEM_ACCESS_DATA_W);
7379 return rcStrict;
7798 VBOXSTRICTRC rcStrict = iemMemMap(pIemCpu, (void **)&pu64Src, sizeof(*pu64Src), X86_SREG_SS, GCPtrTop, IEM_ACCESS_STACK_R);
7799 if (rcStrict == VINF_SUCCESS)
7802 rcStrict = iemMemCommitAndUnmap(pIemCpu, (void *)pu64Src, IEM_ACCESS_STACK_R);
7805 if (rcStrict == VINF_SUCCESS)
7809 return rcStrict;
7853 VBOXSTRICTRC rcStrict = iemMemCommitAndUnmap(pIemCpu, pvMem, IEM_ACCESS_STACK_W);
7854 if (rcStrict == VINF_SUCCESS)
7856 return rcStrict;
7923 VBOXSTRICTRC rcStrict = iemMemCommitAndUnmap(pIemCpu, (void *)pvMem, IEM_ACCESS_STACK_R);
7924 if (rcStrict == VINF_SUCCESS)
7926 return rcStrict;
8094 VBOXSTRICTRC rcStrict = iemMemFetchSysU64(pIemCpu, &pDesc->Legacy.u, UINT8_MAX, GCPtrBase + (uSel & X86_SEL_MASK));
8095 if (rcStrict == VINF_SUCCESS)
8101 rcStrict = iemMemFetchSysU64(pIemCpu, &pDesc->Long.au64[1], UINT8_MAX, GCPtrBase + (uSel | X86_SEL_RPL_LDT) + 1);
8109 return rcStrict;
8173 VBOXSTRICTRC rcStrict;
8179 rcStrict = iemMemMap(pIemCpu, (void **)&pu32, 4, UINT8_MAX, GCPtr, IEM_ACCESS_SYS_RW);
8180 if (rcStrict != VINF_SUCCESS)
8181 return rcStrict;
8187 rcStrict = iemMemMap(pIemCpu, (void **)&pu32, 8, UINT8_MAX, GCPtr, IEM_ACCESS_SYS_RW);
8188 if (rcStrict != VINF_SUCCESS)
8189 return rcStrict;
10532 * @param rcStrict The status from executing an instruction.
10534 DECL_FORCE_INLINE(VBOXSTRICTRC) iemExecStatusCodeFiddling(PIEMCPU pIemCpu, VBOXSTRICTRC rcStrict)
10536 if (rcStrict != VINF_SUCCESS)
10538 if (RT_SUCCESS(rcStrict))
10540 AssertMsg( (rcStrict >= VINF_EM_FIRST && rcStrict <= VINF_EM_LAST)
10541 || rcStrict == VINF_IOM_R3_IOPORT_READ
10542 || rcStrict == VINF_IOM_R3_IOPORT_WRITE
10543 || rcStrict == VINF_IOM_R3_MMIO_READ
10544 || rcStrict == VINF_IOM_R3_MMIO_READ_WRITE
10545 || rcStrict == VINF_IOM_R3_MMIO_WRITE
10546 || rcStrict == VINF_CPUM_R3_MSR_READ
10547 || rcStrict == VINF_CPUM_R3_MSR_WRITE
10548 , ("rcStrict=%Rrc\n", VBOXSTRICTRC_VAL(rcStrict)));
10554 || rcPassUp < VBOXSTRICTRC_VAL(rcStrict))
10556 Log(("IEM: rcPassUp=%Rrc! rcStrict=%Rrc\n", rcPassUp, VBOXSTRICTRC_VAL(rcStrict)));
10558 rcStrict = rcPassUp;
10562 Log(("IEM: rcPassUp=%Rrc rcStrict=%Rrc!\n", rcPassUp, VBOXSTRICTRC_VAL(rcStrict)));
10566 else if (rcStrict == VERR_IEM_ASPECT_NOT_IMPLEMENTED)
10568 else if (rcStrict == VERR_IEM_INSTR_NOT_IMPLEMENTED)
10571 else if (rcStrict == VERR_IEM_RESTART_INSTRUCTION)
10572 rcStrict = VINF_SUCCESS;
10580 rcStrict = pIemCpu->rcPassUp;
10583 return rcStrict;
10600 VBOXSTRICTRC rcStrict = FNIEMOP_CALL(g_apfnOneByteMap[b]);
10601 if (rcStrict == VINF_SUCCESS)
10606 // AssertMsg(pIemCpu->offOpcode == cbInstr || rcStrict != VINF_SUCCESS, ("%u %u\n", pIemCpu->offOpcode, cbInstr));
10612 && rcStrict == VINF_SUCCESS
10616 rcStrict = iemInitDecoderAndPrefetchOpcodes(pIemCpu, pIemCpu->fBypassHandlers);
10617 if (rcStrict == VINF_SUCCESS)
10623 rcStrict = FNIEMOP_CALL(g_apfnOneByteMap[b]);
10624 if (rcStrict == VINF_SUCCESS)
10635 rcStrict = iemExecStatusCodeFiddling(pIemCpu, rcStrict);
10645 return rcStrict;
10653 * @returns rcStrict, maybe modified.
10657 * @param rcStrict The status code returne by the interpreter.
10659 DECLINLINE(VBOXSTRICTRC) iemRCRawMaybeReenter(PIEMCPU pIemCpu, PVMCPU pVCpu, PCPUMCTX pCtx, VBOXSTRICTRC rcStrict)
10663 return rcStrict;
10689 VBOXSTRICTRC rcStrict = iemInitDecoderAndPrefetchOpcodes(pIemCpu, false);
10690 if (rcStrict == VINF_SUCCESS)
10691 rcStrict = iemExecOneInner(pVCpu, pIemCpu, true);
10700 rcStrict = iemRCRawMaybeReenter(pIemCpu, pVCpu, pIemCpu->CTX_SUFF(pCtx), rcStrict);
10702 if (rcStrict != VINF_SUCCESS)
10703 LogFlow(("IEMExecOne: cs:rip=%04x:%08RX64 ss:rsp=%04x:%08RX64 EFL=%06x - rcStrict=%Rrc\n",
10704 pCtx->cs.Sel, pCtx->rip, pCtx->ss.Sel, pCtx->rsp, pCtx->eflags.u, VBOXSTRICTRC_VAL(rcStrict)));
10705 return rcStrict;
10716 VBOXSTRICTRC rcStrict = iemInitDecoderAndPrefetchOpcodes(pIemCpu, false);
10717 if (rcStrict == VINF_SUCCESS)
10719 rcStrict = iemExecOneInner(pVCpu, pIemCpu, true);
10725 rcStrict = iemRCRawMaybeReenter(pIemCpu, pVCpu, pCtx, rcStrict);
10727 return rcStrict;
10738 VBOXSTRICTRC rcStrict;
10745 rcStrict = VINF_SUCCESS;
10748 rcStrict = iemInitDecoderAndPrefetchOpcodes(pIemCpu, false);
10749 if (rcStrict == VINF_SUCCESS)
10751 rcStrict = iemExecOneInner(pVCpu, pIemCpu, true);
10755 rcStrict = iemRCRawMaybeReenter(pIemCpu, pVCpu, pCtx, rcStrict);
10757 return rcStrict;
10768 VBOXSTRICTRC rcStrict = iemInitDecoderAndPrefetchOpcodes(pIemCpu, true);
10769 if (rcStrict == VINF_SUCCESS)
10771 rcStrict = iemExecOneInner(pVCpu, pIemCpu, false);
10777 rcStrict = iemRCRawMaybeReenter(pIemCpu, pVCpu, pCtx, rcStrict);
10779 return rcStrict;
10790 VBOXSTRICTRC rcStrict;
10797 rcStrict = VINF_SUCCESS;
10800 rcStrict = iemInitDecoderAndPrefetchOpcodes(pIemCpu, true);
10801 if (rcStrict == VINF_SUCCESS)
10802 rcStrict = iemExecOneInner(pVCpu, pIemCpu, false);
10805 rcStrict = iemRCRawMaybeReenter(pIemCpu, pVCpu, pCtx, rcStrict);
10807 return rcStrict;
10851 VBOXSTRICTRC rcStrict = iemInitDecoderAndPrefetchOpcodes(pIemCpu, false);
10852 if (rcStrict == VINF_SUCCESS)
10853 rcStrict = iemExecOneInner(pVCpu, pIemCpu, true);
10866 rcStrict = iemRCRawMaybeReenter(pIemCpu, pVCpu, pIemCpu->CTX_SUFF(pCtx), rcStrict);
10868 if (rcStrict != VINF_SUCCESS)
10869 LogFlow(("IEMExecLots: cs:rip=%04x:%08RX64 ss:rsp=%04x:%08RX64 EFL=%06x - rcStrict=%Rrc\n",
10870 pCtx->cs.Sel, pCtx->rip, pCtx->ss.Sel, pCtx->rsp, pCtx->eflags.u, VBOXSTRICTRC_VAL(rcStrict)));
10871 return rcStrict;
10964 VBOXSTRICTRC rcStrict = IEMInjectTrap(pVCpu, u8TrapNo, enmType, uErrCode, uCr2, cbInstr);
10968 if ( rcStrict == VINF_SUCCESS
10969 || rcStrict == VINF_IEM_RAISED_XCPT)
10973 return rcStrict;
11007 VBOXSTRICTRC rcStrict = iemCImpl_iret(pIemCpu, 1, pIemCpu->enmDefOpSize);
11008 if (rcStrict == VINF_SUCCESS)
11011 LogFlow(("IEMExecInstr_iret: cs:rip=%04x:%08RX64 ss:rsp=%04x:%08RX64 EFL=%06x - rcStrict=%Rrc\n",
11012 pCtx->cs, pCtx->rip, pCtx->ss, pCtx->rsp, pCtx->eflags.u, VBOXSTRICTRC_VAL(rcStrict)));
11013 return rcStrict;
11062 VBOXSTRICTRC rcStrict;
11070 case 1: rcStrict = iemCImpl_rep_outs_op8_addr16(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11071 case 2: rcStrict = iemCImpl_rep_outs_op16_addr16(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11072 case 4: rcStrict = iemCImpl_rep_outs_op32_addr16(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11081 case 1: rcStrict = iemCImpl_rep_outs_op8_addr32(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11082 case 2: rcStrict = iemCImpl_rep_outs_op16_addr32(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11083 case 4: rcStrict = iemCImpl_rep_outs_op32_addr32(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11092 case 1: rcStrict = iemCImpl_rep_outs_op8_addr64(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11093 case 2: rcStrict = iemCImpl_rep_outs_op16_addr64(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11094 case 4: rcStrict = iemCImpl_rep_outs_op32_addr64(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11111 case 1: rcStrict = iemCImpl_outs_op8_addr16(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11112 case 2: rcStrict = iemCImpl_outs_op16_addr16(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11113 case 4: rcStrict = iemCImpl_outs_op32_addr16(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11122 case 1: rcStrict = iemCImpl_outs_op8_addr32(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11123 case 2: rcStrict = iemCImpl_outs_op16_addr32(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11124 case 4: rcStrict = iemCImpl_outs_op32_addr32(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11133 case 1: rcStrict = iemCImpl_outs_op8_addr64(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11134 case 2: rcStrict = iemCImpl_outs_op16_addr64(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11135 case 4: rcStrict = iemCImpl_outs_op32_addr64(pIemCpu, cbInstr, iEffSeg, true /*fIoChecked*/); break;
11146 return iemExecStatusCodeFiddling(pIemCpu, rcStrict);
11179 VBOXSTRICTRC rcStrict;
11187 case 1: rcStrict = iemCImpl_rep_ins_op8_addr16(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11188 case 2: rcStrict = iemCImpl_rep_ins_op16_addr16(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11189 case 4: rcStrict = iemCImpl_rep_ins_op32_addr16(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11198 case 1: rcStrict = iemCImpl_rep_ins_op8_addr32(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11199 case 2: rcStrict = iemCImpl_rep_ins_op16_addr32(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11200 case 4: rcStrict = iemCImpl_rep_ins_op32_addr32(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11209 case 1: rcStrict = iemCImpl_rep_ins_op8_addr64(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11210 case 2: rcStrict = iemCImpl_rep_ins_op16_addr64(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11211 case 4: rcStrict = iemCImpl_rep_ins_op32_addr64(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11228 case 1: rcStrict = iemCImpl_ins_op8_addr16(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11229 case 2: rcStrict = iemCImpl_ins_op16_addr16(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11230 case 4: rcStrict = iemCImpl_ins_op32_addr16(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11239 case 1: rcStrict = iemCImpl_ins_op8_addr32(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11240 case 2: rcStrict = iemCImpl_ins_op16_addr32(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11241 case 4: rcStrict = iemCImpl_ins_op32_addr32(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11250 case 1: rcStrict = iemCImpl_ins_op8_addr64(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11251 case 2: rcStrict = iemCImpl_ins_op16_addr64(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11252 case 4: rcStrict = iemCImpl_ins_op32_addr64(pIemCpu, cbInstr, true /*fIoChecked*/); break;
11263 return iemExecStatusCodeFiddling(pIemCpu, rcStrict);
11287 VBOXSTRICTRC rcStrict = IEM_CIMPL_CALL_2(iemCImpl_mov_Cd_Rd, iCrReg, iGReg);
11288 return iemExecStatusCodeFiddling(pIemCpu, rcStrict);
11311 VBOXSTRICTRC rcStrict = IEM_CIMPL_CALL_2(iemCImpl_mov_Rd_Cd, iGReg, iCrReg);
11312 return iemExecStatusCodeFiddling(pIemCpu, rcStrict);
11331 VBOXSTRICTRC rcStrict = IEM_CIMPL_CALL_0(iemCImpl_clts);
11332 return iemExecStatusCodeFiddling(pIemCpu, rcStrict);
11352 VBOXSTRICTRC rcStrict = IEM_CIMPL_CALL_1(iemCImpl_lmsw, uValue);
11353 return iemExecStatusCodeFiddling(pIemCpu, rcStrict);
11375 VBOXSTRICTRC rcStrict = IEM_CIMPL_CALL_0(iemCImpl_xsetbv);
11376 return iemExecStatusCodeFiddling(pIemCpu, rcStrict);