Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-04-04 | Allow querying the mmu configuration chosen during the build. (#191) | Prashanth Mundkur | 1 | -0/+18 | |
2018-03-06 | Narrow the interface used by the processors and memory to the top-level ↵ | Prashanth Mundkur | 1 | -2/+2 | |
simulator/htif. This allows the implementation of an alternative top-level simulator class. | |||||
2018-02-21 | Don't allow 32-bit instructions to take up multiple slots in I$ | Andrew Waterman | 1 | -1/+2 | |
I$ indices now maintain a 1:N relationship with PCs. This is somewhat faster and also simpler. | |||||
2017-11-27 | Rename badaddr to tval | Andrew Waterman | 1 | -2/+2 | |
2017-11-27 | Rename sptbr to satp | Andrew Waterman | 1 | -10/+10 | |
2017-09-28 | Implement Q extension | Andrew Waterman | 1 | -0/+19 | |
2017-04-30 | Store both host & target address in soft TLB | Andrew Waterman | 1 | -20/+29 | |
2017-04-05 | Add --enable-misaligned option for misaligned ld/st support | Andrew Waterman | 1 | -4/+26 | |
Resolves #93 | |||||
2017-03-27 | Separate page faults from physical memory access exceptions | Andrew Waterman | 1 | -0/+3 | |
2017-02-08 | Encode VM type in sptbr, not mstatus | Andrew Waterman | 1 | -0/+31 | |
https://github.com/riscv/riscv-isa-manual/issues/4 Also, refactor gdbserver code to not duplicate VM decoding logic. | |||||
2016-11-13 | Fix 32-bit host portability bug | Andrew Waterman | 1 | -1/+1 | |
2016-11-10 | AMOs should always return store faults, not load faults | Andrew Waterman | 1 | -0/+20 | |
This commit also factors out the common AMO code into mmu_t. | |||||
2016-09-02 | Support triggers on TLB misses. | Tim Newsome | 1 | -0/+3 | |
2016-09-01 | Theoretically support trigger timing. | Tim Newsome | 1 | -0/+3 | |
2016-08-22 | Implement address and data triggers. | Tim Newsome | 1 | -0/+55 | |
So far I only have testcases for instruction and data address. Not implemented is the mechanism that lets the debugger prevent a user program from using triggers at all. I'll be adding that soonish. The critical path is unchanged, but my experimenting shows the simulation is slowed down about 8% by this code. Reducing the size of trigger_match() (which is never called during my benchmark) fixes that, but making it not be inlined has no effect. I suspect the slowdown comes from cache alignment or something similar, and on a different CPU or after more code changes the speed will come back. | |||||
2016-07-06 | Update to new PTE format | Andrew Waterman | 1 | -1/+1 | |
2016-06-22 | Don't use I$ in debug mode | Andrew Waterman | 1 | -3/+4 | |
This avoids the need for fence.i. | |||||
2016-05-23 | Use fence.i in Debug ROM. | Tim Newsome | 1 | -1/+0 | |
This replaces a hack that just disabled all of the icache. | |||||
2016-05-23 | gdb can attach and read the PC: | Tim Newsome | 1 | -0/+1 | |
(gdb) target remote localhost:1234 Remote debugging using localhost:1234 0x0000000000010178 in fib (n=0) at waste.c:1 1 unsigned int fib(unsigned int n) { (gdb) | |||||
2016-05-23 | Add debug_module bus device. | Tim Newsome | 1 | -2/+4 | |
This should replace the ROM hack I implemented earlier, but for now both exist together. Back to the point where gdb connects, core jumps to ROM->RAM->ROM. | |||||
2016-04-29 | Move much closer to new platform-M memory map | Andrew Waterman | 1 | -10/+6 | |
Reset vector is at 0x1000; below that is reserved for debug Memory is at 0x80000000 | |||||
2016-03-02 | implement PUM functionality | Andrew Waterman | 1 | -1/+1 | |
2015-09-24 | Refactor memory access code; add MMIO support | Andrew Waterman | 1 | -36/+38 | |
Of course, it doesn't do anything yet. | |||||
2015-09-24 | Use enum instead of two bools to denote memory access type | Andrew Waterman | 1 | -19/+21 | |
2015-09-08 | Improve instruction fetch | Andrew Waterman | 1 | -15/+15 | |
- Performance for variable-length instructions is much better - Refill is simpler and faster - Support for instructions with overlapping opcodes (e.g. C.ADD + C.JALR) | |||||
2015-07-10 | fix clang compile error | Scott Beamer | 1 | -0/+1 | |
2015-04-25 | Fix I$ simulator hit count | Andrew Waterman | 1 | -4/+5 | |
Also, improve performance by allowing the soft-ITLB to refill. | |||||
2015-04-03 | Support setting ISA/subsets with --isa flag | Andrew Waterman | 1 | -7/+2 | |
Default is RV64IMAFDC. Can do things like --isa=RV32 (which implies IMAFDC) --isa=IM (which implies RV64) --isa=RV64IMAFDXhwacha | |||||
2015-03-30 | Implement RVC draft | Andrew Waterman | 1 | -12/+11 | |
2015-03-26 | New virtual memory implementation (Sv39) | Andrew Waterman | 1 | -4/+3 | |
2015-03-14 | Don't set dirty/referenced bits w/o permission | Andrew Waterman | 1 | -1/+1 | |
2015-03-12 | Implement PTE referenced/dirty bits | Andrew Waterman | 1 | -2/+2 | |
2015-01-02 | Require 4-byte instruction alignment until RVC is reimplemented | Andrew Waterman | 1 | -1/+2 | |
2015-01-02 | On misaligned fetch, set EPC to target, not branch itself | Andrew Waterman | 1 | -1/+3 | |
2015-01-02 | Reduce dependences on auto-generated code | Andrew Waterman | 1 | -3/+4 | |
In particular, precompiled headers ideally won't depend on any. | |||||
2014-12-04 | Support 2/4/6/8-byte instructions | Andrew Waterman | 1 | -13/+32 | |
Most of the complexity is in instruction address translation, since instructions may span page boundaries. | |||||
2014-02-13 | Fix I$ simulator not making forward progress | Andrew Waterman | 1 | -5/+5 | |
2014-01-13 | Improve performance for branchy code | Andrew Waterman | 1 | -35/+39 | |
We now use a heavily unrolled loop as the software I$, which allows the host machine's branch target prediction to associate target PCs with unique-ish host PCs. | |||||
2013-12-17 | Speed things up quite a bit | Andrew Waterman | 1 | -31/+40 | |
2013-09-11 | Implement zany immediates | Andrew Waterman | 1 | -8/+11 | |
2013-08-11 | Instructions are no longer member functions | Andrew Waterman | 1 | -25/+2 | |
2013-07-28 | Don't flush TLB on PTBR writes (only FATC) | Andrew Waterman | 1 | -1/+1 | |
2013-07-26 | New supervisor mode | Andrew Waterman | 1 | -17/+3 | |
2013-07-26 | Remove more vector stuff | Andrew Waterman | 1 | -3/+0 | |
2013-07-26 | Rip out RVC for now | Andrew Waterman | 1 | -42/+17 | |
2013-07-26 | Generate instruction decoder dynamically | Andrew Waterman | 1 | -22/+18 | |
This will make it easier for accelerators to add instructions. | |||||
2013-03-29 | add load-reserved/store-conditional instructions | Andrew Waterman | 1 | -2/+13 | |
2013-03-25 | add BSD license | Andrew Waterman | 1 | -0/+2 | |
2013-03-25 | truncate effective addresses in rv32 | Andrew Waterman | 1 | -11/+4 | |
also, employ a more efficient instruction dispatch based upon rv32 mode. | |||||
2013-02-15 | don't store host pointers in soft TLB | Andrew Waterman | 1 | -15/+18 | |
this reduces performance by epsilon, but it simplifies hooking into the MMU |