Andrew Waterman
2ace4c98e6
Fix histogram for RVC
No need to right-shift PC by 2. It's a map, so this is a false economy.
11 years ago
Andrew Waterman
575054bc4e
Update to hopefully final RVC 1.9 encoding
11 years ago
Andrew Waterman
8234ee969d
Fix --dc flag
Resolves #33 .
11 years ago
Andrew Waterman
c0af64539f
RVC encoding tweak
11 years ago
Andrew Waterman
b0f3ed6e3b
more work towards RVC 1.8
11 years ago
Andrew Waterman
3fddbcc0a5
work towards rvc 1.8
11 years ago
Andrew Waterman
82372d0039
clean up shift instruction implementation
11 years ago
Andrew Waterman
e78da5da4a
Refactor memory access code; add MMIO support
Of course, it doesn't do anything yet.
11 years ago
Andrew Waterman
3258ff6431
Use enum instead of two bools to denote memory access type
11 years ago
Scott Beamer
7959893ef6
commit log now correctly prints privilege
adopting convention of privilege at time of commit, not after commit
11 years ago
Christopher Celio
95d49c1d51
Zero-extend flw, fmv_s_x instructions
- This makes Spike more consistent with its zero-extending behavior
regarding other SP operations when placed into the 64b f-registers.
11 years ago
Scott Beamer
59ab3aadca
print out current privilege level (if commit log enabled)
11 years ago
Scott Beamer
0215c69bd6
print out commit log (if enabled) for all privilege levels
11 years ago
Andrew Waterman
00e04a6b0b
Simplify register_base_instructions
11 years ago
Andrew Waterman
3d9330919b
Initialize mstatus.prv1/prv2 to U, not S
This doesn't really matter, but it matches Rocket.
11 years ago
Andrew Waterman
17f497c7e2
Support 'G' in ISA strings
It's the same as IMAFD.
11 years ago
Andrew Waterman
5cedcbdeea
Merge pull request #32 from riscv/insn-list
Eliminate non-portable sed usage
11 years ago
Albert Ou
01189a9395
Fix non-portable sed commands generating insn_list.h
11 years ago
Andrew Waterman
71d04ecd7a
Improve instruction fetch
- 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)
11 years ago
Andrew Waterman
26d7f0f08e
Add facility to instrument specific opcodes
It's not ideal, because it requires modifying tracer.h. A more general
facility would allow overriding the instruction execution function for
a given opcode dynamically.
11 years ago
Andrew Waterman
1063a09757
Refer to LICENSE in some newer source files
11 years ago
Andrew Waterman
784e9891af
Move towards RVC v1.8
11 years ago
Andrew Waterman
84b15dac70
Don't automatically run autoconf
Run it yourself if you modify configure.ac, and commit the configure script.
11 years ago
Andrew Waterman
1f0ac0e729
Merge pull request #29 from pmundkur/devel
Enable execution log generation in non-interactive mode.
11 years ago
Prashanth Mundkur
b16ef94394
Add an option (-l) to display a log of execution in non-interactive mode.
Interactive (-d) mode overrides this option when both are specified.
11 years ago
Christopher Celio
8abe4c6309
Added error message when trying to use histogram
11 years ago
Christopher Celio
092f378fb2
Update README.md for freg info
11 years ago
Andrew Waterman
eb69084de3
Merge pull request #28 from sbeamer/master
fixes clang warning (#26 )
11 years ago
Scott Beamer
42358fbb24
simplified default case and added comments
11 years ago
Andrew Waterman
1b214d4318
Merge pull request #27 from sbeamer/master
fix clang compile error
11 years ago
Scott Beamer
8864a2d06e
fix clang compile error
11 years ago
Andrew Waterman
48faf847c2
New machine-mode timer facility
11 years ago
Andrew Waterman
e6b63b9876
Merge pull request #25 from vapier/master
few more interactive cleanups and more functionality
11 years ago
Mike Frysinger
3e8ad1eab3
allow interactive "reg" command to dump all registers
It you want to scan all the registers at once (or at least a few), having
to dump them one by one is kind of a pain. Change the behavior so that if
the register number is omitted, it'll dump all of them.
11 years ago
Mike Frysinger
74225c6f45
add an interactive "pc" command
This lets you show the current pc quickly. Sometimes when displaying
different state you can lose track of what the pc was. Add a simple
command that plumbs in the existing functions to the user interface.
11 years ago
Mike Frysinger
89be91cec3
unify interactive core processing
Different functions in here process the core argument in different ways.
Unify all of them with a utility function.
11 years ago
Andrew Waterman
79fbc15198
Merge pull request #24 from vapier/master
improve interactive behavior a bit more
11 years ago
Mike Frysinger
484431e7f8
add aliases for common interactive functions
Rather than using one letter commands everywhere, add support for "run"
and "quit" and "help" as aliases to "r" and "q" and "h" respectively.
This makes it a little inconsistent when some commands are one letters
but others are full words.
11 years ago
Mike Frysinger
66e1078e9d
add a help screen to interactive mode
There's no documentation that covers all the available functionality
(in source or the accompanied docs). Start a help command so that the
info is always live and up-to-date for people.
11 years ago
Andrew Waterman
4a430f64c7
Merge pull request #23 from vapier/master
move interactive function init out of main loop
11 years ago
Mike Frysinger
080e64a6a2
move interactive function init out of main loop
These values don't change between runs, so there's no point in recreating
them on every instruction step. Pull it out to the top to simplify.
11 years ago
Andrew Waterman
c1273bcbaf
Use single, shared real-time counter
This required disentangling INSTRET/CYCLE from TIME.
11 years ago
Andrew Waterman
1f9205c93b
Execute exactly the # of insns passed to step()
Previously, the value was treated as approximate.
11 years ago
Andrew Waterman
56701b2308
Add rest of RV32C instructions
11 years ago
Andrew Waterman
5235a77475
Fix performance bug when CSR accesses are common
processor_t::step was returning without doing much work, causing the HTIF
to be ticked far more often than necessary.
11 years ago
Andrew Waterman
6025b02665
Fix c.slliw implementation
11 years ago
Andrew Waterman
bdcb5b297f
New RV64C proposal
11 years ago
Andrew Waterman
292fef830d
Take interrupts as soon as interrupts are enabled
Previously, if interrupts were enabled then disabled quickly enough,
no interrupt would ever be taken, resulting in deadlock.
11 years ago
Andrew Waterman
e7dd2737f7
Merge pull request #20 from palmer-dabbelt/package
various fixes to make riscv-isa-sim installable
11 years ago
Andrew Waterman
75207d80bd
Fix VM, MIP encoding
11 years ago