Commit graph

470 commits

Author SHA1 Message Date
Ali Saidi
ea7bdf9f60 Merge zizzer:/bk/newmem
into  udhcp-macvpn-108.public.engin.umich.edu:/Users/ali/work/m5.newmem

--HG--
extra : convert_revision : c6b11f535cca7fd46f1a3cea3b5a966e8fa80347
2007-03-07 12:46:03 -05:00
Ali Saidi
44b732691f If we're running the quick tests, remove the SPARC_FS build since we don't have any quick SPARC_FS tests at the moment
--HG--
extra : convert_revision : 4505f1600cae5d049560f3b397541e9a9dea0420
2007-03-07 12:45:21 -05:00
Gabe Black
f776ec84c1 Merge zizzer.eecs.umich.edu:/bk/newmem
into  zower.eecs.umich.edu:/home/gblack/m5/newmem-statetrace

--HG--
extra : convert_revision : 0959fb162253ff1eed8da0a990f58897322f0e1f
2007-03-05 20:54:36 -05:00
Gabe Black
9b72ff8290 Fixing statetrace to work with 32 bit SPARC processes, as well as rewritting it's single stepping code.
--HG--
extra : convert_revision : 69b1668a850519ab98b02c525ec41ff727eb6036
2007-03-05 20:54:20 -05:00
Ali Saidi
a81143f06a add a sparc fs regression
src/dev/sparc/iob.cc:
    don't warn on cpu restart/idle/halt stuff
tests/SConscript:
    add sparc target in test Sconscript
util/regress:
    Add SPARC_FS target in regress

--HG--
extra : convert_revision : 37fa21700ec4c350d87ca9723bc3359feb81c50a
2007-03-03 22:45:26 -05:00
Ali Saidi
cf0e202cba make m5 readfile work on solaris... we can have a solaris regression soon!
src/arch/sparc/isa/decoder.isa:
    add readfile and break to sparc decoder
src/arch/sparc/isa/operands.isa:
    fix O0-O5 operands registers
util/m5/Makefile.sparc:
    Make sparc makefile compile a 64bit binary
util/m5/m5.c:
    readfile was in here twice, once will be sufficient I think
util/m5/m5op_sparc.S:
    implement readfile and debugbreak

--HG--
extra : convert_revision : 139b3f480ee6342b37b5642e072c8486d91a3944
2007-02-24 22:05:01 -05:00
Ali Saidi
7a2ecf9e26 add pseduo instruction support for sparc
util/m5/Makefile.alpha:
    Clean up to make it a bit easier to muck with
util/m5/Makefile.alpha:
    Make the makefile more reasonable
util/m5/Makefile.alpha:
    Remove authors from copyright.
util/m5/Makefile.alpha:
    Updated Authors from bk prs info
util/m5/Makefile.alpha:
    bk cp Makefile Makefile.alpha
src/arch/sparc/tlb.cc:
    Clean up the cache code a little bit and make sure the uncacbale bit is set when appropriate
src/arch/alpha/isa/decoder.isa:
src/sim/pseudo_inst.cc:
src/sim/pseudo_inst.hh:
    Rename AlphaPseudo -> PseudoInst since it's all generic
src/arch/sparc/isa/bitfields.isa:
src/arch/sparc/isa/decoder.isa:
src/arch/sparc/isa/includes.isa:
src/arch/sparc/isa/operands.isa:
    Add support for pseudo instructions in sparc
util/m5/Makefile.alpha:
util/m5/Makefile.sparc:
    split off alpha make file and sparc make file for m5 app
util/m5/m5.c:
    ivle and ivlb aren't used anymore
util/m5/m5op.h:
    stdint seems like a more generic better fit here
util/m5/m5op_alpha.S:
    move the op ids into their own header file since we can share them between sparc and alpha

--HG--
rename : util/m5/Makefile => util/m5/Makefile.sparc
rename : util/m5/m5op.S => util/m5/m5op_alpha.S
extra : convert_revision : 490ba2e8b8bc6e28bfc009cedec6b686b28e7834
2007-02-21 21:06:17 -05:00
Steve Reinhardt
98ef836ca6 Use perl FindBin package to set path to rundiff to the
directory where tracediff is.

--HG--
extra : convert_revision : f0cc0af264aa624cbacbf3ba42b6b64f90a8e759
2007-02-06 10:06:11 -08:00
Nathan Binkert
e65544b88b Nate's utility for compiling m5
--HG--
extra : convert_revision : 84b21f667736dfe07891323dcc810437ccb3c7c0
2006-12-17 18:58:50 -08:00
Nathan Binkert
2d09f30a6d Utilities for doing a format check for some elements of proper
m5 style and fixing whitespace.  For whitespace, any tabs in
leading whitespace on a line are converted to spaces, and any
trailing whitespace is removed.

--HG--
extra : convert_revision : d0591663c028a388635fc71c6c1d31f700748cf6
2006-12-17 18:58:05 -08:00
Steve Reinhardt
a7ea4885ce If no tests are specified for regression, just build the binaries
(instead of complaining and exiting).

--HG--
extra : convert_revision : 24ac0bab7fd92d9e74c80847a667f0affcd0473d
2006-12-12 09:54:59 -08:00
Steve Reinhardt
7b25e4091c Merge zizzer.eecs.umich.edu:/z/stever/bk/newmem-cache2
into  zizzer.eecs.umich.edu:/z/stever/bk/newmem-cache3

--HG--
extra : convert_revision : 7c78ae3298645aed2179ed4f2aa361619406f9de
2006-12-10 01:42:31 -05:00
Steve Reinhardt
96d1efe0a9 Add '-j' option directly to regress script (passed to scons).
--HG--
extra : convert_revision : 9776806b24da70b815280e47d2d5ec8674c82669
2006-12-10 01:42:16 -05:00
Steve Reinhardt
ac32645c27 Change detault regression build from opt to fast.
--HG--
extra : convert_revision : b6db0254b73a97ab6e3685c90cc9cd30ea274d4f
2006-12-07 14:41:56 -05:00
Steve Reinhardt
1431d1f9c2 Merge zizzer.eecs.umich.edu:/bk/newmem
into  vm1.(none):/home/stever/bk/newmem-head

--HG--
extra : convert_revision : 4a077b463b938c54b546b00e586d8609c24ae465
2006-12-02 22:12:26 -08:00
Steve Reinhardt
711dc47e8c Delete src/oldmem.
util/make_release.py:
    src/oldmem gone from repo, no need to delete here.

--HG--
extra : convert_revision : 570fa1b8d7144376cf13a010160a39d1c1cccbc2
2006-12-03 01:11:24 -05:00
Steve Reinhardt
d3e888ff90 Merge zizzer.eecs.umich.edu:/bk/newmem
into  vm1.(none):/home/stever/bk/newmem-head

--HG--
extra : convert_revision : 4c8de6e4c6f729c83e92abd81ea6c1347e647756
2006-12-02 19:52:26 -08:00
Nathan Binkert
5d637417a8 don't blow away the whole destination directory
--HG--
extra : convert_revision : 7370bad15cc30e75ebb0c8685324d8db06fc2936
2006-12-01 22:33:18 -08:00
Nathan Binkert
6e885ec9ba Get rid of the old release-edits script and create make_release.py
which takes care of almost everything needed for putting together
a release.

--HG--
extra : convert_revision : b05d418a1002633b1286591eb8a8588ba33f5df1
2006-11-30 20:50:47 -08:00
Steve Reinhardt
d2a71f6b2a cscope-find.py:
Write directly to 'cscope.files' and run 'cscope -b' .
Now this script does everything automatically.
cscope-index.py:
Rename: util/cscope-find.py -> util/cscope-index.py

util/cscope-find.py:
    Write directly to 'cscope.files' and run 'cscope -b' .
    Now this script does everything automatically.

--HG--
rename : util/cscope-find.py => util/cscope-index.py
extra : convert_revision : cd6fa5cc0c2146f7184c9213956aff67c7cb9341
2006-11-29 13:17:41 -08:00
Steve Reinhardt
28f8318252 Add no-op versions of ivlb and ivle back in for backwards compatibility.
--HG--
extra : convert_revision : 383b72c130b20f3d7cde4e08fa36a481f3c0bf7c
2006-11-24 12:32:33 -05:00
Gabe Black
58f7ed2416 Cleaned up remnants of ivlb and ivle
--HG--
extra : convert_revision : 93b37dbcd3d9dd1eced0f829223f52b53fe58643
2006-11-06 20:49:48 -05:00
Gabe Black
466c387318 Merge zizzer.eecs.umich.edu:/bk/newmem
into  zeep.eecs.umich.edu:/home/gblack/m5/newmem

--HG--
extra : convert_revision : cb15101d24ef2969e1819d6bdeeb2dd1f23f02d1
2006-10-23 09:44:58 -04:00
Steve Reinhardt
810dee6e98 Have tracediff print warning if no traceflags are set.
Elaborate on description a bit.

--HG--
extra : convert_revision : 2649961b53d6fb2774ddfb60219415ae4251db2d
2006-10-22 12:51:00 -04:00
Steve Reinhardt
0e121bc14f Updated to work with new command line argument ordering.
Note that command line syntax has totally changed as a result.
See comments for more details.

--HG--
extra : convert_revision : bdb6e27abd2da83c7468dfe2a95e8bf54757ac6c
2006-10-21 02:24:27 -07:00
Gabe Black
0b5cf4ba6e Merge zizzer.eecs.umich.edu:/bk/newmem
into  zeep.eecs.umich.edu:/home/gblack/m5/newmem

--HG--
extra : convert_revision : 2711fec2bf72801999b060e65f0bf744c18734fb
2006-10-20 16:39:47 -04:00
Steve Reinhardt
3772e4fc97 m5term: assume localhost if host name not provided.
util/term/term.c:
    Reindent.
util/term/term.c:
    Assume localhost if only port number is given on command line.

--HG--
extra : convert_revision : 768e61a56339a0795ca258cca788e9a2c20cbaae
2006-10-19 21:42:30 -07:00
Gabe Black
76c07ea46b Cleaned up the function a bit to help route out bugs.
--HG--
extra : convert_revision : db9a526bddc8634cea63b42b882f580806066db5
2006-10-19 14:57:06 -04:00
Gabe Black
bb2ab310eb Fixed up exetrace.cc to deal with microcode, and to made floating point register numbers correlate to the numbers used in SPARC in m5 and statetrace.
src/cpu/exetrace.cc:
    Fixed up to deal with microcode, and to make floating point register numbers correlate to the numbers used in SPARC.
util/statetrace/arch/tracechild_sparc.cc:
util/statetrace/arch/tracechild_sparc.hh:
    Make floating point register numbers correlate to the numbers used in SPARC.

--HG--
extra : convert_revision : 878897292f696092453cf61d6eac2d1c407ca13b
2006-10-18 20:52:34 -04:00
Kevin Lim
4ed184eade Merge ktlim@zamp:./local/clean/o3-merge/m5
into  zamp.eecs.umich.edu:/z/ktlim2/clean/o3-merge/newmem

configs/boot/micro_memlat.rcS:
configs/boot/micro_tlblat.rcS:
src/arch/alpha/ev5.cc:
src/arch/alpha/isa/decoder.isa:
src/arch/alpha/isa_traits.hh:
src/cpu/base.cc:
src/cpu/base.hh:
src/cpu/base_dyn_inst.hh:
src/cpu/checker/cpu.hh:
src/cpu/checker/cpu_impl.hh:
src/cpu/o3/alpha/cpu_impl.hh:
src/cpu/o3/alpha/params.hh:
src/cpu/o3/checker_builder.cc:
src/cpu/o3/commit_impl.hh:
src/cpu/o3/cpu.cc:
src/cpu/o3/decode_impl.hh:
src/cpu/o3/fetch_impl.hh:
src/cpu/o3/iew.hh:
src/cpu/o3/iew_impl.hh:
src/cpu/o3/inst_queue.hh:
src/cpu/o3/lsq.hh:
src/cpu/o3/lsq_impl.hh:
src/cpu/o3/lsq_unit.hh:
src/cpu/o3/lsq_unit_impl.hh:
src/cpu/o3/regfile.hh:
src/cpu/o3/rename_impl.hh:
src/cpu/o3/thread_state.hh:
src/cpu/ozone/checker_builder.cc:
src/cpu/ozone/cpu.hh:
src/cpu/ozone/cpu_impl.hh:
src/cpu/ozone/front_end.hh:
src/cpu/ozone/front_end_impl.hh:
src/cpu/ozone/lw_back_end.hh:
src/cpu/ozone/lw_back_end_impl.hh:
src/cpu/ozone/lw_lsq.hh:
src/cpu/ozone/lw_lsq_impl.hh:
src/cpu/ozone/thread_state.hh:
src/cpu/simple/base.cc:
src/cpu/simple_thread.cc:
src/cpu/simple_thread.hh:
src/cpu/thread_state.hh:
src/dev/ide_disk.cc:
src/python/m5/objects/O3CPU.py:
src/python/m5/objects/Root.py:
src/python/m5/objects/System.py:
src/sim/pseudo_inst.cc:
src/sim/pseudo_inst.hh:
src/sim/system.hh:
util/m5/m5.c:
    Hand merge.

--HG--
rename : arch/alpha/ev5.cc => src/arch/alpha/ev5.cc
rename : arch/alpha/freebsd/system.cc => src/arch/alpha/freebsd/system.cc
rename : arch/alpha/isa/decoder.isa => src/arch/alpha/isa/decoder.isa
rename : arch/alpha/isa/mem.isa => src/arch/alpha/isa/mem.isa
rename : arch/alpha/isa_traits.hh => src/arch/alpha/isa_traits.hh
rename : arch/alpha/linux/system.cc => src/arch/alpha/linux/system.cc
rename : arch/alpha/system.cc => src/arch/alpha/system.cc
rename : arch/alpha/tru64/system.cc => src/arch/alpha/tru64/system.cc
rename : cpu/base.cc => src/cpu/base.cc
rename : cpu/base.hh => src/cpu/base.hh
rename : cpu/base_dyn_inst.hh => src/cpu/base_dyn_inst.hh
rename : cpu/checker/cpu.hh => src/cpu/checker/cpu.hh
rename : cpu/checker/cpu.cc => src/cpu/checker/cpu_impl.hh
rename : cpu/o3/alpha_cpu_builder.cc => src/cpu/o3/alpha/cpu_builder.cc
rename : cpu/checker/o3_cpu_builder.cc => src/cpu/o3/checker_builder.cc
rename : cpu/o3/commit_impl.hh => src/cpu/o3/commit_impl.hh
rename : cpu/o3/cpu.cc => src/cpu/o3/cpu.cc
rename : cpu/o3/fetch_impl.hh => src/cpu/o3/fetch_impl.hh
rename : cpu/o3/iew.hh => src/cpu/o3/iew.hh
rename : cpu/o3/iew_impl.hh => src/cpu/o3/iew_impl.hh
rename : cpu/o3/inst_queue.hh => src/cpu/o3/inst_queue.hh
rename : cpu/o3/inst_queue_impl.hh => src/cpu/o3/inst_queue_impl.hh
rename : cpu/o3/lsq_impl.hh => src/cpu/o3/lsq_impl.hh
rename : cpu/o3/lsq_unit.hh => src/cpu/o3/lsq_unit.hh
rename : cpu/o3/lsq_unit_impl.hh => src/cpu/o3/lsq_unit_impl.hh
rename : cpu/o3/mem_dep_unit_impl.hh => src/cpu/o3/mem_dep_unit_impl.hh
rename : cpu/o3/rename.hh => src/cpu/o3/rename.hh
rename : cpu/o3/rename_impl.hh => src/cpu/o3/rename_impl.hh
rename : cpu/o3/thread_state.hh => src/cpu/o3/thread_state.hh
rename : cpu/o3/tournament_pred.cc => src/cpu/o3/tournament_pred.cc
rename : cpu/o3/tournament_pred.hh => src/cpu/o3/tournament_pred.hh
rename : cpu/checker/cpu_builder.cc => src/cpu/ozone/checker_builder.cc
rename : cpu/ozone/cpu.hh => src/cpu/ozone/cpu.hh
rename : cpu/ozone/cpu_builder.cc => src/cpu/ozone/cpu_builder.cc
rename : cpu/ozone/cpu_impl.hh => src/cpu/ozone/cpu_impl.hh
rename : cpu/ozone/front_end.hh => src/cpu/ozone/front_end.hh
rename : cpu/ozone/front_end_impl.hh => src/cpu/ozone/front_end_impl.hh
rename : cpu/ozone/inorder_back_end_impl.hh => src/cpu/ozone/inorder_back_end_impl.hh
rename : cpu/ozone/inst_queue_impl.hh => src/cpu/ozone/inst_queue_impl.hh
rename : cpu/ozone/lw_back_end.hh => src/cpu/ozone/lw_back_end.hh
rename : cpu/ozone/lw_back_end_impl.hh => src/cpu/ozone/lw_back_end_impl.hh
rename : cpu/ozone/lw_lsq.hh => src/cpu/ozone/lw_lsq.hh
rename : cpu/ozone/lw_lsq_impl.hh => src/cpu/ozone/lw_lsq_impl.hh
rename : cpu/ozone/simple_params.hh => src/cpu/ozone/simple_params.hh
rename : cpu/ozone/thread_state.hh => src/cpu/ozone/thread_state.hh
rename : cpu/simple/cpu.cc => src/cpu/simple/base.cc
rename : cpu/cpu_exec_context.cc => src/cpu/simple_thread.cc
rename : cpu/thread_state.hh => src/cpu/thread_state.hh
rename : dev/ide_disk.hh => src/dev/ide_disk.hh
rename : python/m5/objects/BaseCPU.py => src/python/m5/objects/BaseCPU.py
rename : python/m5/objects/AlphaFullCPU.py => src/python/m5/objects/O3CPU.py
rename : python/m5/objects/OzoneCPU.py => src/python/m5/objects/OzoneCPU.py
rename : python/m5/objects/Root.py => src/python/m5/objects/Root.py
rename : python/m5/objects/System.py => src/python/m5/objects/System.py
rename : sim/eventq.hh => src/sim/eventq.hh
rename : sim/pseudo_inst.cc => src/sim/pseudo_inst.cc
rename : sim/pseudo_inst.hh => src/sim/pseudo_inst.hh
rename : sim/serialize.cc => src/sim/serialize.cc
rename : sim/stat_control.cc => src/sim/stat_control.cc
rename : sim/stat_control.hh => src/sim/stat_control.hh
rename : sim/system.hh => src/sim/system.hh
extra : convert_revision : 135d90e43f6cea89f9460ba4e23f4b0b85886e7d
2006-09-30 23:43:23 -04:00
Gabe Black
b7d0395126 Adding what was tracedump but is now statetrace to the tree. Let me know if statetrace is also already taken.
util/statetrace/Makefile:
    Makefile to build statetrace. Targets are:

    statetrace: alias to build using the "native" compiler
    statetrace-native: use the native compiler
    statetrace-sparc: use the sparc cross compiler

    I'll make this a little more fancy and capable later.
util/statetrace/arch/tracechild_i386.cc:
    Implementation of i386 support
util/statetrace/arch/tracechild_i386.hh:
    Declaration of i386 support
util/statetrace/arch/tracechild_sparc.cc:
    implementation of SPARC support
util/statetrace/arch/tracechild_sparc.hh:
    declaration of SPARC support
util/statetrace/printer.cc:
    Implementation of the "Printer" objects which parse and output the state of the process after each instruction. There are currently two types of printers, nested ones and register ones. These are called NestingPrinter and RegPrinter respectively.
util/statetrace/printer.hh:
    Declaration of "Printer" objects
util/statetrace/refcnt.hh:
    This is copied from m5. I should use the one already in the tree, but I'll do that later.
util/statetrace/regstate.hh:
    Interface for accessing registers.
util/statetrace/statetrace.cc:
    Main file with argument parsing and the "main" function which contains the tracing loop.
util/statetrace/tracechild.cc:
    Implementation of the base tracechild class.
util/statetrace/tracechild.hh:
    Declaration of the base tracechild class.
util/statetrace/tracechild_arch.cc:
    This file hooks in support for the appropriate architecture. Just the implementation is brought in, since the main program should ideally not have to know anything at all about an architecture other than it's interface.
util/statetrace/x86.format:
    An example output template for x86. A few example SPARC templates will be added later.

--HG--
extra : convert_revision : 7c8bf8230907aba42ed1e707b9ca2d6da0d4e6d4
2006-09-17 03:46:30 -04:00
Ali Saidi
44c6f953b0 Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem.head

--HG--
extra : convert_revision : 14ac24236ff65b7e489c1ce4b4e9a295966013b8
2006-09-11 17:57:30 -04:00
Ali Saidi
46502851ab add annotation code to m5
configs/common/Benchmarks.py:
    add annotate test app
src/SConscript:
    add annotate.cc to lis
src/arch/alpha/isa/decoder.isa:
    add annotate instructions
src/base/traceflags.py:
    Add annotate trace flag
src/sim/pseudo_inst.cc:
src/sim/pseudo_inst.hh:
    add annotate pseudo ops
util/m5/m5op.S:
util/m5/m5op.h:
    add anotate ops

--HG--
extra : convert_revision : 7f965c0d84e41ce34f2ec8ec27a009276d67d8d6
2006-09-11 17:57:20 -04:00
Steve Reinhardt
9e6d12b095 Added cscope-find.py utility to generate file list for cscope.
--HG--
extra : convert_revision : 80f2db90f1c2406039d0447b84aa0442b7b974f8
2006-09-08 19:22:25 -04:00
Steve Reinhardt
f6f3ce1311 regress:
Clean up help output.

util/regress:
    Clean up help output.

--HG--
extra : convert_revision : 8375d58a9d72e1871a15690991dc8fc60d47a2b3
2006-09-02 08:20:54 -07:00
Steve Reinhardt
d8501ec17c Get rid of extra stuff in util/regress only needed by cron job,
to make it more usable by regular folks.

util/regress:
    Get rid of extra stuff only needed by cron job,
    to make it more usable by regular folks.

--HG--
extra : convert_revision : e113c05af5eec846db526d734cce8ff66aa95d72
2006-09-01 20:11:50 -04:00
Steve Reinhardt
0b9f89f903 Fix command for new options processing.
--HG--
extra : convert_revision : 49eee05a6deddae378013f7c2117eabe621b69d9
2006-08-28 09:48:31 -07:00
Steve Reinhardt
a0759f0fb7 Update for new regression test structure.
--HG--
extra : convert_revision : f533bc237710c2c634a20e51733f66f9f5dd0929
2006-08-25 13:04:21 -04:00
Kevin Lim
4a2c50bc8f Support loading in a symbol file.
arch/alpha/freebsd/system.cc:
arch/alpha/isa/decoder.isa:
arch/alpha/linux/system.cc:
arch/alpha/system.cc:
arch/alpha/tru64/system.cc:
    Let symbol files be read in so that profiling can happen on the binaries as well.
python/m5/objects/System.py:
    Add in symbol files.
sim/pseudo_inst.cc:
    Load in a specified symbol file.
sim/pseudo_inst.hh:
    Allow for symbols to be loaded.
sim/system.hh:
    Support symbol file.
util/m5/m5.c:
util/m5/m5op.S:
    Add support to m5 util for loading symbols (and readfile).

--HG--
extra : convert_revision : f10c1049bcd7b22b98c73052c0666b964aff222b
2006-08-23 16:57:07 -04:00
Kevin Lim
a21afd7bc4 Add readfile back in.
--HG--
extra : convert_revision : 0b64f2d95b439b19f1131fe00f45da56617b0026
2006-08-17 19:16:03 -04:00
Kevin Lim
de321175f2 Add in a bunch more stuff.
configs/boot/micro_memlat.rcS:
    Update these scripts so they work (not sure why they broke)
configs/boot/micro_tlblat.rcS:
    Update this script to use a different test.

--HG--
extra : convert_revision : 6e8692540a9fac6ae8f2d9975c70d4135354b849
2006-08-11 17:48:41 -04:00
Kevin Lim
14b9cda9f6 Minor updates.
src/cpu/o3/alpha_cpu.hh:
    Fix #define in header.
util/rundiff:
    Fix file comments to be more correct.
util/tracediff:
    Update comments to be more correct.

--HG--
extra : convert_revision : a28030ce8979de3d9361191c6af23743460dc53e
2006-06-17 22:55:00 -04:00
Nathan Binkert
3c95f5958f Merge iceaxe.:/Volumes/work/research/m5/head
into  iceaxe.:/Volumes/work/research/m5/merge

src/cpu/simple/base.cc:
src/kern/kernel_stats.cc:
src/kern/kernel_stats.hh:
src/kern/system_events.cc:
src/kern/system_events.hh:
src/python/m5/objects/System.py:
src/sim/system.cc:
src/sim/system.hh:
    hand merge

--HG--
rename : build/SConstruct => SConstruct
rename : SConscript => src/SConscript
rename : arch/alpha/freebsd/system.cc => src/arch/alpha/freebsd/system.cc
rename : arch/alpha/linux/system.cc => src/arch/alpha/linux/system.cc
rename : arch/alpha/linux/system.hh => src/arch/alpha/linux/system.hh
rename : arch/alpha/system.cc => src/arch/alpha/system.cc
rename : arch/alpha/tru64/system.cc => src/arch/alpha/tru64/system.cc
rename : base/statistics.cc => src/base/statistics.cc
rename : base/statistics.hh => src/base/statistics.hh
rename : base/stats/mysql.cc => src/base/stats/mysql.cc
rename : base/stats/mysql.hh => src/base/stats/mysql.hh
rename : base/stats/statdb.cc => src/base/stats/statdb.cc
rename : base/stats/statdb.hh => src/base/stats/statdb.hh
rename : base/stats/text.cc => src/base/stats/text.cc
rename : base/stats/text.hh => src/base/stats/text.hh
rename : cpu/simple/cpu.cc => src/cpu/simple/base.cc
rename : kern/kernel_stats.cc => src/kern/kernel_stats.cc
rename : kern/kernel_stats.hh => src/kern/kernel_stats.hh
rename : kern/system_events.cc => src/kern/system_events.cc
rename : kern/system_events.hh => src/kern/system_events.hh
rename : python/m5/objects/System.py => src/python/m5/objects/System.py
rename : sim/system.cc => src/sim/system.cc
rename : sim/system.hh => src/sim/system.hh
rename : test/stattest.cc => src/unittest/stattest.cc
extra : convert_revision : 4bb576a2bf5e32784efc48030bd776c6c7c29a7c
2006-06-11 22:01:34 -04:00
Nathan Binkert
7af93dbdf6 Remove all binning stuff
--HG--
extra : convert_revision : 6da2b3b0b6c2824f2064d42670fd8383edb7c718
2006-06-10 13:08:43 -04:00
Ali Saidi
cb0cf2dd8a Updated Authors from bk prs info
--HG--
extra : convert_revision : 77f475b156d81c03a2811818fa23593d5615c685
2006-05-31 19:26:56 -04:00
Ali Saidi
03a00e5d32 Merge zeep.pool:/z/saidi/work/m5.head
into  zeep.pool:/z/saidi/work/m5.nm_m5_pull

SConscript:
    dram memory needs to be converted to newmem before we can use it
dev/ide_ctrl.cc:
    don't need this printing in newmem
dev/ide_disk.cc:
    will read stats in next commit
dev/sinic.cc:
    merge sinic from head, still needs work

--HG--
extra : convert_revision : b9aabd8c7814d07d54ce6f971aad3ec349fa24e1
2006-05-12 18:16:07 -04:00
Nathan Binkert
d50b6e5247 Fix some of lisa's barchart changes
util/stats/barchart.py:
    - there is no self.inner_axes
    - don't append an empty value to self.xsubticks, otherwise
    subsequent calls will get extra empty ticks
    - rotate labels 30 degrees instead of 90 so it looks better

--HG--
extra : convert_revision : 1cbac6d1f92bfc6b2c1e886ad5f9d4c78a2b3820
2006-05-02 11:45:42 -04:00
Steve Reinhardt
1141610a01 Bump up NFS wait time in qdo (since this has been causing
problems in pool regressions).

util/qdo:
    Bump up hardcoded NFS wait time from 45 sec to 90 sec (and
    print threshold from 10 sec to 30 sec).  Would be even
    nicer to make these cmd-line params, but nobody would use
    them anyway.

--HG--
extra : convert_revision : 1e9b3ad43a5dbf5e30758069e5a8cde3749cc1a6
2006-03-11 22:01:33 -05:00
Ali Saidi
26d7b5a4d1 Add quiesceNs, quiesceTime, quiesceCycles, and m5panic pseudo ops.
This changeset removes a check that prevents quiescing when an
interrupt is pending. *** You should only call quiesce if that
isn't a problem. ***

arch/alpha/isa/decoder.isa:
sim/pseudo_inst.cc:
sim/pseudo_inst.hh:
    Add quiesceNs, quiesceCycles, quisceTime and m5panic pseudo ops.
    These quiesce for a number of ns, cycles, report how long
    we were quiesced for, and panic the simulator respectively.
    The latter is added to the panic() function in the console and linux
    kernel instead of executing an infinite loop until someone notices.
cpu/exec_context.cc:
cpu/exec_context.hh:
    Add a quiesce end event to the execution contexted which upon
    executing wakes up a CPU for quiesceCycles/quiesceNs.
util/m5/Makefile:
    Make the makefile more reasonable
util/m5/m5.c:
    update the m5op executable to use the files from the linux tree
util/m5/m5op.S:
    update m5op.S from linux tree
util/m5/m5op.h:
    update m5op.h from linux tree

--HG--
rename : util/m5/m5op.s => util/m5/m5op.S
extra : convert_revision : 3be18525e811405b112e33f24a8c4e772d15462d
2006-02-28 18:41:04 -05:00
Nathan Binkert
29f50d9345 fix some minor stats stuff
util/stats/stats.py:
    fix up a few of the stats.

--HG--
extra : convert_revision : 61c600cd146900c8cc0cf60a9036f2e999a5e244
2006-02-26 23:06:21 -05:00
Nathan Binkert
10fcad4ce0 Allow graph_group to not be selected so we can have a
normal ungrouped barchart

--HG--
extra : convert_revision : 7d55440c9bb060607eddbb72448a3413944bb6ba
2006-02-26 10:44:01 -05:00
Nathan Binkert
57092567ba better function categorization
util/stats/categories.py:
    bit more stuff for categorizing functions

--HG--
extra : convert_revision : 03617246a9254a580684dce82836517d1efdfc5b
2006-02-26 01:00:15 -05:00
Nathan Binkert
2c3e8d148c fix small python bug in database processing code
util/stats/db.py:
    fix usage of hasattr

--HG--
extra : convert_revision : b384e1efeda76921c565f9f391694c27273edcec
2006-02-26 00:57:37 -05:00
Nathan Binkert
b7e4d16ea9 code cleanup
util/stats/barchart.py:
    clean up some of lisa's messy code
    remove trailing whitespace while I'm at it.

--HG--
extra : convert_revision : f2fe6777fb4b458fa1d5b5b743f6274014c229ad
2006-02-26 00:35:10 -05:00
Nathan Binkert
0d71a17ed8 forgot to add a chart option
util/stats/chart.py:
    add a bool config option for determining
    if the legend is inside or outside the figure

--HG--
extra : convert_revision : e862d1832a0cc3c1837758cc247bc77c0a02ec12
2006-02-26 00:19:02 -05:00
Nathan Binkert
cf3667a0e4 add error bars and more options for legend placement
util/stats/barchart.py:
    Add support for error bars
util/stats/barchart.py:
    add support to choose between a legend inside or
    outside the figure.

--HG--
extra : convert_revision : 14273e385c106bf27a2013991f9f34ca6551b96c
2006-02-26 00:11:54 -05:00
Nathan Binkert
46189e9e2b better colors for barcharts
util/stats/barchart.py:
    If there are fewer than 5 colors, pick from a subset of
    5 so there is more consistency in colors between graphs

--HG--
extra : convert_revision : 6cf64c2f8ed81e714e24a3ebe5a7a60ca168b231
2006-02-25 23:48:13 -05:00
Lisa Hsu
4d01be373e Merge zizzer:/bk/m5
into  zed.eecs.umich.edu:/z/hsul/work/m5/clean

--HG--
extra : convert_revision : 34314698d4248a078c7b43125b2d048280ff576d
2006-02-24 18:08:55 -05:00
Lisa Hsu
fcb9718dcd 1) make it pretty for large clusters
2) make subticks vertical so they can be longer
3) make inner and outer axes farther apart to make room for subtick's vertical labels

--HG--
extra : convert_revision : 91a1aab3f1078921edd53428e6712744210c9f1b
2006-02-24 18:08:14 -05:00
Nathan Binkert
f462266b30 don't add an empty suboption description
--HG--
extra : convert_revision : 594744c3d438aed08a23db376959930071b2c368
2006-02-23 00:21:35 -05:00
Nathan Binkert
35094fb0fe make it possible to add filters for job names so that
parts of the full crossproduct of jobs can be ignored.

--HG--
extra : convert_revision : c44b3daea0cf4b487b1d99eae92da16573b15930
2006-02-23 00:20:32 -05:00
Lisa Hsu
a611b81003 few changes for nate:
1) cosmetic - removing visibility of meta axes except for the tick labels.
2) unless subticklabels defined, don't do meta axes. (instead of assuming if you have 3D graph, do meta axes)

--HG--
extra : convert_revision : 396011ffaa51ea4066b34257f6fd5b3faac9d242
2006-02-18 20:10:42 -05:00
Lisa Hsu
6cf0ba8495 remove print statements
--HG--
extra : convert_revision : abd635034424eeb9685aea777440a02887ce81a6
2006-02-18 18:39:19 -05:00
Lisa Hsu
71bf22165a more changes for subtick labels.
util/stats/barchart.py:
    oop forgot this for 1D graph cases.
util/stats/chart.py:
    need to add default param to chart.

--HG--
extra : convert_revision : f4e6c6c614d584e7928ed905e97608716455ab6c
2006-02-18 17:29:43 -05:00
Lisa Hsu
b00468ce8b Merge zizzer:/bk/m5
into  zed.eecs.umich.edu:/z/hsul/work/m5/clean

--HG--
extra : convert_revision : 5f7c75eb3f82d9b04edc0efece3b054b5d0fe81f
2006-02-18 17:24:37 -05:00
Lisa Hsu
ef14fd4ad3 Now you can have sublabels for every bar using the self.xsubticklabels parameter.
--HG--
extra : convert_revision : a6bdf3a972e81c84947b7d6ae76f828494a125c8
2006-02-18 17:24:23 -05:00
Nathan Binkert
ad1e46203b Make the M5 Emacs C style default to inserting spaces instead
of tabs so using different editors is consistent

util/emacs/m5-c-style.el:
    Default to inserting spaces instead of tabs so using different
    editors is consistent

--HG--
extra : convert_revision : 719e5e980e088b0f4787b198de18cddceabd0140
2006-01-30 14:32:00 -05:00
Nathan Binkert
45ecb2b69e Create the ProxyError Exception. Raise it when an unproxy
operation fails because information is wrong or not available.

--HG--
extra : convert_revision : 1fd90c1291618b09752179cfa6894f1df495fffd
2005-12-19 02:07:06 -05:00
Nathan Binkert
adf47c95b0 Add a little bit of support to grab info for making graphs
without using the jobfile.

util/stats/db.py:
util/stats/profile.py:
    Make it possible to send job as a string and to set the system
    separately from the job.

--HG--
extra : convert_revision : 08aaebd3f9a1643bd41953b43f3b80dc97e6592f
2005-12-19 02:02:58 -05:00
Nathan Binkert
c0a4836077 Major improvements in the graph output code. Mostly adding more
options, making existing options more visible and dealing with
holes in data better.

util/stats/barchart.py:
    - move the options for BarChart to a base class ChartOptions so
    they can be more easily set and copied.
    - add an option to set the chart size (so you can adjust the aspect ratio)
    - don't do the add_subplot thing, use add_axes directly so we can
    affect the size of the figure itself to make room for the legend
    - make the initial array bottom floating point so we don't lose precision
    - add an option to set the limits on the y axis
    - use a figure legend instead of an axes legend so we can put the legend
    outside of the actual chart.  Also add an option to set the fontsize of
    the legend.
    - initial hack at outputting csv files
util/stats/db.py:
    don't print out an error when the run is missing from the database
    just return None, the error will be print elsewhere.
util/stats/output.py:
    - make StatOutput derive from ChartOptions so that it's easier to
    set default chart options.
    - make the various output functions (graph, display, etc.) take the
    name of the data as a parameter instead of making it a parameter to
    __init__.  This allows me to create the StatOutput object with
    generic parameters while still being able to specialize the name
    after the fact
    - add support for graph_group and graph_bars to be applied to multiple
    configuration groups.  This results in a cross product of the groups
    to be generated and used.
    - flush the html file output as we go so that we can load the file
    while graphs are still being generated.
    - make the proxy a parameter to the graph function so the proper system's
    data can be graphed
    - for any groups or bars that are completely missing, remove them from
    the graph.  This way, if we decide not to do a set of runs, there won't
    be holes in the data.
    - output eps and ps by default in addition to the png.
util/stats/profile.py:
    - clean up the data structures that are used to store the function
    profile information and try our best to avoid keeping extra data
    around that isn't used.
    - make get() return None if a job is missing so we know it was
    missing rather than the all zeroes thing.
    - make the function profile categorization stuff total up to 100%
    - Fixup the x-axis and y-axis labels.
    - fix the dot file output stuff.
util/stats/stats.py:
    support the new options stuff for StatOutput

--HG--
extra : convert_revision : fae35df8c57a36257ea93bc3e0a0e617edc46bb7
2005-11-22 21:50:34 -05:00
Nathan Binkert
7819ca6b97 Change the set of statistics that are generated when specifying "all"
--HG--
extra : convert_revision : 8b803b1b3bbec0b35b6805593b0dd598e5b519cf
2005-11-22 21:20:36 -05:00
Nathan Binkert
634a0d8469 More changes from cpus named fullX to runX
--HG--
extra : convert_revision : e3c117dc5751be13bd4b014a7fa6df0debfb48f0
2005-11-22 21:18:11 -05:00
Nathan Binkert
7584604fa9 make the NUMCPUS parameter always refer to the total number of cpus
on the test system.
add an option for pio_delay_write to run.py

util/stats/stats.py:
    full0 -> run0 due to run.py change
    sim_ticks doesn't make sense with tick = ps, so use
    one of the cpu's numCycles paramter

--HG--
extra : convert_revision : db9dbe014549d823edc10395f5241db5e907df01
2005-11-22 21:05:02 -05:00
Nathan Binkert
a102318412 Deal with divide by zero in the python stats stuff.
util/stats/info.py:
    If an operation results in a divide by zero, just return None

--HG--
extra : convert_revision : 19cb4319734a3a9cf02bb1966fed42eb0c8a8ade
2005-11-20 23:42:53 -05:00
Nathan Binkert
67c276ed2e implement __str__ for all of the proxy stuff so we can
actually print out a statistic.

--HG--
extra : convert_revision : 043be6bd729e74d2220c5ae8aa1fc739aa247715
2005-11-20 23:30:13 -05:00
Ali Saidi
746841856c Add checktrace.sh. Checks all the ethertrace files in */ethertrace
for retransmissions, out of order packets, lost packets, duplicate
ack, window full, etc. Easy way to see if you have a problem with a
run.

--HG--
extra : convert_revision : 95d8e8650b0fb3d120df107cd5281c56fefc3a1d
2005-11-11 18:43:09 -05:00
Steve Reinhardt
902e27e692 Qdo should kill its subordinate qsub more aggressively
on a timeout.

util/qdo:
    Qsub needs a kill -9 to die; kill -15 doesn't cut it.

--HG--
extra : convert_revision : 7696b3ecf1a084b68dd909b138ab6aa1b380b5a7
2005-11-03 13:14:28 -05:00
Ali Saidi
3b66cb49ec Merge zizzer:/bk/m5
into  zeep.eecs.umich.edu:/z/saidi/work/m5

--HG--
extra : convert_revision : 3cc23080d19cc464a8ba7c1c93b6e5d45af7d463
2005-11-02 14:56:18 -05:00
Ali Saidi
0523736b96 Change the output of stability info a little bit
--HG--
extra : convert_revision : bc467a40593234a1e3b694a741b4a7c2154a95ea
2005-11-02 14:55:05 -05:00
Ali Saidi
4b6540c264 add a few more options to the help menu
--HG--
extra : convert_revision : b2481bedac786e4a6bb0d577954242d7f4c144a0
2005-11-02 14:54:21 -05:00
Nathan Binkert
a0829a7780 Simple updates to pbs and send.py
util/pbs/pbs.py:
    Change the default so that we do not get mail under any circumstances
    from pbs.
util/pbs/send.py:
    Add a -n flag to send.py that causes the Base directory to *not*
    sync with the Link directory

--HG--
extra : convert_revision : 6e872153b6b2c34b61ec2ddbf3e5536876f4b43b
2005-11-02 12:19:08 -05:00
Steve Reinhardt
5540021d89 Fix qdo job name setting.
util/qdo:
    Don't automatically set qsub job name, as this causes qsub to fail
    if the job name is too long or otherwise unsuitable.

--HG--
extra : convert_revision : 5ba48767574efaaff2c328549adee295780f7f70
2005-10-23 22:18:50 -04:00
Nathan Binkert
13bf7e27ac Fix a couple of bug in the values() vector accessor
util/stats/db.py:
    need to import the values function
util/stats/info.py:
    it's just run

--HG--
extra : convert_revision : 3cb67d8112a1a5fdf761b73732859a71f585bd1f
2005-10-21 17:28:47 -04:00
Nathan Binkert
12822443a5 Minor updates to the profile code.
util/stats/profile.py:
    Pass around the number of symbols limit
    deal with categorization a bit better.

--HG--
extra : convert_revision : 908410e296efd4514f2dfc0eb9e6e42834585560
2005-10-21 16:32:48 -04:00
Nathan Binkert
7ef8b40b3b Merge zizzer.eecs.umich.edu:/bk/m5
into  zizzer.eecs.umich.edu:/.automount/ziff/z/binkertn/research/m5/work

--HG--
extra : convert_revision : 8ef6ed2d770d45ac11d44a449e2c4f74ef656d87
2005-10-21 16:29:27 -04:00
Nathan Binkert
e00237e49e Major cleanup of the statistics handling code
util/stats/db.py:
    Build a result object as the result of a query operation so it is
    easier to populate and contains a bit more information than just
    a big dict.  Also change the next level data into a matrix instead
    of a dict of dicts.
    Move the "get" function into the Database object.  (The get function
    is used by the output parsing function as the interface for accessing
    backend storage, same interface for profile stuff.)
    Change the old get variable to the method variable, it describes how
    the get works, (whether using sum, stdev, etc.)
util/stats/display.py:
    Clean up the display functions, mostly formatting.
    Handle values the way they should be now.
util/stats/info.py:
    Totally re-work how values are accessed from their data store.
    Access individual values on demand instead of calculating everything
    and passing up a huge result from the bottom.
    This impacts the way that proxying works, and in general, everything
    is now esentially a proxy for the lower level database.  Provide new
    operators: unproxy, scalar, vector, value, values, total, and len which
    retrieve the proper result from the object they are called on.
    Move the ProxyGroup stuff (proxies of proxies!) here from the now gone
    proxy.py file and integrate the shared parts of the code.  The ProxyGroup
    stuff allows you to write formulas without specifying the statistics
    until evaluation time.

    Get rid of global variables!
util/stats/output.py:
    Move the dbinfo stuff into the Database itself.  Each source should
    have it's own get() function for accessing it's data.
    This get() function behaves a bit differently than before in that it
    can return vectors as well, deal with these vectors and with no result
    conditions better.
util/stats/stats.py:
    the info module no longer has the source global variable, just
    create the database source and pass it around as necessary

--HG--
extra : convert_revision : 8e5aa228e5d3ae8068ef9c40f65b3a2f9e7c0cff
2005-10-21 16:29:13 -04:00
Steve Reinhardt
9c68bde166 Add qdo options for setting the PBS job name and destination queue.
util/qdo:
    Add options for setting the PBS job name and destination queue.

--HG--
extra : convert_revision : dcb46a03b8fd7a93e2ba656a9e5c806e250f5ac9
2005-10-20 13:25:43 -04:00
Nathan Binkert
8ab674582e fix pbs dependency stuff
util/pbs/pbs.py:
    after -> afterok

--HG--
extra : convert_revision : ee0af716bcc0f83c4103632bd277a5680b0d2c23
2005-10-19 02:10:24 -04:00
Nathan Binkert
ce5f326f11 Default jobfile for stats
util/stats/stats.py:
    Make the default jobfile Test.py in the current directory
    add the -J flag to tell it not to use a jobfile

--HG--
extra : convert_revision : 5cf5bb2f32ed9c9701a94eabc9b2a538581acf94
2005-10-18 19:17:36 -04:00
Nathan Binkert
a81c03737a Add new function profiling stuff, wrap the pc_sample stuff into it.
SConscript:
    Get rid of the pc_sample stuff and move to the new profiling stuff
base/traceflags.py:
    DPRINTF Stack stuff
cpu/base.cc:
cpu/base.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/simple/cpu.cc:
    Add profiling stuff
kern/kernel_stats.hh:
    Use a smart pointer
sim/system.cc:
sim/system.hh:
    Create a new symbol table that has all of the symbols for a
    particular system
util/stats/categories.py:
    change around the categories, add categories for function
    profiling stuff
util/stats/profile.py:
    No profile parsing and display code to deal with function
    profiling stuff, graph, dot, and text outputs.

--HG--
extra : convert_revision : b3de0cdc8bd468e42647966e2640ae009bda9eb8
2005-10-18 19:07:42 -04:00
Nathan Binkert
357ee7a845 Better pool job handling
util/pbs/job.py:
    the default jobfile is now Test.py in the root of the jobs directory
util/pbs/pbs.py:
    Clean up the qsub options handling and add job dependencies
util/pbs/send.py:
    the default jobfile is now Test.py in the root of the jobs directory
    add a flag to depend on your checkpoint
    add a flag to specify your node type
    create the base directory if it doesn't exist

--HG--
extra : convert_revision : dfffa4a5b0e68b2550a28fbb06b9d6a208ea1f2e
2005-10-18 15:05:01 -04:00
Nathan Binkert
31d13e9a9b Improvements to the graphing output
util/stats/output.py:
    Create the graph directory if it doesn't exist
    Don't write out a graph if all of the jobs for that graph are missing

--HG--
extra : convert_revision : 7993baf1a4be33a062f86a4f09791f01eaafa43c
2005-10-18 15:01:51 -04:00
Nathan Binkert
6bc057139d don't write the pbs jobid here, do it in send.py so we know
what it is sooner
Don't handle sigstop since you're not allowed to.

util/pbs/send.py:
    write the pbs jobid here in send.py so we know what it is sooner

--HG--
extra : convert_revision : 93292d046cb4b628031e0e57e39eb4470b598ed8
2005-10-12 13:01:55 -04:00
Steve Reinhardt
30ad202a31 Commit regression script. The cron job uses a copy in m5test's
home directory (/z/m5/regression), so for now any modifications
should be manually copied there as well.

Note that this script is designed to be useful for running full
regressions outside of the cron job as well.

--HG--
extra : convert_revision : 052ec5d58b5ff765d8f3a9b50849ef34d62c8d66
2005-10-01 11:36:56 -04:00
Steve Reinhardt
70a799a8cf Fix for qdo & new pool node build.
util/qdo:
    unset PROMPT_COMMAND in shell in case system sets
    it for us.

--HG--
extra : convert_revision : f9f20f7dc6b9585b60f3ce53aadd06e7d64f5179
2005-09-29 16:03:36 -04:00
Steve Reinhardt
b15a7aaf5e Support for compiling and testing on pool via 'qdo' script.
For this to work qdo must be on your path.  I've copied it into
/usr/local/bin on zizzer.

build/SConstruct:
    Add BATCH and BATCH_CMD options to support compiling/testing
    on pool via qdo.

--HG--
extra : convert_revision : b7fc46465e897f7f15ed4a67f6735886917a6c4b
2005-09-22 15:27:42 -04:00
Nathan Binkert
02098f8e7b Totally re-work the way that jobfiles are done so there is more
information that can be used for other aspects of sending jobs.
New graphing output stuff with matplotlib.

util/pbs/job.py:
    Shuffle code around and create the JobDir class which encapsulates
    all of the functionality needed for making, organizing, and cleaning
    a job directory.
    Better status output
util/pbs/jobfile.py:
    Majory re-working of the jobfile code.
    A job file now consists of several objects that describe how
    jobs should be run, it includes information about checkpoints,
    and graphing.
util/pbs/send.py:
    use the new jobfile code.
    deal with the 15 character limit of pbs by truncating the name and
    using the raj hack.
util/stats/db.py:
    fix the __str__ function for nodes
    provide __getitem__ for the Database class
util/stats/stats.py:
    use the jobfile stuff to figure out what the proper naming
    and organziation of the graphs should be.
    move all output code to output.py, get rid of ploticus and use
    matplotlib

--HG--
rename : util/categories.py => util/stats/categories.py
extra : convert_revision : 0d793cbf6ad9492290e8ec875ce001c84095e1f7
2005-09-17 16:51:26 -04:00
Nathan Binkert
09bb203484 Updates to job scripts to accept more than 15 characters of jobname
Make the Link directory even more useful by working with
sub-directories.

util/pbs/job.py:
    Expose JOBNAME as a separate parameter from PBS_JOBNAME.  If the
    former exists, it is used as the jobname for starting the job, if
    it doesn't exist, PBS_JOBNAME is used.  This is to get around the 15
    character maximum pbs job name length.  While we're at it, shuffle
    things around to hopefully make things a bit more clear.
util/pbs/send.py:
    Make the Link directory functionality more sophisticated, copy
    sub-directories and links to directories.  (we still don't copy
    dotfiles though)
    Add the setname() function to contact pbs and use raj's hack to
    tell the webpage about longer jobnames. (it's gross, don't look)
    truncate the pbs job name to 15 characters so that it works.

--HG--
extra : convert_revision : 4a76b1a1c33721c7ca93e2fbb761f95bc3a2ac69
2005-08-16 11:27:49 -04:00
Nathan Binkert
769234f69e Reorganize tap code so that more than one method can be used
for accessing physical packets.
Add support for tap devices found on linux and bsd.

--HG--
extra : convert_revision : 198b082f2e847da8471c3f22d6a55beb9f4b592e
2005-06-27 19:30:19 -04:00
Nathan Binkert
6ff9439afe Cleanup copyright stuff. Add our copyright files that
are ours

arch/alpha/alpha_linux_process.hh:
arch/alpha/alpha_tru64_process.hh:
base/loader/object_file.cc:
base/loader/object_file.hh:
sim/process.cc:
sim/process.hh:
    remove $Id$ string
cpu/ozone/cpu.cc:
cpu/ozone/cpu_impl.hh:
cpu/ozone/ea_list.cc:
cpu/ozone/ea_list.hh:
kern/linux/sched.hh:
kern/linux/thread_info.hh:
    Add M5 Copyright
cpu/trace/opt_cpu.cc:
dev/rtcreg.h:
    nit
kern/linux/aligned.hh:
kern/linux/hwrpb.hh:
util/oprofile-top.py:
util/stats/db.py:
util/stats/dbinit.py:
util/stats/display.py:
util/stats/info.py:
util/stats/print.py:
util/stats/stats.py:
    Cleanup copyright

--HG--
extra : convert_revision : 4274e9121ef7543e0b3999b31e935edb19c54d46
2005-06-05 11:02:38 -04:00
Steve Reinhardt
ad8b9636f8 Many files:
Update copyright dates and author list

SConscript:
arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_linux_process.hh:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/alpha_tru64_process.cc:
arch/alpha/alpha_tru64_process.hh:
arch/alpha/aout_machdep.h:
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
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/pseudo_inst.cc:
arch/alpha/pseudo_inst.hh:
arch/alpha/vptr.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/crc.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/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/intmath.hh:
base/match.cc:
base/match.hh:
base/misc.cc:
base/misc.hh:
base/mod_num.hh:
base/mysql.cc:
base/mysql.hh:
base/output.cc:
base/output.hh:
base/pollevent.cc:
base/pollevent.hh:
base/predictor.hh:
base/random.cc:
base/random.hh:
base/range.cc:
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/socket.cc:
base/socket.hh:
base/statistics.cc:
base/statistics.hh:
base/compression/lzss_compression.cc:
base/compression/lzss_compression.hh:
base/compression/null_compression.hh:
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:
base/loader/symtab.cc:
base/loader/symtab.hh:
base/stats/events.cc:
base/stats/events.hh:
base/stats/flags.hh:
base/stats/mysql.cc:
base/stats/mysql.hh:
base/stats/mysql_run.hh:
base/stats/output.hh:
base/stats/statdb.cc:
base/stats/statdb.hh:
base/stats/text.cc:
base/stats/text.hh:
base/stats/types.hh:
base/stats/visit.cc:
base/stats/visit.hh:
base/str.cc:
base/str.hh:
base/time.cc:
base/time.hh:
base/timebuf.hh:
base/trace.cc:
base/trace.hh:
base/userinfo.cc:
base/userinfo.hh:
build/SConstruct:
cpu/base.cc:
cpu/base.hh:
cpu/base_dyn_inst.cc:
cpu/base_dyn_inst.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/exetrace.cc:
cpu/exetrace.hh:
cpu/inst_seq.hh:
cpu/intr_control.cc:
cpu/intr_control.hh:
cpu/memtest/memtest.cc:
cpu/pc_event.cc:
cpu/pc_event.hh:
cpu/smt.hh:
cpu/static_inst.cc:
cpu/static_inst.hh:
cpu/memtest/memtest.hh:
cpu/o3/sat_counter.cc:
cpu/o3/sat_counter.hh:
cpu/ozone/cpu.hh:
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
cpu/trace/opt_cpu.cc:
cpu/trace/opt_cpu.hh:
cpu/trace/reader/ibm_reader.cc:
cpu/trace/reader/ibm_reader.hh:
cpu/trace/reader/itx_reader.cc:
cpu/trace/reader/itx_reader.hh:
cpu/trace/reader/m5_reader.cc:
cpu/trace/reader/m5_reader.hh:
cpu/trace/reader/mem_trace_reader.cc:
cpu/trace/reader/mem_trace_reader.hh:
cpu/trace/trace_cpu.cc:
cpu/trace/trace_cpu.hh:
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/baddev.cc:
dev/baddev.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.cc:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/ide_ctrl.cc:
dev/ide_ctrl.hh:
dev/ide_disk.cc:
dev/ide_disk.hh:
dev/io_device.cc:
dev/io_device.hh:
dev/ns_gige.cc:
dev/ns_gige.hh:
dev/ns_gige_reg.h:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
dev/pcireg.h:
dev/pktfifo.cc:
dev/pktfifo.hh:
dev/platform.cc:
dev/platform.hh:
dev/simconsole.cc:
dev/simconsole.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
dev/sinic.cc:
dev/sinic.hh:
dev/sinicreg.hh:
dev/tsunami.cc:
dev/tsunami.hh:
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
dev/tsunamireg.h:
dev/uart.cc:
dev/uart.hh:
dev/uart8250.cc:
dev/uart8250.hh:
docs/stl.hh:
encumbered/cpu/full/op_class.hh:
kern/kernel_stats.cc:
kern/kernel_stats.hh:
kern/linux/linux.hh:
kern/linux/linux_syscalls.cc:
kern/linux/linux_syscalls.hh:
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
kern/linux/linux_threadinfo.hh:
kern/linux/printk.cc:
kern/linux/printk.hh:
kern/system_events.cc:
kern/system_events.hh:
kern/tru64/dump_mbuf.cc:
kern/tru64/dump_mbuf.hh:
kern/tru64/mbuf.hh:
kern/tru64/printf.cc:
kern/tru64/printf.hh:
kern/tru64/tru64.hh:
kern/tru64/tru64_events.cc:
kern/tru64/tru64_events.hh:
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
kern/tru64/tru64_system.cc:
kern/tru64/tru64_system.hh:
python/SConscript:
python/m5/__init__.py:
python/m5/config.py:
python/m5/convert.py:
python/m5/multidict.py:
python/m5/smartdict.py:
sim/async.hh:
sim/builder.cc:
sim/builder.hh:
sim/debug.cc:
sim/debug.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/host.hh:
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/process.cc:
sim/process.hh:
sim/root.cc:
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/startup.cc:
sim/startup.hh:
sim/stat_control.cc:
sim/stat_control.hh:
sim/stats.hh:
sim/syscall_emul.cc:
sim/syscall_emul.hh:
sim/system.cc:
sim/system.hh:
test/bitvectest.cc:
test/circletest.cc:
test/cprintftest.cc:
test/genini.py:
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:
test/tracetest.cc:
util/ccdrv/devtime.c:
util/m5/m5.c:
util/oprofile-top.py:
util/rundiff:
util/m5/m5op.h:
util/m5/m5op.s:
util/stats/db.py:
util/stats/dbinit.py:
util/stats/display.py:
util/stats/info.py:
util/stats/print.py:
util/stats/stats.py:
util/tap/tap.cc:
    Update copyright dates and author list

--HG--
extra : convert_revision : 0faba08fc0fc0146f1efb7f61e4b043c020ff9e4
2005-06-05 05:16:00 -04:00
Steve Reinhardt
18115a4d67 Many files:
Remove RCS Id string

arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_memory.cc:
arch/alpha/alpha_memory.hh:
arch/alpha/alpha_tru64_process.cc:
arch/alpha/aout_machdep.h:
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
arch/alpha/ecoff_machdep.h:
arch/isa_parser.py:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/faults.cc:
arch/alpha/faults.hh:
arch/alpha/isa_traits.hh:
arch/alpha/osfpal.cc:
arch/alpha/osfpal.hh:
arch/alpha/pseudo_inst.cc:
arch/alpha/pseudo_inst.hh:
arch/alpha/vptr.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/crc.cc:
base/crc.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/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/intmath.hh:
base/kgdb.h:
base/match.cc:
base/match.hh:
base/misc.cc:
base/misc.hh:
base/mod_num.hh:
base/mysql.cc:
base/mysql.hh:
base/output.cc:
base/output.hh:
base/pollevent.cc:
base/pollevent.hh:
base/predictor.hh:
base/random.cc:
base/random.hh:
base/range.cc:
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/socket.cc:
base/socket.hh:
base/statistics.cc:
base/statistics.hh:
base/compression/lzss_compression.cc:
base/compression/lzss_compression.hh:
base/compression/null_compression.hh:
base/loader/aout_object.cc:
base/loader/aout_object.hh:
base/loader/coff_sym.h:
base/loader/coff_symconst.h:
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/symtab.cc:
base/loader/symtab.hh:
base/stats/events.cc:
base/stats/events.hh:
base/stats/flags.hh:
base/stats/mysql.cc:
base/stats/mysql.hh:
base/stats/mysql_run.hh:
base/stats/output.hh:
base/stats/statdb.cc:
base/stats/statdb.hh:
base/stats/text.cc:
base/stats/text.hh:
base/stats/types.hh:
base/stats/visit.cc:
base/stats/visit.hh:
base/str.cc:
base/str.hh:
base/time.cc:
base/time.hh:
base/timebuf.hh:
base/trace.cc:
base/trace.hh:
base/traceflags.py:
base/userinfo.cc:
base/userinfo.hh:
cpu/base.cc:
cpu/base.hh:
cpu/base_dyn_inst.cc:
cpu/base_dyn_inst.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/exetrace.cc:
cpu/exetrace.hh:
cpu/inst_seq.hh:
cpu/intr_control.cc:
cpu/intr_control.hh:
cpu/pc_event.cc:
cpu/pc_event.hh:
cpu/memtest/memtest.cc:
cpu/memtest/memtest.hh:
cpu/o3/2bit_local_pred.cc:
cpu/o3/2bit_local_pred.hh:
cpu/o3/alpha_cpu.cc:
cpu/o3/alpha_cpu.hh:
cpu/o3/alpha_cpu_builder.cc:
cpu/o3/alpha_dyn_inst.cc:
cpu/o3/alpha_dyn_inst.hh:
cpu/o3/alpha_dyn_inst_impl.hh:
cpu/o3/alpha_impl.hh:
cpu/o3/alpha_params.hh:
cpu/o3/bpred_unit.cc:
cpu/o3/bpred_unit.hh:
cpu/o3/bpred_unit_impl.hh:
cpu/o3/btb.cc:
cpu/o3/btb.hh:
cpu/o3/comm.hh:
cpu/o3/commit.cc:
cpu/o3/commit.hh:
cpu/o3/commit_impl.hh:
cpu/o3/cpu.cc:
cpu/o3/cpu.hh:
cpu/o3/cpu_policy.hh:
cpu/o3/decode.cc:
cpu/o3/decode.hh:
cpu/o3/decode_impl.hh:
cpu/o3/fetch.cc:
cpu/o3/fetch.hh:
cpu/o3/fetch_impl.hh:
cpu/o3/free_list.cc:
cpu/o3/free_list.hh:
cpu/o3/iew.cc:
cpu/o3/iew.hh:
cpu/o3/iew_impl.hh:
cpu/o3/inst_queue.cc:
cpu/o3/inst_queue.hh:
cpu/o3/inst_queue_impl.hh:
cpu/o3/mem_dep_unit.cc:
cpu/o3/mem_dep_unit.hh:
cpu/o3/mem_dep_unit_impl.hh:
cpu/o3/ras.cc:
cpu/o3/ras.hh:
cpu/o3/regfile.hh:
cpu/o3/rename.cc:
cpu/o3/rename.hh:
cpu/o3/rename_impl.hh:
cpu/o3/rename_map.cc:
cpu/o3/rename_map.hh:
cpu/o3/rob.hh:
cpu/o3/rob_impl.hh:
cpu/o3/sat_counter.cc:
cpu/o3/sat_counter.hh:
cpu/o3/store_set.cc:
cpu/o3/store_set.hh:
cpu/o3/tournament_pred.cc:
cpu/o3/tournament_pred.hh:
cpu/ozone/cpu.hh:
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
cpu/smt.hh:
cpu/static_inst.cc:
cpu/static_inst.hh:
cpu/trace/opt_cpu.hh:
cpu/trace/reader/ibm_reader.cc:
cpu/trace/reader/ibm_reader.hh:
cpu/trace/reader/itx_reader.cc:
cpu/trace/reader/itx_reader.hh:
cpu/trace/reader/m5_reader.cc:
cpu/trace/reader/m5_reader.hh:
cpu/trace/reader/mem_trace_reader.cc:
cpu/trace/reader/mem_trace_reader.hh:
cpu/trace/trace_cpu.cc:
cpu/trace/trace_cpu.hh:
dev/alpha_access.h:
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/baddev.cc:
dev/baddev.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.cc:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/ide_ctrl.cc:
dev/ide_ctrl.hh:
dev/ide_disk.cc:
dev/ide_disk.hh:
dev/io_device.cc:
dev/io_device.hh:
dev/ns_gige.cc:
dev/ns_gige.hh:
dev/ns_gige_reg.h:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
dev/pcireg.h:
dev/pktfifo.cc:
dev/pktfifo.hh:
dev/platform.cc:
dev/platform.hh:
dev/simconsole.cc:
dev/simconsole.hh:
dev/simple_disk.cc:
dev/simple_disk.hh:
dev/sinic.cc:
dev/sinic.hh:
dev/sinicreg.hh:
dev/tsunami.cc:
dev/tsunami.hh:
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
dev/uart.cc:
dev/uart.hh:
dev/uart8250.cc:
dev/uart8250.hh:
docs/stl.hh:
encumbered/cpu/full/op_class.hh:
kern/kernel_stats.cc:
kern/kernel_stats.hh:
kern/linux/linux.hh:
kern/system_events.cc:
kern/system_events.hh:
kern/linux/linux_syscalls.cc:
kern/linux/linux_syscalls.hh:
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
kern/linux/printk.cc:
kern/linux/printk.hh:
kern/tru64/dump_mbuf.cc:
kern/tru64/dump_mbuf.hh:
kern/tru64/mbuf.hh:
kern/tru64/printf.cc:
kern/tru64/printf.hh:
kern/tru64/tru64.hh:
kern/tru64/tru64_events.cc:
kern/tru64/tru64_events.hh:
kern/tru64/tru64_syscalls.cc:
kern/tru64/tru64_syscalls.hh:
kern/tru64/tru64_system.cc:
kern/tru64/tru64_system.hh:
sim/async.hh:
sim/builder.cc:
sim/builder.hh:
sim/debug.cc:
sim/debug.hh:
sim/eventq.cc:
sim/eventq.hh:
sim/host.hh:
sim/main.cc:
sim/param.cc:
sim/param.hh:
sim/root.cc:
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/startup.cc:
sim/startup.hh:
sim/stat_control.cc:
sim/stat_control.hh:
sim/stats.hh:
sim/syscall_emul.cc:
sim/syscall_emul.hh:
sim/system.cc:
sim/system.hh:
test/Makefile:
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:
test/tracetest.cc:
util/m5/m5.c:
util/m5/m5op.h:
util/m5/m5op.s:
util/tap/Makefile:
util/tap/tap.cc:
util/term/Makefile:
util/term/term.c:
    Remove RCS Id string

--HG--
extra : convert_revision : fc5b0a6ee2a213785bd58c51ce82eb2f769d6b88
2005-06-05 04:21:22 -04:00
Ali Saidi
5070f27c69 added copyright
kern/linux/sched.hh:
kern/linux/thread_info.hh:
    got rid of everything but exactly what we needed
util/categories.py:
    newest version from one of my repositories

--HG--
extra : convert_revision : c4328e5938d421d60493c0da07022bfa9e92c404
2005-06-05 04:08:05 -04:00
Lisa Hsu
3c78df09ea just make a minor commenting change reflecting the new way to set up command line arguments.
--HG--
extra : convert_revision : 95cbda86d1a2cab431269bf8d4501ef2b3a40885
2005-06-05 02:38:39 -04:00
Steve Reinhardt
609cacc3da Get rid of vestiges of .mpy file handling.
--HG--
extra : convert_revision : 309b051be3473e2d42d3200c1af84227d01b5900
2005-06-04 18:41:43 -04:00
Nathan Binkert
c82562c740 full_system isn't a useful parameter anymore, get rid of it.
python/m5/objects/Root.mpy:
sim/universe.cc:
util/stats/stats.py:
    full_system isn't a useful parameter

--HG--
extra : convert_revision : 557091be1faa3cf121c55102aba4e6f4c1bd45ef
2005-04-06 16:58:40 -04:00
Ron Dreslinski
59f43580bc Update so that statistics can be plotted correctly
util/stats/stats.py:
    Changed some stuff for graphing purposes:
    full_cpu is now full0
    frequencies are now s,m,f,q not s,6,8,q
    L2 is now l2
    etherdev is now etherdev0

    May want to consider fact that NAT box should be the sum of etherdev0 and etherdev1 (not in script yet)

--HG--
extra : convert_revision : 39a7d0bcf1b9354a77c12de5981e8277408ba791
2005-03-24 15:52:30 -05:00
Nathan Binkert
c5b63bc4c1 Improvements to send.py to allow the user to specify the jobfile
util/pbs/send.py:
    Allow the user to specify the jobfile

--HG--
extra : convert_revision : 0e21d2b03355bb7e8938c828bbaa441dc51afd1a
2005-03-24 12:25:34 -05:00
Ali Saidi
a8182f74df update profile code to use shared categories file
util/stats/stats.py:
    add database command to help

--HG--
extra : convert_revision : 5d77e9d3e142f884d08d34b730c385c41c6bcafb
2005-03-23 15:55:09 -05:00
Nathan Binkert
c2014cb5ad get rid of issequence and just use the isinstance builtin
--HG--
extra : convert_revision : eca99aa35ad5c5c1c86325f55cf693ff585c9826
2005-03-15 13:22:47 -05:00
Steve Reinhardt
de540a4aee Fix tracediff to work with new parameter and output directory structure.
util/tracediff:
    Fix to work with new parameter and output directory structure.

--HG--
extra : convert_revision : 421ed14fa02df7c9e95eb93f4d36b9ff046f1e39
2005-03-09 00:22:42 -05:00
Nathan Binkert
2b89c38172 Make it easier to find a jobfile.
util/pbs/jobfile.py:
    Search for the jobfile in sys.path

--HG--
extra : convert_revision : 50d2c2c13b6b9de4f6bc4e833961e309a98b0d2b
2005-03-07 13:05:41 -05:00
Ali Saidi
2e4bb0fc0c Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/z/saidi/work/m5
--HG--
extra : convert_revision : c807a78d9c3f3be51763dab9685aa4b7361c585c
2005-02-14 20:47:23 -05:00
Ali Saidi
f4e2f0ea33 undoing change per nates request
--HG--
extra : convert_revision : c5c2fd88dfd8d893da51c2b80907260ec14a7593
2005-02-14 20:47:05 -05:00
Nathan Binkert
5e9bc06457 Make it so we append jobs to the joblist in the for loop not
outside of the loop so we get all of the jobs, not just the
last one.

util/pbs/send.py:
    fix indent

--HG--
extra : convert_revision : eee9546b4945ff949fdfdf339fc95a23603b47d3
2005-02-14 20:22:27 -05:00
Ali Saidi
b1ab7b53c3 output dir changes to python files
util/pbs/job.py:
    pass output dir to m5 directly

--HG--
extra : convert_revision : 00d1568bb2da3b3e646fc75b4884314bf4cb2d71
2005-02-14 18:54:38 -05:00
Nathan Binkert
200246d1ca Some cosmetic changes to MyPOpen
util/pbs/pbs.py:
    More tweaks that I forgot

--HG--
extra : convert_revision : 7298f91b80bc7d8d946be93fc622e5f9f6e155f9
2005-02-10 00:02:51 -05:00
Nathan Binkert
8efd7d9063 More fixes to the pbs stuff to make it more robust.
sim/pyconfig/SConscript:
    Embed the jobfile.py script into the binary so that we don't
    need to copy it into the Base directory every time.
test/genini.py:
    Add the util/pbs directory to the path so we can get to
    jobfile.py
    Add a -I argument to set to add to the path.
util/pbs/pbs.py:
    Create a MyPOpen class.  This is a lot like the popen2.Popen3 class
    in the python library except that my version allows redirection of
    standard in and standard out to a file instead of a pipe.
    Use this popen class to execute qsub or ssh qsub.  This was important
    for the ssh version of qsub because we need to pipe the script into
    standard in of ssh so that the script can get to the qsub command.
    (Otherwise we have a problem discovering the path.)
util/pbs/send.py:
    Tweak the script so it figures out paths in NFS correctly.
    Use the new system for running qsub.

--HG--
extra : convert_revision : 1289915ba99cec6fd464b71215c32d2197ff2824
2005-02-09 23:55:21 -05:00
Nathan Binkert
7fed053beb More fixes for running from anywhere.
util/pbs/send.py:
    always access the job directory via full path

--HG--
extra : convert_revision : 1792aadb39428e7c91953ac58f6da212b7f92835
2005-02-09 18:12:39 -05:00
Nathan Binkert
061f40df08 Fixes to thes pbs send script
util/pbs/send.py:
    - add a -d to set the job root directory allowing one to run
    send.py from anywhere.
    - specify full paths to files instead of relative paths to make -d
    work and to allow ssh qsub to work again.
    - make the Link directory only copy links that point to regular files.

--HG--
extra : convert_revision : dd330cee08b97c5d72c3d58ef123f83ac7ccede7
2005-02-09 16:20:53 -05:00
Nathan Binkert
fc64ab8102 Make pbs submission scripts available to all.
Fix up configuration scrupts to have better support for
running on the simulation pool.

--HG--
extra : convert_revision : 0178c8600b193d6c0ca69163fb735a7fa0e70782
2005-02-05 13:49:17 -05:00
Steve Reinhardt
6dd5509490 Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/z/stever/bk/m5

--HG--
extra : convert_revision : aea0708fa6684e3203c03f17e8ae6ae87e893f04
2005-02-03 20:50:07 -05:00
Steve Reinhardt
06bee6397d Minor bug fix/update to tracediff util.
util/tracediff:
    Fix bug (used += instead of .= for string concatenation in Perl...
    wrong language!).

    Also updated for new config (s/Universe/root/).

--HG--
extra : convert_revision : 0db3f22794037dc51cc29f78a75bd22012a8ecd9
2005-02-03 20:49:14 -05:00
Nathan Binkert
52403a5ddf get rid of defined and just access the env dict directly
get rid of the alias for true to True and false to False to keep
consistent python syntax.

util/stats/info.py:
    Fix typo

--HG--
extra : convert_revision : e69588a8de52424e043315e70008ca3a3ede7d5b
2005-02-03 17:04:54 -05:00
Ali Saidi
886f905785 added total bytes/bandwidth/packets formulas to nics
cleaned up stability code and wrote some better help for stats.py
fixed sample bug in info.py

dev/ns_gige.cc:
dev/ns_gige.hh:
dev/sinic.cc:
dev/sinic.hh:
    add total bandwidth/packets/bytes stats
util/stats/info.py:
    fixed samples bug
util/stats/stats.py:
    cleaned up stability code and wrote a bit better help

--HG--
extra : convert_revision : cae06f4fac744d7a51ee0909f21f03509151ea8f
2005-01-19 18:40:02 -05:00
Ali Saidi
cd56e4e08e Ability to check formulas
--HG--
extra : convert_revision : 68a2a19cceb4a8cf8a2798ee5c019d25c0fca3cc
2005-01-18 17:55:35 -05:00
Ali Saidi
cbbbc9c57d now really done with stability stats stuff
--HG--
extra : convert_revision : 9bdbcec972f5d06e3ecd99c418fcccfaef7f6f3a
2005-01-18 13:34:58 -05:00
Ali Saidi
24bfd5ef01 finished stability stats option
--HG--
extra : convert_revision : 3ad0a143f79b116c5b18321846653d627429882a
2005-01-18 13:25:55 -05:00
Ali Saidi
dfecc89150 added stats code to check stability
util/stats/db.py:
    added working listticks (for printing) and retticks(for using in python) code
util/stats/stats.py:
    added stability function that checks if all samples are within 10% of mean.

--HG--
extra : convert_revision : 7eb1714db75e456f248fe7cae73db1c57642947d
2005-01-14 17:50:36 -05:00
Ali Saidi
3e5a3df24f automerged had issues with the options.XXXXX in stats.py
--HG--
extra : convert_revision : 44db6642c1fb46eb515acd5a6d8465859a40891a
2005-01-14 00:05:49 -05:00
Ali Saidi
21c6dd80d7 fix a display bug
add option to limit results to a set of ticks
fix ticks code to work

util/stats/info.py:
    change samples -> ticks and pass all parameters
util/stats/stats.py:
    add option to select a set of ticks and fix display bug

--HG--
extra : convert_revision : eca80a8c6bb75cf82bf1624f3d0170690b2928af
2005-01-13 23:59:39 -05:00
Nathan Binkert
0f0c80ad8c More graph output junk
util/stats/stats.py:
    Add the graphing output for 6GHz and 8GHz runs

--HG--
extra : convert_revision : fae3763c213e4b839735761bf91fa37e1b4f343c
2005-01-12 13:44:47 -05:00
Nathan Binkert
ed7926664f Update for newer MySQLdb
util/stats/db.py:
    Update for newer MySQLdb, the result of a blob in a query is an
    array.array now, so we need to convert that to a string

--HG--
extra : convert_revision : 32732983d3d7141755085ec4913fdae057edc67f
2005-01-12 13:41:06 -05:00
Nathan Binkert
ab10712341 stats python fixes for dealing with vectors better. graph tweaking
ipkb stat and formulas from the command line.

util/stats/info.py:
    no need to raise an attribute error if two values aren't found
    in the exact same set of runs.  Would be good to check that each
    run is the same though.
util/stats/stats.py:
    more graph tweaking
    command to execute a formula from the command line.
    add interrupts per kilobyte of data

--HG--
extra : convert_revision : 78d6b14d340d08edcbc69e4c1c5a4c1dd9bb10dd
2004-11-18 16:23:29 -05:00
Nathan Binkert
ee962a6b0b Fix some commands.
util/stats/stats.py:
    we only need the system if we're issuing one of the commands that
    uses a stored formula.

--HG--
extra : convert_revision : d129a00eeba46a03f7d600922d679aa0f43636be
2004-11-17 00:03:59 -05:00
Nathan Binkert
10e88b43fd Fix more of the stats python stuff
util/stats/info.py:
    Make the binnings stuff work again.
util/stats/stats.py:
    small patch for graphing
    make it so we can print out bins for the stat command

--HG--
extra : convert_revision : c0279ac7030fd5146dd00801baa41e7baf97d1f4
2004-11-15 01:36:27 -05:00
Nathan Binkert
9d80d88a71 update graph generating code
util/stats/stats.py:
    tweak the graphing stuff for the new configurations we have.
    add more graph types.
    nsgige -> etherdev
    deal with memory hierarchy change by using L2 instead of L3

--HG--
extra : convert_revision : 55362e79d9f8d0d68aa08129f5af944b378a9f4c
2004-11-14 17:22:33 -05:00
Steve Reinhardt
40c665dd7b Major documentation update for 570 F04.
sim/main.cc:
    Get rid of default.ini processing... it's kind of a pain and nobody uses it.
util/tracediff:
    Add comments on usage.

--HG--
extra : convert_revision : b811288b2945585d60685684ea88c99d1913fbf3
2004-10-27 22:37:52 -04:00
Nathan Binkert
a40715c98d fix the options stuff
util/stats/stats.py:
    get the options from the options struct now
    gratuitously change the output directory for graphs.

--HG--
extra : convert_revision : 468f34bdc2c8b5fc3a393eaa4da4ec288e35c8c7
2004-09-10 14:34:23 -04:00
Ali Saidi
7a1f4969ca added nate's memtest code to devtime
util/ccdrv/devtime.c:
    incorperated nate's changes for memory testing.

--HG--
extra : convert_revision : 6c479dd6b9a79659bb4cfd3e03b794909b14db3b
2004-08-18 23:12:16 -04:00
Nathan Binkert
2771abb6ed Totally re-do/reorganize the python part of the statistics code
Make the database creation/removal/cleanup code use python
Make formulas work with the database
Add support to do some graphing, but needs more work
Still need to work on vectors, 2d vectors, dists and vectordists

--HG--
extra : convert_revision : 1a88320dcc036a3751e8a036770766dce76a568c
2004-08-09 21:20:52 -04:00
Steve Reinhardt
d7dfe51fae Integrate Python configuration script parsing into m5 itself.
SConscript:
    Add pyconfig/{pyconfig,code}.cc
    Add list of object description (.od) files.
    Include pyconfig/SConscript.
base/inifile.cc:
    Get rid of CPP_PIPE... it never really worked anyway.
base/inifile.hh:
    Make load(ifstream&) method public so pyconfig
    code can call it.
sim/main.cc:
    Handle Python config scripts (end in '.py' instead of '.ini').
sim/pyconfig/m5configbase.py:
    Add license.
    Fix minor __setattr__ problem (2.3 related?)

--HG--
rename : util/config/m5configbase.py => sim/pyconfig/m5configbase.py
extra : convert_revision : 5e004922f950bfdefced333285584b80ad7ffb83
2004-08-05 02:03:47 -07:00
Nathan Binkert
195768d476 put the formatting fixes back into devtime
util/ccdrv/devtime.c:
    put the formatting fixes back.  no tabs.

--HG--
extra : convert_revision : 541e91294ee5383f3b321dd084876ae7c353cce9
2004-07-12 23:01:53 -04:00
Ali Saidi
c2e5caf360 modified devtime to print out raw data
--HG--
extra : convert_revision : 5ad673d6f684acaffeb61db794f7e2ac099ba99d
2004-07-12 22:51:20 -04:00
Nathan Binkert
ef16b46484 formatting
--HG--
extra : convert_revision : cbd0c148a50643191372fdba2f771d7e145f1bff
2004-07-12 22:33:27 -04:00
Ali Saidi
fe3a86e2ef updated to work on all platforms (actually map sure that the physical
address we are trying to access is mapped before accessing it.)

--HG--
extra : convert_revision : 104341334a3d2bb812a6b0b6277ab353f8f9b39e
2004-07-05 16:49:56 -04:00
Ali Saidi
3512904c74 Added code to read any location in memory a repetative number of and
average the results.

It works on alpha but I haven't got it working on x86 I think for
lack of knowing a good address to read.

--HG--
extra : convert_revision : e2442de641741674d692245712aa92e258cf6d48
2004-07-05 15:49:42 -04:00
Steve Reinhardt
1c782ad134 Minor restructuring of Python config code, mostly to avoid walking
the source tree for *.odesc files every time we run the script.
This is now factored out into load_odesc.py, which should be used
to generate m5odescs.py, which is then used as the source of object
& parameter definitions.

util/config/m5configbase.py:
    - Move odesc loading code to separate load_odescs.py, so maybe someday
    that can be done once at build time.
    - Print out children of a node in the order they are added.
    - Automatically assign a parent-less node to the first node for which it
    is used as the value of a parameter.  (Easier demonstrated than explained.)
    - Calculate object paths dynamically when requested rather than trying
    to keep them up to date as objects get assigned to parents.

--HG--
rename : util/config/m5config.py => util/config/m5configbase.py
extra : convert_revision : 2183a09d32f3862ab377e0a929715f30505a03cb
2004-06-09 20:46:29 -07:00
Steve Reinhardt
d66ae60f6b Very minor fixes.
util/tracediff:
    stats:file option is now stats:text_file

--HG--
extra : convert_revision : 74b6294da0003345e84bc1533d536dab271b6033
2004-05-08 23:32:30 -07:00
Steve Reinhardt
d85b26d65a Minor enhancements to Python config stuff:
- Add support for assigning NULL to SimObject pointers.  In Python,
this is a special value, distinct from None.
- Initial, incomplete pass at regenerating C++ parameter code (declarations
and INIT_PARAM macros) from .odesc files.

util/config/m5config.py:
    - Add support for assigning NULL to SimObject pointers.  In Python,
    this is a special value, distinct from None.
    - Initial, incomplete pass at regenerating C++ parameter code (declarations
    and INIT_PARAM macros) from .odesc files.

--HG--
extra : convert_revision : d7ae8f32e30b3c0829fd1a60589dd998e2e0d0d7
2004-04-28 16:28:37 -07:00
Steve Reinhardt
d4069233eb Beta version of Python configuration tool. Generates .ini files from
Python script description.

arch/alpha/alpha_memory.cc:
dev/io_device.cc:
    Add DEFINE_SIM_OBJECT_CLASS_NAME for intermediate SimObjects.
test/paramtest.cc:
    Fix stupid spelling.

--HG--
extra : convert_revision : dc020208cb6507c1afb1ed771a7218daba678e09
2004-04-06 10:02:00 -07:00
Nathan Binkert
97c11561ff Don't indent namespaces because it just wastes space
--HG--
extra : convert_revision : 2236838a40bf77689a3d75df718c0da410c3fbb6
2004-03-24 10:25:18 -05:00
Steve Reinhardt
f9c91277f3 Quote args properly in tracediff.
util/tracediff:
    Quote simulator args so args with spaces get handled correctly.

--HG--
extra : convert_revision : b48677bc712be17e6e50ca35680e757ba9364692
2004-02-23 08:07:32 -08: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
d0feece6e0 Minor enhancements to rundiff.
util/rundiff:
    Dump buffered lines on loss of sync so we see where things went wrong.
    Also return proper exit code from checkmatch() function.

--HG--
extra : convert_revision : cd88064ee784a50b675bf3fededbb3901c3c266c
2003-12-15 20:58:18 -08:00
Steve Reinhardt
7651e19cd1 Minor enhancements to rundiff script.
util/rundiff:
    Make sure Algorithm::Diff is loaded only if you need it
    (so it's ok if you don't have it installed).
    Add command-line options for things you might want to change:
    - diff algorithm
    - # of context lines
    - # of lines of lookahead

--HG--
extra : convert_revision : b3ba02e1816eee286f47eb28ab578fa4734bac3a
2003-11-09 20:36:54 -08:00
Erik Hallnor
aead4c315b Various fixes to memory code.
cpu/memtest/memtest.cc:
    Disable probes until the work in all cases
util/rundiff:
    Comment out Algorithm::Diff since its not needed.

--HG--
extra : convert_revision : 40e76ae8926650986a170a0ba6ef331519aceb19
2003-11-06 18:39:26 -05:00
Nathan Binkert
03ef1a0c09 If a filter isn't specified, don't try to do any filtering
If pcap_lookupnet fails, just assume the netmask is 0xffffff00
that's all we really wanted from it anyway.

--HG--
extra : convert_revision : ac0a390ddb7a6b0a4e4c6d2885bfa7bd059faf36
2003-11-02 02:13:04 -05:00
Nathan Binkert
1cd3757db9 add several new functions that can be called from the guest
to tell the simulator to do something.
exit -> exit_old (deprecated
exit now takes an optional parameter that tells it to execute at a
specified time in the future

The next four functions have two optional parameters.  The first
specifies a delay for how long to wait to issue the instruction.
The second will tell the simulator to repeat that command
at the specified interval.

checkpoint will trigger a checkpoint
dumpstats will cause the simulator to dump stats
resetstats will cause all stats to be reset
dumpreset will dump and reset stats


all times are in nanoseconds

util/m5/Makefile:
    Clean up to make it a bit easier to muck with
util/m5/m5.c:
    Add a bunch of new commands and clean up the command parsing path
    Convert atoi to strtoul so that we can use 64bit numbers and even
    hex if we want to.  (this runs on alpha, so a long is 64bit)
util/m5/m5op.h:
    add prototypes for new m5 instructions
    use uint64_t since it's nicer

--HG--
extra : convert_revision : 664ff00f0f0dfc5263c4e873d82fd9996a4521e9
2003-11-02 01:08:59 -05:00
Nathan Binkert
c4dd30662b Licenses
--HG--
extra : convert_revision : ce47fdfaa5c59480a1fb38d86eed7d16ab7b5fc1
2003-11-01 14:11:29 -05:00
Nathan Binkert
15613161c2 Commit a command for use inside a simulated system for communicating
with the simulator.  This program is generally compiled as the name
m5 and installed in /usr/local/bin

This command uses opcodes that are invalid on a normal system, so
don't expect it to do anything on a real system.

--HG--
extra : convert_revision : fcbae99d4b0d38ff4a9950f1ab53923baa1f667a
2003-11-01 13:20:44 -05:00
Steve Reinhardt
217ad63b4d New tracediff script for invoking rundiff on two copies of the simulator.
--HG--
extra : convert_revision : a399fd95fe57a3f9247a2675c363e6d3cc953a7e
2003-10-30 07:01:46 -08:00
Nathan Binkert
91293e02d2 Make the tap work work again
util/tap/Makefile:
    Make this stuff compile again
util/tap/tap.cc:
    clean up some of the error messages

--HG--
extra : convert_revision : 4543d946b48c9e07bf19b812db6466f80ed6b851
2003-10-26 22:40:03 -05:00
Steve Reinhardt
a08271f955 New rundiff script.
util/rundiff:
    Completely rewritten from scratch.  Can work standalone (with simple built-in
    diff algorithm) or use Algorithm::Diff package for better (but slower) diffs.

--HG--
extra : convert_revision : bb66d937e92bfd1904bd259589bacb5eff404c02
2003-10-25 20:49:08 -07:00
Steve Reinhardt
789a2de6f8 Check in a first stab at a script to sort the #include lines in a source file.
Nate thought this would be cool, and I started on it, but lost interest.
I'm mostly committing this so bk stops bugging me about it.  Nate, don't start
hacking on this until after the ISCA deadline!

--HG--
extra : convert_revision : e0ecc54b118ee99d254e9707b1bba11d4078d7e0
2003-10-19 17:42:51 -07: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
Steve Reinhardt
7646a5a1e0 Add m5 emacs style file.
--HG--
extra : convert_revision : bccc866984c98d974c1745f125293d781d6d0b1e
2003-10-13 08:04:38 -07: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 Raasch
782f18218c fixing CVS permissions oops
--HG--
extra : convert_revision : 96e2cff5eb6bd5e915f4e8d71f577f1106fa9c0f
2003-10-07 11:51:47 -04: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