mem, sim-se: Fixed seg-fault in EmulationPageTable::remap
When moving a memory region the target region should be unmapped.
The assertion does reflect this, but the following line accesses
the invalid pointer regardless. This commit replaces the pointer
access with an emplace.
Change-Id: I85f9be4e6c223eab447c75043e593ed3f90017e1
Reviewed-on: https://gem5-review.googlesource.com/8261
Reviewed-by: Gabe Black <gabeblack@google.com>
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Maintainer: Gabe Black <gabeblack@google.com>
diff --git a/src/mem/page_table.cc b/src/mem/page_table.cc
index 8a11ada..cd34225 100644
--- a/src/mem/page_table.cc
+++ b/src/mem/page_table.cc
@@ -87,7 +87,7 @@
auto old_it = pTable.find(vaddr);
assert(old_it != pTable.end() && new_it == pTable.end());
- new_it->second = old_it->second;
+ pTable.emplace(new_vaddr, old_it->second);
pTable.erase(old_it);
size -= pageSize;
vaddr += pageSize;