Changeset 61845 in vbox
- Timestamp:
- Jun 23, 2016 11:27:38 AM (8 years ago)
- File:
-
- 1 edited
-
trunk/src/VBox/Devices/PC/DevIOAPIC_New.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevIOAPIC_New.cpp
r61842 r61845 470 470 if (!(uIndex & 1)) 471 471 { 472 uint32_t const u32RteNewLo = uValue & RT_LO_U32(IOAPIC_RTE_VALID_WRITE_MASK); 473 uint64_t const u64RteHi = u64Rte & UINT64_C(0xffffffff00000000); 474 pThis->au64RedirTable[idxRte] = u64RteHi | u32RteNewLo; 472 uint32_t const u32RtePreserveLo = RT_LO_U32(u64Rte) & ~RT_LO_U32(IOAPIC_RTE_VALID_WRITE_MASK); 473 uint32_t const u32RteNewLo = (uValue & RT_LO_U32(IOAPIC_RTE_VALID_WRITE_MASK)) | u32RtePreserveLo; 474 uint64_t const u64RteHi = u64Rte & UINT64_C(0xffffffff00000000); 475 pThis->au64RedirTable[idxRte] = u64RteHi | u32RteNewLo; 475 476 } 476 477 else 477 478 { 478 uint32_t const u32RteLo = RT_LO_U32(u64Rte); 479 uint64_t const u64RteNewHi = (uint64_t)(uValue & RT_HI_U32(IOAPIC_RTE_VALID_WRITE_MASK)) << 32; 480 pThis->au64RedirTable[idxRte] = u64RteNewHi | u32RteLo; 479 uint32_t const u32RtePreserveHi = RT_HI_U32(u64Rte) & ~RT_HI_U32(IOAPIC_RTE_VALID_WRITE_MASK); 480 uint32_t const u32RteLo = RT_LO_U32(u64Rte); 481 uint64_t const u64RteNewHi = ((uint64_t)(uValue & RT_HI_U32(IOAPIC_RTE_VALID_WRITE_MASK)) << 32) | u32RtePreserveHi; 482 pThis->au64RedirTable[idxRte] = u64RteNewHi | u32RteLo; 481 483 } 482 484
Note:
See TracChangeset
for help on using the changeset viewer.

