Changeset 100050 in vbox for trunk/src/VBox
- Timestamp:
- Jun 2, 2023 2:19:37 PM (22 months ago)
- svn:sync-xref-src-repo-rev:
- 157729
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp
r100049 r100050 2572 2572 2573 2573 /** @todo Testcase: Is this correct? */ 2574 bool f64BitCs = false; 2574 2575 if ( DescCs.Legacy.Gen.u1Long 2575 2576 && IEM_IS_LONG_MODE(pVCpu) ) … … 2581 2582 } 2582 2583 u64Base = 0; 2584 f64BitCs = true; 2583 2585 } 2584 2586 else … … 2610 2612 /* commit */ 2611 2613 if (cbPop) 2614 /** @todo This cannot be right. We're using the old CS mode here, and iemRegAddToRspEx checks fExec. */ 2612 2615 iemRegAddToRspEx(pVCpu, &NewRsp, cbPop); 2613 if (!pVCpu->cpum.GstCtx.ss.Attr.n.u1DefBig) 2616 if (pVCpu->cpum.GstCtx.ss.Attr.n.u1DefBig || f64BitCs) 2617 pVCpu->cpum.GstCtx.rsp = NewRsp.u; 2618 else 2614 2619 pVCpu->cpum.GstCtx.sp = (uint16_t)NewRsp.u; 2615 else2616 pVCpu->cpum.GstCtx.rsp = NewRsp.u;2617 2620 if (enmEffOpSize == IEMMODE_16BIT) 2618 2621 pVCpu->cpum.GstCtx.rip = uNewRip & UINT16_MAX; /** @todo Testcase: When exactly does this occur? With call it happens prior to the limit check according to Intel... */
Note:
See TracChangeset
for help on using the changeset viewer.