Commit graph

282 commits

Author SHA1 Message Date
Nathan Binkert
6ece3a7e59 random fixes
base/range.hh:
    Add a constructor that takes the beginning and end as arguments
    size returns T not a bool
    quick make_range() function that is a shortcut for making a range
    kinda like make_pair()

    quick formatting fix

--HG--
extra : convert_revision : 94b1d462710e6fb55e72e1da2ad8c46993af1ef7
2004-02-09 09:04:52 -05:00
Erik Hallnor
88c5bd695f Merge ehallnor@zizzer:/bk/m5 into zazzer.eecs.umich.edu:/z/ehallnor/m5
--HG--
extra : convert_revision : b24970f5bbf817d6ef581114178e27f2ab7c3459
2004-02-08 17:27:08 -05:00
Erik Hallnor
9c7bec74b1 Separate template definitions and instantiations into *_impl.hh and *.cc. Eventually the *.cc fils should be generate by our super-duper python script.
base/compression/null_compression.hh:
    Need some includes.

--HG--
extra : convert_revision : caf52320f6f6ff255e8a93817419ad13ad44224f
2004-02-08 17:26:27 -05:00
Nathan Binkert
de285ff2a0 Totally rework the Range class. Now the range is from [start, end)
to be consistent with the way that the stl works.  It also makes
lots of other stuff easier.  (Maybe those guys were smart?)
Overload the various comparison operators so that you can test
for overlapping of ranges, etc.

base/range.hh:
    Totally rework the Range class.  Now the range is from [start, end)
    to be consistent with the way that the stl works.  It also makes
    lots of other stuff easier.  (Maybe those guys were smart?)
    Overload the various comparison operators so that you can test
    for overlapping of ranges, etc.

    make parse function private and offer operator= instead
    isValid -> valid
    and for you erik, I add comments
test/Makefile:
    add range.o
test/rangetest.cc:
    better tests

--HG--
extra : convert_revision : dd58720aa3d02f20b03e933f2eaa3320c82bb27a
2004-02-07 01:16:50 -05:00
Nathan Binkert
4bbe8c1058 Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/kernel

--HG--
extra : convert_revision : 9ee9b8550b5761fa400df83caf268bd1c8ddc7ed
2004-02-05 02:53:03 -05:00
Steve Reinhardt
98948b2e57 More reformatting of reference parameter declarations.
The last change only caught the ones with types that
started with capitals.  This pass catches the rest
(mostly STL and uint*_t types).

base/cprintf_formats.hh:
cpu/simple_cpu/simple_cpu.cc:
sim/serialize.cc:
sim/serialize.hh:
    Change "foo_t& foo" to "foo_t &foo".

--HG--
extra : convert_revision : fc7f7425db2aef33e490f952b5ce74c8c36d0d41
2004-02-04 11:16:30 -08:00
Nathan Binkert
85bc028185 merge
--HG--
extra : convert_revision : 47425264e672f727cbb13aa7b9bb2a67790b25e8
2004-02-03 11:24:03 -05:00
Nathan Binkert
b1221a3395 Remote debugging cleanup and internal debugging support
base/kgdb.h:
    Remove flags that aren't used
base/remote_gdb.cc:
    Better debugging:
    - Give each class a name() function so that the trace infrastructure
    knows the correct object name.
    - Make the remote debugger capable of detach.
    - Split out the RGDB trace flag into a bunch of specific flags.
    Remove dead code
    Add a new trap type
base/remote_gdb.hh:
    Add a name() to the various objects for the trace system
base/trace.hh:
    don't need a using directive
    add DPRINTFNR: debug printf, no flag, raw output
kern/tru64/tru64_system.cc:
    use the INT trap type instead of IF

--HG--
extra : convert_revision : 25e610216c6f43d5d328651bba915f71bade059e
2004-02-03 10:50:04 -05:00
Steve Reinhardt
548b4a1cb0 Change "Foo& foo" declarations to "Foo &foo".
This primarily to be internally consistent (sometimes we used one,
sometimes the other, even within the same line of code!).
I picked the latter to be symmetric with "Foo *foo".

base/cprintf_formats.hh:
base/range.hh:
base/refcnt.hh:
base/res_list.hh:
base/statistics.hh:
base/str.hh:
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/syscall_emul.hh:
    Change "Foo& foo" declarations to "Foo &foo".

--HG--
extra : convert_revision : ca1b0e85a578b539214bda3b8d61ac23792f2e87
2004-02-02 15:55:35 -08:00
Steve Reinhardt
956aff1291 More conversions of ref-counted parameters to references:
Statistics::NodePtr, StaticInstPtr, ethernet PacketPtr.

base/statistics.hh:
    Change NodePtr parameters to Nodeptr &.
cpu/exetrace.hh:
    Change StaticInstPtr parameters to StaticInstPtr &.
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/ethertap.cc:
dev/ethertap.hh:
    change PacketPtr parameters to PacketPtr &.

--HG--
extra : convert_revision : a778efdca33b0ec5beb76cf47db0e9e4728897ee
2004-02-02 15:45:22 -08:00
Nathan Binkert
4ae64216c3 Merge
--HG--
extra : convert_revision : 8690e31b64235874d74ea4a1123a408610fb115b
2004-01-30 16:01:26 -05:00
Nathan Binkert
cb35f819c5 delete the data in the arglist when the list is destroyed,
not while printing out the data.  This allows the data
to be dumped more than once.

base/cprintf.hh:
    need a destructor

--HG--
extra : convert_revision : 235e9fe24488ac4c0ae1b562ef9fa6e0bd1e899c
2004-01-29 17:44:08 -05:00
Nathan Binkert
2db1b6ea1b provide an output stream for simulator output. (This takes place of the
statStream catchall that we had before)
Also provide an optional output directory that multiple simulator output
files can be written to.
Make most output files use the output directory

base/misc.cc:
    send warnings to the outputStream as well
base/trace.cc:
    dprintf_stream defaults to cerr
dev/console.cc:
    use the output directory for the console output if it exists
dev/etherdump.cc:
    dump to the output directory if it exists
sim/builder.cc:
sim/builder.hh:
    move constructor and destructor to .cc file
    use a function to get the stream that the builder dumps its
    output to, and create a separate file in the output directory
    if able
sim/main.cc:
    statStream -> outputStream
sim/serialize.cc:
    dump checkpoints to the output directory if specified
sim/universe.cc:
    provide an output stream for simulator output.  (This takes place of the
    statStream catchall that we had before)
    Also provide an optional output directory that multiple simulator output
    files can be written to.

--HG--
extra : convert_revision : 03abce20edbbf7ec19c9ddd8d69ec8485c383532
2004-01-29 00:38:18 -05:00
Nathan Binkert
dc70ce3a60 cleanup on aisle 5
base/statistics.cc:
    dead code

--HG--
extra : convert_revision : 8f3fd638acdf7a704475ea90b607a3225a3c174d
2004-01-29 00:36:22 -05:00
Nathan Binkert
801c46d250 a bunch of warning fixes
arch/alpha/isa_desc:
    don't say warn: Warning:
base/misc.cc:
    avoid printing two newlines in a row
sim/main.cc:
    print out a message just before we enter the event queue

--HG--
extra : convert_revision : 2a824d4b67661903fc739a0fb0759aa91d72382c
2004-01-27 17:56:23 -05:00
Steve Reinhardt
946b481831 Set LIBELF_LINUX to 0 to build on zax. Builds
but did not test... however the only thing this
affects in libelf is the header, so I don't expect
any functional problems.

base/loader/elf_object.cc:
    Set LIBELF_LINUX to 0 to build on zax.

--HG--
extra : convert_revision : d024b33deff6fc8ea6f1d465f76dc8d9d63254ab
2004-01-20 13:53:18 -05:00
Nathan Binkert
c9f2aa8c18 Make each stat take up one full line. This allows us to use grep
to find and remove stats from the files so we can put less
burden on the python interpreter.

base/statistics.cc:
    Manually insert newlines into the python code so that we now have one
    stat per line.  (Make it so we can use grep -v to remove stats)
test/stattest.cc:
    update to reflect changes in how python is accessed

--HG--
extra : convert_revision : 554edcf9c795b33d00d3d15554447c8accebebfa
2004-01-15 16:33:58 -05:00
Ali Saidi
f013df643a mereged changes to elf_object.cc
base/loader/elf_object.cc:
    merged changes to elf_object.cc

--HG--
extra : convert_revision : 2b7a6083d45f0221646e2ebe5b91ee45ec8c6b7c
2004-01-15 13:22:55 -05:00
Steve Reinhardt
9f2aae4e28 Fixes and cleanup to elf loader code.
base/loader/elf_object.cc:
    - Use program header instead of section headers for loading.
    The old code doesn't work for Alpha/Linux user binaries.

    - Deal properly with single-segment ELF executables (e.g. kernels)...
    haven't tested this but it looks like it matches the functionality
    of the patch the L4::Pistachio guys sent.

    - Factor load symbol code into one common function.

    - Some formatting to match style conventions.

    - Only include libelf stuff in .cc file, not .hh.
base/loader/elf_object.hh:
    - Use program header instead of section headers for loading.
    The old code doesn't work for Alpha/Linux user binaries.

    - Factor load symbol code into one common function.

    - Only include libelf stuff in .cc file, not .hh.

--HG--
extra : convert_revision : 782062d09d43083b01e65cd645c941f49c27640a
2004-01-14 22:30:16 -08:00
Ali Saidi
54782bfb30 Elf loader now conforms to coding style and config files for linux
use /m5/system/linux for their binaries

base/loader/elf_object.cc:
    Elf loader now conforms to coding style

--HG--
extra : convert_revision : 558e587e969535f31987f2810ee17ec72006de0a
2004-01-14 16:12:00 -05:00
Ali Saidi
c9d88aa089 Minor fixes to loader and an additional header file in alpha_access.h
when we are compiling the console.

base/loader/elf_object.cc:
    added code to verify that the .bss section is 0;
    added code to only load function and label types
dev/alpha_access.h:
    include inittypes if we are compiling the console code

--HG--
extra : convert_revision : b88fb36500b1c1003d44ed95cefdd2a30b7466b8
2004-01-14 04:18:20 -05:00
Nathan Binkert
b4301c652c Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : bff2fb78e205f327ce8d04f3ae1b2352857ab824
2004-01-11 21:22:33 -05:00
Steve Reinhardt
7e07aa9300 Fix cprintf bug, plus minor cleanup & better error messages.
base/cprintf.cc:
    Fix bug where a call with a format string with no specifiers
    but one or more arguments would crash.  Old code tried to print
    extra args using last available format, but in this case there
    was no format, hence the problem.  Now we just print "<extra arg>"
    for each extra arg.

    Also reorganized code a bit to make scope of fmt variable
    match the scope in which you can be confident it's meaningful.
base/cprintf.hh:
    Print specific error message instead of calling format_invalid().
base/cprintf_formats.hh:
    Clear Format object in constructor.
    Use specific error messages instead of format_invalid() function.

--HG--
extra : convert_revision : 87d5e902174e3eb2583131d056742af166540db0
2004-01-11 15:09:27 -08:00
Ali Saidi
98613950a3 Fixed another small libelf problem, everything should work now, on any
machine.

base/loader/elf_object.hh:
    put #defines for libelf that normally arn't defined so that -Wundef
    doesn't cause problems.

--HG--
extra : convert_revision : fa2de6aa94c7ddbaa59990db4473402b0df7d93a
2004-01-08 16:35:47 -05:00
Nathan Binkert
a3691fe09e Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : b7411b25ae9e3a546996aec59e1a67cbe728da85
2004-01-08 12:25:49 -05:00
Ali Saidi
14b4119aaf Changed elf_object.* to use libelf for reading elf files. The makefile
and setup filed had to be modified to build libelf. The ext repository
MUST exist in the directory below m5!

base/loader/elf_object.cc:
base/loader/elf_object.hh:
    now uses libelf to read elf binaries

--HG--
extra : convert_revision : b70511f5379edf35d639f3bb64b786cb0bd180af
2004-01-07 19:46:45 -05:00
Nathan Binkert
9dcfdce732 Improve python output support
fix some bugs

base/statistics.cc:
    -  Move the python dump stream stuff into the statistics package
    because it needs more control over the file when there
    are multiple dumps
    -  add a subname to the output
    -  make all of the stats a list instead of variable arguments to
    get around the 255 argument limit
    -  the description needs to be triple quoted
    -  avoid errors for formulas that don't have any root element
    set up.
base/statistics.hh:
    -  get rid of mode_python and just separate python dumping from
    regular stats dumping
    -  fix a huge bug that made a Formula use a VectorData instead
    of a FormulaData

--HG--
extra : convert_revision : 7303cff3ccdcc3d306ab17375219fc7fecac7e5e
2003-12-28 12:48:13 -05:00
Nathan Binkert
55d94ba2e8 Add python output support to the statistics package!
base/statistics.cc:
base/statistics.hh:
    -  add python output support to the statistics package
    -  each statistic type has a python() member function that takes
    a Python object to which the stat will output it's python
    representation
    -  add getStatData hack so that the StatData pointer can be looked
    up by the proxies with their opaque pointer to the stat they're
    proxying for.  This is necessary because the proxy really proxies
    for the bin and not the stat.  Be nice to figure out how to get
    rid of it.  The hack is used so that the str() function of a
    proxy can properly name itself.
    -  To print formula stats, every stat has a str() function that
    converts that stat to a string that python can execute to get
    a value.
test/Makefile:
    add python stuff
test/stattest.cc:
    add more tests and test python support

--HG--
extra : convert_revision : 513814ab0a125606897f2c57dccdf22879032ef9
2003-12-24 03:25:36 -05:00
Nathan Binkert
3f5ca9e5e8 initial basic hooks into the stats package to output python code
python dumping takes a name for the output data

base/statistics.cc:
base/statistics.hh:
    initial basic hooks into the stats package to output python code

--HG--
extra : convert_revision : 37f52dc03df50aa90346dc9ca341f961e7e855e8
2003-12-24 02:35:33 -05:00
Nathan Binkert
4bdf46c819 Random cleanup
base/statistics.hh:
    -  use a typedef to get at bin_t
    -  clean up template declaration
    -  public access to typedefs

--HG--
extra : convert_revision : 0650c5a1cba51c7af04790498af0d354884be0ee
2003-12-24 02:25:26 -05:00
Nathan Binkert
2b2c8388a2 formatting for consistency
--HG--
extra : convert_revision : f859244880dcc2be9424edaac0c73adfd467221e
2003-12-24 02:22:43 -05:00
Nathan Binkert
263886bc83 more readable formatting
--HG--
extra : convert_revision : 99bd142099482dbd04645a0f44ac63d2467b883c
2003-12-24 02:17:20 -05:00
Nathan Binkert
fad8b13add Random cleanup to make things work a bit better
base/statistics.cc:
    -  give an internal name to statistics that aren't printable
    -  speed up reset a tad
    -  Make sure that the original value of the current bin is restored properly
    -  check for the case where there are no subnames so we don't have an error
    -  check to make sure that the formula's root is set before accessing it
base/statistics.hh:
    -  clean up includes a bit
    -  deal with the case where there are no subnames
    -  get rid of remnants of FS_MEASURE stuff

--HG--
extra : convert_revision : 1e4338fc2b225647df47641b04c13b7046b2e114
2003-12-24 01:45:56 -05:00
Nathan Binkert
9908987f15 never print the cdf or pdf or the overflow bucket if we're simplescalr
--HG--
extra : convert_revision : 921ad80a5c671fee9eab3f389636dccc101d18f6
2003-12-24 00:22:02 -05:00
Nathan Binkert
a95d8e95cb - change the FormatFlags into more general StatFlags
-  make init and print StatFlags
-  default_mode -> DefaultMode
-  the display mode is no longer needed as part of the stat
pass it into the display functions so the mode can be determined
from dump to dump
-  get rid of old simplescalar bug and make the distribution min_val
work correctly
-  get rid of the DisplayMode parameter to distribution updates since
it is no longer needed

--HG--
extra : convert_revision : 386f69f4d12fb91faf60690aaab08542e009e555
2003-12-23 23:53:43 -05:00
Nathan Binkert
8f912297ab - Allow the stats package user to determine in which mode to dump
-  Factor out the formatted output into a display function
-  Make the stats package support tracing
-  Clean up output of binned data

base/statistics.cc:
    -  Factor out the formatted output into a display function and
    pass in the mode
    -  Make the stats package support tracing
    -  Clean up output of binned data
    -  Get rid of the list of binned stats and the map of bins
    since it is no longer needed for output
base/statistics.hh:
    -  Allow the stats package user to determine in which mode to dump

--HG--
extra : convert_revision : a1d5fc728f4dc22a851d58ea89d44018a94a64c7
2003-12-23 21:45:48 -05:00
Steve Reinhardt
126d810d13 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : 315f207185b418f41509210a35188be996c0eb0a
2003-12-20 19:56:31 -08:00
Nathan Binkert
520442b01a Fix a bunch of memory leak type bugs, and add some better
checking in places to make sure stuff is behaving properly.

base/statistics.cc:
    separate the per stat check from the general stats check.
    We always want the general stuff to happen
base/statistics.hh:
    -  separate the per stat check from the general stats check.
    we always want the general stuff to happen
    -  make every stat check that its bin is at least initialized
    -  set the vector2d x and y coordinates in init to prevent an
    uninitialized memory access
test/Makefile:
    don't need sim_time.o to test stats
test/stattest.cc:
    don't make x and y the same on the 2d test so that we make
    sure that the two dimensions are correct

--HG--
extra : convert_revision : 81320325056ac1c09f6842474fb6ee3bcc030a8e
2003-12-20 16:25:48 -05:00
Steve Reinhardt
4f8acd2709 Minor cleanup of trace/output stuff (leftover from EINTR bug fix).
base/cprintf.cc:
    Get rid of unnecessary stream state check.
    Bug is fixed now, and I'm not sure this did much anyway.
cpu/exetrace.cc:
    Get rid of unnecessary flush() call.

--HG--
extra : convert_revision : 107dcdc578b2b0ad1652ee52ea0a33b0f3cd4e39
2003-12-19 08:04:40 -08:00
Nathan Binkert
255ac8372d Make stuff build on openbsd
arch/alpha/alpha_tru64_process.cc:
    So, I don't know why linux uses an off_t here.
    I'm also not sure why linux defines an off_t to be a long
    Let's just use long here since it works for linux, and that's
    what bsd does
base/inifile.cc:
    correct #include for OpenBSD
dev/disk_image.cc:
    the correct type for this is streampos

--HG--
extra : convert_revision : f3ac3a3b8515d66e07ffb9780d8a9e387297b6a0
2003-12-19 00:02:20 -05:00
Steve Reinhardt
d5a187dd5a Miscellaneous minor fixes/improvements.
Most notable is that the rundiff trace-output lossage is fixed!

base/pollevent.cc:
    Use SA_RESTART to keep blocked write() calls from failing
    with EINTR when signals happen.
base/trace.hh:
    Make TRACING_ON depend on NDEBUG not being set (instead of
    DEBUG being set) so m5.opt/m5.fast do what we want.
util/rundiff:
    Print header lines showing file/cmd names.

--HG--
extra : convert_revision : 4966814ad65aedb6d62a5a62a6ad3e3f326d61b8
2003-12-17 09:43:03 -08:00
Steve Reinhardt
f47dcadfd8 Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : dd887635c7ce74324b3670744461ffdf92e1dedf
2003-12-15 21:07:04 -08:00
Steve Reinhardt
eb1cfea1aa Another fix for gcc 3.3.x.
base/statistics.hh:
    Make a couple of typedefs public rather than protected.
    g++ 3.3 complains otherwise.

--HG--
extra : convert_revision : 6a8e4edb0c39474c0e0c7bc474ad0f22b9fb8505
2003-12-15 20:56:47 -08:00
Steve Reinhardt
e537fb3fd6 Add #define parameter and corresponding build option to
disable FastAlloc.  Gcc 3.3.x appears to have a bug that
breaks FastAlloc when compiled with optimization.

base/fast_alloc.cc:
base/fast_alloc.hh:
    #define NO_FAST_ALLOC makes FastAlloc a no-op.

--HG--
extra : convert_revision : bf4bb8e963331c6782f2cfd475a811aa520e31b5
2003-12-15 20:55:10 -08:00
Nathan Binkert
ce4aba3e54 Add support for getting the hostname
--HG--
extra : convert_revision : 498a950e574059eac2e3b1969880ecc04cf53f31
2003-12-15 18:24:02 -05:00
Nathan Binkert
ef659565ff Clean up time handling code
base/str.hh:
    this should really be inline
base/time.cc:
base/time.hh:
    clean up how the time class works.  Export only one, and let
    people calculate their own elapsed times, etc.
sim/main.cc:
    sim/sim_time.X -> base/time.X

--HG--
rename : sim/sim_time.cc => base/time.cc
rename : sim/sim_time.hh => base/time.hh
extra : convert_revision : f3888fe3a1fdd1022084c282b58407c631a6d9a0
2003-12-15 18:23:48 -05:00
Nathan Binkert
3c6fc7c269 - Add a new target m5.fast (or just fast for short)
-  make stuff compile with NDEBUG
-  remove the TRACE setup option since it isn't useful anymore

base/statistics.cc:
    Compile with -DNDEBUG

--HG--
extra : convert_revision : a75b3881be1513abb5915b6463c6cdc1f23a62e1
2003-12-11 19:22:03 -05:00
Steve Reinhardt
7e6dcd812c Rename RegResetCallback to registerResetCallback().
Add reset callback for bus (to fix idle cycles computation).

base/statistics.cc:
base/statistics.hh:
sim/sim_object.cc:
    Rename RegResetCallback to registerResetCallback().

--HG--
extra : convert_revision : c886c98143d4851f709ef95de3120b4494f8e4d2
2003-12-10 17:49:41 -08:00
Nathan Binkert
06aafccce7 Make the simulator compile on an Itanium.
base/hashmap.hh:
    Not all machines need these extra hash functions
    also make Counter int64_t since that's really what is needed

--HG--
extra : convert_revision : b5b5d65db157d01d76adbf4de4882b1516c9f2e7
2003-12-09 17:41:08 -05:00
Nathan Binkert
368de4109f Sweeping change in the stats package....again...
base/statistics.cc:
    -  Merge the m5 display and simplescalar compatible display functions.
    -  Use functors for the stats printing instead of functions.  This
    gets rid of the very long argument lists and improves clarity.
    -  Fix a bug in binning that caused an invalid allocation to occur.
base/statistics.hh:
    -  Instead of using a compile time variable to choose whether
    to print in ss compat mode, we use a runtime variable.
    This is how we'll choose python output.
    -  There are no more virtual functions in the statistics themselves.
    All virtual functions have been moved into a secondary helper class.
    Every stat has an associated helper class that knows how to access
    certain variables in that stat.
    There is a hash_map from the stat to it's helper class data.  This was
    done because the helper data is only used during setup, stats reset,
    and printing.  All of which happen rarely, and you want to avoid
    any performance hit that you can.
    -  To provide the name(), desc(), etc functions to classes so that the
    user can set various parameters to the stats class, a single class
    containing all of those functions was created.  An odd trick was
    done to actually make this class derive from the stat class because
    a base class with no data actually does end up taking up space.
    -  The detail namespace was removed for now.  I'll put it back when the
    package is not in so much flux.
    -  Standard deviation, and mean were added to all distribution stats.
    -  There are several bugfixes and changes that aren't mentioned
test/Makefile:
    Don't test sim_stats foo.
test/stattest.cc:
    Don't test sim_stats foo.
    Fix bin usage so that it corresponds to the current usage.

--HG--
extra : convert_revision : ce8d9a8d485a84d55799f253d851e83650684170
2003-12-09 13:05:43 -05:00
Lisa Hsu
b6c77fe6f8 remote_gdb.cc:
fix remote gdb

base/remote_gdb.cc:
    fix remote gdb

--HG--
extra : convert_revision : 886cad5037e2124e6087be03f2903f07aeed0679
2003-12-04 19:26:31 -05:00
Steve Reinhardt
745f0044cd Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5
--HG--
extra : convert_revision : d66ebc598fdcfc9477ea5a1e455b21d7b9e56936
2003-12-01 19:34:51 -08:00
Steve Reinhardt
7976794aad Restructuring of LiveProcess etc. to support multiple emulated OS syscall
interfaces, and specific support for Alpha Linux.  Split syscall emulation
functions into several groups, based on whether they depend on the specific
OS and/or architecture (and all combinations of above), including the use of
template functions to support syscalls with slightly different constants
or interface structs.

arch/alpha/alpha_tru64_process.cc:
    Incorporate full Tru64 object definition here, including structure and constant definitions.
    This way we can wrap all of the functions inside the object, and not worry about namespace
    conflicts because no one outside this file will ever see it.
base/loader/aout_object.cc:
base/loader/aout_object.hh:
base/loader/ecoff_object.cc:
base/loader/ecoff_object.hh:
base/loader/elf_object.cc:
base/loader/elf_object.hh:
base/loader/object_file.cc:
base/loader/object_file.hh:
    Add enums to ObjectFile to indicate the object's architecture and operating system.
cpu/exec_context.cc:
    prog.hh is now process.hh
cpu/exec_context.hh:
    prog.hh is now process.hh
    move architecture-specific syscall arg accessors into ExecContext
cpu/simple_cpu/simple_cpu.cc:
    No need to include prog.hh (which has been renamed)
sim/process.cc:
sim/process.hh:
    LiveProcess is now effectively an abstract base class.
    New LiveProcess::create() function takes an object file and dynamically picks the
    appropriate subclass of LiveProcess to handle the syscall interface that file expects
    (currently Tru64 or Linux).

--HG--
rename : arch/alpha/fake_syscall.cc => arch/alpha/alpha_tru64_process.cc
rename : sim/prog.cc => sim/process.cc
rename : sim/prog.hh => sim/process.hh
extra : convert_revision : 4a03ca7d94a34177cb672931f8aae83a6bad179a
2003-12-01 19:34:38 -08:00
Lisa Hsu
c02fc7e99f get rid of the errors from simple-test1 and test1-6
base/statistics.cc:
    fix how some stats are printed to get rid of some of those pesky regression errors.  this does not fix all of them, just the unimportant ones.

--HG--
extra : convert_revision : 247675fd5bbb47e29c8c077a8d2b2996be1b7072
2003-11-23 12:57:16 -05:00
Nathan Binkert
55a7490a11 Go Blue!!!!
base/statistics.hh:
    Simple formatting fixes

--HG--
extra : convert_revision : 608fe1c37f58426d65cb5ec172764a6b610be6c8
2003-11-22 15:12:56 -05:00
Nathan Binkert
d1e12b57ce We only need to choose that we do want binning, or we don't.
no need for multiple bin classes.  If multiple bins are needed, we
can always do it with ini type config instead.

kern/tru64/tru64_events.hh:
sim/system.cc:
sim/system.hh:
    No more GenBin always use MainBin

--HG--
extra : convert_revision : 8c466f302324c33b59d47d0da04583b2517fc72c
2003-11-22 15:07:53 -05:00
Nathan Binkert
0bd909277d statistics.cc:
Only reactivate the original bin if it actually exists.

base/statistics.cc:
    Only reactivate the original bin if it actually exists.

--HG--
extra : convert_revision : e71ba0680d79ca439487a31d8f365429bff8c375
2003-11-12 15:23:31 -05:00
Nathan Binkert
74aaf2401c in the case where we don't have any bins, we don't want to panic
--HG--
extra : convert_revision : e9056ca020d0f3db388b31a074b03e4d521f8705
2003-11-12 14:59:58 -05:00
Steve Raasch
541598bc6f It's important that there be white-space between each element
of a printed statistics line.

base/statistics.cc:
    Add spaces between printed elements

--HG--
extra : convert_revision : edcc9460fa178c39f7e3c15b3bad866ef9b263e4
2003-11-07 08:35:55 -05:00
Nathan Binkert
40820042f1 save and restore the current bin during reset since we
should continue in whatever bin we were in.

--HG--
extra : convert_revision : 30a891ccb03afa0c1dd0c98942ab3ea5ba800660
2003-11-07 01:24:49 -05:00
Steve Raasch
9915bd17c2 Nat's fix for compile bug
base/statistics.hh:
    Too many "const"'s

--HG--
extra : convert_revision : b38303f2e6b415e6bcc520da80e89d99b6976d23
2003-11-06 12:57:06 -05:00
Nathan Binkert
07d56ae7be better binning of Average stats
base/statistics.hh:
    Try to make binning of Average statistics work a little better.
    This solution is far from perfect though since we really need
    to call set(p.current, p) when the binning takes place.

    To fix the binning, we need to have the current value non-binned,
    to do that, we make make the current value part of the Params struct.
    This means that we can't pass around const Params structs

    Maybe we need a binswap callback :/

--HG--
extra : convert_revision : c2892387dbabe011bdcd6f0d99005c1c50653720
2003-11-06 02:28:27 -05:00
Nathan Binkert
655e9ef3de Little fixes to make more of the stats reset correctly.
base/statistics.cc:
    formatting
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
    Make numInsts reset by adding a resetStats function
sim/sim_object.cc:
    Register the reset callback in a slightly cleaner way to avoid
    potential static member constructor ordering issues

--HG--
extra : convert_revision : 408073b4b0397fbf9dfd9c548a313f1c8c3fc031
2003-11-06 00:41:14 -05:00
Nathan Binkert
f2881c752e Ok, actually call resetStats on all stats
minor gratuitous cleanup in printAllExtraOutput.
(only create one end iterator)

Fix average stats reset

base/statistics.hh:
    Shouldn't reset average stats this way.  The current stat value
    should stay the same.
sim/sim_object.cc:
    Ok, actually call resetStats on all stats
    minor gratuitous cleanup in printAllExtraOutput.
    (only create one end iterator)

--HG--
extra : convert_revision : 13090ebe490a93757b8eb7d7c6a9697983095e41
2003-11-05 21:17:13 -05:00
Nathan Binkert
9471a4d20f Fix stats reset
make SIGUSR2 dump and reset stats
Make resetting time work

base/statistics.cc:
    Fix statistics reset so that it works again, and correctly
    reset bins as well.  (The old code wouldn't reset if you didn't
    have any bins, and then would actually only reset the first
    bin)
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
    convert idleCycles/idleFraction into a single Average stat
    to make reset work more simply
sim/main.cc:
    handle SIGUSR2 to dump and reset stats
    (SIGUSR1 only dumps them)
sim/sim_time.cc:
sim/sim_time.hh:
    Add support for resetting the time

--HG--
extra : convert_revision : ea43e03c50c0a4bb826dc0842a8c4fa1a9289e0a
2003-11-05 17:57:41 -05:00
Lisa Hsu
d7b25c8022 Merge zizzer:/bk/m5 into zower.eecs.umich.edu:/z/hsul/bk/m5
--HG--
extra : convert_revision : 81a644bebf1b9fe11ac767c097c2d457c5698e73
2003-11-04 18:19:40 -05:00
Lisa Hsu
16d0b2f85a Hack to enable perl totaling of standard deviation statistics.
statistics.hh:
same
statistics.cc:
Hack to enable perl totaling.
make FancyDisplay print a total parameter to enable totaling standard deviations for bins after a run is over with perl.  currently a total hack.

base/statistics.cc:
    Hack to enable perl totaling.

    make FancyDisplay print a total parameter to enable totaling standard deviations for bins after a run is over with perl.  currently a total hack.
base/statistics.hh:
    same

--HG--
extra : convert_revision : c4087a138543e66acee4e395617ce7fd7e458a39
2003-11-04 18:19:03 -05:00
Nathan Binkert
293ee75117 Merge zizzer.eecs.umich.edu:/bk/m5
into zans.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : b4e94c075fdb58f6ac66aedf4f6a8f792988ed13
2003-11-04 17:43:57 -05:00
Nathan Binkert
247984bc22 A little bit of code here and there to get more access to
what the console output is.

base/circlebuf.hh:
base/circlebuf.cc:
    add stuff to spit to an ostream
    prepend _ in front of protected member variables
    formatting
dev/console.hh:
dev/console.cc:
    Add DPRINTF to spit out the lines of console data
dev/console.cc:
    little hack to append name() to the file so that we can
    easily get multiple output files.
dev/console.hh:
    TRACING_ON == 1 not defined(TRACING_ON)

--HG--
extra : convert_revision : bbe80715fb97ee4c4ed6b484955ef71289f09fc9
2003-11-04 17:43:41 -05:00
Lisa Hsu
94edf2de3f Merge zizzer:/bk/m5 into zower.eecs.umich.edu:/z/hsul/bk/realclean
--HG--
extra : convert_revision : 32bbe481ee748785f0bcffb0a711017d51c987a0
2003-11-04 15:21:04 -05:00
Lisa Hsu
8834d91f21 statistics.cc:
on Database::reset(), reset all stats in every bin, not just current one.

base/statistics.cc:
    on Database::reset(), reset all stats in every bin, not just current one.

--HG--
extra : convert_revision : 0f3443b36ee00952810818a035c99267da8871d9
2003-11-04 15:20:58 -05:00
Lisa Hsu
553df008cf Merge zizzer:/bk/m5 into zower.eecs.umich.edu:/z/hsul/bk/clean
--HG--
extra : convert_revision : 0074df284e85bc2ebe6ccc2dbe765fabda9ab041
2003-11-04 15:15:24 -05:00
Lisa Hsu
921b1ee87b Add the ability to track stats in user defined sets of function calls. code can be generated via the base/instrum_codegen.pl script to easily change the functions being tracked. the only thing the user needs to do is add code in tru64System to change how the callerMap is populated.
command line:

m5.* <config file> <args> --server.system:bin=true to track function calls in the server
m5.* <config file> <args> --client.system:bin=true to track function calls in the client

base/statistics.cc:
    make an adjustment to the way stats are printed for FS_MEASURE
base/statistics.hh:
    add a name() virtual function to GenBin.  add a debug printf for activate().
    add amake MainBin the default bin when FS_MEASURE.
cpu/exec_context.cc:
    initialize swCtx to null upon creation of an xc
cpu/exec_context.hh:
    add a SWContext pointer to every execution context.
cpu/simple_cpu/simple_cpu.cc:
    process calls and returns for FS_MEASURE
cpu/simple_cpu/simple_cpu.hh:
    add this so idleCycles will not be accessed before all stats are constructed
kern/tru64/tru64_events.cc:
    add a FnEvent that fires whenever a function we're tracking is called.  implement the process() virtual function for it.
kern/tru64/tru64_events.hh:
    add FnEvent
kern/tru64/tru64_system.cc:
    send bin parameter to System constructor.  add bin parameter to Tru64System object.  initialize all the FnEvent and MainBin members of Tru64system.  also, populate the calling map that indicates whether a function call is on the path we're tracking.
kern/tru64/tru64_system.hh:
    modify the Tru64System class to support FS_MEASURE
sim/system.cc:
    add a bin parameter to System class.  initialize a MainBin to hold the stats for nonPath.
sim/system.hh:
    add a map of to match bins to function names.  add a swCtx map to map pcb addresses to SWContext *s.  Add some supporting functions.

--HG--
extra : convert_revision : af3eadd798cb2d2aed9b54e1059dcedf244dd526
2003-11-04 15:15:12 -05:00
Steve Reinhardt
e4b52476bc Automerge
--HG--
extra : convert_revision : 2ca18ecbf04a1de72391073d0a5309fdbbdfefda
2003-11-03 20:35:05 -08:00
Steve Reinhardt
2ac054386d Print a warning rather than failing if we're unserializing and there's an
object in the config that was not in the checkpointed config.
This code compiles, but I haven't tested it... I'm committing it so Ron
can have it.  Should not effect anything that currently works.

base/inifile.cc:
base/inifile.hh:
    Add sectionExists() method so you can query whether a section exists
    without knowing any of the entry names that would be in it.
sim/serialize.cc:
sim/serialize.hh:
    Add Checkpoint::sectionExists() (pass through to IniFile).

--HG--
extra : convert_revision : 905db122afdfe55946ab8493ccac0b1e715bc7c6
2003-11-02 21:49:15 -08:00
Nathan Binkert
667cbb6690 Implement more m5 pseduo opcodes:
resetstats
dumpstats
dumpresetstats
m5checkpoint

Lots of cleanup of serialization and stats dumping/resetting to
work with these new instructions

arch/alpha/isa_desc:
    Implement more m5 pseduo opcodes:
    resetstats
    dumpstats
    dumpresetstats
    m5checkpoint

    All of these functions take two optional parameters, the first is a delay,
    and the second is a period.  The delay tells the simulator to wait the
    specified number of nanoseconds before triggering the event, the period
    tells the simulator to repeat the event with a specified frequency
base/statistics.cc:
base/statistics.hh:
    regReset RegResetCallback
dev/disk_image.cc:
    serializeFilename -> CheckpointFile()
sim/debug.cc:
    Move this debugging statement to sim_stats.cc
sim/eventq.cc:
    Don't AutoDelete an event if it is scheduled since the process()
    function could potentially schedule the event again.
sim/main.cc:
    DumpStatsEvent is now Statistics::SetupEvent(Dump, curTick)
sim/serialize.cc:
    Change the serialize event so that it's possible to cause the
    event to repeat.  Also make the priority such that the event
    happens just before the simulator would exit if both events
    were scheduled for the same cycle.

    get rid of the serializeFilename variable and provide a CheckpointFile()
    function.  This function takes a basename that is set in the
    configuration, and appends the current cycle to the name so that
    multiple checkpoints can be dumped from the same simulation.

    Also, don't exit the simulation when a checkpoint file is dumped.
sim/serialize.hh:
    serializeFilename -> CheckpointFile()
    SetupCheckpoint function to tell the simulator to prepare
    to checkpoint at a certain time with a certain period
sim/sim_events.cc:
    DumpStatsEvent stuff gets move to sim_stats.(cc|hh)
    The context stuff gets moved into the already existing
    stats context in stat_context.cc
sim/sim_events.hh:
    DumpStatsEvent stuff gets move to sim_stats.(cc|hh)
sim/universe.cc:
    Provide some simple functions for converting times into
    ticks.  These use floating point math to get as close as
    possible to the real values.  Multipliers are set up ahead
    of time

--HG--
extra : convert_revision : d06ef26a9237529a1e5060cb1ac2dcc04d4ec252
2003-11-02 18:02:58 -05:00
Lisa Hsu
249aaff329 statistics.hh:
add enum to Bin::VectorBin

base/statistics.hh:
    add enum to Bin::VectorBin

--HG--
extra : convert_revision : a05aef30ca85bf5c0d1f5155e1dff3fb34fd7777
2003-11-01 18:17:46 -05:00
Steve Reinhardt
dc8370852f Make error messages more informative on a non-full-system fault.
base/misc.cc:
    Add curTick to panic and warn messages.
    Reformat fatal message a bit for consistency.

--HG--
extra : convert_revision : 171da2fe6ca5e25982058ee1af67473292659103
2003-11-01 10:59:06 -08:00
Nathan Binkert
166def1f56 Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/.automount/zans/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : 3134761fa4c572a672558dfb6f9252aaef7b7062
2003-10-31 18:28:05 -05:00
Nathan Binkert
5341e1aa9e Make the to_number function work better.
base/str.cc:
    Make some fixes for the to_number function.
    Fix overflow calculation for maximum decimal value.
    (Note: minimum decimal value for signed numbers does not
    work correctly, e.g. it will overflow on -128 for a signed char
    though -127 will work)
    Fix overflow calculation for hex values being converted into
    signed types
    Fix up the debugging stuff a little to make sure the values are
    always printed as numbers.
test/strnumtest.cc:
    using namespace std for g++ 3

--HG--
extra : convert_revision : b00bb1296c85c3d64d8864283c9374e1563bfa31
2003-10-31 18:27:17 -05:00
Lisa Hsu
b5fc3af142 I forgot - also to typedef the default type of bin choice given to every visible stat type (NoBin or BinType). this way a little #define does it all for you.
statistics.hh:
add #includes needed for CeilPow2
statistics.cc:
rm unneeded #includes for CeilPow2

base/statistics.cc:
    rm unneeded #includes for CeilPow2
base/statistics.hh:
    add #includes needed for CeilPow2

--HG--
extra : convert_revision : 818028b276e97735a8b8d21d6514f41a80350514
2003-10-31 00:23:53 -05:00
Lisa Hsu
a5356bd75f statistics.hh:
oops - remove a debug printf

base/statistics.hh:
    oops - remove a debug printf

--HG--
extra : convert_revision : a6ecab93f79ce0a5cb6ff129750d8f6a2de8d38c
2003-10-30 19:20:18 -05:00
Lisa Hsu
2c451a0ad4 Make some general changes to stats package where things either could have been better or were just plain wrong.
statistics.hh:
fix a bug in binning that made bins a fixed size no matter what.  add GenBin class that is public but not templatized.
statistics.cc:
change map to statMap so others can use the map<> token without needing ::.  also, add a level of GenBin that is public base class for StatBin<>.

base/statistics.cc:
    change map to statMap so others can use the map<> token without needing ::.  also, add a level of GenBin that is public base class for StatBin<>.
base/statistics.hh:
    fix a bug in binning that made bins a fixed size no matter what.  add GenBin class that is public but not templatized.

--HG--
extra : convert_revision : 6976a891e414c9515cc5a613157f7cb86ef89008
2003-10-30 19:18:53 -05:00
Steve Raasch
9dac0d3c56 Add support for serialization
--HG--
extra : convert_revision : ff6c93ee2f4e6aeb5a824958c52f62d6c2a1cdfd
2003-10-30 15:15:27 -05:00
Steve Raasch
101aa8090a Add support for serialization
base/pollevent.hh:
    Add queued() member function to indicate if this event has been queued

--HG--
extra : convert_revision : bebb04dc8e10c1043e55e0036806bd1ca4fec167
2003-10-30 11:47:21 -05:00
Steve Reinhardt
2f8d858e13 Get rid of lots of obsolete mentions of stat_sdb_t.
base/predictor.hh:
base/sat_counter.hh:
sim/param.hh:
    Get rid of spurious references to stat_sdb_t.

--HG--
extra : convert_revision : 0018a940c69b6e31b85fd85354b9d5ce2fd0aa6f
2003-10-29 22:22:03 -08:00
Erik Hallnor
5c8423b5dd Clear up doxygen warnings and serialize ScsiCtrl. We probably shouldn't decfine functions using type defs ala "RegFile" instead of "AlphaISA::RegFile".
base/inifile.hh:
    Document findAppend

--HG--
extra : convert_revision : ab5047590b3ca2a9126b75351e4902d300b5b5ad
2003-10-29 16:25:08 -05:00
Nathan Binkert
13bcf233f1 Add an append= keyword that works in a somewhat similar way to
default=.  In the append= case, when looking up an entry, it also
looks in the section named by the append= for something to append
to the entry

--HG--
extra : convert_revision : b51915094ad3ca151d7f241c29e19b6b29d3a3c0
2003-10-26 22:42:45 -05:00
Nathan Binkert
ff7b6892bc Add the directory where the ini file was found into the #include
search path

--HG--
extra : convert_revision : 9a6bceb931613b718bf5a561b354ba9ccb847a78
2003-10-25 18:19:32 -04:00
Steve Reinhardt
f5da73b688 Initial support for CPU switching. New SamplingCPU object encompasses a set
of CPUs that get switched round-robin (though currently we're only shooting for
two CPUs and one switch event, and even that doesn't quite work yet).  Registration
of ExecContexts with System/Process object factored out so we can create two CPUs
but only register one of them at a time.  Also worked at making behavior and naming
in System and Process objects more consistent.

arch/alpha/ev5.cc:
    Rename ipr_init to initIPRs and get rid of unused mem arg.
arch/alpha/fake_syscall.cc:
    Process:numCpus is now a function (not a data member).
base/remote_gdb.hh:
    Support for ExecContext switching.
cpu/base_cpu.cc:
cpu/base_cpu.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.hh:
    Support for ExecContext switching.
    Renamed contexts array to execContexts to be consistent with Process.
    CPU ID now auto-assigned by system object.
cpu/simple_cpu/simple_cpu.cc:
    Support for ExecContext switching.
    Renamed contexts array to execContexts to be consistent with Process.
    CPU ID now auto-assigned by system object.
    Cleaned up MP full-system initialization a bit.
dev/alpha_console.cc:
    Renamed xcvec array to execContexts to be consistent with Process.
kern/tru64/tru64_system.cc:
kern/tru64/tru64_system.hh:
    Support for ExecContext switching.
    CPU ID now auto-assigned by system object.
sim/prog.cc:
sim/prog.hh:
    Support for ExecContext switching.
    Process:numCpus is now a function (not a data member).
sim/system.cc:
sim/system.hh:
    Support for ExecContext switching.
    Renamed xcvec array to execContexts to be consistent with Process.

--HG--
extra : convert_revision : 79649cffad5bf3e83de8df44236941907926d791
2003-10-23 19:07:52 -07:00
Steve Reinhardt
73b050a541 Minor stats fix.
base/statistics.cc:
    Small fix: don't exit early out of dist when nozero is set and a zero val is found.

--HG--
extra : convert_revision : 95ba3328c8a79f05f4c821d99071dba10f013ad6
2003-10-23 18:53:16 -07:00
Steve Reinhardt
21c7ee1e3e Print error message when we can't parse a .ini assignment line.
--HG--
extra : convert_revision : b7e19ff42ddd9a21571e086c11e143d9290e0e38
2003-10-23 18:51:12 -07:00
Lisa Hsu
da62ad294e statistics.cc:
change printf to be printed only when something is binned so regression doesn't freak out.

base/statistics.cc:
    change printf to be printed only when something is binned so regression doesn't freak out.

--HG--
extra : convert_revision : cb60128fc3ab605aa7e915c7c7512cf93b156c96
2003-10-22 09:45:39 -04:00
Lisa Hsu
8a49c33064 statistics.hh:
forgot to doxygen comment binned()

base/statistics.hh:
    forgot to doxygen comment binned()

--HG--
extra : convert_revision : 7e414a3291e49b7b92bcbfec18470c3ec8671a35
2003-10-22 02:02:00 -04:00
Lisa Hsu
c6cc6f892c Merge zizzer:/bk/m5 into zower.eecs.umich.edu:/z/hsul/bk/m5
--HG--
extra : convert_revision : 8658302b64207390b03f9fe133ad722a1417e022
2003-10-22 01:05:00 -04:00
Lisa Hsu
ffd083b8da Automerge
--HG--
extra : convert_revision : d14536880d6f55d4304c0bab1fa08a5121bd1846
2003-10-22 00:30:04 -04:00
Lisa Hsu
a2c87bfdf2 nate's reset stuff merged with my work on bin printing.
--HG--
extra : convert_revision : 438c94c90bfb3caffec461ad2c14b266cdf61494
2003-10-22 00:29:45 -04:00
Steve Reinhardt
5159241db7 New ini-file feature: += appends RHS to LHS.
Added doxygen comments to inifile.hh.
Updated initest.  Some other minor cleanup.

base/inifile.cc:
    Add support for '+=' append operation.
    Factor common code from IniFile::load() and IniFile::add() into new Section::add().
    Rename ConfigTable to SectionTable (more descriptive).
    Fix bug in Section::dump().
base/inifile.hh:
    Add doxygen comments.
    Add support for '+=' append operation.
    Factor common code from IniFile::load() and IniFile::add() into new Section::add().
    Rename ConfigTable to SectionTable (more descriptive).
test/Makefile:
    initest needs cprintf.o now.
test/foo.ini:
    Add test of '+=' operator.
test/initest.cc:
    Bring this up-to-date.  Steal main loop from main.cc so we can test
    multiple .ini files and command-line assignments too.

--HG--
extra : convert_revision : 982521677fbf464e93aa93798ff7d9611826f17c
2003-10-21 21:24:34 -07:00
Lisa Hsu
66f115a2df statistics.hh:
same - bin printing
statistics.cc:
printing of bins!  now all the nice binning functionality is actually useful cuz you can see the data it so nicely took.  this prints out only the individual bin values.  totals to come.
statistics.hh:
add a binned() function to each stat so that at print time, we can know if it's binned in order to print it right.

base/statistics.hh:
    add a binned() function to each stat so that at print time, we can know if it's binned in order to print it right.
base/statistics.cc:
    printing of bins!  now all the nice binning functionality is actually useful cuz you can see the data it so nicely took.  this prints out only the individual bin values.  totals to come.
base/statistics.hh:
    same - bin printing

--HG--
extra : convert_revision : 09df9aae62b0e522230ee6bedcb51079346735a4
2003-10-21 23:56:31 -04:00
Lisa Hsu
ede195161b statistics.hh:
fix up some very ambiguous doxygen comments about Formulas

base/statistics.hh:
    fix up some very ambiguous comments about Formulas

--HG--
extra : convert_revision : ad8d9579fd1933397590c78111bec7c0d19b0e14
2003-10-21 23:17:55 -04:00
Lisa Hsu
ae232a883a Merge zizzer:/bk/m5 into zower.eecs.umich.edu:/z/hsul/bk/clean
--HG--
extra : convert_revision : d639282e403cb085c452223a76cec31933a529aa
2003-10-21 15:45:56 -04:00
Lisa Hsu
f600ac613e statistics.hh:
change VectorDistProxy name to DistProxy - to be more consistent with other proxy namings.

base/statistics.hh:
    change VectorDistProxy name to DistProxy - to be more consistent with other proxy namings.

--HG--
extra : convert_revision : c470c93cf598506be56312db52f6c528c213a149
2003-10-21 15:45:48 -04:00
Nathan Binkert
02bacb2dfd Implement reset for stats.
base/statistics.cc:
base/statistics.hh:
    Implement a reset for for the statistics package.
    This will cause all stats to be set to their default value.
    Only the currently enabled bin will be reset.
test/Makefile:
    Make tests work again now that we're naming include dirs
    explicitly
test/stattest.cc:
    test reset

--HG--
extra : convert_revision : 8d21cedf6ee91ed0a2412042ea5cb12f79b90eb3
2003-10-20 23:08:27 -04:00
Nathan Binkert
df488c0e70 Clean up callbacks
base/callback.hh:
    Don't remove a callback when it is processed.
    Document the callback class

--HG--
extra : convert_revision : 9d15500434fe0e5d623c624aac86976708adf0eb
2003-10-20 21:38:32 -04:00
Steve Reinhardt
f951b00d89 Get rid of obsolete code, most of it '#if 0'ed anyway.
Mostly vestiges of Dave's long-gone instruction prefetching stuff.

arch/alpha/isa_traits.hh:
    Delete unused extractInstructionPrefetchTarget().
base/inifile.cc:
    Delete '#if 0' code
cpu/base_cpu.hh:
    Delete unused filterThisInstructionPrefetch() function.
cpu/exetrace.hh:
    Delete '#if 0' code (obsolete flags).

--HG--
extra : convert_revision : c8317f56ba0a0e568daa785825ee938584987bed
2003-10-19 17:30:26 -07:00
Erik Hallnor
c093f29f6b Clear up the last of the Doxygen warnings
base/statistics.hh:
    Document the friend class because doxygen can't handle the template instantiation.
kern/tru64/dump_mbuf.cc:
kern/tru64/dump_mbuf.hh:
kern/tru64/printf.cc:
kern/tru64/printf.hh:
kern/tru64/tru64_events.cc:
    Change namespace from Tru64 to tru64 (There is a class Tru64, and it was confusing doxygen).

--HG--
extra : convert_revision : 9644b1324814952cb6a2d98fd2ab4d07f0860b45
2003-10-16 17:56:16 -04:00
Erik Hallnor
1f3f180b95 Need to cast to avoid infinite recursion.
--HG--
extra : convert_revision : 1c2faba65e1112f0972bae330cbde4a563429b73
2003-10-15 17:36:10 -04:00
Nathan Binkert
8dd080032b Global whitespace fixes
Mainly removing whitespace at the end of lines.
This will reduce future diffs/conflicts.
Also adding a space after if, while, and for

This was all accomplished with:
#!/usr/bin/perl -pi~
s/[ 	]+$//;           # there is a space and a tab in the brackets
s/if\(/if (/g;
s/for\(/for (/g;
s/while\(/while (/g;

arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/arguments.hh:
arch/alpha/ev5.cc:
arch/alpha/fake_syscall.cc:
arch/alpha/isa_traits.hh:
arch/alpha/vtophys.cc:
base/cprintf.cc:
base/cprintf.hh:
base/cprintf_formats.hh:
base/dbl_list.hh:
base/fast_alloc.cc:
base/fast_alloc.hh:
base/hybrid_pred.cc:
base/hybrid_pred.hh:
base/inet.cc:
base/inifile.cc:
base/intmath.cc:
base/intmath.hh:
base/misc.cc:
base/mod_num.hh:
base/pollevent.cc:
base/random.cc:
base/random.hh:
base/range.hh:
base/refcnt.hh:
base/remote_gdb.cc:
base/remote_gdb.hh:
base/res_list.hh:
base/sat_counter.cc:
base/sat_counter.hh:
base/sched_list.hh:
base/compression/lzss_compression.cc:
base/compression/lzss_compression.hh:
base/compression/null_compression.hh:
base/loader/coff_sym.h:
base/loader/coff_symconst.h:
base/loader/ecoff_object.cc:
base/loader/object_file.cc:
base/loader/object_file.hh:
base/loader/symtab.cc:
base/loader/symtab.hh:
base/socket.cc:
base/statistics.cc:
base/statistics.hh:
base/str.cc:
base/str.hh:
base/trace.cc:
base/trace.hh:
cpu/base_cpu.cc:
cpu/base_cpu.hh:
cpu/exec_context.hh:
cpu/exetrace.cc:
cpu/intr_control.hh:
cpu/pc_event.cc:
cpu/pc_event.hh:
cpu/static_inst.hh:
cpu/full_cpu/op_class.hh:
cpu/full_cpu/smt.hh:
cpu/memtest/memtest.cc:
cpu/memtest/memtest.hh:
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherdump.cc:
dev/etherint.cc:
dev/etherlink.cc:
dev/etherlink.hh:
dev/ethertap.cc:
dev/pcireg.h:
docs/stl.hh:
kern/tru64/dump_mbuf.cc:
kern/tru64/printf.cc:
kern/tru64/tru64_events.cc:
kern/tru64/tru64_system.cc:
kern/tru64/tru64_system.hh:
sim/debug.cc:
sim/eventq.cc:
sim/eventq.hh:
sim/host.hh:
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/prog.cc:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_events.cc:
sim/sim_object.cc:
sim/sim_time.cc:
sim/sim_time.hh:
sim/system.cc:
test/bitvectest.cc:
test/circletest.cc:
test/initest.cc:
test/lru_test.cc:
test/nmtest.cc:
test/offtest.cc:
test/sized_test.cc:
test/stattest.cc:
test/symtest.cc:
util/tap/tap.cc:
util/term/term.c:
    formatting fixes

--HG--
extra : convert_revision : 01e6dbc9615c5d0e923502b8410a416c0434cdf6
2003-10-15 16:39:37 -04:00
Nathan Binkert
722f9bc3c8 Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zans.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : d5ba96b559be93774e82692099675b6d1f525221
2003-10-14 18:04:28 -04:00
Nathan Binkert
f8d850195b try to get everything to compile correctly again
base/intmath.hh:
    Don't return -1 in FloorLog2.  That's wierd.  Assert instead.
    If you care about this, you should check for zero yourself.
    Create seprate versions for uint32_t, uint64_t, int32_t, and
    int64_t.  signed vs unsigned so that error checking can be done
    correctly.  32 vs 64 for speed.
    Finally, fix a little bug in CeilLog2 that will make it return
    the correct result for 1.
kern/tru64/tru64_events.cc:
    fix #includes

--HG--
extra : convert_revision : c47915fc417fdc194a5561949a5366ffb266e693
2003-10-14 18:04:20 -04:00
Steve Raasch
acf025a463 Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/y/sraasch/m5

--HG--
extra : convert_revision : 022364d1e5bf2f3b004ba75164580c1a821b16a5
2003-10-14 17:06:05 -04:00
Steve Raasch
8be145a42f Fixes for the new stats in SegmentedIQ
base/statistics.hh:
    Put a commented-out #define for STAT_DEBUG

--HG--
extra : convert_revision : 7c2decc9dac7c3c9d867461d2e0f1970f3ca0733
2003-10-14 17:05:42 -04:00
Nathan Binkert
638a07d15a Merge
cpu/pc_event.cc:
    SCCS merged

--HG--
extra : convert_revision : f7046f2bf6053be9b00150390fabe3d4f82b0981
2003-10-14 16:53:52 -04:00
Erik Hallnor
7755f825d4 Merge ehallnor@zizzer:/bk/m5
into zizzer.eecs.umich.edu:/y/ehallnor/work/m5

--HG--
extra : convert_revision : 25b46c6ff1be6ea339dcaccce2f2987e4ea0f484
2003-10-14 13:29:20 -04:00
Erik Hallnor
118f5da7f8 hostinfo.cc:
Trial fix, uint64_T > long

base/hostinfo.cc:
    Trial fix, uint64_T > long

--HG--
extra : convert_revision : cc039420980f1bf29074a20ccea3b9a3afe99f22
2003-10-14 13:29:12 -04:00
Nathan Binkert
4759c203c7 Remove all of the Tru64 specific stuff from the base System object
into its own Tru64System object.  Also remove the System builder
stuff and create a Tru64System builder.  This makes it much
simpler to support more operating systems.

arch/alpha/ev5.cc:
    Each system provides its own mechanism for doing a breakpoint.
base/remote_gdb.hh:
    #include <map>
cpu/pc_event.cc:
cpu/pc_event.hh:
    Separate out System specific PCEvents
cpu/simple_cpu/simple_cpu.cc:
    each system provides its own init script
kern/tru64/dump_mbuf.cc:
kern/tru64/printf.cc:
    Stick this in a namespace

--HG--
extra : convert_revision : 9f74527ed2ff8010431d9aff34357aaecc1fb3f6
2003-10-14 12:19:59 -04:00
Nathan Binkert
8296fae15b small fixes
base/hostinfo.cc:
    Since we're talking about a u_int64, use %lld.
    Maybe this should be converted using toNumber in the future.

--HG--
extra : convert_revision : f2ae97585d3009c380553313129dfdd212d6716b
2003-10-14 08:57:54 -04:00
Erik Hallnor
af35f423ba Since I seem to be bug compatible with the head I'm going to commit.
There is still one documentation warning in the stat code, probably a
doxygen error.

base/statistics.cc:
    Added documentation to SubData and StatData.
base/statistics.hh:
    Documented most of the basic stats (storage, implemenation) and all of the
    visible stats. There is more to be documented, but I'm going crazy now.

    Also fixed the DistStor::zero() function to meet the semantics of the other ones.

--HG--
extra : convert_revision : f80b3075a3298cbded059be8125b7fc7b77020a9
2003-10-14 01:20:26 -04:00
Nathan Binkert
b177f696ff Try to get the correct license on various files
remove stuff that is ambiguous
Clean up code a bit

arch/alpha/aout_machdep.h:
    Add M5 License
docs/stl.hh:
    M5 license
base/remote_gdb.cc:
    Most of this is mine, so stick in the m5 license
dev/console.hh:
    Clean up comments
    merge simple() and out() into one function.
dev/console.hh:
dev/console.cc:
    m5 license
dev/console.cc:
    merge simple and out.
    remove dead code
dev/console.cc:
    Remove comments that weren't mine.
    Clean up code
dev/console.hh:
    update names
dev/alpha_console.cc:
    use new interface

--HG--
extra : convert_revision : 3cd2357e1525db43c2ef9e89a9b47a47861d6af9
2003-10-13 02:00:47 -04:00
Erik Hallnor
025ab84ed7 Merge ehallnor@zizzer:/bk/m5
into zizzer.eecs.umich.edu:/y/ehallnor/work/m5

--HG--
extra : convert_revision : 84ba90689683c41988ef89a8bb787e9a6620b668
2003-10-10 23:23:44 -04:00
Erik Hallnor
d6a5a622a5 Fully Document Statistics::Detail::Stat. More to follow.
--HG--
extra : convert_revision : 29983a074ab367a88995f0aa231019ff0a7c644e
2003-10-10 23:23:30 -04:00
Nathan Binkert
b61ec9773a Make things work on OpenBSD again
sim/sim_time.cc:
    make this work in OpenBSD
sim/sim_time.hh:
    timeval is defined in sys/time.h
base/remote_gdb.cc:
    need to include <cstdio> for sprintf

--HG--
extra : convert_revision : a230aa691bb798c37243fe4253399b2e40a2d12d
2003-10-10 22:59:51 -04:00
Nathan Binkert
6770411543 fix includes
base/statistics.hh:
    need to use explicit path for #includes

--HG--
extra : convert_revision : da51315ee283746636957f5f506d7715ed52764d
2003-10-10 21:17:06 -04:00
Lisa Hsu
86c8eb7b9f statistics.hh:
Grouped the Visible Stats Types and commented them.

base/statistics.hh:
    Grouped the Visible Stats Types and commented them.

--HG--
extra : convert_revision : b5ef457a8c3f26ce5d614e3517bb0a5a4e063202
2003-10-10 15:58:56 -04:00
Steve Reinhardt
25693e9e69 Make include paths explicit and update makefile accordingly.
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/fake_syscall.cc:
arch/alpha/faults.cc:
arch/alpha/isa_desc:
arch/alpha/isa_traits.hh:
arch/alpha/osfpal.cc:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/circlebuf.cc:
base/compression/lzss_compression.cc:
base/compression/lzss_compression.hh:
base/cprintf.cc:
base/cprintf.hh:
base/fast_alloc.cc:
base/fifo_buffer.cc:
base/fifo_buffer.hh:
base/hashmap.hh:
base/hostinfo.cc:
base/hostinfo.hh:
base/hybrid_pred.cc:
base/hybrid_pred.hh:
base/inet.cc:
base/inet.hh:
base/inifile.cc:
base/inifile.hh:
base/intmath.cc:
base/loader/aout_object.cc:
base/loader/aout_object.hh:
base/loader/ecoff_object.cc:
base/loader/ecoff_object.hh:
base/loader/elf_object.cc:
base/loader/elf_object.hh:
base/loader/exec_aout.h:
base/loader/exec_ecoff.h:
base/loader/object_file.cc:
base/loader/object_file.hh:
base/loader/symtab.cc:
base/loader/symtab.hh:
base/misc.cc:
base/misc.hh:
base/pollevent.cc:
base/pollevent.hh:
base/random.cc:
base/random.hh:
base/range.hh:
base/remote_gdb.cc:
base/remote_gdb.hh:
base/res_list.hh:
base/sat_counter.cc:
base/sat_counter.hh:
base/sched_list.hh:
base/socket.cc:
base/statistics.cc:
base/statistics.hh:
base/str.cc:
base/trace.cc:
base/trace.hh:
cpu/base_cpu.cc:
cpu/base_cpu.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/exetrace.cc:
cpu/exetrace.hh:
cpu/intr_control.cc:
cpu/intr_control.hh:
cpu/memtest/memtest.cc:
cpu/memtest/memtest.hh:
cpu/pc_event.cc:
cpu/pc_event.hh:
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
cpu/static_inst.cc:
cpu/static_inst.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.cc:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
sim/debug.cc:
sim/eventq.cc:
sim/eventq.hh:
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/prog.cc:
sim/prog.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_events.cc:
sim/sim_events.hh:
sim/sim_object.cc:
sim/sim_object.hh:
sim/sim_time.cc:
sim/system.cc:
sim/system.hh:
sim/universe.cc:
test/circletest.cc:
test/cprintftest.cc:
test/initest.cc:
test/nmtest.cc:
test/offtest.cc:
test/paramtest.cc:
test/rangetest.cc:
test/stattest.cc:
test/strnumtest.cc:
test/symtest.cc:
test/tokentest.cc:
test/tracetest.cc:
util/tap/tap.cc:
    Make include paths explicit.

--HG--
extra : convert_revision : 941cbdc591fd4d3d1d9f095cd58fc23dd2d73840
2003-10-10 11:09:00 -07:00
Steve Reinhardt
52b31ea0a6 File moves for the reorg. Tree is in broken state until I commit the makefile and
#include changes.

--HG--
rename : sim/cache/lzss_compression.cc => base/compression/lzss_compression.cc
rename : sim/cache/lzss_compression.hh => base/compression/lzss_compression.hh
rename : sim/cache/null_compression.hh => base/compression/null_compression.hh
rename : sim/hybrid_pred.cc => base/hybrid_pred.cc
rename : sim/hybrid_pred.hh => base/hybrid_pred.hh
rename : base/aout_object.cc => base/loader/aout_object.cc
rename : base/aout_object.hh => base/loader/aout_object.hh
rename : base/coff_sym.h => base/loader/coff_sym.h
rename : base/coff_symconst.h => base/loader/coff_symconst.h
rename : base/ecoff_object.cc => base/loader/ecoff_object.cc
rename : base/ecoff_object.hh => base/loader/ecoff_object.hh
rename : base/elf_object.cc => base/loader/elf_object.cc
rename : base/elf_object.hh => base/loader/elf_object.hh
rename : base/exec_aout.h => base/loader/exec_aout.h
rename : base/exec_ecoff.h => base/loader/exec_ecoff.h
rename : base/object_file.cc => base/loader/object_file.cc
rename : base/object_file.hh => base/loader/object_file.hh
rename : base/symtab.cc => base/loader/symtab.cc
rename : base/symtab.hh => base/loader/symtab.hh
rename : sim/predictor.hh => base/predictor.hh
rename : sim/sat_counter.cc => base/sat_counter.cc
rename : sim/sat_counter.hh => base/sat_counter.hh
rename : sim/base_cpu.cc => cpu/base_cpu.cc
rename : sim/base_cpu.hh => cpu/base_cpu.hh
rename : sim/exec_context.cc => cpu/exec_context.cc
rename : sim/exec_context.hh => cpu/exec_context.hh
rename : sim/exetrace.cc => cpu/exetrace.cc
rename : sim/exetrace.hh => cpu/exetrace.hh
rename : sim/op_class.hh => cpu/full_cpu/op_class.hh
rename : sim/smt.hh => cpu/full_cpu/smt.hh
rename : sim/inst_seq.hh => cpu/inst_seq.hh
rename : sim/intr_control.cc => cpu/intr_control.cc
rename : sim/intr_control.hh => cpu/intr_control.hh
rename : sim/memtest.cc => cpu/memtest/memtest.cc
rename : sim/memtest.hh => cpu/memtest/memtest.hh
rename : sim/pc_event.cc => cpu/pc_event.cc
rename : sim/pc_event.hh => cpu/pc_event.hh
rename : sim/simple_cpu.cc => cpu/simple_cpu/simple_cpu.cc
rename : sim/simple_cpu.hh => cpu/simple_cpu/simple_cpu.hh
rename : sim/static_inst.cc => cpu/static_inst.cc
rename : sim/static_inst.hh => cpu/static_inst.hh
extra : convert_revision : 05bd41acb2a424f1a38609fd4ac6df681bb479d6
2003-10-10 09:57:26 -07:00
Nathan Binkert
f4e2b3fa77 Stop using omisc.h and move relevant functions to better places
while converting them to C++

base/intmath.hh:
    Add some functions that were previously defined elsewhere in C
base/misc.cc:
    Use the C++ version of memUsage, and sort #includes
sim/prog.cc:
    Stop using the old macro versions of various functions and use
    the new ones defined in intmath.hh
sim/sim_events.cc:
    Stop using the old C versions of various functions and use
    the new ones defined in hostinfo.hh

--HG--
extra : convert_revision : 15d1f24d2aff4254c745eea6070cb230dd37b8d2
2003-10-10 09:53:16 -04:00
Nathan Binkert
1092515e65 Rename intmath.h to intmath.hh
clean up the formatting
make things use templates since this is C++ now.

base/circlebuf.cc:
base/intmath.cc:
base/intmath.hh:
base/range.hh:
base/remote_gdb.cc:
base/statistics.cc:
base/str.cc:
    intmath.h -> intmath.hh
base/intmath.hh:
    Make this more like C++ by templatizing these functions

--HG--
rename : base/intmath.h => base/intmath.hh
extra : convert_revision : 8f9b14de9db751b1bd78588c51613d77afd96989
2003-10-10 09:44:49 -04:00
Steve Reinhardt
a56b6caca9 Rename std_types.hh to the much more descriptive inst_seq.hh
base/res_list.hh:
    Don't need to include std_types.hh
sim/exetrace.hh:
    Rename std_types.hh to inst_seq.hh

--HG--
rename : sim/std_types.hh => sim/inst_seq.hh
extra : convert_revision : 23698c9a83f1c19a6df8fa6f266ff4d8949a6cd9
2003-10-08 22:29:27 -07:00
Steve Reinhardt
34af922d76 Really only need one set of fifo_buffer.hh,cc files (not two!). Merge the best of both.
base/fifo_buffer.cc:
base/fifo_buffer.hh:
    style

--HG--
extra : convert_revision : 829a36362dd8ba9ae92ca5e3f7381eb5b300c964
2003-10-08 22:12:01 -07:00
Steve Reinhardt
e475dba424 New loader structure. Expand Nate's ObjectFile to automatically detect file formats
and generate an appropriate child object, which knows how to load its text & data into memory
(and symbols, for ecoff only at this point).  Ecoff format supports Tru64 binaries, kernel, and
console.  A.out format is used by PAL code.  Elf support is there and appears to work for
Alpha/Linux binaries, but awaits a Linux syscall emulation layer before further testing.

arch/alpha/ecoff_machdep.h:
base/coff_sym.h:
base/coff_symconst.h:
base/exec_ecoff.h:
    Add Id string & provenance comment, clean up types
base/object_file.cc:
base/object_file.hh:
    Add auto format detection and text/data loading.
sim/prog.cc:
    Moved binary loading & stack setup here (was in arch/alpha/loader.cc).  Some of this is
    platform-dependent, but I think most of it is not.  We'll factor out the platform-dependent
    parts when the need arises.
sim/prog.hh:
    Get rid of unused environ_base field.
sim/system.cc:
    Use new ObjectFile loader structure for console, kernel, & palcode.

--HG--
extra : convert_revision : 8eae509bf71cf204bc3ec78c68699cfd01baed97
2003-10-07 23:13:01 -07:00
Steve Raasch
92638f9a65 Import changeset
Doxyfile:
LICENSE:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/fake_syscall.cc:
arch/alpha/faults.cc:
arch/alpha/faults.hh:
arch/alpha/isa_desc:
arch/alpha/isa_traits.hh:
arch/alpha/osfpal.cc:
arch/alpha/osfpal.hh:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
arch/isa_parser.py:
base/bitfield.hh:
base/callback.hh:
base/circlebuf.cc:
base/circlebuf.hh:
base/cprintf.cc:
base/cprintf.hh:
base/cprintf_formats.hh:
base/date.cc:
base/dbl_list.hh:
base/endian.hh:
base/fast_alloc.cc:
base/fast_alloc.hh:
base/fifo_buffer.cc:
base/fifo_buffer.hh:
base/hashmap.hh:
base/inet.cc:
base/inet.hh:
base/inifile.cc:
base/inifile.hh:
base/intmath.cc:
base/intmath.h:
base/kgdb.h:
base/misc.cc:
base/misc.hh:
base/mod_num.hh:
base/object_file.cc:
base/object_file.hh:
base/pollevent.cc:
base/pollevent.hh:
base/random.cc:
base/random.hh:
base/range.hh:
base/refcnt.hh:
base/remote_gdb.cc:
base/remote_gdb.hh:
base/res_list.hh:
base/sched_list.hh:
base/socket.cc:
base/socket.hh:
base/statistics.cc:
base/statistics.hh:
base/str.cc:
base/str.hh:
base/symtab.cc:
base/symtab.hh:
base/trace.cc:
base/trace.hh:
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.cc:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/pcireg.h:
dev/simple_disk.cc:
dev/simple_disk.hh:
kern/tru64/tru64.hh:
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
sim/async.hh:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/cache/lzss_compression.cc:
sim/cache/lzss_compression.hh:
sim/cache/null_compression.hh:
sim/debug.cc:
sim/debug.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/host.hh:
sim/hybrid_pred.cc:
sim/hybrid_pred.hh:
sim/intr_control.cc:
sim/intr_control.hh:
sim/main.cc:
sim/memtest.cc:
sim/memtest.hh:
sim/op_class.hh:
sim/param.cc:
sim/param.hh:
sim/pc_event.cc:
sim/pc_event.hh:
sim/predictor.hh:
sim/prog.cc:
sim/prog.hh:
sim/sat_counter.cc:
sim/sat_counter.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_events.cc:
sim/sim_events.hh:
sim/sim_exit.hh:
sim/sim_object.cc:
sim/sim_object.hh:
sim/sim_time.cc:
sim/sim_time.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/smt.hh:
sim/static_inst.cc:
sim/static_inst.hh:
sim/std_types.hh:
sim/system.cc:
sim/system.hh:
sim/universe.cc:
test/Makefile:
test/bitvectest.cc:
test/circletest.cc:
test/cprintftest.cc:
test/foo.ini:
test/initest.cc:
test/initest.ini:
test/lru_test.cc:
test/nmtest.cc:
test/offtest.cc:
test/paramtest.cc:
test/rangetest.cc:
test/sized_test.cc:
test/stattest.cc:
test/strnumtest.cc:
test/symtest.cc:
test/tokentest.cc:
test/tracetest.cc:
util/rundiff:
util/tap/Makefile:
util/tap/tap.cc:
util/term/Makefile:
util/term/term.c:
    RCS to BitKeeper
sim/main.cc:
    Initial revision
sim/main.cc:
    Added base SMT support to SS3 distribution
sim/main.cc:
    Corrected statistics in sim-smt
    Added "cnt_*" statistics to sim-smt and sim-outorder
    Added execution tracing to sim-outorder
sim/main.cc:
    Numerous minor fixes.
    Implemented Ideal and Random fetch policies.
    Numerous new statistics.
sim/main.cc:
    A few minor bug fixes to collapsing RUU & "ideal" fetch policy.
sim/main.cc:
    Snapshot of MICRO99 work in progress.  Lots of SMT stuff, EIO fixes, etc.
sim/main.cc:

    -> New fetch stage:
    - Fetch a block at a time
    - Execute in fetch
    -> Removed execute from ruu_dispatch()
    -> Cleaned up
sim/main.cc:
    Added build time-stamp to top of simulation log
sim/main.cc:
    Corrected error in priority rotation routine
    Added -max:mult option
    Modified makefile to use egcs compiler
    Added the -t option bkdwn.pl
sim/main.cc:
    Added memory usage display
    Fixed #define for number of RS_LINKs
sim/main.cc:
    Should be able to build other simulators (sim-fast, sim-eio, etc.) using
    "make -f Makefile.orig" (for Alpha at least, not quite for PISA).
sim/main.cc:
    More SMT vs. non-SMT cleanup: 'make sim-X' now works for most X.
sim/main.cc:
    Changed function of Fetch/Decode/Dispatch pipe:
    a) Fetch only if room in fetch queue
    b) Decode only if pipe advanced as a result of dispatching a packet
    c) Dispatch a packet only if:
    1) Room for all insns in RUU
    2) Room for all insns in LSQ
    3) Room for all insns in INT Register File
    4) Room for all insns in FP Register File
    Added ROB structure
    a) Instruction is placed in RUU & ROB at dispatch
    b) Instruction is removed from RUU at writeback (except stores)
    c) Instruction is removed from ROB at commit
    Added support for counting physical register usage (INT and FP)
    a) subtract from "free" count at dispatch
    b) add back when instruction is removed from ROB
    Added "my_index" field to RUU_station (simplifies reverse-lookups)
    Removed all remaining ptrace stuff
    RUU & LSQ now dump squashed instructions instead of marking them squashed
    - No cost!
    Reworked commit stage to use ROB instea
sim/main.cc:
    - Added sc_dist1 stat type as a user-transparent special case of distribution
    with unit-size buckets: saves an unnecessary divide on every sample
    - Minor changes to compile as C++ code
base/fast_alloc.cc:
base/fast_alloc.hh:
    Major reorganization.  Split sim-smt.c into multiple files, compile with C++,
    split ROB & RUU structures, numerous small formatting and performance changes.
sim/eventq.cc:
sim/eventq.hh:
    - Replaced SimpleScalar event queue code with smt_eventq.{cc,hh}
    - Eliminated unused cache:flush option
    - Initialize bpred history regs and BTB and RAS entries to provide
    repeatable results
    - Added reset_spec_state() function: cleans up interface to spec_state.c
sim/eventq.cc:
sim/eventq.hh:
    Major reorganization of memory-system code and interface.
base/fast_alloc.cc:
sim/eventq.cc:
sim/eventq.hh:
    Moved C++ files to .cc/.hh, compile C files with C compiler.
base/dbl_list.hh:
    Initial check-in: doubly-linked list template class.
sim/eventq.hh:
    Added when_created and when_scheduled time-tags for debugging
base/fast_alloc.hh:
    Plug memory leak
sim/eventq.cc:
    Runahead_Prefetch memory-system support, including miss notification
    events in cache.
sim/eventq.cc:
sim/eventq.hh:
    Merged branch "mt-frontend" into trunk of CVS tree
    Changes include:
    Multi-threaded Fetch & Decode
    Correct functionality of branch misprediction fixup (MT only)
    Improved stats
base/intmath.cc:
base/intmath.h:
    Integer math functions.
base/fast_alloc.cc:
base/fast_alloc.hh:
    Remove carriage returns.
base/intmath.h:
    Add Min/Max template functions
sim/prog.cc:
sim/prog.hh:
    Adding smt-safe and smt-fast.  These are functional simulators based on
    sim-safe and sim-fast.  Despite their names, they do not actually don't
    handle multithreaded programs yet.  The runfile functionality was
    pulled out of sim-smt.cc into its own files.  This allows all three
    simulators to use runfiles.

    NOTE:  There is a lot of duplicated code in these three simulators that
    should probably be separated out.  The macro type definitions in engin.hh
    are similar to the definitions in smt-safe.cc and smt-fast.cc
sim/prog.cc:
    Add support for loading a kernel with simplescalar.  Also add skeleton for
    loading a disk image to boot from with simplescalar.

    Hook for loading palcode is in place, but not implemented.
    Initial parameters passed to kernel at boot time are not passed properly.
sim/prog.cc:
    Only support loading kernel/disk image if we're running FULL_SYSTEM
sim/prog.cc:
    Make loading PAL a separate operation.  Also separate kernel loading and
    disk loading so that it can only be done in FULL_SYSTEM.  Finally, we need
    to also load the console image file.  I'm not sure what's in there, maybe
    some stuff from SRM, but it's needed for proper execution.
dev/alpha_console.cc:
dev/alpha_console.hh:
    Console device implementation from simos.  This is a simple device that
    supports the necessary console functions for booting.
sim/prog.cc:
sim/prog.hh:
    Separate the kernel loader and the program loader for simplicity since they
    don't share much code.
arch/alpha/alpha_memory.hh:
    Add this somewhat gross hack to take care of the fact that alpha has the
    this load locking and conditional store mechanism.
sim/prog.cc:
    Enable asids again.  This makes multithreaded programs work again.
    I guess you could say that this was an accidental commit.  Sorry
sim/main.cc:
    Clean up Simplescalar copyright notice.
sim/prog.cc:
    Allow '-' for stdout as well as stdin in run file.
dev/alpha_console.cc:
dev/alpha_console.hh:
sim/prog.cc:
arch/alpha/alpha_memory.hh:
    Replace the interface to the memory system.  Basically this change goes
    away from the model of passing an address, and a number of bytes and
    getting/setting data.  This change rather creates a memory_request packet
    (a simple struct) that bundles all of the necessary information together
    to pass into the memory system when making a request.  This makes the
    function call syntax consistent even when you have virtual to physical
    translation and when you have strange flags like locked, or physical that
    you need to pass to your memory system.  It has the added benefit of allowing
    the layers to pass data to each other, possibly skipping layers in between.
    This was necessary for the whacked out behavior that store conditional has
    on alpha.
    In addition, the entire memory system is now consistent in that it will return
    an alignment fault due to an unaligned access.  This is necessary to properly
    model a full alpha system, but changes the behavior of bogus bad path loads
    and stores that access unaligned data.  Because
base/fast_alloc.cc:
base/fast_alloc.hh:
    Major enhancement of FastAlloc debug code (uncomment #define in
    fast_alloc.hh to enable).  Can now dump summary of in-use objects
    by type and address/type of oldest n objects (thank you RTTI!).
    Should be easier to identify memory leaks now.
base/res_list.hh:
    file res_list.hh was initially added on branch segmented_iq.
sim/sat_counter.hh:
    file sat_counter.hh was initially added on branch segmented_iq.
sim/std_types.hh:
    file std_types.hh was initially added on branch segmented_iq.
base/fast_alloc.hh:
base/res_list.hh:
sim/sat_counter.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/prog.cc:
sim/std_types.hh:
    Merged branch "segmented_iq"
    -> Objectized the IQ and LSQ
    -> Implemented Standard, Sezned, and Segmented IQ's
    -> Major fixes to wrong-path execution (primarily involving data dependencies)
base/res_list.hh:
    g++ is braindead, so I cannot pull template functions out into a .cc file.
    Instead, pull large functions out of the class definition and inline them.
    This leads to a much more readable class definition.

    In addition, since these functions are inlined, youseems to be what is
    intended anyway.
sim/prog.cc:
    Move some variables to smt_prog so that targets other than sim-smt can use
    them.
sim/main.cc:
    remove the dlite debugger (for smt at least)
dev/alpha_console.cc:
sim/eventq.cc:
sim/main.cc:
    I knew I had done this for a reason
    Change 64 bit types back to long for alpha and replace all instances
    of stuff like %lld to use FMT64d and the like.

    The reason this is necessary is because TRU64 does not understand what
    %lld is and will print out "ld" instead of actually printing the
    number.

    So, PLEASE use the FMTxxx stuff instead of sticking %lld, %llx, %016llx
    and such into the code.
sim/main.cc:
    Don't want FMT64d for things declared 'long': this doesn't work when
    FMT64d evaluates to "%lld".  Just use "%ld" instead.
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/pcireg.h:
dev/simple_disk.cc:
dev/simple_disk.hh:
    Add several initial devices for full alpha system simulation.
    Many of these devices are based on SimOS devices
dev/alpha_console.cc:
dev/alpha_console.hh:
    Update the alpha_console to take advantage of the simple disk interface
sim/eventq.cc:
sim/eventq.hh:
    Make it so you can service events that will happen in the future
base/trace.cc:
base/trace.hh:
    This is a simple tracing facility.
    The idea is that there is a bitvector where each bit represents something
    that you may want to trace.  The end result is that you can at runtime
    turn on and off different tracing statements in the code so that you
    only see messages for things that you care about.

    This is only currently used in the devices framework, but I would like
    to see it eventually replace the debug, warn, and info functions.
sim/intr_control.hh:
    Initial abstraction for a processor and interrupt controller
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
    Add full support for the SYSTEM_EV5 model in smt-safe.  With this model, the
    user should be able to boot Tru64 unix.

    Several aspects of the memory subsystem were changed to accomidate this
    ability:
    - The C memory access functions no longer return an md_fault_type.
    - The prot_* functions no longer take a memrequest, and no longer return
    an md_fault type.  They now take a single address and a size.  This is
    because the prot_* functions don't need translation abilities, etc.
    - The prot_* functions will by default fail to work unless they are
    specifically implemented for the class that you want to use them with.
    - The unaligned parameter to the READ_* and WRITE_* function calls was added
    back so that exceptions that occur on STQ_U, LDQ_U, etc get the proper
    faulting address.
    - The memory controller now supports adding an arbitrary number of objects
    at arbitrary memory ranges so that a variety of devices can be accomidated.
    - The physical_memory class now not only emulates a specific amount of memor
base/trace.cc:
    Check for existence of environment variable
dev/console.cc:
    Temporary fix to get this to compile under Linux.
sim/main.cc:
    Flush stdout before dumping stats.
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/main.cc:
sim/prog.cc:
sim/prog.hh:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/fake_syscall.cc:
    Pull per-cpu variables into cpu_t object as first step toward multiprocessor
    support.  Also encapsulated execution context into a single object.
    Program loading code also significantly reorganized.
    Syscall redirection to host machine temporarily broken (must use EIO
    files for now).
arch/alpha/fake_syscall.cc:
sim/eventq.cc:
sim/exec_context.cc:
sim/exetrace.cc:
sim/main.cc:
sim/prog.cc:
    Update source tree to deal with shuffling of files and renaming of files.
    Maybe a tiny bit of style here and there for kicks too.
sim/prog.cc:
    Fix more stuff for reorg.
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/fake_syscall.cc:
base/dbl_list.hh:
base/fast_alloc.cc:
base/fast_alloc.hh:
base/intmath.cc:
base/intmath.h:
base/res_list.hh:
base/trace.cc:
base/trace.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/pcireg.h:
dev/simple_disk.cc:
dev/simple_disk.hh:
sim/main.cc:
sim/eventq.cc:
sim/eventq.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/intr_control.hh:
sim/prog.cc:
sim/prog.hh:
sim/sat_counter.hh:
sim/std_types.hh:
    Some style changes
    remove all of the $Log$ crap
    add $Id$ strings to the top of all files.
arch/alpha/alpha_memory.cc:
    Convert memory request objects to have a bitvector of flags.
sim/sat_counter.hh:
    Minor bug-fixes to statistics & options
    Saturating counter wasn't initializing properly
arch/alpha/fake_syscall.cc:
    Compile on OpenBSD
base/fast_alloc.cc:
dev/console.cc:
dev/disk_image.cc:
sim/eventq.cc:
sim/eventq.hh:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/intr_control.hh:
sim/prog.cc:
sim/sat_counter.hh:
    Move extern "C" statements out of C++ files and into the C headers with
    #ifdef __cplusplus guarding the extern.
base/str.cc:
base/str.hh:
    My lame old reference counting string class.  It's really not too bad.
base/intmath.cc:
    removed unused variable
sim/main.cc:
    add option -inifile to load the config file
base/inifile.cc:
base/inifile.hh:
sim/main.cc:
    rename configfile to inifile
base/intmath.h:
    Functions to determine if a character is hex, dec, oct.
    Convert hex to int
base/str.cc:
base/str.hh:
    Add a tokenize function.
    Fix a bug in the CopyRight function
    Add a const iterator
    Add a string to number function that will deal with hex, decimal, octal,
    positive numbers and a few suffixes.  Complete with bounds checking and
    syntax checking
base/inifile.cc:
base/inifile.hh:
    Cope with fix in CopyRight function from the String class.
    Add a find default which whill check for a Default= parameter.
    Add #include guards
dev/alpha_console.cc:
    style. change assertion
sim/sat_counter.hh:
    Added instruction-type identification methods to dyn_inst
    Continued work on the segmented IQ:
    - Stats
    - Seg0 load mechanisms
    - "short" dump function
    - free_slots_last_cycle model improvement
    Added stats to sat_counter
sim/main.cc:
    Parse .ini file for options in main.cc.
sim/main.cc:
    Reindent following style guide.
sim/sat_counter.hh:
    Updates to the segmented IQ
sim/hybrid_pred.hh:
    Initial check-in
sim/predictor.hh:
    Initial check-in of predictor
    Mods to predictor stats
sim/hybrid_pred.hh:
sim/predictor.hh:
sim/sat_counter.hh:
    Class heirarchy fixes
sim/predictor.hh:
sim/sat_counter.hh:
    Now the predictors actually work!
sim/sat_counter.hh:
    Final fixes to the SaturatingCounterPred
    Corrections to the LRP and HMP
sim/sat_counter.hh:
    Bug fixes and predictor mods to segmented IQ during ISCA-2002 work
    Dumping of queue contents is a little more flexible for debugging
arch/alpha/fake_syscall.cc:
sim/prog.cc:
    Updated fake syscall support (for most common syscalls) so we can
    once again run straight binaries (not just EIO files).
sim/sat_counter.hh:
    Final updates (for now) to the Segmented IQ
    Cleaning up the fetch stage
    Speed improvements to the Saturating Counter Predictor Object
sim/prog.cc:
sim/prog.hh:
    Fix parameter bug in process_t::dup_fd (causing stdio fd's not to get
    remapped correctly).
base/str.hh:
    Add forward decl of class ostream
base/inifile.cc:
base/inifile.hh:
    Rename members to conform to common style.
base/inifile.cc:
    Oops... looks like CPP_PIPE doesn't work.
sim/main.cc:
sim/sat_counter.hh:
sim/sim_object.cc:
sim/sim_object.hh:
    New configuration scheme based on .ini files and hierarchical descriptions.
    Currently in a transitional state: only sim_smt CPU, IQ, Cache, Bus, and
    Mem objects are configured this way.  Old mmodel.{hh,cc} completely gone.
base/inifile.cc:
    Fix pipe directionality for Linux: CPP_PIPE works again.
sim/sim_object.cc:
    Updates for INI-file parameters for Seznec and Segmented IQ models
    Fixed naming of IQ classes
sim/sim_object.cc:
sim/sim_object.hh:
    - Minor revisions to ParamContext, SimObjectBuilder, etc. to allow creation
    of SimObjects outside of configuration hierarchy.
    - Encapsulated magic boilerplate for object creation in macros to simplify
    usage and make future changes like this simpler.
arch/alpha/fake_syscall.cc:
sim/exec_context.cc:
sim/exec_context.hh:
sim/prog.cc:
sim/prog.hh:
    Rename process_t --> Process, eio_process_t -> EioProcess,
    live_process_t -> LiveProcess
base/str.cc:
base/str.hh:
    flesh out string class
base/str.cc:
    This time commit the right file.
base/str.cc:
    fix Tokenize for the case where the last string is only a single character
sim/sim_object.cc:
    Instantiate Param<String>::showValue().
sim/sim_object.cc:
sim/sim_object.hh:
    - Auto-register global parameter contexts for non-SimObject parameters
    - added ParamContext::parseAllContexts()
    - Finish and test enum params (SimpleEnumParam, MappedEnumParam)
    - Add vector-valued parameters: VectorParam<T>, SimObjectVectorParam,
    SimpleEnumVectorParam, MappedEnumVectorParam
    - Factor parsing & displaying functions to share code between scalar
    and vector parameter objects
    - Fix bug where a SimObjectClass constructor could be called before
    the static SimObjectClass::classMap constructor
    - Add "help" functions to dump parameter descriptions
    (ParamContext::describeAllContexts() and
    SimObjectClass::describeAllClasses())
sim/main.cc:
    Dump out config file parameters on '-h' cmd-line argument.
sim/sim_object.cc:
sim/sim_object.hh:
    - Add showType() method to display parameter type as string for help
    - Change EnumParam types to include specific enum type (avoids casting)
sim/sim_object.hh:
    Minor updates for statistics, new compilers, etc.
    Moved some options into new options model
base/inifile.cc:
base/inifile.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/prog.cc:
sim/prog.hh:
sim/sim_object.cc:
sim/sim_object.hh:
    Eliminated old SimpleScalar options package from sim_smt, shifting
    everything over to new parameter objects fed by .ini-style
    configuration files.  Parameters can be set on command line using
    '--<sec>:<param>=<value>'.  All other cmd-line options are assumed
    to be config file names, except '-h' prints help msg.

    Got rid of *_reg_options(), *_check_options(), *_uninit() calls.
    Moved more initialization into constructors; remaining code is now
    automagically executed by providing checkParams() and cleanup()
    methods on ParamContext-derived objects.  (See exetrace.cc, for
    example.)

    Runfile is gone; processes are initialized as simulation objects.

    Split parameter code out of sim_object.{cc,hh} into param.{cc,hh}.

    Moved a bunch of CPU object methods from sim_smt.cc to cpu.cc.

    smt_reg_stats calls now need to know number of threads.  Can be done
    by explicit argument to global function, or (for backward
    compatibility) calling CPU object method with same parameters as old
    global function.

    Renamed "SimControl" par
base/circlebuf.cc:
base/circlebuf.hh:
    Add a circular buffer class that holds string data.
    You can set the size of the buffer, and basically keep writing to it,
    and later read the last size bytes from the buffer.  kinda like tail -f
test/Makefile:
test/bitvectest.cc:
test/circletest.cc:
test/foo.ini:
test/initest.cc:
test/initest.ini:
test/strnumtest.cc:
test/tokentest.cc:
    Add a little bit of test framework and a bunch of initial tests
test/paramtest.cc:
    Move the param test thing to the new test framework, though it doesn't
    compile right now since I couldn't figure it out
base/inifile.cc:
    Disable pipes for cpp: hangs if cpp output is bigger than kernel pipe buffer.
sim/sim_object.cc:
    Check for accidental redefinition of SimObject class names.
base/str.cc:
    Support exponents in StringToNumber.

    It should be noted, that while StringToNumber does bounds checking,
    the bounds checking has not been mathmatically proven, so it could
    have mistakes.
base/range.hh:
    Simple range class that will parse a range and provides comparison
    operators
base/trace.hh:
    New tracing options
test/Makefile:
test/rangetest.cc:
    add a new test for the Range class
sim/exetrace.cc:
sim/exetrace.hh:
sim/main.cc:
    Create an ExecutionTrace class that encapsulates the old exe_trace stuff.
    Convert the last of the old options stuff to the new params and get rid
    of the old options files.
    Get rid of the old range files.
arch/alpha/fake_syscall.cc:
    Stupid linuxisms
sim/main.cc:
sim/sim_object.cc:
    Output config info to cerr instead of cout.
sim/main.cc:
    Load default.ini if the file exists
test/Makefile:
test/bitvectest.cc:
test/circletest.cc:
test/initest.cc:
test/paramtest.cc:
test/rangetest.cc:
test/strnumtest.cc:
test/tokentest.cc:
    Add Id tags
sim/sim_object.cc:
    Bug fix to allow use of "default=" in ini-files
sim/prog.cc:
    Fix for wacky compiler bug
base/inifile.cc:
    Modified some ROB statistic labels to make them more uniform
    Re-implimented rob-caps
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
    Add support for doing virtual to physical translation using the in-memory
    page table
base/kgdb.h:
base/remote_gdb.cc:
base/remote_gdb.hh:
    Basic support for remote debugging
base/pollevent.cc:
base/pollevent.hh:
    A class abstraction for poll
base/socket.cc:
base/socket.hh:
    Support for tcp server sockets
base/symtab.cc:
base/symtab.hh:
    simple symbol table loaded from a preprocessed file
dev/alpha_access.h:
dev/alpha_console.hh:
    split alpha access into a separate file so that building console code is
    simpler
dev/disk_image.cc:
dev/disk_image.hh:
    use a string for the disk image file name instead of a char *
arch/alpha/alpha_memory.cc:
    Make the MCSR segment check more explicit
    rearrange
base/trace.cc:
    Make trace stuff use new parameter stuff
base/trace.hh:
    Fix DPRINTF and DPRINTFN macros
    Add a few new trace flags
sim/exetrace.cc:
sim/exetrace.hh:
    Add more features to the exetrace stuff.
    Make use of the symbol table support.
base/remote_gdb.cc:
    fix DPRINTFs
dev/alpha_console.cc:
dev/console.cc:
dev/console.hh:
    Change the console framework to use the new pollevent stuff.
    This adds support for a console that can be attached and detached at runtime
    via a tcp connection (telnet).  There is also a circular buffer integrated
    into the console so that upon connection, any missed console text is output
    to the console.
    In the future, this should easily allow for multiple system consoles to
    be attached.
base/inifile.cc:
base/str.hh:
    Move the string hash function
base/symtab.cc:
base/symtab.hh:
sim/exetrace.cc:
    Add support to lookup symbols by name, and take advantage of that support
    for looking up symbols for panic and badaddr
base/str.cc:
base/str.hh:
    change to new formatting.
    naming convention still dosn't match new style
dev/console.cc:
dev/console.hh:
    Fix console code so that typed characters are properly handled.
    When clearing interrupts, be explicit with regards to which ones.
arch/alpha/vtophys.cc:
    a tad bit of error checking
sim/exetrace.cc:
sim/exetrace.hh:
    EXE-Trace extensions
    Disabled "good_mem" memory layer... this still needs to be properly removed
base/kgdb.h:
    Add more kgdb commands
base/trace.hh:
    Tracing for ISP
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/prog.cc:
sim/prog.hh:
    Update to BTB functionality
    Fixed numerous statistics
    Fixed path of store instructions so that they _all_ go through issue stage
    Updates to exetrace functionality
sim/eventq.cc:
sim/eventq.hh:
    Replaced every-cycle termination checks in sim_main() with events.

    Added per-thread instruction-count-based event queues to handle
    termination based on committed instruction count.  These are now
    specified via parameters to the FullCPU object (max_insts_any_thread
    and max_insts_all_threads) rather than global parameters under the
    [max] context.

    Also replaced break_cycle check with DebugBreakEvent.

    Some cleanup of eventq.{cc,hh}.
sim/prog.hh:
    Don't die if included under FULL_SYSTEM: just skip contents.
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Added SimpleCPU object to do sim_safe type simulation in sim_smt.
    Created abstract base class BaseCPU as common parent of (detailed) CPU
    and SimpleCPU.
sim/exec_context.cc:
sim/exec_context.hh:
sim/prog.cc:
sim/prog.hh:
    Register Process object stats using SimObject reg_stats() method
    rather than indirectly via Thread end exec_context objects.
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/main.cc:
sim/sim_object.cc:
sim/sim_object.hh:
    Changes to eliminate the global 'the_cpu' pointer to allow for
    mutliple CPUs/systems.  Specifically:

    - Add findMaxThreadsPerCPU() and tickAll() static methods to
    BaseCPU class.

    - Added generic printExtraOutput() method for all SimObjects,
    to dump output at the end of simulation that is not covered by
    stats.  Use this hook on CPU object to call
    dump_floss_reasons().  sim_aux_stats() is now obsolete.

    - printExtraOutput() takes an ostream& rather than a FILE*, so
    dump_floss_reasons() had to be converted to C++ I/O.

    - Fixed a bug in floss_reasons.cc where an additional
    mem_access_result_t item (MA_NOT_PREDICTED) did not have a
    corresponding entry in mem_access_result_item_descr.  This
    resulted in "(null)" being printed with sprintf I/O (which no
    one had noticed, apparently), but caused a segfault using
    streams.
sim/exec_context.hh:
sim/main.cc:
sim/prog.cc:
sim/prog.hh:
sim/sat_counter.hh:
sim/simple_cpu.cc:
    Rename many stats to include config hierarchy path, so results from
    different CPUs/systems can be distinguished.

    Move stats.c/h into C++... renamed to stats.cc/hh.  Added overloads
    of most stat registration functions to allow 'string' rather than
    'char *' stat names & formulas... no more sprintf needed!
sim/base_cpu.cc:
sim/base_cpu.hh:
    Add sim_num_insn stats as per-CPU and total number of simulated instructions
    so we can continue to calculate sim_inst_rate.
sim/simple_cpu.cc:
    Fix sim_num_insn stat for SimpleCPU.
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Move global memory interface objects into SimpleCPU object.
    Made read/write functions SimpleCPU members for easier access to same.
    Can now do multiple systems in non-FULL_SYSTEM mode.
sim/param.hh:
sim/sim_object.cc:
sim/sim_object.hh:
    SimObjects now look in the .ini database first using the object
    instance name (e.g., sys.cpu0) *then* using the configuration class
    name (e.g., DetailedCPU).  This makes it easier to use a common
    description but override a few simple things like the workload.
base/remote_gdb.cc:
dev/console.cc:
dev/disk_image.cc:
    Make ConsoleListener & GDBListener explicitly print which ports
    they're listening on.
arch/alpha/alpha_memory.cc:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/fake_syscall.cc:
arch/alpha/vtophys.hh:
base/remote_gdb.cc:
base/symtab.cc:
base/symtab.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/main.cc:
sim/prog.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Cleanup of full-system global variables, primarily in simple_cpu.cc,
    to allow multi-system simulations.  (Multiple systems not yet yested
    though.)  Also changes to build sim_smt in full-system mode (though
    with only SimpleCPU and not the full timing CPU for now).

    Still to do: minimize changes in SimpleCPU code between full-system
    and application modes... way too many ifdefs there.  Much of the
    full-system stuff moved into SimpleCPU should be put in a new System
    object to allow multiprocessor simulations.

    Converted last remaining modules from C to C++ (mostly in /old).
    Renamed all .c files to .cc and a few .h files to .hh.

    Renamed architecture-specific files in arch/$TARGET from
    $TARGET.{cc,hh,def} to machine.{cc,hh,def} to get rid of pointless
    intermediate files in object directory.  Split exo-specific
    definitions out of machine.hh into machine_exo.h.

    Specifics:

    In machine.def, null resource descriptors must be FUClamd_NA (and not
    NA) to pass C++ type checking.

    Enhanced error checking/reporting in bas
base/range.hh:
    Use the templated type for intermediate storage.
    Added "valid" flag and method to the user can determine if the range parse or assignment was successful.
sim/eventq.cc:
sim/eventq.hh:
    Modifications to properly count commited instructions... [no impacts]
test/Makefile:
test/offtest.cc:
    New test
test/foo.ini:
test/initest.cc:
    add Another piece to the test
arch/alpha/ev5.hh:
    Properly do alternate mode
arch/alpha/alpha_memory.cc:
arch/alpha/ev5.cc:
sim/simple_cpu.cc:
arch/alpha/ev5.cc:
arch/alpha/isa_traits.hh:
base/hashmap.hh:
    formatting
arch/alpha/alpha_memory.cc:
    C style comment -> C++ style
arch/alpha/alpha_memory.cc:
    more formatting
arch/alpha/alpha_memory.cc:
    Add ALT_MODE support to the tlb lookup and make mode handling more sane
test/Makefile:
test/symtest.cc:
    Add a test for the symboltable
base/symtab.cc:
    Avoid some temporary objects
base/trace.cc:
    add a hexdump like dump function for dumping memory
base/trace.hh:
    Add more trace flags
    Add DUMP which does a hexdump with semantics like DPRINTF
    flush standard out after a debugging print or dump
dev/simple_disk.cc:
    Add some debugging dumps
sim/param.cc:
sim/param.hh:
sim/sim_object.cc:
    Because of order of construction, call a function that will return a
    ParamList that will construct it as soon as it is needed
dev/pcireg.h:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Flesh out the pci configuration space support.
    Add configuration file support for vendor ID and device ID.
    Clean up debugging
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Don't execute pmap_scavenge_boot.
    rename console_panic_addr to panic_addr.
    change some warn()s to DPRINTF()
base/pollevent.cc:
base/pollevent.hh:
    Don't poll every cycle.  Use SIGIO to kick a poll off.
    Make it possible to disable events
sim/exetrace.cc:
sim/exetrace.hh:
sim/simple_cpu.cc:
    Completely rework the exetrace stuff.
    Make a clas that holds all of the trace data for a particular cycle.
    Add a N entry trace log so that one can dump the last N cycles leading
    up to some sort of crash.
    When printing a branch instruction, print the target symbol if available
    instead of the address
dev/console.cc:
dev/console.hh:
sim/simple_cpu.cc:
    Make console code deal with not being polled every cycle
sim/simple_cpu.cc:
    Don't interrupt while in PAL
base/remote_gdb.cc:
base/remote_gdb.hh:
    constify some functions.
    fix some buffer handling.
    add some debugging help
sim/param.cc:
    Initialize paramList to NULL
sim/exetrace.cc:
sim/exetrace.hh:
sim/simple_cpu.cc:
    Rework the execution trace stuff again.  Merge the cycle log and the exetrace
    into one class.
    Stick the TraceData in the dyn_inst_t class.
    Put the read_foo and write_foo functions in the dyn_inst_t class.
    This gets rid of the memaccess namespace.
sim/exetrace.cc:
sim/exetrace.hh:
sim/simple_cpu.cc:
    Don't worry about which thread to trace right now.  Fix that later.
    Add better support for merged logging and tracing.
    Make sure that there is a place to put data when there is no log.
    Make tracing work for non-system.
sim/exetrace.hh:
    tracing() method must not return true if not initialized
sim/base_cpu.cc:
sim/main.cc:
    Many fixes to statistics (especially distributions)
    Many renamed statistics (added CPU name to all except cache stuff)
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
sim/intr_control.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    style fixes:
    Make class names follow the ClassName style
    Indenting based on four spaces
sim/param.cc:
    Added pipetracing
    (The trace output _should_ be compatible with the original Simplescalar
    output, making their visualization tools available to us and providing
    us with a more detailed debugging tool than exetrace)
base/trace.hh:
    Separate disk and disk data
    add tlaser uart
arch/alpha/alpha_memory.cc:
arch/alpha/ev5.cc:
    Make this use C++ instead of void * voodoo
base/symtab.cc:
base/symtab.hh:
sim/exetrace.cc:
sim/exetrace.hh:
    constify
sim/param.hh:
    SimObjects are always pointers.  Make this clear, and add the -> operator
sim/prog.hh:
    fix comment
dev/pcireg.h:
    Don't depend on order of #includes
sim/exetrace.cc:
    Make logging work without tracing
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
sim/intr_control.cc:
sim/intr_control.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Turn all of the devices and system stuff into SimObjects.
    Add many extra parameters to have config file flexibility
base/sched_list.hh:
    file sched_list.hh was initially added on branch clustering.
dev/console.cc:
dev/disk_image.cc:
    Don't assume variables are initiaized to be zero
sim/simple_cpu.cc:
    don't forget to dump the trace data if we're tracing
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
sim/simple_cpu.cc:
    remove md_done_hwrei which was a hack that helped me
    make the trace output look like what I was able to get out of
    SimOS.  Since we're more advanced than them, it's not needed
sim/simple_cpu.cc:
    Try to make the trace more representative of what's going on.  (Mainly around
    disruptions.)
sim/simple_cpu.cc:
    Disable this code since it uses a hardcoded address.  This may be more useful
    in the future though.
sim/simple_cpu.cc:
base/statistics.hh:
    oops
base/trace.hh:
    style
base/trace.hh:
    add tracing to interrupts
sim/simple_cpu.cc:

    Removed old access call in CPUMemInterface and added MemREqs to the pipeline.
sim/prog.cc:

    Give main memory a name to fix statistics.
sim/main.cc:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_object.cc:
sim/sim_object.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Added basic infrastructure to do checkpointing. Simple test in SimpleCPU.
base/trace.hh:

    Added support for checkpoint/serialization
    Added Serilize to list of know flags
sim/param.cc:
sim/serialize.hh:

    Added support for checkpoint/serialization
    Added Serilize to list of know flags
    Now add implicit SimObjects to the ConfigHierarchy so they can be unserialized.
sim/serialize.hh:
sim/simple_cpu.cc:

    Added WH64 implementation and dependencies
    Added WH64 implementation, and added the ability to do stores of more than 4 bytes, and sett loads to 8 bytes.
base/inifile.hh:
base/str.hh:
    Use functors for the hash functions for the hashtable class.
    Pulled up from the pisa branch with a few modifications.
sim/eventq.cc:
sim/eventq.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Updated to Hierarchical naming
    Infrastructure for checkpointing.
base/inifile.cc:
base/inifile.hh:
base/trace.hh:
sim/exec_context.hh:
sim/exetrace.cc:
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/simple_cpu.cc:
test/Makefile:
    - Merge PISA branch onto HEAD

    - Tag before merge: HEAD_PRE_BR_PISA_MERGE
    - Tag after merge: HEAD_POST_BR_PISA_MERGE
    - Similar tags on PISA branch

    - Add port to SimpleScalar/PISA
    - New PISA instructions:
    itouch
    spill
    reload
    map
    unmap

    - Add prefetch implementation
    - Prefetch cache
    - Cache buffer (victim/prefetch buffers)
    - Prefetch queue
    - itouch instruction

    - Add functional SLAT implementation
sim/main.cc:
    Make this work in non Linux
base/remote_gdb.cc:
sim/base_cpu.hh:
sim/simple_cpu.cc:
    Make FULL_SYSTEM work again after the pisa merge.
    Random cleanups.
sim/main.cc:
sim/memtest.cc:
sim/memtest.hh:

    Removed rules to make SIM_MEMTEST, added memtest.cc to smt source list
    Renamed sim_memtest to memtest. Memtest now extends BaseCPU and can be dropped into sim_smt. Still need to add the ability to stop it running without a manual ctrl-C though.

    Memtest currently does not test copies, just reads and writes. The multiple MSHR/Cache changes broke copying along the way.

    Just touched main to help debug (needed to give a set random seed). Its back to normal.
sim/main.cc:
    undo erik's mistaken commit
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/vtophys.cc:
base/circlebuf.cc:
base/circlebuf.hh:
base/inifile.cc:
base/inifile.hh:
base/pollevent.cc:
base/pollevent.hh:
base/range.hh:
base/remote_gdb.cc:
base/str.cc:
base/str.hh:
base/symtab.cc:
base/symtab.hh:
base/trace.cc:
base/trace.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/exec_context.cc:
sim/exetrace.cc:
sim/exetrace.hh:
sim/hybrid_pred.hh:
sim/intr_control.cc:
sim/intr_control.hh:
sim/main.cc:
sim/memtest.cc:
sim/memtest.hh:
sim/param.cc:
sim/param.hh:
sim/prog.cc:
sim/prog.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_object.cc:
sim/sim_object.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
test/bitvectest.cc:
test/foo.ini:
test/initest.cc:
test/initest.ini:
test/paramtest.cc:
test/rangetest.cc:
test/strnumtest.cc:
test/symtest.cc:
test/tokentest.cc:
    - Get rid of my String class, the Vector class, the bitvector class, and my
    doubly linked list class.
    - Convert tokenize, to_number (formerly StringToNumber) and eat_white to
    function on stl strings.
    - Change most cases of char * and const char * to string, or const string &
    - Some formatting and style nits, but not too many.
sim/param.cc:
test/bitvectest.cc:
    use resize, not reserve to change the size of the actual vector
base/str.hh:
    fix to_lower
dev/console.cc:
    better tracing
sim/memtest.cc:
sim/memtest.hh:

    Added support for CoherenceTest
    Fixed small error that was leading to a fixed address being used half of the time.
sim/exetrace.cc:
sim/exetrace.hh:
    Improvements to EXE-Trace:
    Displays thread number (optionally)
    Doesn't display 'count' field (optionally)
    'Extended' output lines up nicely
sim/memtest.cc:
    Fixed a print warning in memtest.cc
sim/exetrace.hh:
sim/main.cc:
sim/serialize.cc:
sim/serialize.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    - Merge SLAT changes

    - Add stats to prefetch cache to track cycles lost due
    to each miss address

    - Get simple_cpu and FULL_SYSTEM to compile again.  I'm
    not sure these will run correctly (simple_cpu should)
    but it is an improvement over what's currently available.

    Split the engine files into generic, cpu-specific
    and isa-specific files to isolate the various parts of
    the engine code.  This is quite hackish in places due to
    machine.def (e.g. see comments in execute.cc).  Further
    cleanup is warranted but it compiles and passes smt-test.
    Later commits will remove unused code.
base/trace.hh:
sim/param.cc:
sim/sim_object.cc:
    add a new DTRACE macro that tests a trace variable if tracing is on, or
    evaluates to fals if tracing is off.  Avoids #if TRACING_ON/#endif

    add an option for wheter or not you want the parameter stuff dumped while
    the simulator is starting
sim/exetrace.cc:
sim/exetrace.hh:
    Make the execution trace print the way it did before steve's last change.
    Also, pass the flags in a more intelligent manner rather than adding new
    function parameters all over the place.
sim/exetrace.hh:
sim/simple_cpu.hh:
    make exetrace work in FULL_SYSTEM after dave's last changes.
    Exetrace could probably be improved more to remove most of the
    #ifdef FULL_SYSTEM junk.  Not today though
base/trace.hh:
    new trace flags
dev/alpha_console.cc:
    size was too big
dev/pcireg.h:
    new device ID for simos ethernet device
dev/disk_image.cc:
dev/simple_disk.cc:
dev/simple_disk.hh:
    be smarter about using stl strings
sim/pc_event.cc:
sim/pc_event.hh:
    PC based event system
sim/simple_cpu.cc:
    Make all existing pc based stuff use the new pc based events
base/trace.cc:
base/trace.hh:
sim/param.cc:
sim/sim_object.cc:
    If we're not tracing, print out the configuration junk.  If we are tracing,
    the configuration printing is default
sim/exetrace.cc:
    - Fix bogus references to omitCount and includeTnum.
base/kgdb.h:
base/remote_gdb.cc:
base/remote_gdb.hh:
    TONS of improvements to remote kernel debugging.

    -  Use the pc based events stuff to simulate hardware breakpoints.
    -  Implement the set/clear breakpoint/watchpoint function, though
    only breakpoints are implemented right now.
    Both software and hardware breakpoints are implemented as hardware
    breakpoints.
    -  Fix numerous bugs in single stepping, and make temporary breakpoints
    use hardware breakpoints instead of software breakpoints.
    -  Add tons of debugging stuff to help with future remote debugger debugging.
    (No, that was not an accidental doubling.)
    -  Implement part of the query variable function.
    -  Remove old cruft that we don't need.
    -  Improve comments
dev/disk_image.cc:
dev/disk_image.hh:
    Copy on write disk support
    This code uses a hash table to implement copy on write support to disk image
    blocks.  There is also support to write out the table and load it back in.
dev/simple_disk.cc:
    This class uses std::string
sim/simple_cpu.hh:
    don't need these
base/circlebuf.cc:
base/circlebuf.hh:
    Add some size information so we can keep track of wheter or not the buffer
    is empty
arch/alpha/vtophys.cc:
    simplify
base/object_file.cc:
base/object_file.hh:
    initial framework for sucking in an object file and figuring out some stuff
    for it.  Support for ecoff and a header for elf.  There is nothing for
    relocations, but the symbol information is available so an external
    program is no longer required for that.
base/symtab.cc:
base/symtab.hh:
    Update some of the symbol table stuff to add support for manual insertion of
    symbols.  This is used by the object file code so that we can read the
    table from the object file and stick it into the more efficient symtab
test/Makefile:
test/nmtest.cc:
    test program for using the symbol table code.  Basically allows one to look
    up a symbol in an object file
dev/console.cc:
dev/console.hh:
    Clean up the console code, add an input buffer queue to avoid leaving data in
    the socket buffer.  This allows us to preprocess data as it comes in for
    things such as telnet support.  There is some minimal telnet support in here
    but it isn't working very well, and isn't enabled by default
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Make the various pc based events part of the CPU object instead of being
    global
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Do the badaddr stuff far more intelligently.  Basically, what we do now
    is first determine if the address goes to any proper device.  If not, the
    address is bad.  If so, ask the device whether the address is any good or
    not.  The default case is that a device will say that all of its addresses
    are good, but there are some devices that don't follow this paradigm.
dev/alpha_console.cc:
dev/alpha_console.hh:
sim/intr_control.cc:
sim/intr_control.hh:
sim/universe.cc:
    Make the tick frequency a global parameter and have all devices work from that
    Also, make the timer interrupt delay parameterizeable (and make the default
    shorter).  This should make boot happen a little faster
base/refcnt.hh:
    Simple reference counting class.  Could be replaced by boost shared_ptr some
    day.

    Classes that are reference counted must have exported functions incref()
    and decref() for manipulating the reference count.  This doesn't have the
    convenience of shared_ptr where the shared classes can be used unmodified,
    but it also means that the refcnt pointer (the pointer in this code) is
    the size of a normal pointer for this system.
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherpkt.hh:
    Initial hack at a ethernet device model and an ethernet bus model.  Known to
    be broken at this point
arch/alpha/alpha_memory.cc:
sim/simple_cpu.cc:

    Memory system enhancements:

    - Functional implementation of load-locked/store-conditional in
    main_memory object (the functional memory object for non-full-system
    mode).  This code should eventually be extracted out and applied to
    both main_memory and physical_memory so that it works in full-system
    mode as well.  Moved lock_flag & lock_addr from system registers to
    control registers so they're available in non-full-system mode.

    - Moved Alpha unaligned access handling back into machine.def.  (It
    was a flag on the mem request and handled in the memory system, but
    that approach appears to be unnecessarily complicated.)

    - Cleanup of AlphaMemoryRequest: down from five constructors to one;
    Erik's full-word flags are now bits in Nate's flag word.

    - Eliminate obsolete memory.h functions, and some unused memory_object
    functions.
arch/alpha/vtophys.cc:
base/remote_gdb.cc:
sim/prog.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:

    Renamed SimpleCPU::(read|write)_(byte|half|word|qword) to just read &
    write, overloaded on the type of the 'data' argument.  Merged the
    full-system and non-full-system implementations of these eight
    original functions into two common template functions.

    To support this, also renamed (read|write)[1248] on memory_object and
    derivatives to just read & write, again overloaded on the type of the
    'data' argument.  Many of these functions could now be condensed into
    a few template functions (though with a level of indirection so that
    the interface can remain virtual).  I did not do that though.
sim/exec_context.hh:
sim/pc_event.hh:
    - Eliminate static SLAT variables when building FULL_SYSTEM
base/remote_gdb.cc:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    make it easier to drop into the remote debugger from within the local debugger
dev/pcireg.h:
    Instead of having each pci device define its own sim object to represent
    the configuration space, just define one TlaserPciDev type and change the
    configuration regs as needed.
base/range.hh:
    Fix bugs in range parsing code.
sim/eventq.hh:
    Uncomment inlined event check (not sure why it was commented out
    to begin with).
base/str.hh:
    - Add some missing #includes.

    - Remove some prefetching stats to shorten log lengths.

    - Fix perfect cache to work with new coherence mechanism
    (or at least not fail when there is no coherence protocol).
base/range.hh:
    Consider whether a range object is valid or not when doing range tests.
    Reorganization & minor documentation of range comparison code.
sim/exetrace.hh:
    Bug fix related to previous commit on range.hh.
test/nmtest.cc:
    Add ability to do lookups by address
dev/etherbus.cc:
base/statistics.cc:
    fix
sim/simple_cpu.cc:
    make it so we can change the boot flag
sim/simple_cpu.cc:
    Bit more debugging info
base/circlebuf.cc:
    Must initialize the size
dev/console.cc:
sim/simple_cpu.cc:
    better debugging
base/remote_gdb.cc:
    Don't panic if the execution context isn't the same, just don't execute the
    breakpoint since it probably belongs to another instance
sim/memtest.cc:
    Removed bcopy_in & bcopy_out (needless aliases for prot_write &
    prot_read, respectively).  Made prot_read & prot_write public methods
    (not protected).  Had to change some char arrays to byte_t to keep
    compiler happy.

    Renamed strcpy_in and strcpy_out to writeString and readString,
    respectively, to reduce confusion about the direction they operate.

    Also some reformatting for style.
sim/main.cc:
    Move some more old simplescalar I/O from stdio to C++ streams.

    Some reformatting for style in main.cc as well.
base/inifile.cc:
base/inifile.hh:
    Pass -D, -U, and -I args to cpp for ini-file processing.  Should make
    use of #defines in .ini files much handier, once we get our parser up
    to dealing with the resulting whitespace issues.

    Some reformatting for style as well.
sim/main.cc:
    Pass -D, -U, and -I args to cpp for ini-file processing.  Should make
    use of #defines in .ini files much handier, once we get our parser up
    to dealing with the resulting whitespace issues.
sim/exetrace.cc:
sim/exetrace.hh:
sim/simple_cpu.cc:
    Changes to exetrace code to make it somewhat less schizophrenic so
    that it works under non-full-system SimpleCPU.  (Previous code assumed
    either full-system+simple CPU or non-full-system+detailed CPU.)

    Also removed a lot of unused code in simple_cpu.cc.
base/trace.hh:
    Added trace flags to display all syscalls or common syscall-related
    warnings (which are suppressed by default).
arch/alpha/fake_syscall.cc:
sim/exec_context.cc:
sim/exec_context.hh:
sim/prog.cc:
sim/prog.hh:
sim/simple_cpu.cc:
    Syscall emulation (non-full-system) support for multithreaded apps
    compiled using Tru64 5.1's pthreads library.

    More specifically, you can now associate multiple processors with a
    single LiveProcess object (via their workload parameters).  Only one
    processor will be active initially.  The additional processors will
    be assigned to handle new "virtual processor" threads as they are
    created by the pthreads user library.  Functionality is limited, as
    we do *not* emulate any kernel scheduling: once a VP thread is created,
    it is permanently bound to a simulated CPU.  However, most of the
    SPLASH-2 benchmarks seem to run on both uni- and dual-processor targets.

    Includes total rewrite of syscall emulation (fake_syscall.cc).  Only
    syscalls that have been needed thus far have been re-implemented in
    the new framework.  Others will be moved over on demand.
base/trace.cc:
    Better dump function
sim/simple_cpu.cc:
    The active field of exe_ctx is not used in FULL_SYSTEM
sim/eventq.cc:
dev/etherbus.cc:
    more debugging
sim/memtest.cc:

    Added support for mem_cmd.cc

    Transitioned from enum mem_cmd to class MemCmd
sim/eventq.hh:
sim/param.hh:
sim/serialize.hh:
sim/sim_object.hh:
test/sized_test.cc:
    - Fix PISA syscalls to use new memory interface.

    - Make prefetching a real SimObject and port existing
    prefetchers to the new framework.
base/inet.cc:
base/inet.hh:
    Move functions for networking into a separate file
sim/exec_context.cc:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Add basic support for a quiesce instruction.
    - Suspend the current thread on quiesce
    - Resume on interrupt
    Add an arm instruction that doesn't do anything yet
sim/simple_cpu.cc:
    Added FULL_SYSTEM wrapper to use of "proc" in tick().
    Nate, please check to make sure I didn't break it.
base/inifile.hh:
    Added include of vector
base/trace.hh:
    - Create a ScsiDevice base class that represents all of the functions that a
    SCSI device might want to implement
    - Clean up the ScsiDisk class: remove unneeded junk and give better names
    - Create a ScsiNone class that is used when a given target has no device
sim/main.cc:
    Always use the same random seed to make the memory tester repeatable.
    As the comment says, someday we should make this a parameter.
    (Do we still need "mysrand()" and "myrand()"?)
sim/memtest.cc:
sim/memtest.hh:
    - Get rid of CoherenceTest... MemTest is just as capable.
    - Lots of new parameters for MemTest.
sim/pc_event.cc:
    Don't execute a pc event twice
dev/disk_image.cc:
    Add a config node of the copy on write disk image
base/trace.hh:
dev/disk_image.cc:
    More debugging
base/trace.hh:
    Major update in dma code.
    -  Separate the io callback into a read callback and a write callback
    -  Fix the write callback so that the proper data is written back to the
    disk and data is copied to the proper place in the data buffer
    -  Use sim_freq for the tick frequency.  (There is still no delay)
    -  Remove a bunch of unnecessary code
    -  Make code more concise and remove old cruft
    -  More Debugging (of course)
    -  Formatting fixes
    -  mprotect hack to make sure that dma buffer is not overwritten
sim/exec_context.cc:
sim/exec_context.hh:
    Fix broken assertion in main_memory::checkLockedAddrList().
    Check for lots of failed store-conditionals and print deadlock warning message.
arch/alpha/fake_syscall.cc:
    Use actual number of CPUs allocated to process (not const 2!).
    A few additional syscalls for pthreads support (not quite there yet though).
sim/prog.cc:
sim/prog.hh:
    Use actual number of CPUs allocated to process (not const 2!).
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/fake_syscall.cc:
base/remote_gdb.cc:
base/remote_gdb.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/pc_event.cc:
sim/pc_event.hh:
sim/prog.cc:
sim/prog.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    exec_context_t -> ExecContext
    spec_exec_context_t -> SpecExecContext
dev/disk_image.cc:
    quell warnings
base/trace.hh:
    remove more warnings
sim/exec_context.cc:
sim/exec_context.hh:
sim/prog.cc:
sim/prog.hh:
sim/simple_cpu.cc:
    remove the Process object from FULL_SYSTEM since it doesn't really make
    any sense
sim/simple_cpu.cc:
    move SIM_OBJECT junk to the end like other files
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Make it so we can use a memory hierarchy in FULL_SYSTEM SimpleCPU
arch/alpha/fake_syscall.cc:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/prog.cc:
sim/prog.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    - Add pointer from execution context to the CPU it's running on.
    - Just pass execution context pointer to the syscall emulation code,
    instead of a bunch of individual field arguments.
    - A few more exec_context_t -> ExecContext changes for non-full-system.
    - Rudimentary thread scheduling for non-full-system support of
    pthreads apps.  Hopefully this won't go much farther.
sim/exec_context.cc:
    Oops... fix minor bug from merge.
arch/alpha/fake_syscall.cc:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/prog.cc:
sim/prog.hh:
sim/simple_cpu.cc:
    - We really don't want to build a thread scheduler in the simulator...
    rip all that out, and replace with some basic synchronization
    primitives implemented as syscalls.  Non-full-system MP apps thus
    need to be compiled specially to use these primitives, but it's
    plenty good enough to get SPLASH-2 up and running.

    These primitives block by suspending the execution context (for
    efficient simulation).  Studies that care about synch operation
    costs should use user-level LL/SC-based primitives instead.

    - Implement more than two states (active vs. !active) for an ExecContext.
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/fake_syscall.cc:
arch/alpha/vtophys.cc:
base/circlebuf.cc:
base/fast_alloc.cc:
base/inifile.cc:
base/inifile.hh:
base/object_file.cc:
base/object_file.hh:
base/range.hh:
base/remote_gdb.cc:
base/res_list.hh:
base/socket.cc:
base/str.cc:
base/str.hh:
base/symtab.cc:
base/symtab.hh:
base/trace.cc:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/simple_disk.hh:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/eventq.cc:
sim/exetrace.cc:
sim/exetrace.hh:
sim/hybrid_pred.hh:
sim/intr_control.cc:
sim/intr_control.hh:
sim/main.cc:
sim/memtest.cc:
sim/memtest.hh:
sim/param.cc:
sim/param.hh:
sim/pc_event.hh:
sim/prog.cc:
sim/prog.hh:
sim/sat_counter.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_object.cc:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/universe.cc:
    First pass at compiling with gcc 3.x.  Lots of "std::" in header files,
    "using namespace std" in source files.  (Note policy of not putting "using"
    statements in headers or before includes in sources.)

    Still not able to compile with gcc 3.2.
    Errors:
    - Can't create an ifstream from a file descriptor anymore (breaks IniFile).
    - "`class MSHR::MSHRegister' is private" errors in mshr.cc and prefetch_cache.cc:
    not clear why since it's in the public part of the class declaration.
    - cpu.cc:879: can't match a reference and 0 (specifically "no match for `bool ?
    SimObjectParam<PipeTrace*>& : int' operator")
    - pipetrace.cc: "invalid conversion from `int' to `std::_Ios_Fmtflags'"
    Warnings:
    - strstream now deprecated... needs some rewriting in sat_counter.hh
    and hybrid_pred.hh (need to get all that code out of the headers anyway)
    - trace.hh macro problem: cpp now says 'pasting "::" and "Event" does not
    give a valid preprocessing token'
    - major "implicit typename" issues in base/sized.hh
base/trace.hh:
    Token pasting not necessary.  Quiets g++ 3.2 warning
base/inifile.cc:
base/inifile.hh:
    Make this compile in g++ 3.2
base/remote_gdb.hh:
dev/etherbus.hh:
dev/pcireg.h:
dev/simple_disk.cc:
    Make this stuff g++ 3.2 happy
base/inifile.cc:
    Make this still compile in g++ 2.95
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
sim/serialize.hh:
sim/simple_cpu.cc:
    Added serialization for simple FULL_SYSTEM objects. Working on the hard ones
sim/simple_cpu.cc:
    Make this code actually compile.  Fix style while we're at it
sim/base_cpu.cc:
    Fixes to recent updates to maintain gcc 3.2 compatibility
    (mostly more std:: in header files).
test/Makefile:
    SS -> M5
base/cprintf.cc:
base/cprintf.hh:
test/Makefile:
test/cprintftest.cc:
    printf replacement that uses C++ io streams and is typesafe
    Any type that overloads operator<< for use with streams will work with this
    structure.

    The format string is backwards compatible with printf style format strings,
    but the types are not checked, for example, %s doesn't verify that the
    type being printed is a string, %d doesn't verify that the type being
    printed is an integer.  Instead, the various formats just set up the proper
    io stream manipulators for printing.  So, %#s doesn't mean anything different
    from %s, but %#x does mean something different from %x.  If the type you are
    printing does't care about the #, then nothing changes.
base/cprintf.hh:
test/cprintftest.cc:
    Fix case where there is only a format string, and no arguments
base/cprintf.hh:
base/cprintf_formats.hh:
    std::
base/trace.cc:
base/trace.hh:
    Make the tracing stuff use cprintf
base/cprintf.cc:
    Save and restore iostream state
dev/etherbus.cc:
    Rewrite the dma engine support so that it can interact with the dma_interface
    to the timing memory model.  This way, all of the timing of the dma transfers
    themselves can come from the memory system.  Simos copyright removed since
    this code shares nothing with Simos
sim/hybrid_pred.hh:
sim/predictor.hh:
sim/sat_counter.hh:
    Fixes to stat names in segmented IQ
    Changes from strstream to stringstream to remove warnings
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherint.hh:
    Separate the interface to the bus from the device
sim/simple_cpu.cc:
    Move progress message from SimpleCPU::tick() to new ProgressEvent.
    (Much more efficient, and available independent of CPU model.)
dev/console.cc:
dev/console.hh:
    Added [DoEvents] default so command line --DoEvents:do_events=1 turns on events for all busses
    Added serlization function headers (not implemented yet).
sim/eventq.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Added [DoEvents] default so command line --DoEvents:do_events=1 turns on events for all busses
    Added serlization function headers (not implemented yet).
    Added EventQueue::nextEventTime(), returns time head is scheduled, or sim_cycle if empty.

    Added support for uniprocessor SimpleCPU with timing memory.
arch/alpha/fake_syscall.cc:
base/remote_gdb.cc:
sim/exec_context.hh:
sim/prog.cc:
sim/simple_cpu.cc:
    Get rid of redundant ExecContext PC field.
sim/main.cc:
    Add -n option to suppress loading default.ini.
    Added a little more help to the help message.
sim/main.cc:
    Oops... make sure we still load it when we don't say '-n'.
sim/main.cc:
    Minor formatting.
sim/exetrace.cc:
sim/exetrace.hh:
    Merge full-system & non-full-system exetrace code.
base/cprintf.cc:
base/cprintf.hh:
    Previous two commits were (somewhat) broken... this is the real one
test/cprintftest.cc:
    more testing
base/remote_gdb.cc:
base/remote_gdb.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/pc_event.cc:
sim/pc_event.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/system.cc:
sim/system.hh:
    Moved a lot of full-system variables out of SimpleCPU so that they can
    (eventually) be used with the detailed CPU model.  Several fields
    moved into the ExecContext, while a few others moved into a new System
    object (which replaces the old Kernel object, for now at least).
sim/exetrace.cc:
sim/pc_event.cc:
sim/pc_event.hh:
sim/simple_cpu.cc:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
    - Many g++ 3.2 fixes

    - Added Makefile magic to allow a comprehensive build of
    all simulator variants on all archtectures.  'make all'
    or 'make TARGET=<arch> all_flavors'

    - Added container adaptors and associative_table.  Don't
    use these quite yet -- they are very expensive to
    compile.  Am currently converting them over to boost::mpl.
    They are used by the new BHGP prefetcher.

    - Moved md_sysreg_t reg_t entries to isa_traits.  PISA
    does not have these sorts of registers.

    - Moved ipr accesses to theISAEngineTraits because they
    are not generally applicable.  These are #ifdef FULL_SYSTEM
    in the simulator code -- eventually this should get worked
    into the traits structure.
base/fifo_buffer.cc:
base/fifo_buffer.hh:
    Initial add of this incredibly usefull utility object
arch/alpha/ev5.cc:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/remote_gdb.cc:
sim/exec_context.cc:
sim/exec_context.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/system.cc:
    Implement some interval statistics for full system mode.
    Create a callpal function that is called when a callpal occurs so it's easier
    to manipulate the statics.
    Rework the vtophys stuff to make it a bit cleaner.
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
    Keep track of all callpals in the interval stats
base/res_list.hh:
base/sched_list.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/hybrid_pred.hh:
sim/main.cc:
sim/predictor.hh:
sim/prog.cc:
sim/sat_counter.hh:

    TA DA!!!!

    The giant, huge, amazing, i-hope-i-never-have-to-do-that-again,

    CLUSTERING MERGE!!!!

    \
base/fifo_buffer.hh:
sim/exetrace.hh:
    Minor adjustments for GCC 3 compatibility
    Turn ptrace features back on
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/ev5.cc:
arch/alpha/fake_syscall.cc:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/remote_gdb.hh:
dev/alpha_console.cc:
dev/simple_disk.cc:
dev/simple_disk.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.hh:
sim/memtest.cc:
sim/memtest.hh:
sim/prog.cc:
sim/prog.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/system.cc:
sim/system.hh:
    Get rid of almost all old-style object names.  This commit is equivalent
    to running the following script on the current head:

    #! /bin/sh

    find \( -name '*.cc' -o -name '*.hh' \) -exec perl -pi -e '\
    s/\bmemory_object\b(?!\.hh)/FunctionalMemory/g;\
    s/\bvirtual_memory\b(?!\.hh)/VirtualMemory/g;\
    s/\bmain_memory\b(?!\.hh)/MainMemory/g;\
    s/\bphysical_memory\b(?!\.hh)/PhysicalMemory/g;\
    s/\bspec_memory\b(?!\.hh)/SpeculativeMemory/g;\
    s/\bMemObj\b(?!\.hh)/TimingMemObj/g;\
    s/\bmemory_translation\b(?!\.hh)/AddressTranslator/g;\
    s/\balpha_tlb\b(?!\.hh)/AlphaTlb/g;\
    s/\balpha_itb\b(?!\.hh)/AlphaItb/g;\
    s/\balpha_dtb\b(?!\.hh)/AlphaDtb/g;\
    s/\bmemory_controller\b(?!\.hh)/MemoryController/g;\
    s/\bstorebuffer_t\b(?!\.hh)/StoreBuffer/g;\
    s/\bstorebuffer_entry_t\b(?!\.hh)/StoreBufferEntry/g;\
    s/\bcreate_vector_t\b(?!\.hh)/CreateVector/g;\
    s/\bcv_spec_state\b(?!\.hh)/CreateVecSpecState/g;\
    s/\bspec_state_list\b(?!\.hh)/SpecStateList/g;\
    s/\bdyn_inst_t\b(?!\.hh)/DynInst/g;' {} \;
arch/alpha/fake_syscall.cc:
sim/exec_context.hh:
sim/memtest.hh:
sim/simple_cpu.cc:
    Renamed files to better match new object names:
    base_memory.{cc,hh} --> functional_memory.{cc,hh}
    mem_obj.{cc,hh} --> timing_mem_obj.{cc,hh}
sim/exec_context.cc:
sim/exec_context.hh:
sim/prog.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Detailed CPU now compiles in full-system mode (but doesn't run, so I
    didn't add it to the makefile).

    SLAT code is now protected by '#ifdef USE_SLAT', since it's not currently
    compatible with full-system mode.  Also, slat.cc is not compiled by
    default.  We will need a makefile option to do '-DUSE_SLAT' and add
    slat.cc to the source list.

    CPU::Thread object is gone; these are now just bare SpecExecContexts.

    Changed all remaining {read,write}_{byte,half,word,qword} sets of methods
    to just read/write template methods, where possible.
sim/system.cc:
sim/system.hh:
    Make the system boot flag a paramter
arch/alpha/ev5.hh:
sim/intr_control.hh:
    The ethernet device was interrupting on the wrong interrupt line.  Line 0x17
    is too high (it's higher than the clock interrupt) and it doesn't correspond
    with the spl protection in the driver source.

    To solve this, we hack in support to support multiple interrupts at a single
    level and have scsi and ethernet share the same interrupt level.
dev/etherbus.cc:
dev/etherint.hh:
    Make the bus call back to the ethernet interface when the transfer is
    complete.  This allows the interface to do the next request in the transmit
    buffer if there is one.
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
    Add etherdump object which accepts packets and spits them out in tcpdump
    format for analysis with tcpdump and ethereal.

    Make the etherbus support the dump object
dev/etherint.cc:
    make the ethernet interface a SimObject that you can refer to
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
    Add a different connection type between ethernet interfaces.
    The ether link is a unidirectional fixed bandwidth link.  To simulate
    a full duplex 100MB/s ethernet, you need two etherlinks. It's just much
    easier to simulate a full duplex link this way.  Maybe encapsulate this into
    another bidirectional link sometime.
sim/exec_context.hh:
sim/main.cc:
sim/simple_cpu.cc:
sim/system.cc:
    Add a halted state to the simulator and only actually exit the simulator
    when all systems have halted.  While we're at it, remove an if statement
    from the common code path in SimpleCPU::tick
sim/exec_context.hh:
sim/simple_cpu.cc:
    IntervalStatsObject -> IntervalStats
test/Makefile:
    Make this work again
base/cprintf.hh:
    #include guard
arch/alpha/alpha_memory.cc:
arch/alpha/vtophys.cc:
base/remote_gdb.cc:
dev/alpha_console.cc:
dev/console.cc:
dev/disk_image.cc:
dev/etherbus.cc:
dev/simple_disk.cc:
sim/eventq.cc:
sim/pc_event.cc:
sim/simple_cpu.cc:
    since cprintf properly deals with 64-bit types, stop using FMT* as much as
    possible
base/circlebuf.cc:
base/inet.cc:
base/inet.hh:
base/object_file.cc:
base/res_list.hh:
    convert some stdio stuff to use cprintf/c++ streams
dev/console.cc:
dev/console.hh:
    convert some stdio stuff to use cprintf/c++ streams
    better use of format strings
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
    - Make SLAT work with new execution context

    - Temporarily fix include file problems (circular includes)
arch/alpha/alpha_memory.cc:
arch/alpha/ev5.cc:
arch/alpha/fake_syscall.cc:
sim/eventq.hh:
sim/hybrid_pred.hh:
sim/main.cc:
    True and false are keywords in C++, don't use TRUE and FALSE
    This can be done with the following script:

    #!/bin/sh
    for each in `find . \( -name '*.cc' -o -name '*.hh' \)`; do
    perl -pi -e '\
    s/\bFALSE\b/false/g;\
    s/\bTRUE\b/true/g;' $each
    done
base/cprintf.cc:
base/cprintf.hh:
test/Makefile:
test/cprintftest.cc:
    Add support for 'terminators' to cprintf.  This is esentially a special
    manipulator that can cause some sort of event to occur when the stream
    is outputted.  (Will be used for panic, fatal, etc.)
base/cprintf.cc:
base/cprintf.hh:
    Another cleanup fo the cprintf stuff.  This should make it much easier to do
    panic, etc.
sim/simple_cpu.cc:
    Rename sim_num_refs to SIM:num_refs to match Steve's new naming
    in the detailed CPU stats.
base/cprintf.cc:
base/cprintf.hh:
    Get rid of the reference counting and the pass by value, and come up with
    a way to remove all of the temporary variables that are created, and only
    create one.  Should make the compiler's burden much less
sim/pc_event.hh:
    quell warning
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/fake_syscall.cc:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/inet.cc:
base/inet.hh:
base/object_file.cc:
base/object_file.hh:
base/remote_gdb.cc:
base/remote_gdb.hh:
base/trace.cc:
base/trace.hh:
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherpkt.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
sim/exetrace.hh:
sim/memtest.cc:
sim/memtest.hh:
sim/pc_event.cc:
sim/serialize.cc:
sim/serialize.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/system.cc:
    Change byte_t etc. to C99 standard int8_t etc.
    Other than old/host.h, all other changes were produced by this script:

    #! /bin/sh

    find \( -name '*.cc' -o -name '*.hh' -o -name '*.c' -o -name '*.h' -o -name 'machine.def' \) -exec perl -pi -e '\
    s/\bbyte_t\b(?!\.hh)/uint8_t/g;\
    s/\bsbyte_t\b(?!\.hh)/int8_t/g;\
    s/\bhalf_t\b(?!\.hh)/uint16_t/g;\
    s/\bshalf_t\b(?!\.hh)/int16_t/g;\
    s/\bword_t\b(?!\.hh)/uint32_t/g;\
    s/\bsword_t\b(?!\.hh)/int32_t/g;\
    s/\bqword_t\b(?!\.hh)/uint64_t/g;\
    s/\bsqword_t\b(?!\.hh)/int64_t/g;\
    s/\bbool_t\b(?!\.hh)/bool/g;\
    s/\bdfloat_t\b(?!\.hh)/double/g;\
    s/\bsfloat_t\b(?!\.hh)/float/g;' {} \;
sim/simple_cpu.cc:
    Assume preprocessor can do ANSI '##' token pasting.
arch/alpha/fake_syscall.cc:
base/misc.cc:
base/misc.hh:
base/pollevent.cc:
base/sched_list.hh:
base/socket.cc:
base/symtab.cc:
dev/console.cc:
dev/disk_image.cc:
dev/simple_disk.cc:
sim/base_cpu.cc:
sim/eventq.cc:
sim/intr_control.hh:
sim/main.cc:
sim/memtest.cc:
sim/param.cc:
sim/serialize.cc:
sim/sim_object.cc:
sim/simple_cpu.cc:
    Get closer to removing all FMT64 junk and myfprintf stuff
    Make panic, flatal, warn use cprintf.
    Start moving away from the old/misc.(cc|h) files.
dev/simple_disk.cc:
    Get rid of some FMT junk
dev/etherdump.cc:
dev/pcireg.h:
    u_int* -> uint*
dev/etherdump.cc:
    sys/time.h instead of time.h
arch/alpha/ev5.cc:
sim/exec_context.cc:
sim/exec_context.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Do some clean up in the manner that the interval stats object is created
    Also, use the interval stats range when doing my full-system istats.
    Finally, don't make the interval stats part of the exec_context since it makes
    little sense to do so.  We're only going to have one interval stats
    object (at least for now.)
base/mod_num.hh:
    Initial addition of a "modulo-number" class
sim/eventq.cc:
sim/eventq.hh:
    convert some stdio to iostream
sim/eventq.cc:
sim/eventq.hh:
sim/main.cc:
sim/sim_events.cc:
sim/sim_events.hh:
sim/simple_cpu.cc:
    Move some common events into a new sim_events file.  Rearrange some other
    things to move towards having only events in the main loop.
sim/eventq.hh:
    Change protections
base/pollevent.cc:
base/pollevent.hh:
    proper destruction
dev/console.cc:
    don't panic on connection error.  detach.
sim/eventq.cc:
sim/eventq.hh:
    Clean up event queue and add support for priorities
sim/eventq.cc:
sim/main.cc:
sim/memtest.cc:
sim/serialize.cc:
sim/sim_events.cc:
sim/sim_events.hh:
    Get rid of sim_exit_now and make it an event.
    Get rid of sim_dump_stats and make it an event.
    Main loop is now reduced to servicing the event queue, ticking the
    CPUs, and incrementing sim_cycle
sim/simple_cpu.hh:
    formatting nits
base/cprintf.hh:
dev/etherdump.cc:
dev/etherdump.hh:
sim/eventq.hh:
sim/sim_events.cc:
    - ANSI/ISO C++ fixes

    - Improve SLAT efficiency

    - Add build_test rule to compile across all archs
    and options.  This builds one simulator from each
    combination including the optimized Alpha simulator
    to run smt-test.  Please run this before committing.
base/misc.cc:
    make warnings less verbose
sim/eventq.hh:
    Generic function that will delay the calling of a member function until a
    specified cycle.

    Has problems if you use it with gcc 2.95, but 3.2 compiles it ok.
dev/etherbus.cc:
    Better debugging
dev/etherbus.cc:
dev/etherint.cc:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
    Rework the EtherInt class to represent a generic Ethernet interface.  Any
    object that wishes to connect to another device and pass ethernet packets
    must export an ethernet interface.  This makes it possible to connect any
    two objects that have ethernet interfaces.  For example, one EtherDev can
    connect directly to another etherdev, or the two EtherDevs can each attach
    to one of the interfaces on an EtherLink to get a fixed bandwidth.
dev/ethertap.cc:
dev/ethertap.hh:
util/tap/Makefile:
util/tap/tap.cc:
    The ethertap device and ethertap utility allow a simulator to connect to a
    real physical ethernet.  Currently, the tap utility only works on OpenBSD,
    but that should be easily fixed.
dev/ethertap.cc:
dev/ethertap.hh:
    better bounds checking
base/cprintf.hh:
    change function names in cprintf
base/trace.cc:
base/trace.hh:
    Make DPRINTF work more like panic, fatal, warn, etc.  Also make it possible
    to redirect trace output to a file instead of stdout.
dev/etherlink.cc:
dev/etherlink.hh:
    Make EtherLink::Link Serializeable
arch/alpha/alpha_memory.cc:
base/remote_gdb.cc:
base/res_list.hh:
base/trace.cc:
base/trace.hh:
dev/console.cc:
dev/disk_image.cc:
dev/etherbus.cc:
dev/etherlink.cc:
dev/ethertap.cc:
dev/simple_disk.cc:
sim/eventq.cc:
sim/eventq.hh:
sim/pc_event.cc:
sim/serialize.cc:
sim/simple_cpu.cc:
    rework DPRINTF to automatically print the cycle and get the name of the
    object from which it was called.

    Additionally, while we're at it change 0x%x -> %#x
dev/disk_image.cc:
sim/pc_event.cc:
sim/serialize.cc:
    dont use c_str() if we don't have to
base/trace.cc:
    Only delete the stream if we created it
base/trace.cc:
base/trace.hh:
    Expose ostream to which tracing statements are sent via DebugOut()
dev/console.cc:
    carriage return not necessary
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
    Add support for accessing function arguments from a kernel function.
    The class behaves somewhat like a random access iterator so that the user can
    access any argument desired, but to get at the data, the user uses the
    casting operators to get at the data pointed to by the arguments
sim/pc_event.cc:
sim/pc_event.hh:
    inline
sim/pc_event.cc:
sim/pc_event.hh:
sim/system.cc:
sim/system.hh:
    create a pc based event that traps kernel printfs for debugging statements
arch/alpha/arguments.hh:
    rename to CopyData and use void * to avoid compiler problems
sim/pc_event.cc:
    Make Kernel::Printf take AlphaArguments as a parameter so that a user may
    add initial arguments to another version of the kernel function and then
    pass an offset arguments class to the function for printing the data.
    Also, while we're at it, remove the printing of the cycle.  That can be done
    by the caller.
base/trace.hh:
sim/pc_event.cc:
sim/pc_event.hh:
sim/system.cc:
sim/system.hh:
    Separate the printf event from the debugging printf event.  The kernel will
    call the debugging printf event m5printf.  There is also a raw version
    m5printfr that indicates to the simulator that it shouldn't print
    any extra information in the context of this debuggin printf because
    it would screw up fromatting.
sim/pc_event.cc:
    symmetry
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
    plug huge leak
arch/alpha/arguments.hh:
    Add std:: to list
arch/alpha/arguments.hh:
    make the execution context available
dev/etherlink.cc:
    formatting, typeo, paranoia
sim/system.cc:
sim/system.hh:
    enable the mbuf dump code
sim/pc_event.cc:
sim/pc_event.hh:
    Add a pc event for the kernel mbuf dump function
arch/alpha/fake_syscall.cc:
sim/main.cc:
    I can see no good reason at all for doing setjmp/longjmp
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
    reference count the argument data so that the data doesn't disappear before
    we're done using it.
sim/main.cc:
    move all signal stuff into main.cc
sim/sim_events.cc:
    Move termination and progress event initialization to sim_events
sim/debug.cc:
sim/debug.hh:
sim/main.cc:
sim/pc_event.cc:
sim/simple_cpu.cc:
    Move some of the debug break stuff to its own file
    Use SIGTRAP to initiate a break and set up the simulator to ignore the signal.
    This will make gdb automatically stop in these functions, but won't interfere
    with normal simulator workings.
sim/sim_events.cc:
    Id string
sim/sim_events.cc:
    make g++ 3 happy
base/cprintf.cc:
base/cprintf.hh:
base/misc.cc:
base/misc.hh:
base/trace.cc:
base/trace.hh:
    - Rename debug rule to dbg so it doesn't interfere
    with debug.cc.

    - Reorganize build_test so it generates dependencies
    correctly.

    - Remove HashTable from spec_memory and replace with
    SGI's hash_map extension.

    - Put cprintf/ArgList in namespace cp so it doesn't
    interfere with g++ 2.95 std::deque (comma operator
    gives problems -- this is a g++ 2.95 bug).

    - Fix FP register decode in dispatch.  PISA registers
    > 31 were being counted as FP registers and using
    up all of the FP hpysical registers.  The code in
    commit correctly identified FP registers so the
    bogus FP physical register usage was never cleared,
    locking up the machine.  This is why the SLAT didn't
    work correctly.  Added isa_traits::isFloatingPointRegister
    and ::isIntegerRegister to do this tracking in a
    machine-independent way.
sim/sim_events.cc:
    simple way to dump stats on specified cycles
sim/eventq.hh:
    Re-insert assignment of description string into event
sim/eventq.cc:
    If event is the head in remove() return
arch/alpha/fake_syscall.cc:
    Clustering changes....
    - clusters can share data using the ClusterSharedInfo structure
    - Pulled the register info file from the segmented IQ --> dispatch stage
    (this info can be used by the dispatch stage and any IQ model)
    - Segmented IQ's share the chain-info-table now
base/misc.hh:
    - Add m5_assert() macro to print the sim_cycle if the
    assert fails.

    - Add simple_trace, simple_trace_data and simple_trace_start
    parameters to generate a sim-safe-like trace for easy
    comparison with simplescalar results.  Needed for PISA
    debugging.
sim/sim_events.hh:
    remove extra space
sim/main.cc:
    Fix dump() for floss-reasons
    Segfault can now dump core
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Get rid of obsolete call from misguided thread scheduling experiment.
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
    add new alpha instructions for starting and ending intervals
dev/disk_image.cc:
dev/disk_image.hh:
    Make the copy-on-write disk image use hash_map
base/callback.hh:
    Generic callback class and callback queue for random use
sim/main.cc:
sim/sim_events.cc:
sim/sim_exit.hh:
    Move exit stuff into it's own file.  Make an exit callback queue so that
    generic callbacks can be invoked upon simulator exit
dev/disk_image.cc:
    give a mode that makes sense
dev/disk_image.cc:
dev/disk_image.hh:
    Rework the object implementation of the copy-on-write disk image.
    - Allow a child name and an initial table size to both be specified
    - Add a read only flag that determines if changes to the image are written
    back to disk.
    - If the flag is not read only, and there is no initial image to open, that's
    ok, just create an initial empty table.
    - If the table is to be written back to disk, schedule an ExitCallback to
    write the image back when the simulator exits.
base/callback.hh:
    make this work in g++ 3
base/misc.cc:
base/pollevent.cc:
base/pollevent.hh:
base/trace.hh:
sim/pc_event.cc:
sim/universe.cc:
    declare sim_cycle in one place
arch/alpha/alpha_memory.cc:
dev/alpha_console.cc:
    more sim_cycle cleanup
sim/eventq.hh:
    fix priority handling in the event queue:
    if an event is scheduled with a priority once, then don't overwrite the
    priority if it is subsequently scheduled without a priority
dev/console.cc:
    send a carriage return/newline pair to the output manually since cprintf
    and friends would interpret this and send out endl
dev/console.cc:
dev/console.hh:
    add option to save console output to a file
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Rework cache interface to avoid trying to loop inside of tick().
    Should work much more cleanly with timing memory now (even for
    multiprocessor systems).
sim/simple_cpu.cc:
    a whole bunch of cleanup foo
sim/eventq.cc:
    events can't be scheduled in the past anymore
sim/eventq.cc:
sim/eventq.hh:
    create doEventLoop(), this continually cycles through the event queue
    consuming events until there are none left
dev/console.hh:
    Make this work in g++ 3
sim/sim_events.cc:
sim/sim_events.hh:
    Make the act of ticking all cpus an event.  Automatically schedule it
    every cycle
sim/debug.cc:
sim/main.cc:
sim/sim_events.cc:
    rearrange code to get rid of sim_smt.cc
sim/main.cc:
    oops. bring back the SIM:cycle stat
arch/alpha/ev5.cc:
sim/simple_cpu.cc:
    move the break_ipl check to the point where the IPL is actually set
sim/debug.cc:
    Make the debug break event first in any given cycle
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Split I-cache and D-cache stall cycles out from idle cycles in statistics.
sim/prog.hh:
    - Replace SLAT maps with hash_maps

    - Add hash<> specializations for md_addr_t,
    counter_t, etc.

    - Increase max file descriptors from 15 to 100
    (parser00 was running out)
sim/simple_cpu.cc:
    A few baby steps toward full-system detailed CPU.
    ev5_trap() now sets both PC & NPC (not just NPC).
base/misc.cc:
base/trace.cc:
    New memory model
Doxyfile:

    Configuration file for doxygen. Generates documentation in /n/zizzer/z/m5docs.

    To generate docs, run "doxygen Doxyfile" in the root directory of your copy of the head.

    To comment your code you use a javadoc like syntax, a cstyle comment with 2 stars at the front (/**). For example

    /** Everything before the first period is a brief description. This is a detailed description.

    @param <name> description of parameter to function
    @retval <name/type> description of function return value.
    @sa (for see also) generate links to other class/enum/member/etc.
    */

    You should start your files out with a comment like:

    /** @file
    Brief description of the file.
    Detailed description if needed.
    */

    See TimingMemobj.hh for more examples.
dev/ethertap.cc:
    Make this work on OpenBSD
sim/main.cc:
sim/sim_events.cc:
sim/sim_events.hh:
sim/sim_exit.hh:
    Make it possible to set an exit code for the exit event.
    Also, make exit_now not visible to the rest of the simulator so that people
    will know to create an exit event.
    Finally, don't include callback.hh since we don't have to.
sim/sim_events.cc:
    use the SimExitEvent to make sure that we exit at the end of the cycle
arch/alpha/fake_syscall.cc:
    don't use exit_now() create a SimExitEvent()
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
    Add an instruction that causes M5 to exit, allowing processes running under
    simulation to cause the simulation to terminate
sim/simple_cpu.cc:
    in full system mode, don't panic on an unknown opcode
dev/disk_image.cc:
dev/disk_image.hh:
    convert stdio to streams
sim/system.cc:
    remove uneeded include
base/cprintf.cc:
    %p is an integer (more or less)
sim/system.cc:
sim/serialize.cc:
    missing include
dev/disk_image.cc:
    cast to correct types for proper interface usage
base/circlebuf.cc:
base/intmath.h:
base/remote_gdb.cc:
base/res_list.hh:
    In c++, we use std::min, std::max, true, and false, not ano of the other junk
sim/sim_events.cc:
    make a local copy of the data since the object can get deleted
dev/alpha_console.cc:
dev/alpha_console.hh:
    Added parameter for number of CPUs to console, defualt=1
sim/sim_events.cc:
sim/simple_cpu.cc:
sim/system.cc:
sim/system.hh:
    use cprintf.
    general cleanup
    remove unneeded c_str() calls.
base/cprintf.cc:
    make %% work
base/cprintf.cc:
    handle %% better
test/cprintftest.cc:
    better testing
arch/alpha/alpha_memory.cc:
    convert to use iostream and cprintf instead of stdio and fprintf
base/cprintf.cc:
    more accurately implement formatting for floating point numbers
test/cprintftest.cc:
    more tests
base/inifile.cc:
base/inifile.hh:
base/symtab.cc:
base/symtab.hh:
dev/disk_image.hh:
sim/base_cpu.cc:
test/Makefile:
    convert everything to use hash_map instead of my old hash table junk
base/hashmap.hh:
base/inifile.hh:
dev/disk_image.hh:
    since people don't agree on where hash_map belongs, pull it into the
    m5 namespace and include hashmap.hh whenever a hashtable is needed
sim/memtest.cc:
    Move Cache only calls (block_size, hit_latency, etc.) out of TimingMemObject and into CPUMemInterface. Changes to everywhere they were called on a TimingMemObj.
sim/param.hh:
    Fix handling of operator[] for EnumVectorParam classes.
    Also fix some line wrapping problems caused by adding 'std::'.
base/trace.cc:
base/trace.hh:
    Extend trace facility to either print immediately to an ostream or
    maintain a circular buffer of trace entries (dumpable from debugger
    by calling dumpTrace()).  Also change flags to use SimpleEnumVectorParam
    so we can just give a list of names instead of a big hex value.
sim/exetrace.cc:
sim/exetrace.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Integrate execution trace code into new trace facility.  Eliminates
    the need for a separate execution trace log.  Enable instruction tracing
    using --trace:flags=InstExec.
base/misc.cc:
    Dump trace buffer in panic().
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
sim/simple_cpu.cc:
    set up an annotations.hh file where inline annotation functions that do
    nothing exist.  This allows people to hack in annotations all in one file
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
    intervals are really annotations
arch/alpha/ev5.cc:
    Factor out more annotations
arch/alpha/ev5.cc:
sim/simple_cpu.cc:
    Make an Annotate namespace, and add a DumpStats method to it
dev/disk_image.cc:
sim/main.cc:
sim/sim_events.cc:
sim/sim_exit.hh:
    Normalize exit-related function names.
    Move exitNow() prototype to simexit.hh.
base/misc.cc:
base/trace.cc:
base/trace.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Minor cleanup on new tracing code:
    - namespace cleanup
    - fix bug in Trace::Log::dump
    - added new RawDumpRecord to put raw data in trace buffer
    (call Trace::rawDump, was Trace::dump)
    - added --trace:flags=All to set all trace flag bits
    - added --trace:dump_on_exit option to dump trace buffer on normal exit
    - DPRINTF now requires 'const char *' for format (not string) so it
    doesn't go away by the time buffer is dumped
sim/sat_counter.hh:
sim/serialize.hh:
    foo(void) --> foo()

    This commit is equivalent to doing the following in the sim directory:

    perl -pi -e 's/\(void\)/()/' *.cc *.hh
sim/base_cpu.hh:
sim/eventq.cc:
sim/hybrid_pred.cc:
sim/hybrid_pred.hh:
sim/memtest.cc:
sim/predictor.hh:
sim/sat_counter.cc:
sim/sat_counter.hh:
    Move dump() and reg_stats() implementations out of header files.
    Clean up #includes.
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/main.cc:
    Clean up identification and handling of prefetches and no-ops.
    Added is_data_prefettch() method to DynInst.  (One of these days
    we'll have to change all those functions to isFoo() style.)
    Changes nop count statistic... we were only counting Alpha UNOPs
    before, not all Alpha NOP forms.
sim/pc_event.cc:
sim/simple_cpu.cc:
    - Strip opt binaries after build

    - Update Makefile for new source files

    - Fix BHGP prefetcher to use compressed addresses

    - Fix FULL_SYSTEM compile problems (missing header includes)
base/inifile.cc:
    Make it possible to override variables in the inifile and on the command line
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    - Make the SLAT useable with SimpleCPU for quick
    and easy debugging.  This required refactoring some
    of the traits classes which should make them
    marginally more independent.

    - Fix bogus assert in the SLAT code.  Alias load/store
    values should only be assumed equivalent in non-spec mode.
sim/simple_cpu.cc:
    - Must send the saved address to the SLAT for all memory
    operations because execution could have overwritten
    the base register.
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Added Parameter for CPU identification number in Full System
    Primary CPU ID is 0, which is the default value
    Modified to start all CPU's in Halted status except the primary CPU
dev/alpha_console.cc:
    Added comments to code for needed implementation in order to boot second CPU
dev/alpha_console.cc:
sim/exec_context.cc:
sim/exec_context.hh:
sim/simple_cpu.cc:
sim/system.cc:
sim/system.hh:
    Added array of Execution Contexts to system.hh
    Used when trying to launch another CPU
    Added cpu_id to Full System ExecContext
    Fixed the launch in alpha_console.cc to access the correct exe_ctx
dev/alpha_console.cc:
sim/simple_cpu.cc:
    Fixed initializtion and launch of the second processor
    Added a gdb-alpha debug port for non-primary processor
    Cleaned up the .ini file of unneeded disk images
sim/simple_cpu.cc:
    Add cpu_id (see Ron's recent commit) to full-system detailed CPU.
base/trace.cc:
    Fix bug in calling dumpTrace() on partially filled trace buffer.
test/Makefile:
test/lru_test.cc:
    - Replace BHGP associative table with something
    simpler.

    - Add lru_test to test out new AssociativeTable
    class.
Doxyfile:
    Only create documentation for documnented classes
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
    cleanup and formatting
sim/simple_cpu.cc:
    Fix bus queueing delay and idle stats. Slight change to one scheduling case. Set req->time in SimpleCPU so delays are correctly computed.
sim/simple_cpu.cc:
    Don't do an icache fetch if we had an ITLB miss.
arch/alpha/alpha_memory.cc:
dev/alpha_console.cc:
sim/serialize.cc:
sim/serialize.hh:
    Replace include of inifile.hh in serialize.hh with forward decl
    of class IniFile.  Requires adding explicit include of inifile.hh
    in several .cc files.
sim/eventq.hh:
    Get rid of needless include of inifile.hh.
sim/main.cc:
base/inifile.cc:
base/inifile.hh:
    Check for unreferenced parameters to detect obsolete settings and
    typos.  A warning for an unreferenced parameter section can be
    suppressed by adding a 'unref_section_ok=y' parameter to the section.
    Warnings for any unreferenced parameters within a section can be
    suppressed by adding a 'unref_entries_ok=y' parameter to the section.
    (The value doesn't matter; the presence of the parameter is all that
    is tested.)

    By default any unreferenced parameter or parameter section warnings
    will cause the simulator to terminate.  Use the '-u' command-line
    option to suppress this behavior (at your own risk!).
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/pcireg.h:
dev/simple_disk.cc:
dev/simple_disk.hh:
sim/eventq.hh:
sim/serialize.hh:
sim/sim_object.hh:
    Add some Doxygen comments.  Mostly putting in markers for the file and classes
    Also some minor formatting fixes here and there
arch/alpha/ev5.cc:
    Reindent to 4 spaces (plus a few other very minor formatting changes).
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
    Reindent.
sim/eventq.hh:
    Don't even bother with the description unless TRACING_ON is defined.
    Not a big deal at this point, since TRACING_ON is currently hardcoded
    to 1 in base/trace.hh.
base/remote_gdb.cc:
base/trace.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/system.cc:
    Clarify debugging defines:
    - DEBUG is either defined or not, but is not given a value.  It should
    be tested with #ifdef.
    - TRACING_ON is always defined, either with a 0 or 1 value.  It should
    always be tested with #if.
    Automatically set TRACING_ON value according to whether DEBUG is defined.
    Added -Wundef to warnings to catch '#if DEBUG' cases.

    (Yes, '#if DEBUG' does the right thing if DEBUG is not defined, but the
    same is not true for '#ifdef TRACING_ON' if TRACING_ON is defined to 0.)

    In the long run, perhaps the uses of TRACING_ON outside of the trace
    package itself should be converted to use DEBUG.
sim/pc_event.cc:
    Looks like a lot of device code has never been compiled w/o TRACING_ON set;
    fix up several warnings (mostly unused variables).
sim/pc_event.cc:
    Oops... needs to compile w/o FULL_SYSTEM too.
base/trace.hh:
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/sim_object.cc:
    Fix up parameter printing controls.  Parameters are always printed by
    default; new command-line parameter '-q' turns this off.  Old system
    was broken in two ways: there was no way to turn off printing in the
    optimized binary, and controlling printing with a trace flag bit (specified
    as an .ini parameter) meant that parameters parsed *before* trace:flags
    never got printed.

    Also added code to print the names of unspecified parameters as comments
    in the output.
base/remote_gdb.cc:
base/trace.hh:
    A couple more changes to get full-system to compile w/o tracing.
sim/simple_cpu.hh:
sim/simple_cpu.cc:
    - Add stats for simple SLAT profiling
sim/simple_cpu.cc:
    Extend HAVE_TSL protection so it can compile without TSL
base/trace.cc:
    Need to update flag strings to match enum... yuck.
sim/system.cc:
sim/system.hh:
    Build global list of system objects.
    Add gdb-callable printSystems() function so we can find system
    object pointers from inside debugger.
sim/eventq.cc:
sim/simple_cpu.cc:
base/pollevent.cc:
base/pollevent.hh:
    Move pollQueue handling into main event loop so it works regardless
    of the CPU model.
arch/alpha/ev5.cc:
    Protect IPRs etc. from being modified on misspeculated paths.
arch/alpha/ev5.hh:
    Eliminate some unused macros.
arch/alpha/alpha_memory.cc:
    Don't update IPRs for TLB misses on misspeculated instructions.
    Set req.flags PHYSICAL and UNCACHEABLE bits as appropriate
    based on results of translation.
sim/param.cc:
    Move ConfigHierarchy::Node definition into separate file so it can be
    included only where necessary.
arch/alpha/fake_syscall.cc:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/circlebuf.cc:
base/circlebuf.hh:
base/cprintf.hh:
base/fifo_buffer.cc:
base/fifo_buffer.hh:
base/inifile.cc:
base/inifile.hh:
base/misc.hh:
base/mod_num.hh:
base/pollevent.cc:
base/remote_gdb.cc:
base/sched_list.hh:
base/socket.cc:
base/socket.hh:
base/str.cc:
base/str.hh:
base/symtab.cc:
dev/alpha_access.h:
dev/etherint.cc:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/debug.cc:
sim/hybrid_pred.cc:
sim/hybrid_pred.hh:
sim/param.cc:
sim/param.hh:
sim/pc_event.cc:
sim/predictor.hh:
sim/sat_counter.cc:
sim/sim_object.cc:
sim/simple_cpu.hh:
test/cprintftest.cc:
test/lru_test.cc:
test/nmtest.cc:
test/offtest.cc:
test/sized_test.cc:
test/symtest.cc:
util/tap/tap.cc:
    Add CVS Id tags
dev/alpha_console.cc:
dev/alpha_console.hh:
    Get rid of pmask field in MemReq; move address mask into devices
    by adding to common base class FunctionalMemory.
base/inifile.cc:
    Don't complain if "unref_section_ok" or "unref_entries_ok"
    are not referenced.
base/inifile.cc:
    Add functionality to "unref_entries_ok":
    Now, the RHS is parsed for a list of unreferenced entries, only these will be "OK"
    Note that this will not be needed very often...
base/trace.cc:
sim/exetrace.cc:
    Make trace cycle number position and format consistent between DPRINTF
    trace records and exetrace records.
sim/debug.cc:
    Add "debug" parameter context for global debug options.
    Add parameter "debug:break_cycles" to set DebugBreakEvent(s)
    from ini file/command line.
sim/pc_event.cc:
sim/system.hh:
    sched_break_pc() now sets a breakpoint on *all* systems.
    Use sched_break_pc_sys() to set a breakpoint on just one system.
sim/debug.cc:
sim/pc_event.cc:
base/cprintf_formats.hh:
    using namespace std
dev/alpha_console.cc:
sim/exec_context.cc:
sim/exec_context.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
arch/alpha/fake_syscall.cc:
sim/prog.cc:
    use accessor functions to set/get status to prepare to not call
    SimpleCPU::tick if there is nothing to do
sim/simple_cpu.cc:
    no more simplescalar here
base/trace.hh:
    Only set TRACING_ON according to DEBUG if it hasn't already been
    set on the command line.
base/trace.cc:
    If compiled with TRACING_ON=0, give an error if the user tries to
    turn on tracing.
sim/main.cc:
    Get rid of do-nothing segfault handler... if you get a segfault in an exit
    handler, you end up with an infinite recursion.
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/pc_event.cc:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Full-system detailed CPU almost almost there.  Big reorganization of
    virtual address translation code, so we can tell an access is uncached
    soon enough to suppress it if it's on the wrong path: translation is its
    own step now, not hidden inside the (former) VirtualMemory object.
    Also a few other changes to avoid bad things on misspeculated paths.

    This commit results in *very* small changes in IPCs and MSIPCs (a
    few tenths of a percent max on the tests) because some wrong-path
    instructions get handled a little differently.
sim/main.cc:
    Put quotes around args with spaces when echoing command line.
sim/pc_event.cc:
    Process PC Events just before fetching the relevant instruction instead
    of just after the previous instruction.  Keeps us from missing events
    when we take off on misspeculated paths.

    ** Detailed CPU now gets to single-user prompt!! **
sim/base_cpu.hh:
sim/eventq.hh:
sim/main.cc:
sim/sim_events.cc:
sim/sim_events.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    get rid of the TickAllEvent and make it so each cpu has its own tick event.
    In the process, the implementation of the virtual functin tick() got moved
    into a non virtual function _tick() so that the tick event could be CPU
    specific and you wouldn't pay the virtual function call overhead.

    This is another step towards being able to not tick a cpu if it has nothing
    to do
sim/base_cpu.hh:
sim/simple_cpu.hh:
    Now that tick is called via an event, we no longer need a virtual function
sim/base_cpu.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    clean up the tick event stuff and get rid of the TickEvent template class
    and just make one for each class since you may want a different process()
    function anyway
base/trace.cc:
base/trace.hh:
sim/base_cpu.hh:
sim/pc_event.cc:
sim/pc_event.hh:
    Fix up branch predictor's return address stack when we do a SkipFuncEvent.
    Since there's no easy way to figure out what thread ID we're on from
    the SkipFuncEvent, we just fix thread 0's RAS... will need to fix this
    when we get SMT full-system up.

    Also:
    - Moved RAS tracing stuff to DPRINTFs; added BranchPredRAS trace flag.
    - Made BadAddrEvent derive from SkipFuncEvent to eliminate code duplication.
base/trace.cc:
sim/eventq.cc:
sim/eventq.hh:
sim/serialize.cc:
    Create a flags bitvector in the event to store flags.  Holds what used to be
    squashed and scheduled, and also contains a new flag for auto delete.

    The auto delete flag will make the eventq responsible for calling delete on
    an event.  This makes 'delete this' unnecessary in the process() function.
    This is most beneficial for events that get squashed since process() never
    gets called, and one might want to have the data reclaimed.

    To use the autodelete functionality with squash, a few events were cleaned up
    and reorganized
sim/exec_context.cc:
sim/exec_context.hh:
sim/pc_event.cc:
sim/simple_cpu.cc:
    Add thread_num field to ExecContext so it knows which CPU thread
    context it represents.  Need this for the SkipFuncEvent RAS fixup,
    but seems generally useful.
dev/etherdump.cc:
    use time.h instead of sys/time.h
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    move the tick schedule() to where it's needed
dev/alpha_console.cc:
dev/alpha_console.hh:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/intr_control.cc:
sim/intr_control.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    get rid of the processor SimObject and move all of the interrupt stuff into
    BaseCPU since it really is part of the CPU anyway
sim/exec_context.hh:
    fix store conditional
sim/exec_context.hh:
    clean up conditional store so that it's more understandable
sim/base_cpu.cc:
sim/base_cpu.hh:
    move interrupt set/clear routines into the .cc file and make them virtual
    so that CPUs derived from BaseCPU can modify the behaviour of the interrupt
    routine.
base/trace.cc:
base/trace.hh:
    New trace flags generation via perl script.  Now if you want to add a
    flag you just type it once (in the script) and all the C++ is generated
    automagically.  Also supports "compound" flags that can be specified
    on the command line and map to multiple regular flags.

    Switched trace flags from 64-bit bitmap to vector<bool> for scalability.
base/trace.cc:
    comment out the offending assign since it is commented as not needed
base/trace.cc:
    Get rid of useless code.
sim/base_cpu.cc:
sim/base_cpu.hh:
    change variable name to avoid confusion
arch/alpha/ev5.cc:
sim/simple_cpu.cc:
    Remove a bunch of istats stuff and insert some annotations for where they
    were.
sim/debug.cc:
    add a function to force stats to be dumped from the debugger
sim/base_cpu.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Don't schedule tickEvent until it is known that there will be something to do
test/Makefile:
    Make tests compile again
test/Makefile:
    Make the whole build process for tests a bit simpler
util/tap/Makefile:
    make this build again, clean stuff up
sim/exec_context.cc:
sim/simple_cpu.cc:
    make stuff compile when not FULL_SYSTEM
sim/main.cc:
    Add the name of the execution host to the output
sim/main.cc:
    Don't free() data returned by getenv.
    besides, free() is a function, not an operator like sizeof
sim/eventq.cc:
    That assertion should have never been committed
sim/simple_cpu.cc:
    don't tick here
sim/eventq.cc:
    the squashed flag should be cleared once the event has actually been processed
sim/simple_cpu.cc:
    we can get here with a dcache miss as well.
sim/simple_cpu.cc:
    only schedule the event if it is not already scheduled.
arch/alpha/fake_syscall.cc:
    Zero out syscall arg buffer to avoid copying garbage into simulator space.
sim/exec_context.hh:
    Translation in non fullsystem mode. And use the FALRU class to implement FA LRU caches.
sim/base_cpu.hh:
sim/exec_context.cc:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Reorganize code a bit so that multiple CPUs can properly work with the
    new tick as event stuff.
arch/alpha/arguments.hh:
base/cprintf.hh:
base/refcnt.hh:
dev/etherpkt.hh:
    Make a refcounted base class that contains the refcounting stuff and make
    everything use it
sim/main.cc:
    don't print out the host if we didn't find one
dev/alpha_console.cc:
dev/alpha_console.hh:
    s/memreq/MemReq/
base/trace.cc:
    Add support to echo trace output (DPRINTF etc.) to cerr as well as
    the trace buffer.  From gdb, call "echoTrace(1)" to enable, or
    "echoTrace(0)" to disable.  As a side effect, semantics of setting
    both trace:bufsize and trace:file are different now (will buffer
    and send to file, where old version would just buffer), but I doubt
    anyone ever did that anyway.  See comments in file for more details.
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/debug.cc:
sim/eventq.cc:
sim/eventq.hh:
sim/memtest.cc:
sim/memtest.hh:
sim/sim_events.cc:
sim/sim_events.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Revamp event debug/tracing structure.
    - virtual const char *description() method replaces description string
    constructor argument.  Lets us associate a fixed description string
    with each class of events with basically no overhead.
    - virtual void trace(char *action) method lets event subclasses
    customize tracing DPRINTF call to put in additional information.
    Currently only used by WritebackEvent (to print sequence number
    of associated instruction).
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/ethertap.hh:
    Fix up full-system events for new debug structure.
base/trace.cc:
    Looks like g++ 3 doesn't like "string = bool ? string : char*".
sim/simple_cpu.cc:
    the caches currently won't completion events for UNCACHEABLE accesses, so
    don't send any.
    Warning, this is a HACK!
dev/etherdump.cc:
sim/main.cc:
    cleanup includes, and remove some #ifdef cruft for BFD
sim/sim_exit.hh:
    Added GDB-callable exitNow() using char *
sim/sim_events.hh:
    Need to include eventq.hh here.
test/Makefile:
    There are no OPT_FLAGS
arch/alpha/fake_syscall.cc:
dev/etherdump.cc:
sim/eventq.cc:
sim/main.cc:
sim/memtest.cc:
sim/serialize.cc:
sim/sim_events.cc:
sim/sim_time.hh:
sim/simple_cpu.cc:
sim/system.cc:
    Get rid of sim.h & sim_smt.hh.  Most of what was in those was obsolete anyway.
    Move needed externs into universe.hh & stats.hh, plus new header file
    sim_time.hh.
sim/memtest.cc:
sim/memtest.hh:
    Update memtest cpu to new tickEvent stuff
base/remote_gdb.cc:
    Adding returns to make insure happy.
sim/simple_cpu.cc:
    Rework Interporcessor Interrupts to properly signal second CPU, and unsuspend it
sim/intr_control.hh:
    Fix clock interrupt to signal both proccesors correctly in MP system
sim/system.cc:
    Fix seg fault in single proccesor mode from last commit, MP now boots with 2 CPUs
sim/simple_cpu.cc:
sim/system.cc:
sim/system.hh:
    Changes to genaralize the interupt scheme to variable number of proccessors
base/misc.cc:
    only dump the trace buffer if tracing is turned on
base/str.cc:
    properly deal with the case where there is only one string in the list
base/cprintf.cc:
base/cprintf.hh:
    Add csprintf() to print to a string (sort of like sprintf())
base/cprintf.cc:
    be consistent about resetting parameters to original values
base/cprintf.cc:
    cleanup
base/statistics.cc:
base/statistics.hh:
    Finally commit my new stats package and stop tinkering with it.

    This new stats package has support for all sorts of stuff.
    Documentation will appear in the code in a future commit.
test/Makefile:
test/stattest.cc:
    add tests for the statistics package.  This exercises all sorts of different
    capabilities of the stats package and can be used for examples.
util/rundiff:
    rundiff utility
    Normal diff reads in all of both input files and tries to generate a minimal
    diff, for super long trace files, this is bad because it takes forever and
    you run out of memory.  rundiff is designed to scan the input files and
    compare only 2000 lines at a time.  This way memory won't run out and a user
    can use fifos for input files.
sim/exetrace.cc:
    Print all reg results as 0x%016x.
arch/alpha/fake_syscall.cc:
base/misc.cc:
base/misc.hh:
base/pollevent.cc:
base/pollevent.hh:
base/statistics.hh:
base/trace.cc:
base/trace.hh:
dev/alpha_console.cc:
dev/etherbus.cc:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/ethertap.cc:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/debug.cc:
sim/eventq.cc:
sim/eventq.hh:
sim/exec_context.hh:
sim/exetrace.hh:
sim/hybrid_pred.hh:
sim/main.cc:
sim/memtest.cc:
sim/memtest.hh:
sim/pc_event.cc:
sim/prog.hh:
sim/sat_counter.hh:
sim/serialize.cc:
sim/sim_events.cc:
sim/sim_events.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/universe.cc:
test/nmtest.cc:
test/stattest.cc:
test/symtest.cc:
    Global variable renaming.  Basically equivalent to the following perl:

    s/\btick_t\b/Tick/g;
    s/\bsim_cycle\b/curTick/g;
    s/\bcounter_t\b/Counter/g;
    s/\bsim_freq\b/ticksPerSecond/g;
dev/console.cc:
dev/etherbus.cc:
dev/etherdump.cc:
dev/etherlink.cc:
dev/ethertap.cc:
    Get rid of some explicit externs (use header files!).
dev/ethertap.cc:
    Include for panic().
arch/alpha/alpha_memory.cc:
sim/exec_context.hh:
    Various bug fixes. Charge all writebacks to thread 0
sim/eventq.cc:
sim/eventq.hh:
sim/main.cc:
    rework the event loop a bit so that we can prepare for dealing with
    asynchronous events properly.
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
base/refcnt.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
sim/exec_context.hh:
sim/memtest.cc:
sim/memtest.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Initial move to reference counting MemReq objects. Switched to STL containers for storage in the memory hierarchy.
sim/exec_context.hh:
    Fix LL/SC and got 1-6 CPUs working by fixing clock interrupt
sim/simple_cpu.cc:
    Add the IIC as a selectable cache tag. Fix translation for now with a quick hack.
sim/exec_context.hh:
    Put detection logic on failed Store Conditionals to help detect deadlock situations
util/term/Makefile:
util/term/term.c:
    Whittle down netcat to the bare minimum to connect to another machine
    and add the proper stuff to do some terminal handling to make this utility
    sufficient for connecting to m5 to get a console
util/term/Makefile:
    add an install target
base/pollevent.cc:
sim/async.hh:
sim/main.cc:
    Don't create events in signal handlers since it really isn't safe.  I'm not
    positive if some bugs I've seen were caused by this, but we may as well
    be safe
base/pollevent.cc:
base/pollevent.hh:
dev/console.cc:
dev/console.hh:
sim/async.hh:
sim/main.cc:
    - clean up the pollevent stuff and just do the poll whenever requested since
    we will request it with the proper frequency
    - add an alarm to poll once every second in addition to waiting for sigio

    - remove all of the telnet crap since I'm never planning on implementing it
    - fix detaching and re-attaching of consoles
base/pollevent.cc:
base/pollevent.hh:
sim/main.cc:
    only handle/raise SIGALRM if we're polling
sim/memtest.cc:
sim/cache/lzss_compression.hh:
sim/cache/null_compression.hh:
    Initial check in of Compression stuff and IIC subblocking.
base/remote_gdb.cc:
    Get rid of needless extern.
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/fake_syscall.cc:
dev/alpha_console.cc:
dev/alpha_console.hh:
sim/exec_context.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Rename fault type and fault codes as follows:
    s/md_fault_type/Fault/g;
    s/md_fault_none/No_Fault/g;
    s/md_fault_mcheck/Machine_Check_Fault/g;
    s/md_fault_opdec/Unimplemented_Opcode_Fault/g;
    s/md_fault_alignment/Alignment_Fault/g;
    s/md_fault_overflow/Integer_Overflow_Fault/g;
    s/md_fault_reset/Reset_Fault/g;
    s/md_fault_arith/Arithmetic_Fault/g;
    s/md_fault_interrupt/Interrupt_Fault/g;
    s/md_fault_ndtb_miss/Ndtb_Miss_Fault/g;
    s/md_fault_pdtb_miss/Pdtb_Miss_Fault/g;
    s/md_fault_dtb_fault/Dtb_Fault_Fault/g;
    s/md_fault_dtb_acv/Dtb_Acv_Fault/g;
    s/md_fault_itb_miss/Itb_Miss_Fault/g;
    s/md_fault_itb_fault/Itb_Fault_Fault/g;
    s/md_fault_itb_acv/Itb_Acv_Fault/g;
    s/md_fault_fen/Fen_Fault/g;
    s/md_fault_pal/Pal_Fault/g;
    s/md_fault_NUM/Num_Faults/g;

    Also changed 'enum md_fault_type' to just 'Fault' where possible.
sim/exec_context.cc:
sim/exec_context.hh:
    Add a constructor to specify a memory without a process
sim/eventq.hh:
    clean up a bit.
    When events are resecheduled or removed from the schedule, they are no longer
    squashed.  (Only scheduled events can be squashed.)
sim/simple_cpu.hh:
    check to see if the tick event was squashed.  If it was squashed, then it must
    be rescheduled since squashed events are scheduled.
sim/exec_context.cc:
sim/exec_context.hh:
    This new constructor is only for non FULL_SYSTEM
base/statistics.cc:
base/statistics.hh:
test/stattest.cc:
    Remove unused variable
    dumpStats -> dump
    initStats -> init
    use const string & instead of const char *
    make Base constructor explicit
    more consistent formatting widths
sim/main.cc:
sim/sim_events.cc:
    make the new stats package useable in the simulator
base/statistics.cc:
base/statistics.hh:
test/stattest.cc:
    create two standard stats that are to be used for calculations:
    elapsedTicks - is the number of ticks that has elapsed during this
    simulation.  Currently, this is just curTick, but this may change when
    we have checkpointing.
    elapsedSeconds - is the number of simulated seconds that have elapsed during
    the simulation.  Currently, this is just elapsedTicks / ticksPerSecond.
sim/main.cc:
    Need to initialize stats much sooner so that SimObject constructors can
    register statistics
base/statistics.cc:
    - use the stat_print_descriptions variable that the old stats package provides
    this is just a quick hack for now.  When the old stats package goes away,
    we'll move this.
    - Fix the sorting algorithm so it works as I had intended
    - Make the output field widths equivalent to the old stats package
base/statistics.cc:
    clean up memory
sim/sim_events.cc:
sim/sim_events.hh:
    Use autodelete
sim/sim_events.cc:
    oops.  didn't mean to commit this part
util/tap/Makefile:
    call it m5tap instead of ethertap
sim/exec_context.hh:
    Get rid of a couple of unnecessary forward class declarations.
sim/memtest.cc:
sim/memtest.hh:
    Adds compression to the memory hierarchy as well as using ExecContext to access memory. Added a few related config files.
base/cprintf.cc:
    Default fill char is space, regardless of what stream fill char is.
sim/exetrace.cc:
    Convert some of the hairier format things to ccprintf.
base/statistics.cc:
    try getting the sorting a bit better
arch/alpha/arguments.hh:
base/refcnt.hh:
base/statistics.hh:
dev/etherpkt.hh:
    s/refcounted/RefCounted/
    s/refcnt/RefCountingPtr/
arch/alpha/fake_syscall.cc:
    Zero out register files for newly created threads to make non-full-system
    MP runs deterministic.
sim/exetrace.cc:
    Don't trace the results of NOPs or prefetches (for easier comparison
    with traces from new decoder).
sim/exetrace.cc:
    Don't trace branch link values written back to R31 either.
    Also put a ifdef TARGET_ALPHA around this hack.
sim/exetrace.cc:
    Need another ifdef TARGET_ALPHA...
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/arguments.cc:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/fake_syscall.cc:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/object_file.hh:
base/remote_gdb.cc:
base/remote_gdb.hh:
base/symtab.cc:
base/symtab.hh:
dev/alpha_console.cc:
dev/simple_disk.cc:
dev/simple_disk.hh:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.hh:
sim/memtest.cc:
sim/memtest.hh:
sim/pc_event.cc:
sim/pc_event.hh:
sim/prog.cc:
sim/prog.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/system.cc:
sim/system.hh:
test/nmtest.cc:
test/symtest.cc:
    Massive renaming to (almost) eliminate all md_* and MD_* names
    in preparation for total exorcism of machine.def.

    Most of the changes in this commit were performed with the
    following perl script (perl -pi <script> <files>).  A small
    amount of manual fixup was needed to (mostly getting rid of
    the Addr typedefs in the various memory objects now that
    the former md_addr_t has that name).

    # rename machine-dependent types and constants (will be moving into ISA traits object)
    s/md_addr_t/Addr/g;
    s/md_intreg_t/IntReg/g;
    s/md_gpr_t/IntRegFile/g;
    s/md_fpreg_t/FloatReg/g;
    s/md_fpr_t/FloatRegFile/g;
    s/md_ctrlreg_t/MiscReg/g;
    s/md_ctrl_t/MiscRegFile/g;
    s/md_ipr_t/InternalProcReg/g;
    s/md_anyreg_t/AnyReg/g;
    s/md_inst_t/MachInst/g;
    s/regs_t/RegFile/g;
    # manually fix declaration in old/regs.h and a few forward decls
    s/struct RegFile/RegFile/g;
    s/MD_NUM_IREGS/NumIntRegs/g;
    s/MD_NUM_FREGS/NumFloatRegs/g;
    s/MD_NUM_CREGS/NumMiscRegs/g;
    s/MD_IPR_NUM/NumInternalProcRegs/g;
    s/MD_TOTAL_REGS/TotalNumRegs/g;
    s/MD_REG_ZERO/ZeroReg/g;
base/statistics.hh:
test/stattest.cc:
    Create a functor() wrapper for the stats package.  This wrapper makes it
    possible to write an actual function or functor that is evaluated in a
    Formula
base/statistics.hh:
test/stattest.cc:
    Implement operator += for formulas.  This allows us to build a formula without
    knowing all variables involved at compile time
sim/sim_object.cc:
sim/sim_object.hh:
    Make a different regStats pass for the new stats package
base/statistics.cc:
base/statistics.hh:
sim/main.cc:
    Move simulator specific stuff to its own file.
    rename elapsedFoo to simFoo so it's clear we're talking about what's been
    simulated.
    Use the functor method to get the time.
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/main.cc:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Convert instruction counting to new stats package.
    Convert the rest of SimpleCPU to new stats
    Do a bit of cleanup while we're at it
base/cprintf.cc:
    attempt to deal with the badbit problem
sim/base_cpu.hh:
sim/simple_cpu.cc:
    no need for reg_stats to be pure virtual
base/statistics.cc:
base/statistics.hh:
sim/simple_cpu.hh:
test/stattest.cc:
    change names of stat classes so they are simpler
base/statistics.cc:
    no unregestering stats
base/statistics.cc:
base/statistics.hh:
sim/main.cc:
test/stattest.cc:
    make it so that none of the constructors for the various stats objects
    take any parameters so that users may put them in arrays and stuff.  Instead
    provide initialization functions for the objects that needed parameters, and
    provide a way to verify that all statistics that need initialization do
    get initialized.
sim/cache/lzss_compression.hh:
    Compression fixes. Added trivial data support to the IIC. Set the max write size in the compressed memory to 1024 bytes
sim/memtest.cc:
sim/memtest.hh:
    Added 'percent_uncacheable' option to MemTest
base/statistics.cc:
base/statistics.hh:
    keep track of more data in distributions
    use a struct to pass data to the display function
    take underflow and overflow out of the array
base/statistics.cc:
    support for printing vector totals
sim/memtest.cc:
sim/memtest.hh:
    Fix uncacheables to go to their own memory space.
sim/memtest.cc:
    Change default percentage of uncacheables to 10%
base/statistics.cc:
base/statistics.hh:
    Correctly calculate vector totals.

    When a formula operates on vectors, it is incorrect to do calculate
    the formula for each vector element, and then sum the final formula
    vector.  The correct way is to sum the individual vectors at the leaves
    of the expression tree.  And then perform the calculation as if it were
    on scalar values.

    Assume we have vectors A, and B, and X = A * B
    The old way would have been: total(X) = total(A * B)
    The new way is total(X) = total(A) * total(B)

    Per thread miss rates are and example of something that would be calculated
    incorrectly.  If you were to sum all of the miss rates, you could get
    a number greater than one.  Calculating the overall miss rate should
    just be overall misses / overall accesses
base/statistics.cc:
base/statistics.hh:
    Create a #define STAT_DISPLAY_COMPAT that makes the new stat package output
    match the old one.
arch/isa_parser.py:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/arguments.cc:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/fake_syscall.cc:
arch/alpha/isa_desc:
arch/alpha/isa_traits.hh:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/bitfield.hh:
base/circlebuf.hh:
base/object_file.hh:
base/remote_gdb.cc:
base/symtab.hh:
dev/alpha_console.cc:
dev/console.cc:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/main.cc:
sim/op_class.hh:
sim/pc_event.cc:
sim/pc_event.hh:
sim/prog.cc:
sim/prog.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/static_inst.cc:
sim/static_inst.hh:
sim/system.cc:
sim/system.hh:
    New ISA description system.  No more machine.def!
    Instructions are now decoded into StaticInst objects, and all static
    instruction properties (including execution behavior) are associated
    with those objects.  Extended documentation in progress.
    Currently supports Alpha only; PISA will not compile.
    Use END_OF_MACHINE_DOT_DEF tag to extract previous version.
arch/isa_parser.py:
    Make it more obvious that you shouldn't edit decoder.cc, and
    harder to do so accidentally.
arch/alpha/isa_desc:
base/statistics.cc:
sim/exec_context.hh:
    make stuff compile in g++ 3.x
    fix some bad formatting
Doxyfile:
    Put generated docs in local directory docs/doxygen.
    Don't bother generating LaTeX, and a few other minor tweaks.
arch/isa_parser.py:
arch/alpha/isa_desc:
    - Decouple isa_desc operand types from C++ types.
    - Handle signed operand writebacks.
    - Add a few comments to suppress doxygen warnings on decoder.cc.
sim/static_inst.cc:
sim/static_inst.hh:
    Add some basic decode cache hash-table stats dumping (ifdef'd out).
sim/static_inst.cc:
    Make it compile w/gcc3.
sim/static_inst.cc:
    ostream doesn't seem to exist in 2.95
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
    TLB statistics
arch/alpha/ev5.cc:
    always pass the execution context to an annotation
arch/alpha/ev5.cc:
    revert a bunch of crap from the last commit that I didn't want yet.
arch/isa_parser.py:
    make it so that the ext source directory is grabbed from the right place
arch/alpha/alpha_memory.cc:
arch/alpha/ev5.cc:
arch/alpha/isa_desc:
arch/alpha/vtophys.cc:
base/remote_gdb.cc:
dev/alpha_console.cc:
sim/exec_context.hh:
sim/simple_cpu.cc:
    get rid of MD_IPR_foo and call it IPR_foo
    add some comments to describe what the various PALtemp registers do
    formatting
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/simple_cpu.cc:
    Keep a list of execution contexts in BaseCPU
    Provide a mechanism to register per execution context statistics.
base/socket.cc:
base/remote_gdb.cc:
dev/console.cc:
dev/ethertap.cc:
    don't panic if accept fails
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    keep track of fraction of cycles that are idle
base/statistics.hh:
    make proxy nodes work better in formulas.  (Now totals should work).
sim/op_class.hh:
    Document OpClass enum.
sim/op_class.hh:
    Need to document file for file members (enum, globals, etc.) to be extracted
arch/alpha/faults.cc:
arch/alpha/faults.hh:
arch/alpha/isa_traits.hh:
    Move Fault into its own file, and provide a function to get the string name
    of a fault
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/osfpal.cc:
arch/alpha/osfpal.hh:
    move PAL code defines and such into their own file.  Also provide a function
    to get the name of a PAL code
arch/alpha/osfpal.cc:
    make this actually compile and add it to the makefile
kern/tru64/tru64.hh:
    dummy class for differentiating Tru64
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
    Stuff on tru64 system calls
arch/alpha/ev5.cc:
arch/alpha/isa_desc:
sim/exec_context.cc:
sim/exec_context.hh:
    Add a bunch of full system statistics
base/statistics.cc:
base/statistics.hh:
sim/sim_events.cc:
    support for printing stats to a file.  For now we will continue to print
    to standard out so that the whole regression thing doesn't break.
    While we're at it, move the Stat param context to the new stats package
sim/exec_context.hh:
sim/main.cc:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
    Today saw the wholesale slaughter of greened's code. When we asked the accused, Erik Hallnor, why he did it he responded, 'Because I was bored. And the underlying prefetch cache was soon to be 2 generations out of date.'
sim/base_cpu.hh:
sim/exec_context.cc:
    added a std::vector and using namespace std
arch/alpha/fake_syscall.cc:
    Avoid conflicts with #defines in headers
arch/alpha/fake_syscall.cc:
    I think this is what steve had in mind.
base/endian.hh:
    get rid of the simplescalar endianness junk and make it a bit simpler
base/cprintf.cc:
base/cprintf.hh:
base/cprintf_formats.hh:
base/statistics.cc:
test/cprintftest.cc:
    Break out the cprintf formatting stuff into per-type formatting so that we
    can do special formatting based on type.  This makes %c work correctly for
    integer types.  It also allows me to add a workaround for string format widths.
    Finally, it allows me to accept stringstream directly as an argument without
    having to use the .str() member.
Doxyfile:
    Update Doxyfile to new version of doxygen and to use the newly install graphviz package.
Doxyfile:
    Remove . from the file paths, instead of ..
base/cprintf.cc:
base/cprintf_formats.hh:
base/statistics.cc:
test/cprintftest.cc:
    Fix printing of strings.  Seems that I just can't do what I want with
    templates.  They're too smart for they're own good.

    Fix format field widths for floating point numbers.

    Remove some .str()'s that are no longer needed because cprintf supports them.
base/statistics.cc:
base/statistics.hh:
test/stattest.cc:
    Make internal design a bit more consistent.
    Re-work Bins and Vectors and how they work together to remove a level
    of indirection.
base/statistics.cc:
base/statistics.hh:
    revert that last change
base/statistics.cc:
base/statistics.hh:
test/stattest.cc:
    let's try this again.  This time we'll make DistStat classes initialize
    their bins.
    Also add a test for this
base/statistics.hh:
    Proxy -> VectorProxy
Doxyfile:
    Don't hide undocumented classes. This helps when tracking includes through the new graphs.
Doxyfile:
    Make things run faster until documentation errors are gone
sim/prog.cc:
sim/simple_cpu.cc:
    Change declarations to match defenitions.
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/pcireg.h:
dev/simple_disk.cc:
dev/simple_disk.hh:
sim/eventq.hh:
sim/serialize.hh:
sim/sim_object.hh:
sim/simple_cpu.cc:
    Removal of 1200 doxygen warnings. The 600 left are mostly from StaticInstBase and decoder.cc. I basically un-documented the partially documented code by changing /** to /*.
arch/alpha/ev5.cc:
    Add FULL_SYSTEM protection to match header file.
Doxyfile:
dev/alpha_console.hh:
dev/etherint.hh:
dev/simple_disk.hh:
sim/simple_cpu.cc:
sim/static_inst.hh:
sim/cache/null_compression.hh:
    Down to 464 warnings, all in static_inst.hh or decoder.cc. Punt on the template instantiation thing by making them invisible to doxygen.
arch/alpha/alpha_memory.cc:
base/statistics.cc:
base/statistics.hh:
sim/simple_cpu.cc:
test/stattest.cc:
    New way of specifying information about printing stats.
    old way:
    stat.setFormat(name, ...);
    new way:
    stat
    .name(...)
    .desc(...)
    .prereq(...)
    .
    .
    ;

    This allows you to specify any information about the stats, and do it in any
    order.  It also cleans up the kinda crufty setFormat interfaces.
LICENSE:
    This is the M5 license as agreed upon by the original M5 authors, and blessed
    by the University of Michigan technology transfer office.

    OK by Doug Hockstad <dhocksta@umich.edu>
base/statistics.hh:
    missing_math is only for stats, so move it into its own place
base/statistics.cc:
test/stattest.cc:
    Fix stats sorting
base/statistics.cc:
base/statistics.hh:
test/stattest.cc:
    Fix description printing stuff.  Add a flag to the test script to turn
    descriptions on/off
base/str.hh:
    wrapper to convert values to strings via stringstream
base/statistics.hh:
    nitpick
base/statistics.cc:
base/statistics.hh:
test/stattest.cc:
    Rework the printing of statistics to make the PrintOne function not need
    to know about the stats themselves.  Also remove the overloading of function
    names for getting and setting parameters.
base/statistics.cc:
    duh
base/statistics.cc:
    Changes for _name issues
base/statistics.cc:
base/statistics.hh:
    Reorganize the base Stat class a bit and clean up handling of data
base/statistics.cc:
base/statistics.hh:
    Rework the stat printing stuff a bit so that the formatting parts need to know
    as little as possible about the type of stat being printed.
base/statistics.hh:
    maybe not all vector stats will be registered in the future.  (VectorProxies)
base/statistics.hh:
test/stattest.cc:
    VectorDistribution stat.  To be used for per-thread distributions.  Still need
    to implement total and zero()
arch/alpha/isa_traits.hh:
sim/static_inst.hh:
    don't use stdint.h, use either inttypes.h or host.h
sim/main.cc:
    unneeded
arch/alpha/isa_desc:
    only linux seems to support the rounding mode stuff right now
base/statistics.hh:
test/stattest.cc:
    VectorStandardDeviation and VectorAverageDeviation
base/statistics.cc:
    just make sure the size is correct
base/statistics.hh:
    use pointers internally instead of references
arch/alpha/faults.cc:
base/bitfield.hh:
sim/cache/lzss_compression.hh:
sim/cache/null_compression.hh:
sim/op_class.hh:
sim/sim_time.hh:
sim/static_inst.cc:
sim/static_inst.hh:
test/stattest.cc:
    consistent $Id$ tags
test/bitvectest.cc:
test/circletest.cc:
test/cprintftest.cc:
test/initest.cc:
test/lru_test.cc:
test/nmtest.cc:
test/offtest.cc:
test/paramtest.cc:
test/rangetest.cc:
test/sized_test.cc:
test/stattest.cc:
test/strnumtest.cc:
test/symtest.cc:
test/tokentest.cc:
arch/isa_parser.py:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
arch/isa_parser.py:
arch/alpha/faults.cc:
arch/alpha/faults.hh:
arch/alpha/isa_traits.hh:
arch/alpha/osfpal.cc:
arch/alpha/osfpal.hh:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
util/tap/tap.cc:
base/bitfield.hh:
base/callback.hh:
base/circlebuf.cc:
base/circlebuf.hh:
base/cprintf.cc:
base/cprintf.hh:
base/cprintf_formats.hh:
base/date.cc:
base/dbl_list.hh:
base/endian.hh:
base/fifo_buffer.cc:
base/fifo_buffer.hh:
base/hashmap.hh:
base/inet.cc:
base/inet.hh:
base/inifile.cc:
base/inifile.hh:
base/intmath.cc:
base/intmath.h:
base/misc.cc:
base/misc.hh:
base/mod_num.hh:
base/object_file.cc:
base/object_file.hh:
base/pollevent.cc:
base/pollevent.hh:
base/range.hh:
base/refcnt.hh:
base/remote_gdb.hh:
base/res_list.hh:
base/sched_list.hh:
base/socket.cc:
base/socket.hh:
base/statistics.cc:
base/statistics.hh:
base/str.cc:
base/str.hh:
base/symtab.cc:
base/symtab.hh:
base/trace.cc:
base/trace.hh:
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.cc:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/pcireg.h:
dev/simple_disk.cc:
dev/simple_disk.hh:
kern/tru64/tru64.hh:
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
sim/cache/null_compression.hh:
sim/async.hh:
sim/debug.cc:
sim/debug.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/intr_control.cc:
sim/intr_control.hh:
sim/memtest.cc:
sim/memtest.hh:
sim/op_class.hh:
sim/param.cc:
sim/param.hh:
sim/pc_event.cc:
sim/pc_event.hh:
sim/predictor.hh:
sim/sat_counter.cc:
sim/sat_counter.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_events.cc:
sim/sim_events.hh:
sim/sim_exit.hh:
sim/sim_object.cc:
sim/sim_object.hh:
sim/sim_time.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/static_inst.cc:
sim/static_inst.hh:
sim/std_types.hh:
sim/system.cc:
sim/system.hh:
sim/universe.cc:
sim/exec_context.cc:
sim/exec_context.hh:
    license
base/date.cc:
    move
test/stattest.cc:
    remove dave's scary container stuff
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/simple_cpu.cc:
    rename the exec context list xc to contexts
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/fake_syscall.cc:
dev/alpha_console.cc:
sim/exec_context.hh:
sim/memtest.cc:
sim/prog.cc:
sim/prog.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/system.cc:
sim/system.hh:
    s/exe_ctx/xc/g
sim/base_cpu.cc:
    Can't assume that context[0] exists.
sim/cache/lzss_compression.cc:
sim/cache/lzss_compression.hh:
    Our compression code free and clear.
arch/alpha/fake_syscall.cc:
base/range.hh:
base/statistics.hh:
sim/param.cc:
sim/sim_object.cc:
    Changes to build with g++-3.3.  Mostly added a bunch of includes of
    assert.h (not sure why older versions didn't need this).  Also fixed
    up a couple other new warnings.
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/ev5.cc:
arch/alpha/fake_syscall.cc:
arch/alpha/isa_traits.hh:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
dev/alpha_console.hh:
dev/console.cc:
dev/console.hh:
dev/disk_image.cc:
dev/etherdump.cc:
dev/simple_disk.cc:
sim/simple_cpu.cc:
sim/system.cc:
sim/system.hh:
    a little style
sim/eventq.cc:
sim/main.cc:
sim/prog.cc:
sim/simple_cpu.cc:
sim/smt.hh:
    smt.h -> smt.hh
    add license
base/statistics.hh:
    missing_math.hh isn't really needed I guess
arch/alpha/arguments.hh:
arch/alpha/fake_syscall.cc:
arch/alpha/isa_traits.hh:
base/hashmap.hh:
base/inet.cc:
base/inet.hh:
base/misc.cc:
base/pollevent.cc:
base/socket.cc:
base/statistics.hh:
base/symtab.cc:
base/symtab.hh:
base/trace.hh:
dev/alpha_console.hh:
dev/etherlink.hh:
dev/etherpkt.hh:
sim/eventq.hh:
sim/exec_context.hh:
sim/exetrace.hh:
sim/host.hh:
sim/main.cc:
sim/param.hh:
sim/serialize.hh:
sim/sim_object.cc:
sim/simple_cpu.cc:
sim/static_inst.hh:
sim/universe.cc:
test/stattest.cc:
    Get rid of simplescalar host.h file and create our own host.hh file that has
    less junk.  (with our license.)  While we're at it, we consolidate all of
    the hashtable junk into one file hashmap.hh.  (use this file if you need a
    hash_map.)
Doxyfile:
    Avoid infinite recursion on build/src link.
arch/alpha/isa_desc:
sim/static_inst.hh:
    Add comments to get rid of doxygen warnings (and occasionally, as an
    accidental side effect, make the code more maintainable).
Doxyfile:
    Turn off information messages and route error messages to stderr.
arch/isa_parser.py:
arch/alpha/isa_desc:
sim/static_inst.hh:
    - Add some comments clarifying the semantics of StaticInst flags.
    - Make minor tweaks to the ISA description code to make corner cases
    consistent with the above comments :-).
    - Get rid of insn_counting code... instruction mix doesn't really change
    through the pipeline, and the overall mix can already be derived from
    existing stats.  Plus it keeps changing when the ISA flags change
    even though the pipeline doesn't care.
sim/hybrid_pred.cc:
sim/hybrid_pred.hh:
    So said Steve Raasch:xi
    "I know that the following files should be under our license"
base/fast_alloc.cc:
base/fast_alloc.hh:
    David Wood said I could have my own code back :-).
sim/sim_object.cc:
sim/sim_object.hh:
    create a regFormulas pass that will go AFTER the regStats pass.
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/debug.cc:
sim/eventq.cc:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/hybrid_pred.cc:
sim/hybrid_pred.hh:
sim/intr_control.hh:
sim/main.cc:
sim/memtest.cc:
sim/memtest.hh:
sim/op_class.hh:
sim/param.cc:
sim/param.hh:
sim/pc_event.hh:
sim/predictor.hh:
sim/prog.cc:
sim/prog.hh:
sim/sat_counter.cc:
sim/sat_counter.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_object.hh:
sim/sim_time.hh:
sim/simple_cpu.hh:
sim/smt.hh:
sim/static_inst.cc:
sim/static_inst.hh:
sim/std_types.hh:
sim/system.cc:
    style police
base/statistics.cc:
base/statistics.hh:
test/stattest.cc:
    initial cut at a 2d vector stat
base/statistics.cc:
base/statistics.hh:
    Added a std:: and removed an unused bool
arch/alpha/fake_syscall.cc:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/prog.cc:
sim/prog.hh:
    Steve Reinhardt says "I wrote these myself from scratch"
base/date.cc:
    I probably changed this to a string in the first place, but it should be
    a const char *
sim/main.cc:
    make this compile again
base/random.cc:
base/random.hh:
sim/main.cc:
    Get rid of the Simplescalar random number junk.
    Since I didn't realize that we didn't even use it until after I wrote a
    simple replacement, I figure I'll commit the replacement in case we ever
    need it.
base/str.hh:
sim/main.cc:
    quote may be more generally useful
sim/main.cc:
sim/sim_object.cc:
sim/sim_object.hh:
    Make the old stats package a bit more self contained to prepare for
    future extrication
sim/main.cc:
sim/sim_time.cc:
sim/sim_time.hh:
    consolidate all of the time handling stuff
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/main.cc:
sim/smt.hh:
    instead of initializing max_threads_per_cpu in main(), we turn it into
    a static function and initialize it upon the first call

    Users of this should beware that all CPUs must be built before this function
    can be used.
sim/main.cc:
sim/universe.cc:
    sim_running_systems makes more sense in universe.cc
sim/main.cc:
    this is not a simplescalar file, use our copyright
    say that the simulator is M5 and display our copyright
    cleanup
    change a few things here and there to use our style
    use endl instead of "\n"  (for future portablility)
sim/async.hh:
sim/main.cc:
sim/system.cc:
sim/system.hh:
sim/universe.cc:
    - Clean up a few simplescalar comments from main.cc that Nate missed.
    - Add some comments and some doxygen documentation.
    - Move sim_running_systems to static System::numSystemsRunning.
arch/alpha/ev5.cc:
    Update num_running_systems to System::numSystemsRunning for full-sys too.
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/smt.hh:
    instead of polling all CPUs to find out the max number of threads across
    all CPUs, just have the CPUs themselves update the variable as they are
    created.
arch/alpha/isa_desc:
    First pass at fixing cvtst... not tested.
arch/alpha/ev5.cc:
base/statistics.cc:
base/statistics.hh:
arch/alpha/isa_desc:
    Just use the TYPEFUNC not FULLFUNC
arch/alpha/ev5.cc:
base/statistics.cc:
base/statistics.hh:
    committing from the wrong directory is a bad thing
arch/alpha/isa_desc:
    I hope a final solution for the cmptxx issue.
base/statistics.cc:
    All printable stats must first be initialized, so throw an assertion if they
    are not.  This ought to help in debugging a bit.
base/statistics.cc:
base/statistics.hh:
    Two new flags: nozero, and nonan.  This will supress printing stats if they
    are zero or NAN.  For example, it will cause vector elements to be skipped
    if there is no value, or it will cause distribution buckets to be skipped.
    (or an entire scalar stat to be skipped.)  This can be used in conjunction
    with prereq.  The difference with prereq, is that prereq just checks if the
    other stat has ANY values, and won't selectively ignore individual vector
    elements.
base/statistics.hh:
    this does not belong here
arch/alpha/isa_desc:
    Just happened to notice small insidious bug in itofs.
arch/isa_parser.py:
    New isa description language feature: multiple constants can be
    provided for a decode statement, e.g.:
    decode OP {
    0, 1: foo();
    2, 3: bar();
    }
    Documentation update included at no extra charge.
sim/param.hh:
    this can be const
sim/exec_context.cc:
    be more terse
arch/alpha/isa_desc:
    Revamp decoding of IEEE FP instructions (opcode 0x16).  I think we've
    got all the bases covered now.

    Also implemented cvtql/v & cvtql/sv (actually the same instruction
    from M5's perspective).
arch/isa_parser.py:
    - If isa_desc defines the global Python variable rcs_id, echo it
    into the output decoder.cc.
    - Only print last three components of ISA description path name in output.
    - Add RCS id string to this file.
arch/alpha/isa_desc:
    Add RCS id string.
arch/isa_parser.py:
    Get it right.
arch/isa_parser.py:
    Oone more little glitch...
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
    add support for mach syscalls.
base/trace.cc:
base/trace.hh:
    Some reorganization and cleanup.
    Add the ability to ignore trace output from certain sources.  The option is
    --trace:ignore.  It takes a space separated list of SimObjects to ignore.
    The SimObject is listed in the normal dotted herarchy notation.  (e.g.
    system0.cpu0.DL1) If an object is specified, the *all* child objects are
    ignored as well.  You can use a wildcard (*) to match any object.

    To ignore all trace statements from system1:
    --trace:ignore"system1"

    To ignore all DL1 statements:
    --trace:ignore="*.*.DL1"
sim/main.cc:
    Try the HOST varilable if HOSTNAME isn't found
sim/exetrace.cc:
sim/exetrace.hh:
    Minor tweeks to instruction execution tracing:
    - add a correct-path sequence number to all instructions
    - add colon characters to help delimit the instruction disassembly
arch/alpha/ev5.cc:
    Move all of the kernel statistics into the .cc file while I am still messing
    around with them.
    Add support for tracking context switches, and mode switches.
    More detailed tracking of ipl changes.
    Don't display zeroes for stats such as syscalls, ipls, faults, since zeroes
    are very common and there are a ton of stats.
base/hashmap.hh:
    don't forget about the hash_multimap
    oh, and string is used in here
base/str.cc:
    convert strings that represent bool values to a bool
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/ev5.cc:
    rework the tlb lookup code so that it uses a map instead of a linear
    search.
base/statistics.cc:
    a tiny bit of debugging assistance
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
sim/exec_context.hh:
    No need for these functions to be virtual.  Given that, they don't need to
    have the same interface.  This eliminates a useless check in an expensive
    function.
arch/alpha/isa_desc:
    This is an quick fix for the SimpleSclar-FP-Ops-Don't-Work-Right bug
    The SS_COMPATIBLE_FP #define at the top of the file forces the precision to match SS.
    This will change the precision for ALL CPU's.

    Nate will be making a change shortly so that this not done for Full System
arch/alpha/alpha_memory.cc:
    use i-> instead of (*i).    (what was I thinking?)
    also try to do i-> only once if it can be helped.
base/remote_gdb.cc:
sim/simple_cpu.cc:
    Move remote debugger code to where it belongs
    clean it up a tad while we're at it.
arch/alpha/isa_desc:
    Changes for the SS FP bug:
    SS-style FP done only if SS_COMPATIBLE_FP is defined in the makefile
arch/alpha/isa_traits.hh:
sim/memtest.cc:
sim/memtest.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/cache/lzss_compression.cc:
sim/cache/lzss_compression.hh:
    The new memory hierarchy. There is still some more changes to come, but this works now. IIC compression is broken, but no one else cares. DMA coherence might be broken (no way to test atm). There are doxygen warnings that I will clear up when I can stay connected for more than 3 minutes.
Doxyfile:

    Turn Graphics back on since we have squashed the warnings.
base/misc.hh:
    Add #include <assert.h> for those who use m5_assert() macro.
    Somehow g++ 3.3 is pickier about this than 3.2.
sim/exetrace.hh:
sim/simple_cpu.cc:
sim/std_types.hh:
    Style fixes... mostly changing 'struct foo_bar' to 'FooBar' for some
    older parts of the code.
Doxyfile:
    Always have a detailed section.
sim/host.hh:
    Get rid of an old simplescalar comment (plus improve some other comments).
base/statistics.cc:
base/statistics.hh:
    provide a way to get at the subdesc
base/statistics.hh:
    Make it possible to counte a sample more than once
base/statistics.cc:
    print the right value
base/statistics.cc:
base/statistics.hh:
    A bit of debugging support
base/statistics.cc:
base/statistics.hh:
    be more consistent
base/statistics.hh:
    use the correct axis
base/statistics.hh:
    remove dead code
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/sim_object.cc:
    Stats now sent by default to a file called "m5.stats".  Get the old
    behavior back by saying "--stats:file=cerr" on cmd line.

    Parameters and config-file stuff also sent to stats file where they belong.

    A few informational messages are sent to both cerr and to the stats file.
    Default output is pretty minimal now.
arch/alpha/faults.cc:
base/bitfield.hh:
base/random.cc:
base/random.hh:
sim/static_inst.cc:
test/stattest.cc:
    Fix RCS Id strings.
sim/base_cpu.hh:
sim/main.cc:
    Check if user forgot to specify any CPUs and print a meaningful
    error message (not just "improperly exited event loop!").
base/statistics.cc:
base/statistics.hh:
    Make subsequent calls to flags() add more flags instead of change them.
    Also add the concept of a reserved flag that the user is not allowed to
    set.  (Basically for passing around extra parameters in the stats package.)
sim/debug.cc:
sim/param.cc:
sim/param.hh:
sim/prog.cc:
sim/sim_events.cc:
    Check that VectorParam objects are valid before we let them be
    referenced.  Fix up a few places where we were just referencing them
    w/o checking.

    Also some const cleanup on Param object methods.
sim/sim_object.cc:
sim/sim_object.hh:
    Print SimObject class name when complaining about missing/broekn params.
base/inifile.cc:
    Add "-undef" to cpp flags to not define system-specific macros.
    (A '#define linux 1' was giving me trouble.)
base/statistics.hh:
    add support fo subnaming in the y direction for 2d vectors.  make the printing of it pretty and compatible with the old style.  also, suppress printing of a total for 2d vector if they x dimension is just 1.
base/statistics.cc:
    rework a lot of the stuff between #ifdef STAT_DISPLAY_COMPAT so it's neater and
    also more accurate.  add support for printing subdescriptions.
LICENSE:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
arch/alpha/fake_syscall.cc:
arch/alpha/faults.cc:
arch/alpha/faults.hh:
arch/alpha/isa_traits.hh:
arch/alpha/osfpal.cc:
arch/alpha/osfpal.hh:
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
base/bitfield.hh:
base/callback.hh:
base/circlebuf.cc:
base/circlebuf.hh:
base/cprintf.cc:
base/cprintf.hh:
base/cprintf_formats.hh:
base/date.cc:
base/dbl_list.hh:
base/endian.hh:
base/fast_alloc.cc:
base/fast_alloc.hh:
base/fifo_buffer.cc:
base/fifo_buffer.hh:
base/hashmap.hh:
base/inet.cc:
base/inet.hh:
base/inifile.cc:
base/inifile.hh:
base/intmath.cc:
base/misc.cc:
base/misc.hh:
base/mod_num.hh:
base/object_file.cc:
base/object_file.hh:
base/pollevent.cc:
base/pollevent.hh:
base/random.cc:
base/random.hh:
base/range.hh:
base/refcnt.hh:
base/remote_gdb.hh:
base/res_list.hh:
base/sched_list.hh:
base/socket.cc:
base/socket.hh:
base/statistics.cc:
base/statistics.hh:
base/str.cc:
base/str.hh:
base/symtab.cc:
base/symtab.hh:
base/trace.cc:
base/trace.hh:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/disk_image.cc:
dev/disk_image.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.cc:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
kern/tru64/tru64.hh:
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
sim/async.hh:
sim/base_cpu.cc:
sim/base_cpu.hh:
sim/debug.cc:
sim/debug.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/exec_context.cc:
sim/exec_context.hh:
sim/exetrace.cc:
sim/exetrace.hh:
sim/host.hh:
sim/hybrid_pred.cc:
sim/hybrid_pred.hh:
sim/intr_control.cc:
sim/intr_control.hh:
sim/main.cc:
sim/memtest.cc:
sim/memtest.hh:
sim/op_class.hh:
sim/param.cc:
sim/param.hh:
sim/pc_event.cc:
sim/pc_event.hh:
sim/predictor.hh:
sim/prog.cc:
sim/prog.hh:
sim/sat_counter.cc:
sim/sat_counter.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/sim_events.cc:
sim/sim_events.hh:
sim/sim_exit.hh:
sim/sim_object.cc:
sim/sim_object.hh:
sim/cache/lzss_compression.cc:
sim/cache/lzss_compression.hh:
sim/cache/null_compression.hh:
sim/sim_time.cc:
sim/sim_time.hh:
sim/simple_cpu.cc:
sim/simple_cpu.hh:
sim/smt.hh:
sim/static_inst.cc:
sim/static_inst.hh:
sim/std_types.hh:
sim/system.cc:
sim/system.hh:
sim/universe.cc:
test/bitvectest.cc:
test/circletest.cc:
test/cprintftest.cc:
test/initest.cc:
test/lru_test.cc:
test/nmtest.cc:
test/offtest.cc:
test/paramtest.cc:
test/rangetest.cc:
test/sized_test.cc:
test/stattest.cc:
test/strnumtest.cc:
test/symtest.cc:
test/tokentest.cc:
util/tap/tap.cc:
arch/isa_parser.py:
    Add attribution to license.
sim/cache/lzss_compression.cc:
sim/cache/lzss_compression.hh:
    Extend the compression algorithm to handle upto 4096 byte blocks. Improve compression of single bytes that can be sign extended.
sim/cache/lzss_compression.hh:
    Remove some todos that I've already done.
sim/hybrid_pred.cc:
sim/hybrid_pred.hh:
sim/memtest.cc:
sim/prog.cc:
sim/sat_counter.cc:
sim/memtest.hh:
sim/predictor.hh:
sim/prog.hh:
sim/sat_counter.hh:
    the new stats package.  voila.  the move to bitkeeper can go on, figuring what's happening can happen later.
base/trace.cc:
test/Makefile:
test/cprintftest.cc:
test/tracetest.cc:
    separate the context stuff for tracing from the actual tracing facility to
    make it easier to test.
    Add a test for tracing

--HG--
extra : convert_revision : 28dd3568b0714296345f8a5cba282f0b937ce725
2003-10-07 10:41:54 -04:00