Changeset 53108 in vbox for trunk/src/VBox
- Timestamp:
- Oct 21, 2014 4:26:54 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h
r53107 r53108 1209 1209 if (!IEM_IS_LONG_MODE(pIemCpu)) 1210 1210 { 1211 if (p Desc->Legacy.Gate.u4Type == X86_SEL_TYPE_SYS_386_CALL_GATE)1211 if (pCtx->tr.Attr.n.u4Type == X86_SEL_TYPE_SYS_386_TSS_BUSY) 1212 1212 { 1213 1213 offNewStack = RT_OFFSETOF(X86TSS32, esp0) + uNewCSDpl * 8; … … 1216 1216 else 1217 1217 { 1218 Assert(p Desc->Legacy.Gate.u4Type == X86_SEL_TYPE_SYS_286_CALL_GATE);1218 Assert(pCtx->tr.Attr.n.u4Type == X86_SEL_TYPE_SYS_286_TSS_BUSY); 1219 1219 offNewStack = RT_OFFSETOF(X86TSS16, sp0) + uNewCSDpl * 4; 1220 1220 cbNewStack = RT_SIZEOFMEMB(X86TSS16, sp0) + RT_SIZEOFMEMB(X86TSS16, ss0); … … 1223 1223 else 1224 1224 { 1225 Assert(p Desc->Legacy.Gate.u4Type == AMD64_SEL_TYPE_SYS_CALL_GATE);1225 Assert(pCtx->tr.Attr.n.u4Type == AMD64_SEL_TYPE_SYS_TSS_BUSY); 1226 1226 offNewStack = RT_OFFSETOF(X86TSS64, rsp0) + uNewCSDpl * RT_SIZEOFMEMB(X86TSS64, rsp0); 1227 1227 cbNewStack = RT_SIZEOFMEMB(X86TSS64, rsp0); … … 1245 1245 if (!IEM_IS_LONG_MODE(pIemCpu)) 1246 1246 { 1247 if (p Desc->Legacy.Gate.u4Type == X86_SEL_TYPE_SYS_386_CALL_GATE)1247 if (pCtx->tr.Attr.n.u4Type == X86_SEL_TYPE_SYS_386_TSS_BUSY) 1248 1248 { 1249 1249 uNewRsp = uPtrTSS.pu32[0]; … … 1252 1252 else 1253 1253 { 1254 Assert(p Desc->Legacy.Gate.u4Type == X86_SEL_TYPE_SYS_286_CALL_GATE);1254 Assert(pCtx->tr.Attr.n.u4Type == X86_SEL_TYPE_SYS_286_TSS_BUSY); 1255 1255 uNewRsp = uPtrTSS.pu16[0]; 1256 1256 uNewSS = uPtrTSS.pu16[1]; … … 1259 1259 else 1260 1260 { 1261 Assert(p Desc->Legacy.Gate.u4Type == AMD64_SEL_TYPE_SYS_CALL_GATE);1261 Assert(pCtx->tr.Attr.n.u4Type == AMD64_SEL_TYPE_SYS_TSS_BUSY); 1262 1262 /* SS will be a NULL selector, but that's valid. */ 1263 1263 uNewRsp = uPtrTSS.pu64[0];
Note:
See TracChangeset
for help on using the changeset viewer.