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.
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.
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.
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.
The actual Spike package consists of a whole bunch of libraries. This
installs a pkg-config file for each generated library, and a meta
pkg-config file (riscv-spike.pc) that links in all the other Spike
libraries except dummy_rocc (which I figure isn't interesting).
This allows me to package and install spike, and then use that package
to build an extension library (so I don't have to fork Spike for my
own ISA extension).
DESTDIR is a common make idiom. As per the GNU coding standards
https://www.gnu.org/prep/standards/html_node/DESTDIR.html
"DESTDIR is a variable prepended to each installed target file, like
this:
$(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo
$(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a
The DESTDIR variable is specified by the user on the make command
line as an absolute file name. For example:
make DESTDIR=/tmp/stage install
DESTDIR should be supported only in the install* and uninstall*
targets, as those are the only targets where it is useful.
If your installation step would normally install /usr/local/bin/foo
and /usr/local/lib/libfoo.a, then an installation invoked as in the
example above would install /tmp/stage/usr/local/bin/foo and
/tmp/stage/usr/local/lib/libfoo.a instead."
The current Makefile.in uses DESTDIR, but has a slightly non-standard
behavior: the target install location doesn't include "$prefix". This
breaks package managers, because stuff ends up getting installed to
the wrong location.
Unfortunately the only way I can think of to fix this involves
silently changing the behavior of DESTDIR. Hopefully nobody is using
it...?
[port of 8a2088b59162fe16c16d26ddc1cfcaaaa8c4156f in riscv-fesvr]