Changeset 9704 in vbox for trunk/src/VBox
- Timestamp:
- Jun 16, 2008 9:08:21 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/DBGFDisas.cpp
r9700 r9704 75 75 /** Whether the PageMapLock is valid or not. */ 76 76 bool fLocked; 77 /** 64 bits mode or not. */ 78 bool f64Bits; 77 79 } DBGFDISASSTATE, *PDBGFDISASSTATE; 78 80 … … 99 101 pState->pVM = pVM; 100 102 pState->fLocked = false; 103 pState->f64Bits = enmMode >= PGMMODE_AMD64 && pSelInfo->Raw.Gen.u1Long; 101 104 Assert((uintptr_t)GCPtr == GCPtr); 102 105 uint32_t cbInstr; 103 106 int rc = DISCoreOneEx(GCPtr, 104 enmMode >= PGMMODE_AMD64 && pSelInfo->Raw.Gen.u1Long107 pState->f64Bits 105 108 ? CPUMODE_64BIT 106 109 : pSelInfo->Raw.Gen.u1DefBig … … 215 218 216 219 /* check the segemnt limit */ 217 if ( PtrSrc > pState->cbSegLimit)220 if (!pState->f64Bits && PtrSrc > pState->cbSegLimit) 218 221 return VERR_OUT_OF_SELECTOR_BOUNDS; 219 222 220 223 /* calc how much we can read */ 221 224 uint32_t cb = PAGE_SIZE - (GCPtr & PAGE_OFFSET_MASK); 222 RTGCUINTPTR cbSeg = pState->GCPtrSegEnd - GCPtr; 223 if (cb > cbSeg && cbSeg) 224 cb = cbSeg; 225 if (!pState->f64Bits) 226 { 227 RTGCUINTPTR cbSeg = pState->GCPtrSegEnd - GCPtr; 228 if (cb > cbSeg && cbSeg) 229 cb = cbSeg; 230 } 225 231 if (cb > cbRead) 226 232 cb = cbRead;
Note:
See TracChangeset
for help on using the changeset viewer.