Lines Matching defs:uNewCs

2056     uint16_t        uNewCs;
2070 uNewCs = uPtrFrame.pu16[1];
2075 uNewCs = uPtrFrame.pu16[2];
2080 uNewCs = uPtrFrame.pu16[4];
2103 pCtx->cs.Sel = uNewCs;
2104 pCtx->cs.ValidSel = uNewCs;
2106 pCtx->cs.u64Base = (uint32_t)uNewCs << 4;
2117 if (!(uNewCs & X86_SEL_MASK_OFF_RPL))
2119 Log(("retf %04x:%08RX64 -> invalid selector, #GP(0)\n", uNewCs, uNewRip));
2125 rcStrict = iemMemFetchSelDesc(pIemCpu, &DescCs, uNewCs, X86_XCPT_GP);
2134 uNewCs, uNewRip, DescCs.Legacy.Gen.u1DescType, DescCs.Legacy.Gen.u4Type));
2135 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
2143 Log(("retf %04x:%08RX64 -> both L & D set.\n", uNewCs, uNewRip));
2144 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
2148 if ((uNewCs & X86_SEL_RPL) < pIemCpu->uCpl)
2150 Log(("retf %04x:%08RX64 -> RPL < CPL(%d).\n", uNewCs, uNewRip, pIemCpu->uCpl));
2151 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
2156 if ((uNewCs & X86_SEL_RPL) < DescCs.Legacy.Gen.u2Dpl)
2159 uNewCs, uNewRip, DescCs.Legacy.Gen.u2Dpl, (uNewCs & X86_SEL_RPL)));
2160 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
2165 if ((uNewCs & X86_SEL_RPL) != DescCs.Legacy.Gen.u2Dpl)
2168 uNewCs, uNewRip, DescCs.Legacy.Gen.u2Dpl, (uNewCs & X86_SEL_RPL)));
2169 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
2176 Log(("retf %04x:%08RX64 -> segment not present\n", uNewCs, uNewRip));
2177 return iemRaiseSelectorNotPresentBySelector(pIemCpu, uNewCs);
2183 if ((uNewCs & X86_SEL_RPL) != pIemCpu->uCpl)
2220 uNewCs, uNewRip, uNewOuterSs, uNewOuterRsp));
2235 if ((uNewCs & X86_SEL_RPL) != (uNewOuterSs & X86_SEL_RPL))
2237 Log(("retf %04x:%08RX64 %04x:%08RX64 - SS.RPL != CS.RPL -> #GP(SS)\n", uNewCs, uNewRip, uNewOuterSs, uNewOuterRsp));
2247 uNewCs, uNewRip, uNewOuterSs, uNewOuterRsp, DescSs.Legacy.Gen.u1DescType, DescSs.Legacy.Gen.u4Type));
2257 uNewCs, uNewRip, uNewOuterSs, uNewOuterRsp, DescSs.Legacy.Gen.u1DescType, DescSs.Legacy.Gen.u4Type));
2262 if (DescSs.Legacy.Gen.u2Dpl != (uNewCs & X86_SEL_RPL))
2265 uNewCs, uNewRip, uNewOuterSs, uNewOuterRsp, DescSs.Legacy.Gen.u2Dpl, uNewCs & X86_SEL_RPL));
2272 Log(("retf %04x:%08RX64 %04x:%08RX64 - SS not present -> #NP(SS).\n", uNewCs, uNewRip, uNewOuterSs, uNewOuterRsp));
2273 return iemRaiseSelectorNotPresentBySelector(pIemCpu, uNewCs);
2287 Log(("retf %04x:%08RX64 %04x:%08RX64 - not canonical -> #GP.\n", uNewCs, uNewRip, uNewOuterSs, uNewOuterRsp));
2297 uNewCs, uNewRip, uNewOuterSs, uNewOuterRsp, cbLimitCs));
2299 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
2312 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, uNewCs);
2336 pCtx->cs.Sel = uNewCs;
2337 pCtx->cs.ValidSel = uNewCs;
2353 pIemCpu->uCpl = (uNewCs & X86_SEL_RPL);
2354 iemHlpAdjustSelectorForNewCpl(pIemCpu, uNewCs & X86_SEL_RPL, &pCtx->ds);
2355 iemHlpAdjustSelectorForNewCpl(pIemCpu, uNewCs & X86_SEL_RPL, &pCtx->es);
2356 iemHlpAdjustSelectorForNewCpl(pIemCpu, uNewCs & X86_SEL_RPL, &pCtx->fs);
2357 iemHlpAdjustSelectorForNewCpl(pIemCpu, uNewCs & X86_SEL_RPL, &pCtx->gs);
2381 Log(("retf %04x:%08RX64 - not canonical -> #GP\n", uNewCs, uNewRip));
2390 Log(("retf %04x:%08RX64 -> out of bounds (%#x)\n", uNewCs, uNewRip, cbLimitCs));
2392 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
2405 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, uNewCs);
2420 pCtx->cs.Sel = uNewCs;
2421 pCtx->cs.ValidSel = uNewCs;
2722 uint16_t uNewCs;
2735 uNewCs = (uint16_t)uFrame.pu32[1];
2749 uNewCs = uFrame.pu16[1];
2801 pCtx->cs.Sel, pCtx->eip, uNewCs, uNewEip, uNewFlags, uNewRsp);
2805 pCtx->cs.Sel = uNewCs;
2806 pCtx->cs.ValidSel = uNewCs;
2808 pCtx->cs.u64Base = (uint32_t)uNewCs << 4;
2841 * @param uNewCs The new CS.
2847 IEM_CIMPL_DEF_5(iemCImpl_iret_prot_v8086, PCPUMCTX, pCtx, uint32_t, uNewEip, uint16_t, uNewCs,
2875 pCtx->cs.Sel, pCtx->eip, uNewCs, uNewEip, uNewFlags, uNewSs, uNewEsp);
2879 iemCImplCommonV8086LoadSeg(&pCtx->cs, uNewCs);
2977 uint16_t uNewCs;
2987 uNewCs = (uint16_t)uFrame.pu32[1];
2996 uNewCs = uFrame.pu16[1];
3010 return IEM_CIMPL_CALL_5(iemCImpl_iret_prot_v8086, pCtx, uNewEip, uNewCs, uNewFlags, uNewRsp);
3017 if (!(uNewCs & X86_SEL_MASK_OFF_RPL))
3019 Log(("iret %04x:%08x -> invalid CS selector, #GP(0)\n", uNewCs, uNewEip));
3024 rcStrict = iemMemFetchSelDesc(pIemCpu, &DescCS, uNewCs, X86_XCPT_GP);
3027 Log(("iret %04x:%08x - rcStrict=%Rrc when fetching CS\n", uNewCs, uNewEip, VBOXSTRICTRC_VAL(rcStrict)));
3034 Log(("iret %04x:%08x - CS is system segment (%#x) -> #GP\n", uNewCs, uNewEip, DescCS.Legacy.Gen.u4Type));
3035 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
3039 Log(("iret %04x:%08x - not code segment (%#x) -> #GP\n", uNewCs, uNewEip, DescCS.Legacy.Gen.u4Type));
3040 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
3048 if ((uNewCs & X86_SEL_RPL) == 1)
3052 || pCtx->cs.Sel == (uNewCs & X86_SEL_MASK_OFF_RPL)) )
3054 Log(("iret: Ring-0 compression fix: uNewCS=%#x -> %#x\n", uNewCs, uNewCs & X86_SEL_MASK_OFF_RPL));
3055 uNewCs &= X86_SEL_MASK_OFF_RPL;
3059 Log(("iret: uNewCs=%#x genuine return to ring-1.\n", uNewCs));
3062 else if ( (uNewCs & X86_SEL_RPL) == 2
3066 Log(("iret: Ring-1 compression fix: uNewCS=%#x -> %#x\n", uNewCs, (uNewCs & X86_SEL_MASK_OFF_RPL) | 1));
3067 uNewCs = (uNewCs & X86_SEL_MASK_OFF_RPL) | 2;
3074 if ((uNewCs & X86_SEL_RPL) < pIemCpu->uCpl)
3076 Log(("iret %04x:%08x - RPL < CPL (%d) -> #GP\n", uNewCs, uNewEip, pIemCpu->uCpl));
3077 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
3080 && (uNewCs & X86_SEL_RPL) < DescCS.Legacy.Gen.u2Dpl)
3082 Log(("iret %04x:%08x - RPL < DPL (%d) -> #GP\n", uNewCs, uNewEip, DescCS.Legacy.Gen.u2Dpl));
3083 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
3089 Log(("iret %04x:%08x - CS not present -> #NP\n", uNewCs, uNewEip));
3090 return iemRaiseSelectorNotPresentBySelector(pIemCpu, uNewCs);
3098 if ((uNewCs & X86_SEL_RPL) != pIemCpu->uCpl)
3125 Log(("iret %04x:%08x/%04x:%08x -> invalid SS selector, #GP(0)\n", uNewCs, uNewEip, uNewSS, uNewESP));
3134 uNewCs, uNewEip, uNewSS, uNewESP, VBOXSTRICTRC_VAL(rcStrict)));
3139 if ((uNewSS & X86_SEL_RPL) != (uNewCs & X86_SEL_RPL))
3141 Log(("iret %04x:%08x/%04x:%08x -> SS.RPL != CS.RPL -> #GP\n", uNewCs, uNewEip, uNewSS, uNewESP));
3144 if (DescSS.Legacy.Gen.u2Dpl != (uNewCs & X86_SEL_RPL))
3147 uNewCs, uNewEip, uNewSS, uNewESP, DescSS.Legacy.Gen.u2Dpl));
3155 uNewCs, uNewEip, uNewSS, uNewESP, DescSS.Legacy.Gen.u4Type));
3161 uNewCs, uNewEip, uNewSS, uNewESP, DescSS.Legacy.Gen.u4Type));
3168 Log(("iret %04x:%08x/%04x:%08x -> SS not present -> #SS\n", uNewCs, uNewEip, uNewSS, uNewESP));
3178 uNewCs, uNewEip, uNewSS, uNewESP, cbLimitCS));
3180 return iemRaiseSelectorBoundsBySelector(pIemCpu, uNewCs);
3189 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, uNewCs);
3215 pIemCpu->uCpl, uNewCs & X86_SEL_RPL, pCtx->cs.Sel, pCtx->eip,
3216 uNewCs, uNewEip, uNewFlags, uNewSS, uNewESP);
3221 pCtx->cs.Sel = uNewCs;
3222 pCtx->cs.ValidSel = uNewCs;
3238 pIemCpu->uCpl = uNewCs & X86_SEL_RPL;
3239 iemHlpAdjustSelectorForNewCpl(pIemCpu, uNewCs & X86_SEL_RPL, &pCtx->ds);
3240 iemHlpAdjustSelectorForNewCpl(pIemCpu, uNewCs & X86_SEL_RPL, &pCtx->es);
3241 iemHlpAdjustSelectorForNewCpl(pIemCpu, uNewCs & X86_SEL_RPL, &pCtx->fs);
3242 iemHlpAdjustSelectorForNewCpl(pIemCpu, uNewCs & X86_SEL_RPL, &pCtx->gs);
3255 Log(("iret %04x:%08x - EIP is out of bounds (%#x) -> #GP(0)\n", uNewCs, uNewEip, cbLimitCS));
3257 return iemRaiseSelectorBoundsBySelector(pIemCpu, uNewCs);
3265 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, uNewCs);
3286 uNewCs, uNewEip, uNewFlags, pCtx->ss.Sel, uNewRsp);
3291 pCtx->cs.Sel = uNewCs;
3292 pCtx->cs.ValidSel = uNewCs;
3332 uint16_t uNewCs;
3342 uNewCs = (uint16_t)uFrame.pu64[1];
3353 uNewCs = (uint16_t)uFrame.pu32[1];
3365 uNewCs = uFrame.pu16[1];
3374 uNewCs, uNewRip, uNewFlags, uNewSs, uNewRsp));
3380 if (!(uNewCs & X86_SEL_MASK_OFF_RPL))
3382 Log(("iret %04x:%016RX64/%04x:%016RX64 -> invalid CS selector, #GP(0)\n", uNewCs, uNewRip, uNewSs, uNewRsp));
3387 rcStrict = iemMemFetchSelDesc(pIemCpu, &DescCS, uNewCs, X86_XCPT_GP);
3391 uNewCs, uNewRip, uNewSs, uNewRsp, VBOXSTRICTRC_VAL(rcStrict)));
3400 uNewCs, uNewRip, uNewSs, uNewRsp, DescCS.Legacy.Gen.u1DescType, DescCS.Legacy.Gen.u4Type));
3401 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
3405 uint8_t const uNewCpl = uNewCs & X86_SEL_RPL;
3406 if ((uNewCs & X86_SEL_RPL) < pIemCpu->uCpl)
3408 Log(("iret %04x:%016RX64/%04x:%016RX64 - RPL < CPL (%d) -> #GP\n", uNewCs, uNewRip, uNewSs, uNewRsp, pIemCpu->uCpl));
3409 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
3412 && (uNewCs & X86_SEL_RPL) < DescCS.Legacy.Gen.u2Dpl)
3415 uNewCs, uNewRip, uNewSs, uNewRsp, DescCS.Legacy.Gen.u2Dpl));
3416 return iemRaiseGeneralProtectionFaultBySelector(pIemCpu, uNewCs);
3422 Log(("iret %04x:%016RX64/%04x:%016RX64 - CS not present -> #NP\n", uNewCs, uNewRip, uNewSs, uNewRsp));
3423 return iemRaiseSelectorNotPresentBySelector(pIemCpu, uNewCs);
3436 Log(("iret %04x:%016RX64/%04x:%016RX64 -> invalid SS selector, #GP(0)\n", uNewCs, uNewRip, uNewSs, uNewRsp));
3447 uNewCs, uNewRip, uNewSs, uNewRsp, VBOXSTRICTRC_VAL(rcStrict)));
3453 if ((uNewSs & X86_SEL_RPL) != (uNewCs & X86_SEL_RPL))
3455 Log(("iret %04x:%016RX64/%04x:%016RX64 -> SS.RPL != CS.RPL -> #GP\n", uNewCs, uNewRip, uNewSs, uNewRsp));
3464 if (DescSS.Legacy.Gen.u2Dpl != (uNewCs & X86_SEL_RPL))
3467 uNewCs, uNewRip, uNewSs, uNewRsp, DescSS.Legacy.Gen.u2Dpl));
3475 uNewCs, uNewRip, uNewSs, uNewRsp, DescSS.Legacy.Gen.u4Type));
3481 uNewCs, uNewRip, uNewSs, uNewRsp, DescSS.Legacy.Gen.u4Type));
3488 Log(("iret %04x:%016RX64/%04x:%016RX64 -> SS not present -> #SS\n", uNewCs, uNewRip, uNewSs, uNewRsp));
3500 uNewCs, uNewRip, uNewSs, uNewRsp));
3501 return iemRaiseSelectorBoundsBySelector(pIemCpu, uNewCs);
3509 uNewCs, uNewRip, uNewSs, uNewRsp, cbLimitCS));
3511 return iemRaiseSelectorBoundsBySelector(pIemCpu, uNewCs);
3522 rcStrict = iemMemMarkSelDescAccessed(pIemCpu, uNewCs);
3548 pIemCpu->uCpl, uNewCpl, pCtx->rip, uNewCs, uNewRip, uNewFlags, uNewSs, uNewRsp);
3553 pCtx->cs.Sel = uNewCs;
3554 pCtx->cs.ValidSel = uNewCs;
3654 uint16_t uNewCs = (pCtx->msrSTAR >> MSR_K6_STAR_SYSCALL_CS_SS_SHIFT) & X86_SEL_MASK_OFF_RPL;
3655 uint16_t uNewSs = uNewCs + 8;
3656 if (uNewCs == 0 || uNewSs == 0)
3678 Log(("syscall: %04x:%016RX64 [efl=%#llx] -> %04x:%016RX64\n", pCtx->cs, pCtx->rip, pCtx->rflags.u, uNewCs, uNewRip));
3696 pCtx->cs, pCtx->eip, pCtx->eflags.u, uNewCs, (uint32_t)(pCtx->msrSTAR & MSR_K6_STAR_SYSCALL_EIP_MASK)));
3704 pCtx->cs.Sel = uNewCs;
3705 pCtx->cs.ValidSel = uNewCs;
3757 uint16_t uNewCs = (pCtx->msrSTAR >> MSR_K6_STAR_SYSRET_CS_SS_SHIFT) & X86_SEL_MASK_OFF_RPL;
3758 uint16_t uNewSs = uNewCs + 8;
3760 uNewCs += 16;
3761 if (uNewCs == 0 || uNewSs == 0)
3775 pCtx->cs, pCtx->rip, pCtx->rflags.u, uNewCs, pCtx->rcx, pCtx->r11));
3785 pCtx->cs, pCtx->rip, pCtx->rflags.u, uNewCs, pCtx->ecx, pCtx->r11));
3797 Log(("sysret: %04x:%08RX32 [efl=%#x] -> %04x:%08RX32\n", pCtx->cs, pCtx->eip, pCtx->eflags.u, uNewCs, pCtx->ecx));
3803 pCtx->cs.Sel = uNewCs | 3;
3804 pCtx->cs.ValidSel = uNewCs | 3;