aboutsummaryrefslogtreecommitdiff
path: root/riscv/mmu.cc
diff options
context:
space:
mode:
authorAndrew Waterman <aswaterman@gmail.com>2018-07-10 09:56:32 -0700
committerGitHub <noreply@github.com>2018-07-10 09:56:32 -0700
commit95487c248a6eb660b9bd1aa49e28da5a1ab21059 (patch)
tree011bc774a4cb6eb647f0fbaca3cb4bc41cfe277b /riscv/mmu.cc
parentcc50a327a552f1aa84679c8d3020ec40edc2948f (diff)
downloadspike-95487c248a6eb660b9bd1aa49e28da5a1ab21059.zip
spike-95487c248a6eb660b9bd1aa49e28da5a1ab21059.tar.gz
spike-95487c248a6eb660b9bd1aa49e28da5a1ab21059.tar.bz2
Refactor and fix LR/SC implementation (#217)
- Use physical addresses to avoid homonym ambiguity (closes #215) - Yield reservation on store-conditional (https://github.com/riscv/riscv-isa-manual/commit/03a5e722fc0fe7b94dd0a49f550ff7b41a63f612) - Don't yield reservation on exceptions (it's no longer required).
Diffstat (limited to 'riscv/mmu.cc')
-rw-r--r--riscv/mmu.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/riscv/mmu.cc b/riscv/mmu.cc
index 3a0bd39..021f587 100644
--- a/riscv/mmu.cc
+++ b/riscv/mmu.cc
@@ -12,6 +12,7 @@ mmu_t::mmu_t(simif_t* sim, processor_t* proc)
matched_trigger(NULL)
{
flush_tlb();
+ yield_load_reservation();
}
mmu_t::~mmu_t()