History log of /gem5/util/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
13780:9a730759a97f 18-Mar-2019 Ryan Gambord <gambordr@oregonstate.edu>

util: Build m5 with -no-pie flag


Added -no-pie flag to link /util/m5 to support newer versions of GCC
that enable PIE by default. Tested for backwards compatibility with GCC
4.3, which, only warns for the unrecognized flag.

Change-Id: I4b6df593936346b9d3e2fe29a5d85dde78b7cc5e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17429
Reviewed-by: Gabe Black <gabeblack@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13776:ed8701a0d4e1 16-Mar-2019 Ryan Gambord <gambordr@oregonstate.edu>

util: changed shebang on gem5img.py to python2.7

Change-Id: Id1a2112ce940bf6721609e2637d925d35e5ded8a
Signed-off-by: Ryan Gambord <gambordr@oregonstate.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17408
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13759:9941fca869a9 16-Oct-2018 Giacomo Gabrielli <giacomo.gabrielli@arm.com>

arch-arm,cpu: Add initial support for Arm SVE

This changeset adds initial support for the Arm Scalable Vector Extension
(SVE) by implementing:
- support for most data-processing instructions (no loads/stores yet);
- basic system-level support.

Additional authors:
- Javier Setoain <javier.setoain@arm.com>
- Gabor Dozsa <gabor.dozsa@arm.com>
- Giacomo Travaglini <giacomo.travaglini@arm.com>

Thanks to Pau Cabre for his contribution of bugfixes.

Change-Id: I1808b5ff55b401777eeb9b99c9a1129e0d527709
Signed-off-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/13515
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>


/gem5/src/arch/arm/ArmISA.py
/gem5/src/arch/arm/ArmSystem.py
/gem5/src/arch/arm/SConscript
/gem5/src/arch/arm/decoder.cc
/gem5/src/arch/arm/decoder.hh
/gem5/src/arch/arm/insts/static_inst.cc
/gem5/src/arch/arm/insts/static_inst.hh
/gem5/src/arch/arm/insts/sve.cc
/gem5/src/arch/arm/insts/sve.hh
/gem5/src/arch/arm/isa.cc
/gem5/src/arch/arm/isa.hh
/gem5/src/arch/arm/isa/formats/aarch64.isa
/gem5/src/arch/arm/isa/formats/formats.isa
/gem5/src/arch/arm/isa/formats/sve_2nd_level.isa
/gem5/src/arch/arm/isa/formats/sve_top_level.isa
/gem5/src/arch/arm/isa/includes.isa
/gem5/src/arch/arm/isa/insts/fp64.isa
/gem5/src/arch/arm/isa/insts/insts.isa
/gem5/src/arch/arm/isa/insts/ldr64.isa
/gem5/src/arch/arm/isa/insts/mem.isa
/gem5/src/arch/arm/isa/insts/neon64.isa
/gem5/src/arch/arm/isa/insts/neon64_mem.isa
/gem5/src/arch/arm/isa/insts/sve.isa
/gem5/src/arch/arm/isa/operands.isa
/gem5/src/arch/arm/isa/templates/sve.isa
/gem5/src/arch/arm/isa/templates/templates.isa
/gem5/src/arch/arm/miscregs.cc
/gem5/src/arch/arm/miscregs.hh
/gem5/src/arch/arm/miscregs_types.hh
/gem5/src/arch/arm/nativetrace.cc
/gem5/src/arch/arm/process.cc
/gem5/src/arch/arm/registers.hh
/gem5/src/arch/arm/system.cc
/gem5/src/arch/arm/system.hh
/gem5/src/arch/arm/types.hh
/gem5/src/arch/arm/utility.cc
/gem5/src/arch/arm/utility.hh
/gem5/src/arch/generic/vec_reg.hh
/gem5/src/cpu/FuncUnit.py
/gem5/src/cpu/exetrace.cc
/gem5/src/cpu/minor/MinorCPU.py
/gem5/src/cpu/o3/FUPool.py
/gem5/src/cpu/o3/FuncUnitConfig.py
/gem5/src/cpu/op_class.hh
/gem5/src/cpu/simple_thread.cc
cpt_upgraders/arm-sve.py
13744:c375fb19c372 01-Mar-2019 Gabe Black <gabeblack@google.com>

util, tlm: Fix a memory error in the SCMasterPort class.

In the b_transport method of the SCMasterPort class, there is a check
which determines whether the packet being sent to gem5 should be
deleted once the call to sendAtomic returns. This was deleting the
packet if extension was *not* nullptr.

This check should delete the packet if the extension *is* nullptr. The
reasoning is that the extension will equal nullptr if there was no
gem5 packet in an extension and a new one needed to be allocated. If
there was an extension, ie if extension is not nullptr, then that's
where the packet came from which therefore doesn't belong to us. In
that case, we need to leave it alone and let its owner clean it up.

With the check reversed, this method will either leak allocated packets
it should delete, or delete packets it shouldn't that someone else will
likely try to use later.

Change-Id: I61578d910be6e5085b9fc0ddaa82468b1ac68578
Reviewed-on: https://gem5-review.googlesource.com/c/16949
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>

13728:7e41155b588a 20-Feb-2019 Gabe Black <gabeblack@google.com>

systemc: Update the systemc example to use m5.systemc for sc_main.

Change-Id: I431d3f2c18964bac1a3f19eacfffd49cd6e50fa2
Reviewed-on: https://gem5-review.googlesource.com/c/16569
Maintainer: Gabe Black <gabeblack@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

13672:2969e4d5abf4 12-Feb-2019 Andreas Sandberg <andreas.sandberg@arm.com>

python: Replace orderdict with collections.OrderedDict

Python 2.7 and newer has support for ordered dictionaries in the
standard library. Remove this custom class.

Change-Id: I4b720405aa3c4ce8d5c0b401eefe744a85ac3a3e
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/16362
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>

13540:da30e62884ee 10-Jan-2019 Andrea Mondelli <andrea.mondelli@ucf.edu>

misc: updated shabang for python script

The default python on MacOS doesn’t have an alias to python2.
The official python version supported in gem5 is Python2.7.

This patch updates the shabang according to the version required in gem5.

Change-Id: I9533c0f7858b5b3cab0ef101be1ee5cd718105b0
Reviewed-on: https://gem5-review.googlesource.com/c/15375
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

13498:f6fb1bbfa39e 17-Dec-2018 Nikos Nikoleris <nikos.nikoleris@arm.com>

systemc: Allow specific functions to shadow the base class method

sc_in::bind and sc_core::sc_object::print shadow their respective base
class method. This change adds the necessary declarations to inform
the compiler that this is intentional.

Change-Id: I8c6bc0f05aa568630783db63d52be90f4ea4748c
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15135
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

13464:91ff528106b4 26-Nov-2018 Gabe Black <gabeblack@google.com>

util: Add the scons configuration cache to .gitignore for util/tlm.

Change-Id: Ife31e1bbf862d10bbe8e2c0fa36c8c168cfafa84
Reviewed-on: https://gem5-review.googlesource.com/c/14656
Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de>
Maintainer: Gabe Black <gabeblack@google.com>

13463:cbfe45f18909 21-Nov-2018 Gabe Black <gabeblack@google.com>

systemc: Update the gem5-within-systemc README to mention USE_SYSTEMC.

When linking with an external systemc host, the native gem5 systemc API
should be disabled to avoid linking conflicts.

Change-Id: If7f9b3718fcdbdab5ebc9ef52e746f6bf9f2fb9c
Reviewed-on: https://gem5-review.googlesource.com/c/14520
Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de>
Maintainer: Gabe Black <gabeblack@google.com>

13391:f298f7d04903 06-Nov-2018 Gabe Black <gabeblack@google.com>

systemc: Fix some paths in the tlm SCons(script|struct).

The code in util/systemc was moved into a subdirectory recently. The
scons support here referred to it, and needed to be updated.

Change-Id: Ib457d9bdafb2bba5058e6ecf99b9d33b3072c5b3
Reviewed-on: https://gem5-review.googlesource.com/c/13955
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

13373:962c151f213c 10-Oct-2018 Gabe Black <gabeblack@google.com>

util: Add some examples for using systemc code within gem5.

These examples have comments inside them that explain what they do.
There's also a README file which explains how to use the examples
generally, and at a high level what each one does.

Change-Id: I223963dc1c190289986b2ee5705910dbcad4a4c9
Reviewed-on: https://gem5-review.googlesource.com/c/13376
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

13372:28982dc45b17 10-Oct-2018 Gabe Black <gabeblack@google.com>

util: Move the existing systemc example into a subdirectory.

This example is for how to embed gem5 within systemc and make it use
the systemc event queue. This used to be the only method of using
gem5 and systemc together, but now that there are other options, it's
ambiguous to have it as the only thing in the util/systemc directory.

This change moves it into a gem5_within_systemc subdirectory which
clearly shows what type of integration that example corresponds with.

Change-Id: I426d68ccb618397d820bef492cbb1ff8ef4a979b
Reviewed-on: https://gem5-review.googlesource.com/c/13375
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

13103:ff21402d84f2 18-Sep-2018 Kevin Brodsky <kevin.brodsky@arm.com>

util: Do not use $(PWD) in Makefiles

644e8cdf5ee7 ("util: Move the m5ops.h file to a shared directory")
added include/ to the include path for m5 Makefiles, based on
$(PWD): $(PWD)/../../include.

Unfortunately, this breaks when using `make -C <path>`, as -C does
not move PWD accordingly. The fix is simply to remove $(PWD), as a
relative path is just fine here.

Change-Id: Ia046c29761363b6670e52c52a604c7e70a6a305a
Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com>
Signed-off-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/12844
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12893:3813d345cbac 05-Feb-2018 Brandon Potter <brandon.potter@amd.com>

util: add util/maint/show_changes_by_file.py tool

The script diffs an upstream branch and a feature branch to find
all files which have been changed between the branches. It then
searches for all the corresponding changesets and binds them to
the files in the output.

The tool's output resembles the following:

/path/to/file/
filename
git-hash
git-hash
filename
git-hash

/path/to/file/
filename
git-hash

Change-Id: Icd67953748f38dad984488c5445313eaa56fa202
Reviewed-on: https://gem5-review.googlesource.com/7861
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Maintainer: Brandon Potter <Brandon.Potter@amd.com>

12886:cba9b724a357 03-Aug-2017 Sean Wilson <spwilson2@wisc.edu>

tests: Add test for the m5-exit instruction.

Change-Id: I92a589b267ce659b6fbcf710043436b84fcb1c63
Signed-off-by: Sean Wilson <spwilson2@wisc.edu>
Reviewed-on: https://gem5-review.googlesource.com/4423
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>

12771:75508af5d8dc 22-May-2018 Tuan Ta <qtt2@cornell.edu>

tests,style: add RISC-V assembly tests

This patch adds a subset (rv64*) of RISC-V assembly tests. The original
riscv-test project can be found here:
https://github.com/riscv/riscv-tests. The riscv-test project is under the
BSD license (https://github.com/riscv/riscv-tests/blob/master/LICENSE)
and is maintained separately from gem5 project.

The tests have been slightly modified to work in gem5 SE mode:

(1) Removed a trap handler used in riscv-tests for bare-metal systems

(2) Instead of throwing an exception, the tests call the exit syscall
with
the exit code of
- '0' if SUCCESS
- Failed test case's number (non-zero) if FAILURE
The exit code can be captured after a simuation completes.

In addition to original RISC-V assembly tests, this patch adds several
assembly tests specifically for AMO, LR, SC and system calls. Those
tests target a multi-core system.

(1) rv64uamt: multi-threaded tests for A-extension instructions

(2) rv64samt: multi-threaded tests for clone and futex system calls

This patch also makes the style checker ignore RISC-V assembly test
directory. The assembly tests are maintained in an external project
that does not follow the gem5 coding conventions.

Please find more details in the README file included in this patch.

Change-Id: Id1015d9a2c6c7d0341fa8b81483289e5f0bfcec0
Reviewed-on: https://gem5-review.googlesource.com/6703
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>


/gem5/tests/test-progs/asmtest/src/riscv/LICENSE
/gem5/tests/test-progs/asmtest/src/riscv/Makefile
/gem5/tests/test-progs/asmtest/src/riscv/README.md
/gem5/tests/test-progs/asmtest/src/riscv/env/LICENSE
/gem5/tests/test-progs/asmtest/src/riscv/env/encoding.h
/gem5/tests/test-progs/asmtest/src/riscv/env/p/link.ld
/gem5/tests/test-progs/asmtest/src/riscv/env/p/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/pm/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/ps/link.ld
/gem5/tests/test-progs/asmtest/src/riscv/env/ps/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/pt/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/v/entry.S
/gem5/tests/test-progs/asmtest/src/riscv/env/v/riscv_test.h
/gem5/tests/test-progs/asmtest/src/riscv/env/v/string.c
/gem5/tests/test-progs/asmtest/src/riscv/env/v/vm.c
/gem5/tests/test-progs/asmtest/src/riscv/isa/.gitignore
/gem5/tests/test-progs/asmtest/src/riscv/isa/macros/mt/test_macros_mt.h
/gem5/tests/test-progs/asmtest/src/riscv/isa/macros/mt/test_macros_mt_ecall.h
/gem5/tests/test-progs/asmtest/src/riscv/isa/macros/scalar/test_macros.h
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/access.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/breakpoint.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/csr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/illegal.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/ma_addr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/ma_fetch.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/mcsr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/sbreak.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64mi/scall.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysclone_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysfutex1_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysfutex2_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysfutex3_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64samt/sysfutex_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/csr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/dirty.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/ma_fetch.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/sbreak.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/scall.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64si/wfi.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoadd_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoadd_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoand_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoand_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomax_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomax_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomaxu_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomaxu_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomin_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amomin_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amominu_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amominu_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoor_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoor_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoswap_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoswap_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoxor_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/amoxor_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/lrsc.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ua/test.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoadd_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoand_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amomax_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amomaxu_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amomin_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amominu_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoor_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoswap_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/amoxor_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uamt/lrsc_d.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uc/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uc/rvc.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fadd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fclass.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fcmp.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fcvt.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fcvt_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fdiv.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fmadd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/fmin.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/ldst.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/move.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/recoding.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ud/structural.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fadd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fclass.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fcmp.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fcvt.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fcvt_w.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fdiv.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fmadd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/fmin.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/ldst.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/move.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64uf/recoding.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/add.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/addi.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/addiw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/addw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/and.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/andi.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/auipc.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/beq.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/bge.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/bgeu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/blt.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/bltu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/bne.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/fence_i.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/jal.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/jalr.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lb.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lbu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/ld.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lh.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lhu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lui.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/lwu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/or.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/ori.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sb.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sd.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sh.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/simple.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sll.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/slli.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/slliw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sllw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/slt.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/slti.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sltiu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sltu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sra.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srai.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sraiw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sraw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srl.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srli.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srliw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/srlw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sub.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/subw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/sw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/test.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/xor.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64ui/xori.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/Makefrag
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/div.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/divu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/divuw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/divw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mul.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mulh.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mulhsu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mulhu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/mulw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/rem.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/remu.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/remuw.S
/gem5/tests/test-progs/asmtest/src/riscv/isa/rv64um/remw.S
/gem5/tests/test-progs/asmtest/src/riscv/run-tests.py
style/style.py
12749:223c83ed9979 04-Jun-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

misc: Using smart pointers for memory Requests

This patch is changing the underlying type for RequestPtr from Request*
to shared_ptr<Request>. Having memory requests being managed by smart
pointers will simplify the code; it will also prevent memory leakage and
dangling pointers.

Change-Id: I7749af38a11ac8eb4d53d8df1252951e0890fde3
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/10996
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>


/gem5/ext/sst/ExtMaster.cc
/gem5/ext/sst/ExtSlave.cc
/gem5/src/arch/alpha/locked_mem.hh
/gem5/src/arch/alpha/tlb.cc
/gem5/src/arch/alpha/tlb.hh
/gem5/src/arch/arm/isa.cc
/gem5/src/arch/arm/locked_mem.hh
/gem5/src/arch/arm/stage2_lookup.cc
/gem5/src/arch/arm/stage2_lookup.hh
/gem5/src/arch/arm/stage2_mmu.cc
/gem5/src/arch/arm/stage2_mmu.hh
/gem5/src/arch/arm/table_walker.cc
/gem5/src/arch/arm/table_walker.hh
/gem5/src/arch/arm/tlb.cc
/gem5/src/arch/arm/tlb.hh
/gem5/src/arch/arm/tracers/tarmac_parser.cc
/gem5/src/arch/arm/tracers/tarmac_parser.hh
/gem5/src/arch/arm/vtophys.cc
/gem5/src/arch/generic/locked_mem.hh
/gem5/src/arch/generic/tlb.cc
/gem5/src/arch/generic/tlb.hh
/gem5/src/arch/hsail/insts/mem.hh
/gem5/src/arch/mips/locked_mem.hh
/gem5/src/arch/mips/tlb.cc
/gem5/src/arch/mips/tlb.hh
/gem5/src/arch/power/tlb.cc
/gem5/src/arch/power/tlb.hh
/gem5/src/arch/riscv/locked_mem.hh
/gem5/src/arch/riscv/tlb.cc
/gem5/src/arch/riscv/tlb.hh
/gem5/src/arch/sparc/tlb.cc
/gem5/src/arch/sparc/tlb.hh
/gem5/src/arch/x86/intmessage.hh
/gem5/src/arch/x86/pagetable_walker.cc
/gem5/src/arch/x86/pagetable_walker.hh
/gem5/src/arch/x86/tlb.cc
/gem5/src/arch/x86/tlb.hh
/gem5/src/cpu/base.cc
/gem5/src/cpu/base_dyn_inst.hh
/gem5/src/cpu/base_dyn_inst_impl.hh
/gem5/src/cpu/checker/cpu.cc
/gem5/src/cpu/checker/cpu.hh
/gem5/src/cpu/checker/cpu_impl.hh
/gem5/src/cpu/kvm/base.cc
/gem5/src/cpu/kvm/x86_cpu.cc
/gem5/src/cpu/minor/fetch1.cc
/gem5/src/cpu/minor/fetch1.hh
/gem5/src/cpu/minor/lsq.cc
/gem5/src/cpu/minor/lsq.hh
/gem5/src/cpu/o3/cpu.hh
/gem5/src/cpu/o3/fetch.hh
/gem5/src/cpu/o3/fetch_impl.hh
/gem5/src/cpu/o3/lsq.hh
/gem5/src/cpu/o3/lsq_impl.hh
/gem5/src/cpu/o3/lsq_unit.hh
/gem5/src/cpu/o3/lsq_unit_impl.hh
/gem5/src/cpu/simple/atomic.cc
/gem5/src/cpu/simple/atomic.hh
/gem5/src/cpu/simple/base.cc
/gem5/src/cpu/simple/base.hh
/gem5/src/cpu/simple/timing.cc
/gem5/src/cpu/simple/timing.hh
/gem5/src/cpu/testers/directedtest/InvalidateGenerator.cc
/gem5/src/cpu/testers/directedtest/RubyDirectedTester.cc
/gem5/src/cpu/testers/directedtest/SeriesRequestGenerator.cc
/gem5/src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc
/gem5/src/cpu/testers/memtest/memtest.cc
/gem5/src/cpu/testers/rubytest/Check.cc
/gem5/src/cpu/testers/rubytest/RubyTester.cc
/gem5/src/cpu/testers/traffic_gen/base_gen.cc
/gem5/src/cpu/testers/traffic_gen/traffic_gen.cc
/gem5/src/cpu/trace/trace_cpu.cc
/gem5/src/cpu/translation.hh
/gem5/src/dev/dma_device.cc
/gem5/src/dev/x86/i82094aa.cc
/gem5/src/gpu-compute/compute_unit.cc
/gem5/src/gpu-compute/fetch_unit.cc
/gem5/src/gpu-compute/gpu_tlb.cc
/gem5/src/gpu-compute/gpu_tlb.hh
/gem5/src/gpu-compute/shader.cc
/gem5/src/gpu-compute/shader.hh
/gem5/src/learning_gem5/part2/simple_cache.cc
/gem5/src/mem/abstract_mem.cc
/gem5/src/mem/abstract_mem.hh
/gem5/src/mem/cache/base.cc
/gem5/src/mem/cache/blk.hh
/gem5/src/mem/cache/cache.cc
/gem5/src/mem/cache/mshr.cc
/gem5/src/mem/cache/noncoherent_cache.cc
/gem5/src/mem/cache/prefetch/queued.cc
/gem5/src/mem/packet.hh
/gem5/src/mem/page_table.cc
/gem5/src/mem/page_table.hh
/gem5/src/mem/port.cc
/gem5/src/mem/port_proxy.cc
/gem5/src/mem/request.hh
/gem5/src/mem/ruby/slicc_interface/AbstractController.cc
/gem5/src/mem/ruby/system/CacheRecorder.cc
/gem5/src/mem/ruby/system/GPUCoalescer.cc
/gem5/src/mem/ruby/system/GPUCoalescer.hh
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/ruby/system/Sequencer.cc
tlm/src/sc_master_port.cc
12643:359e0eff17a3 27-Mar-2018 Pau Cabre <pau.cabre@metempsy.com>

util,arch-arm: Update gen_arm_fs_files.py to use new kernel repos

Now it is using the kernels on https://gem5.googlesource.com/arm

Change-Id: I765f2b8ee48cfd7175e5b17a65db3bf612570c68
Signed-off-by: Pau Cabre <pau.cabre@metempsy.com>
Reviewed-on: https://gem5-review.googlesource.com/9481
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12464:a02f2484c710 09-Dec-2017 Hanhwi Jang <jang.hanhwi@gmail.com>

util: Implement Lua module for m5ops.

This module allows m5ops to be executed in Lua programs.
To compile it (in util/m5):
The following command generates Lua moduel, gem5OpLua.so.

make -f Makefile.<arch> gem5OpLua.so

To use it:
First, put gem5OpLua.so in Lua library search path.
Then, import the module and execute the m5op function.

Example usage, creating a checkpoint.

m5 = require("gem5OpLua")
m5.do_checkpoint(0, 0)

Change-Id: Icc18a1fb6c050afeb1cf4558fbdc724fb26a90e2
Reviewed-on: https://gem5-review.googlesource.com/6541
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12459:e1484770f671 09-Jan-2018 Hanhwi Jang <jang.hanhwi@gmail.com>

util: Implement PIC version of m5ops for X86.

Using m5ops for X86 in shared objects requires PIC for the m5ops.
Typically, the PIC version is used to make m5op interfaces to other
languages like python and lua.

Change-Id: I2463904c13ea8b839d0386d3c743d8dad1e1e6bc
Reviewed-on: https://gem5-review.googlesource.com/7261
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12447:abcca2211632 17-Jan-2018 Andreas Sandberg <andreas.sandberg@arm.com>

util: Add an option to specify paths in list_changes.py

Add an option to restrict change lists to changes that touch one or
more subdirectories in the source tree.

Change-Id: Id4e34fe300fdc3657505e2e188c727e583bcf611
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Sudhanshu Jha <sudhanshu.jha@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/7461
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>

12439:c8f064aeb43a 06-Oct-2017 Earl Ou <shunhsingou@google.com>

util/m5: add Android.mk

Add Android.mk so we can build m5 tool in Android tree.

Change-Id: I7023130bd3ce5e015b8f7c41941eafb4611da8cb
Reviewed-on: https://gem5-review.googlesource.com/7363
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>

12424:51b6cee2e203 08-Dec-2017 Hanhwi Jang <jang.hanhwi@gmail.com>

util: Add the missing wakecpu m5op in X86.

Change-Id: I74876a4638ad37308ecdb0ef68513a968fac8787
Reviewed-on: https://gem5-review.googlesource.com/6501
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>

12334:e0ab29a34764 30-Nov-2017 Gabe Black <gabeblack@google.com>

misc: Rename misc.(hh|cc) to logging.(hh|cc)

These files aren't a collection of miscellaneous stuff, they're the
definition of the Logger interface, and a few utility macros for
calling into that interface (panic, warn, etc.).

Change-Id: I84267ac3f45896a83c0ef027f8f19c5e9a5667d1
Reviewed-on: https://gem5-review.googlesource.com/6226
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Maintainer: Gabe Black <gabeblack@google.com>


/gem5/ext/sst/gem5.cc
/gem5/src/arch/alpha/isa.cc
/gem5/src/arch/alpha/locked_mem.hh
/gem5/src/arch/alpha/mt.hh
/gem5/src/arch/alpha/process.cc
/gem5/src/arch/alpha/pseudo_inst.hh
/gem5/src/arch/alpha/utility.hh
/gem5/src/arch/arm/faults.hh
/gem5/src/arch/arm/isa_device.cc
/gem5/src/arch/arm/miscregs.cc
/gem5/src/arch/arm/process.cc
/gem5/src/arch/arm/pseudo_inst.hh
/gem5/src/arch/arm/types.hh
/gem5/src/arch/arm/utility.hh
/gem5/src/arch/generic/debugfaults.hh
/gem5/src/arch/generic/pseudo_inst.cc
/gem5/src/arch/generic/tlb.hh
/gem5/src/arch/generic/vec_reg.hh
/gem5/src/arch/hsail/gpu_isa.hh
/gem5/src/arch/mips/decoder.hh
/gem5/src/arch/mips/dsp.cc
/gem5/src/arch/mips/dsp.hh
/gem5/src/arch/mips/interrupts.hh
/gem5/src/arch/mips/locked_mem.hh
/gem5/src/arch/mips/mt.hh
/gem5/src/arch/mips/pagetable.hh
/gem5/src/arch/mips/process.cc
/gem5/src/arch/mips/pseudo_inst.hh
/gem5/src/arch/mips/registers.hh
/gem5/src/arch/mips/utility.cc
/gem5/src/arch/mips/utility.hh
/gem5/src/arch/power/interrupts.hh
/gem5/src/arch/power/isa.hh
/gem5/src/arch/power/process.cc
/gem5/src/arch/power/pseudo_inst.hh
/gem5/src/arch/power/utility.cc
/gem5/src/arch/riscv/decoder.hh
/gem5/src/arch/riscv/interrupts.hh
/gem5/src/arch/riscv/isa.hh
/gem5/src/arch/riscv/locked_mem.hh
/gem5/src/arch/riscv/pagetable.hh
/gem5/src/arch/riscv/process.cc
/gem5/src/arch/riscv/pseudo_inst.hh
/gem5/src/arch/sparc/isa/includes.isa
/gem5/src/arch/sparc/mt.hh
/gem5/src/arch/sparc/pagetable.hh
/gem5/src/arch/sparc/process.cc
/gem5/src/arch/sparc/pseudo_inst.hh
/gem5/src/arch/sparc/tlb.hh
/gem5/src/arch/sparc/utility.hh
/gem5/src/arch/x86/bios/intelmp.cc
/gem5/src/arch/x86/decoder.cc
/gem5/src/arch/x86/decoder.hh
/gem5/src/arch/x86/emulenv.cc
/gem5/src/arch/x86/faults.hh
/gem5/src/arch/x86/isa/includes.isa
/gem5/src/arch/x86/process.cc
/gem5/src/arch/x86/regs/int.hh
/gem5/src/base/SConscript
/gem5/src/base/addr_range.hh
/gem5/src/base/bigint.hh
/gem5/src/base/bmpwriter.cc
/gem5/src/base/circlebuf.hh
/gem5/src/base/debug.cc
/gem5/src/base/hostinfo.cc
/gem5/src/base/imgwriter.cc
/gem5/src/base/intmath.hh
/gem5/src/base/loader/ecoff_object.cc
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/loader/object_file.hh
/gem5/src/base/loader/symtab.cc
/gem5/src/base/logging.cc
/gem5/src/base/logging.hh
/gem5/src/base/misc.cc
/gem5/src/base/misc.hh
/gem5/src/base/output.cc
/gem5/src/base/pngwriter.cc
/gem5/src/base/pollevent.cc
/gem5/src/base/random.cc
/gem5/src/base/socket.cc
/gem5/src/base/statistics.cc
/gem5/src/base/stats/text.cc
/gem5/src/base/time.cc
/gem5/src/base/trace.cc
/gem5/src/base/trie.hh
/gem5/src/base/vnc/vncinput.cc
/gem5/src/base/vnc/vncserver.cc
/gem5/src/cpu/base.cc
/gem5/src/cpu/func_unit.cc
/gem5/src/cpu/intr_control.hh
/gem5/src/cpu/kvm/device.cc
/gem5/src/cpu/kvm/perfevent.cc
/gem5/src/cpu/kvm/timer.cc
/gem5/src/cpu/minor/buffers.hh
/gem5/src/cpu/o3/free_list.hh
/gem5/src/cpu/o3/store_set.cc
/gem5/src/cpu/pc_event.hh
/gem5/src/cpu/pred/2bit_local.cc
/gem5/src/cpu/pred/btb.hh
/gem5/src/cpu/pred/ltage.cc
/gem5/src/cpu/pred/sat_counter.hh
/gem5/src/cpu/simple/base.cc
/gem5/src/cpu/static_inst.hh
/gem5/src/cpu/testers/garnet_synthetic_traffic/GarnetSyntheticTraffic.cc
/gem5/src/cpu/testers/rubytest/RubyTester.cc
/gem5/src/cpu/thread_context.cc
/gem5/src/dev/intel_8254_timer.cc
/gem5/src/dev/mc146818.hh
/gem5/src/dev/net/dist_iface.hh
/gem5/src/dev/net/etherbus.cc
/gem5/src/dev/net/etherdump.cc
/gem5/src/dev/net/etherint.cc
/gem5/src/dev/net/etherpkt.cc
/gem5/src/dev/net/ethertap.cc
/gem5/src/dev/net/pktfifo.cc
/gem5/src/dev/net/pktfifo.hh
/gem5/src/dev/pci/device.cc
/gem5/src/dev/platform.cc
/gem5/src/dev/ps2.cc
/gem5/src/dev/serial/serial.cc
/gem5/src/dev/serial/terminal.cc
/gem5/src/dev/storage/disk_image.cc
/gem5/src/dev/storage/simple_disk.cc
/gem5/src/gpu-compute/brig_object.cc
/gem5/src/gpu-compute/gpu_tlb.hh
/gem5/src/gpu-compute/hsa_object.cc
/gem5/src/gpu-compute/misc.hh
/gem5/src/gpu-compute/of_scheduling_policy.hh
/gem5/src/gpu-compute/rr_scheduling_policy.hh
/gem5/src/gpu-compute/simple_pool_manager.cc
/gem5/src/gpu-compute/tlb_coalescer.hh
/gem5/src/gpu-compute/vector_register_file.cc
/gem5/src/gpu-compute/wavefront.hh
/gem5/src/kern/operatingsystem.cc
/gem5/src/mem/cache/base.hh
/gem5/src/mem/cache/cache.cc
/gem5/src/mem/cache/cache.hh
/gem5/src/mem/cache/mshr.cc
/gem5/src/mem/cache/tags/fa_lru.cc
/gem5/src/mem/cache/write_queue_entry.cc
/gem5/src/mem/coherent_xbar.cc
/gem5/src/mem/dramsim2_wrapper.cc
/gem5/src/mem/mem_checker.hh
/gem5/src/mem/noncoherent_xbar.cc
/gem5/src/mem/packet.cc
/gem5/src/mem/packet.hh
/gem5/src/mem/request.hh
/gem5/src/mem/ruby/common/Set.hh
/gem5/src/mem/ruby/network/MessageBuffer.cc
/gem5/src/mem/ruby/network/Network.cc
/gem5/src/mem/ruby/network/fault_model/FaultModel.cc
/gem5/src/mem/ruby/slicc_interface/AbstractCacheEntry.hh
/gem5/src/mem/ruby/structures/AbstractReplacementPolicy.cc
/gem5/src/mem/ruby/system/GPUCoalescer.cc
/gem5/src/mem/ruby/system/Sequencer.cc
/gem5/src/mem/ruby/system/VIPERCoalescer.cc
/gem5/src/mem/slicc/symbols/StateMachine.py
/gem5/src/mem/slicc/symbols/Type.py
/gem5/src/mem/snoop_filter.cc
/gem5/src/mem/xbar.cc
/gem5/src/proto/protoio.cc
/gem5/src/python/pybind11/core.cc
/gem5/src/python/pybind11/event.cc
/gem5/src/sim/clocked_object.cc
/gem5/src/sim/drain.cc
/gem5/src/sim/dvfs_handler.cc
/gem5/src/sim/eventq.cc
/gem5/src/sim/faults.cc
/gem5/src/sim/fd_array.cc
/gem5/src/sim/init.cc
/gem5/src/sim/init_signals.cc
/gem5/src/sim/mathexpr.cc
/gem5/src/sim/microcode_rom.cc
/gem5/src/sim/root.cc
/gem5/src/sim/serialize.cc
/gem5/src/sim/sim_object.cc
/gem5/src/sim/simulate.cc
/gem5/src/sim/syscall_emul.hh
/gem5/src/unittest/cprintftest.cc
/gem5/src/unittest/nmtest.cc
/gem5/src/unittest/stattest.cc
systemc/sc_module.cc
12269:7aa513567d8b 21-Jun-2017 Radhika Jagtap <radhika.jagtap@arm.com>

util: Add script to plot DRAM low power sweep

This change adds a script to generate graphs from the stats file
output by the configuration script low_power_sweep.py.

The graphs show stacked bars for time spent and energy consumed
wherein each component of the stacked bar represents a DRAM power
state (Idle, Refresh, Active, Active Power-down, Precharge Power-down
and Self-refresh). The script generates one plot per delay value. It
also generates a pdf (--pdf option) in which the graphs are laid out
such that you can easily compare how the increasing delay and other
swept params affect the resulting energy.

Change-Id: Id80b0947bfde27e11e5505b23a3adb30f793a43f
Reviewed-by: Wendy Elsasser <wendy.elsasser@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/5727
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12257:2fd1a9598a75 16-Oct-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Remove support for hg patches in patch creation script

Simplify the patch creation helper script by removing support for
automatic conversion to Mercurial's patch format. We no longer use
Mercurial as a primary repository, so this support is not likely to be
needed again.

Change-Id: I83f6efb9ccaee9c548b33257a4d6128153750c76
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/5162
Reviewed-by: Gabe Black <gabeblack@google.com>

12256:a100657644ee 18-Sep-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Optionally search entire history when listing changes

The helper script to list changes currently only looks at the changes
between a branch point and two heads. This helps performance, but
sometimes misclassifies changes that exist both in the upstream
branch before the branch point and in a feature branch. Such changes
should normally not exist, but can be the product of an incorrect
rebase.

This change adds an option to the helper script to search the entire
upstream repo history when determining the set of upstream
changes. When this option is provided, the script lists the changes
that exist upstream before the branch point and in the feature branch
as "Incorrectly rebased changes".

Change-Id: I4cb72cea2152c49d0317dc43613be94a0a2de1e5
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/5161

12220:0cb6ee49bde1 03-Oct-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Filter out the For-Upstream commit message tag

Some internal review flows, e.g. the flow used by ARM Research, uses
the For-Upstream tag to indicate that a change has been approved for
upstream. This tag isn't meaningful outside of the internal review
system. Remove it automatically when running the maintainer script to
prepare patches to be posted upstream.

Change-Id: Ie3745d0e8ad7a1bfddc5ec68ff3e6ff3f91ca8d8
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/5141
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12213:e0083524df0c 04-Oct-2017 Gabe Black <gabeblack@google.com>

misc: Use a Makefile to ensure util/packet_pb2.py is up to date.

Rather than just ensuring that packet_pb2.py is available in general, use a
Makefile to ensure that it's also up to date in case packet.proto has
changed.

Also, remove a check that ensures that the protobuf module is available,
since python will complain if it needs it and can't find it.

Finally, remove a comment which talks about manually regenerating the
packet_pb2.py module, something that hasn't been necessary for a while, even
with the old version of this code.

Change-Id: I40c5c1f577e6d7ad1af9a209309a1eb92f073317
Reviewed-on: https://gem5-review.googlesource.com/5005
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12212:1ae8dc8fdb97 04-Oct-2017 Gabe Black <gabeblack@google.com>

misc: When building packet_pb2.py, don't assume a particular CWD.

Allow the script to be run from anywhere, and compute the paths relative to
where the script is. The script is assumed to be in util.

Change-Id: I8500ef959f2ff8119540c956f2b27789c96de60e
Reviewed-on: https://gem5-review.googlesource.com/5004
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12211:149c9225b7d6 04-Oct-2017 Gabe Black <gabeblack@google.com>

misc: Make decode_packet_trace.py print the new master ID fields.

Those fields are "repeated" which means they can appear zero times, which
they will in older style traces.

Change-Id: Ib6ff4aab521332cf1405549d0d6e922c51c12f32
Reviewed-on: https://gem5-review.googlesource.com/5003
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12210:4c6eb3ea3e1a 04-Oct-2017 Gabe Black <gabeblack@google.com>

misc: Small style fix in _EncodeVarint32.

Added spaces around the '|' operator.

Change-Id: I5cb82b98e7d2769605cde141f76a62a6e3c6570d
Reviewed-on: https://gem5-review.googlesource.com/5002
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12209:2c8d30e495ab 04-Oct-2017 Gabe Black <gabeblack@google.com>

misc: Rename the (De|En)codeVarint function _(De|En)codeVarint32.

DecodeVarint implicitly truncates its inputs to 32 bits, and that should be
obvious from its name, and so not a surprise to the caller. EncodeVarint also
has the suffix added for consistency. Both functions are only used in
protolib.py, so add a _ to make it private (in the python sense) to the
module.

Change-Id: I835295717bb51672351b963fe1227ed619836f22
Reviewed-on: https://gem5-review.googlesource.com/5001
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12208:621c3f3f80f2 04-Oct-2017 Gabe Black <gabeblack@google.com>

misc: Fix the indentation in DecodeVarint in util/protolib.py.

The DecodeVarint was, as a comment describes, lifted from
google.protobuf.internal.decoder. Unfortunately, the relative indentation of
some lines was changed, changing what scope they fell under. This changed the
behavior of the function, breaking it for multibyte and negative values.

This change restores the correct indentation and fixes the function's
behavior.

Change-Id: If645649506b0fe5a617b37a8202c9ca1c57aaf15
Reviewed-on: https://gem5-review.googlesource.com/5000
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12207:a0836f380313 28-Sep-2017 Matthias Jung <jungma@eit.uni-kl.de>

tlm: Elastic Trace Example with L2 Cache Added

The SystemC TLM examples already include an example setup for elastic
traces. However, in the provided examples the L2 cache is omitted. This
patch provides an additionall example, which also includes an L2 cache
on the gem5 side.

Change-Id: I49e9fa074b60007694abff37663f0400caf72099
Reviewed-on: https://gem5-review.googlesource.com/4900
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Christian Menard <christian.menard@tu-dresden.de>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12198:976c5b5db147 15-Sep-2017 Gabe Black <gabeblack@google.com>

misc: Make the m5 utilities writefile command accept a host path.

When the writefile command is given one command line argument, it's treated
as the name of the file in the simulation and on the host. When there are two
arguments, the first is the filename in the simulation, and the second is the
name on the host.

Change-Id: I402925a9ff89665bee9910fb18b7f8b06b8f7d35
Reviewed-on: https://gem5-review.googlesource.com/4850
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>

12183:a097b7c2d9b6 17-Aug-2017 Matthias Jung <jungma@eit.uni-kl.de>

tlm: Don't set SystemC time resolution

Some simulators already set the time resolution of SystemC. By coupling
gem5 by means of SystemC with an other tool this can lead to problems:
When the resolution is set twice the simulation will not work.
Therefore, the line is changed to an assertion that checks if the time
resolution of the SystemC simulation is set to gem5's value of 1ps.

Change-Id: I8aafab9dd593eb4697a3c7f69ce181fd9cdd05c4
Reviewed-on: https://gem5-review.googlesource.com/4520
Reviewed-by: Paul Rosenfeld <prosenfeld@micron.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12162:94167ea67e6f 01-Aug-2017 Andreas Sandberg <andreas.sandberg@arm.com>

style: Add shared gem5 headers to the style checker

Teach the style checker about common headers living in gem5/. These
should be included after any global library headers (e.g., C headers
or STL headers), but before the normal gem5 headers.

Change-Id: I322f841420e361c16314be8fa4cbd1e86d2bfa9f
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4300
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>

12161:af903f47f028 27-Jul-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Move m5op.h to the shared include directory

The header file with C declarations for m5ops is sometimes needed by
code outside of the util/m5 directory. Move this file to the shared
include directory and factor out flags to a generic asm header. Note
that applications that need to call m5ops still need to link with
libm5.a or implement their own trampolines.

Change-Id: I36a3f459ed71593e38b869dc2b1302c810f92276
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jose Marinho <jose.marinho@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4265
Reviewed-by: Gabe Black <gabeblack@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>

12160:c282cb504275 27-Jul-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util, m5: Use consistent naming for m5op C symbols

Rename m5op C symbols to be prefixed all lower case, separated by
underscore, and prefixed by m5. This avoids potential name clashes for
short names such as arm.

Change-Id: Ic42f94d8a722661ef96c151d627e31eeb2e51490
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jose Marinho <jose.marinho@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4264
Reviewed-by: Gabe Black <gabeblack@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>

12157:c27b548bad70 27-Jul-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Move the m5ops.h file to a shared directory

The header file m5ops.h contains a list of constants that should be
shared between the simulator and utilities. Move this header file to a
new top-level directory for shared files and rename constants to make
them suitable for inclusion in the main simulator.

The structure of the shared include directory is as follows:

include/gem5: Files that can be included from C code.
include/gem5/asm: Files that can be included from assembly code.
asm/generic/: Files that aren't guest ISA specific
asm/${isa}/: Files that are guest ISA specific

Change-Id: I1aa511057bcaa80cc2d566109ff26581558c4a41
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jose Marinho <jose.marinho@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/4261
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>

12123:b98591aca0a9 03-Jul-2017 Pau Cabre <pau.cabre@metempsy.com>

util,arch-arm: Added python script to generate ARM FS binaries

This python script builds the bootloaders, kernels and DTBs for the
VExpress_GEM5_V1 (aarch32/aarch64), VExpress_EMM and VExpress_EMM64
platforms (it checkouts some linux kernel repositories when needed).

This is the result of this e-mail thread in gem5-dev mailing list:
http://www.mail-archive.com/gem5-dev@gem5.org/msg22406.html

Change-Id: Ida8f9b974f7188f48be8f84f14828a1973d6d256
Signed-off-by: Pau Cabre <pau.cabre@metempsy.com>
Reviewed-on: https://gem5-review.googlesource.com/3945
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

12053:014d6270849b 01-Jun-2017 Gabe Black <gabeblack@google.com>

misc: Fix building the m5tap utility.

Use printf instead of cprintf to avoid having to have .o files from gem5.
Stop disabling optimization. Placate the style checker by rearranging the
header include order. Include some missing standard headers. Switch from
the deprecated -I- gcc option to using -iquote. Make the "program"
variable a const char *. When checking the return value of getopt, don't
check against the char c which may mask the -1 return value. Instead,
store the return value in an int, and then later cast it to a char when
it's actually consumed.

Change-Id: Ibec51927d0cdbd98db8e53081be2c4931e20333c
Reviewed-on: https://gem5-review.googlesource.com/3600
Reviewed-by: Nathan Binkert <nate@binkert.org>
Maintainer: Nathan Binkert <nate@binkert.org>

12048:a280e9bc358d 23-May-2017 Christian Menard <christian.menard@tu-dresden.de>

misc: check address range in the SystemC example

Using a wrong offset or memory size may lead to segmentation faults.
This patch adds an address range check and produces an error message.

Change-Id: I79a72c05879266daf61a83367fe4ae386d1958a4
Reviewed-on: https://gem5-review.googlesource.com/3482
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de>

12047:8b269268312c 22-May-2017 Christian Menard <christian.menard@tu-dresden.de>

misc: Reorder sources in util/tlm and rewrite build scripts

* Use one SConstruct to build everything instead of one SConstruct for
each example.
* Introduce SConscripts for sub-directories.
* Build in 'build' instead of the source tree.
* Build and link to SystemC from the ext/systemc directory. This
ensures that SystemC does not need to be installed on the host and
avoids possible issues caused by an incompatible SystemC build.
* Update the README and add some minor fixes

Change-Id: I641ed94f542626864fb7af499ad1be8fd4ad929f
Reviewed-on: https://gem5-review.googlesource.com/3480
Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12043:55cd1129e41b 23-Feb-2017 Gedare Bloom <gedare@rtems.org>

util: generate fully qualified paths for cscope

Change-Id: I318c185b117b9608110544526fbaaa3fdcdeb8bc
Signed-off-by: Gedare Bloom <gedare@rtems.org>
Reviewed-on: https://gem5-review.googlesource.com/3260
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

12023:272819f230c0 15-May-2017 Brandon Potter <brandon.potter@amd.com>

style: fix line lengths and include ordering

The style checker complains about line length and ordering for these
files. This fix should make these two files kosher.

Change-Id: I822a0518a98d9e379a543d2017e90c4e9666a58d
Reviewed-on: https://gem5-review.googlesource.com/3380
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Brandon Potter <Brandon.Potter@amd.com>

12009:3345827969f5 02-May-2017 Andreas Sandberg <andreas.sandberg@arm.com>

style: Treat PyBind headers as Python headers

Some PyBind11 headers need to include Python.h. This means that we need
to include PyBind11 headers before any standard library headers. Enforce
this by applying the Python.hh rules for anything in pybind11/.

Change-Id: Id175a4f613960a17f84f98b81bfd02806e905d5a
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/3120
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Tony Gutierrez <anthony.gutierrez@amd.com>

12007:a881be42f745 02-Dec-2016 Andreas Sandberg <andreas.sandberg@arm.com>

util, arm: Support mmapped m5ops on aarch64

Add support for memory-mapped m5ops in the aarch64 version of the m5
utility. To enable support for memory-mapped m5ops, compile the tool
with the define M5OP_ADDR set to the base of the m5op PA range.

Change-Id: I13e21e48536b9849bf4081411b66b2f350f7a8ac
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2966

12003:bbe320b2f604 26-Apr-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Correctly handle short writes in m5 (read|exec)file

The m5 tool has subcommands that writes a file to the simulated file
system. The implementation of this command currently doesn't check the
return value from write, which leads to compiler warnings and
potentially incorrect behavior. Add the necessary checks.

Change-Id: If558534d3245aa24cf15edf06bd0af4c6ba3908c
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2962
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>

12002:3f51adda9470 08-May-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Add the m5_loadsymbol pseudo op to the m5 tool

Change-Id: Ib8bf4eac77170db8b2bf44796fd9d46b02217d03
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/3122
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>

12001:a1fd8e5dc7a6 26-Apr-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Fix incorrect use of m5_loadsymbol

It seems like the m5 utility incorrectly called m5_loadsymbol instead
of m5_addsymbol. Judging by the signature of the loadsymbol command,
the expected behavior is to add a new symbol to gem5's symbol
table. This is behavior is implemented by m5_addsymbol.

Change-Id: I83b61c48d6f8d7b1e8b57d884dfca00481c83c3a
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2961
Reviewed-by: Gabe Black <gabeblack@google.com>

12000:78958c36af12 02-May-2017 Paul Rosenfeld <prosenfeld@micron.com>

misc: fix build failure in cxx_config example

Fix a missing header in the cxx_config example which is used as a
simple example of using libgem5.so without python.

Change-Id: I758bfe42ba735ce0c7eaedd49b94a130e3bd21e3
Reviewed-on: https://gem5-review.googlesource.com/3000
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Matthias Jung <jungma@eit.uni-kl.de>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

11998:a54cbbb635b9 26-Apr-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Fix incorrect return type in m5 writefile

Change-Id: Ic24a1c3c1488e970ed27bb6b99262d201f535384
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2960
Reviewed-by: Gabe Black <gabeblack@google.com>

11971:9573d7d7811a 23-Mar-2017 Éder F. Zulian <zulian@eit.uni-kl.de>

misc: minor fix for the gem5-SystemC/TLM coupling.

This patch has a minor fix for the coupling between gem5 and SystemC-TLM.

It also fixes some typos in the related documentation.

Change-Id: I894568729b8ebdacc5b81c9f46e8f9d137da210f
Reviewed-on: https://gem5-review.googlesource.com/2480
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

11941:764760d6c535 31-Jan-2017 Curtis Dunham <Curtis.Dunham@arm.com>

arm, dev: refactor GIC Pl390 GICD_ITARGETSRn handling

The aforementioned registers (Interrupt Processor Targets Registers) are
banked per-CPU, but are read-only. This patch eliminates the per-CPU
storage of these values that are simply computed.

Change-Id: I52cafc2f58e87dd54239a71326c01f4923544689
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2442
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Weiping Liao <weipingliao@google.com>

11922:0b284e4322fc 07-Mar-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Add a tool to list outgoing/incoming changes

Add a small Python script that uses Gerrit's Change-Id: tags to list
incoming and outgoing changes.

Change-Id: Iea1757b2d64a57a4c7b4e47718cfcaa725a99615
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2329
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

11835:8ab6738c5f66 14-Feb-2017 Curtis Dunham <Curtis.Dunham@arm.com>

sim: allow forward dependencies in checkpoint upgraders

The notion of forward dependencies is just expressing the same
dependency but at the other end of the dependency edge, i.e. at
the dependee rather than the depender. As there is no more
'power' here, it's strictly a convenience feature for handling
dependencies with tags that are not in the upstream repository.

Change-Id: Ic7c68de6aff4094aaa12de62cdf690a5dc65ccb5
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11834:29f0d1d70282 14-Feb-2017 Curtis Dunham <Curtis.Dunham@arm.com>

sim: add support for checkpoint downgrading

This commit supports the use case of transitioning tags and their
associated checkpoint rewrites out of use for whatever reason. Just
replace the upgrader() method with a downgrader() method that performs
the appropriate inverse operation.

The tag name is still used, but only in this negative, 'zombie' state,
as it will be removed from the tags in the checkpoint and gem5 binary.

Change-Id: If9d26cccfe8449e026762b1a72f0c2ae5a9cf2d7
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11832:4d1f9823013a 13-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [6/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* Update the README

11828:36b064696175 10-Feb-2017 Jason Lowe-Power <jason@lowepower.com>

misc: Update #!env calls for python to explicit version

In some newer Linux distributions, env python default to Python 3.0. This
patch explicitly uses "python2" instead of just "python" for all scripts
that use #!

Reported-by: Sanchayan Maity <maitysanchayan@gmail.com>
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11826:b20a1364e019 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [10/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* Add callbacks for the Gem5SimControl that are called at before and
* after simulate()

Reviewed at http://reviews.gem5.org/r/3799/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11825:2a5b4e334f7d 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [9/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* Pay for the header delay that the gem5 XBar annotates to packets.

Reviewed at http://reviews.gem5.org/r/3798/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11824:9487cdff1bc3 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [8/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* bugfix: The BEGIN_RESP also needs to be handled when END_REQ was
* skipped
and '&trans == blockingRequest && phase == tlm::BEGIN_RESP'
evaluates to true.

Reviewed at http://reviews.gem5.org/r/3797/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11823:77ab27b06d62 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [7/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* Implement 'pipe through' for gem5 Packets (see explanation below)

Basically, this patch ensures that all transactions that originated in the
gem5 world are converted back to the original packet when entering the gem5
world. So far, this only worked for packets that are responded to by a
SyctemC component (e.g. when a gem5 CPU sends a request to a SystemC
memory). By implementing the 'pipe through' this patch ensures, that
packets that are responded to by a gem5 component (e.g. when a gem5 CPU
sends a request to a gem5 memory via a SystemC interconnect) are handled
properly.

Reviewed at http://reviews.gem5.org/r/3796/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11822:9018cadf6c87 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [5/10]

Changeset 11798:3a490c57058d
---------------------------
misc: Clean up and complete the gem5<->SystemC-TLM bridge [5/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* Introduce transactor modules that represent the gem5 ports in the
* SystemC world.
* Update the SimControl module and let it keep track of the gem5 ports.

Reviewed at http://reviews.gem5.org/r/3775/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11821:39b0a51c9e76 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [4/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* Move common code of the example to a common directory. Move the cli
* parsing from the SimControl module to a separate example object. Add
* comments describing the Gem5SimControl module.

Testing Done: Examples compile and run.

Reviewed at http://reviews.gem5.org/r/3695/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11820:3de6ee321c3e 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [3/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* Simplify the Slave Port by using a simple_initiator_socket.

Testing Done: Example applications are still running.

Reviewed at http://reviews.gem5.org/r/3686/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11819:bd67524751ee 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [2/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* Add the Master Port. Add an example application that isslustrates its
* use.

Testing Done: A simple example application consisting of a TLM traffic
generator and a gem5 memory is part of the patch.

Reviewed at http://reviews.gem5.org/r/3528/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11818:f12963cb9dc2 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Clean up and complete the gem5<->SystemC-TLM bridge [1/10]

The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.

This patch:
* Restructure the existing sources in preparation of the addition of the
* new
Master Port.
* Refractor names to allow for distinction of the slave and master port.
* Replace the Makefile by a SConstruct.

Testing Done: The examples provided in util/tlm (now
util/tlm/examples/slave_port) still compile and run error free.

Reviewed at http://reviews.gem5.org/r/3527/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11816:2191b87e3b47 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: fix includes in util/systemc

This fixes compilation errors with clang on OS X.

Reviewed at http://reviews.gem5.org/r/3807/

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11814:c6a6fed4bf6c 09-Feb-2017 Christian Menard <Christian.Menard@tu-dresden.de>

misc: Implement the Base SystemC Module as an sc_channel.

Implementing the Module as an sc_channel allows derived classes to provide
SystemC interfaces. Other SystemC modules can connect to these interfaces.
This meachanism can be used to control gem5 and acces gem5 components from
within arbitrary SystemC moduels. Since sc_channel is derived from
sc_module, this patch does not break compatibility with existing code.

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11808:f254d8a17da9 07-Feb-2017 Andreas Sandberg <andreas.sandberg@arm.com>

style: Force Python.h to be included before main header

Python's header files set various compiler macros (e.g.,
_XOPEN_SOURCE) unconditionally. This triggers preprocessor warnings
that end up being treated as errors. The Python integration manual [1]
strongly recommends that Python.h is included before any system
header. The style guide used to mandate that Python.h is included
first in any file that needs it. This requirement was changed to
always include a source file's main header first, which ended up
triggering these errors.

This change updates the style checker to always include Python.h
before the main header file.

[1] https://docs.python.org/2/extending/extending.html

Change-Id: Id6a4f7fc64a336a8fd26691a0ca682abeb1d1579
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Pierre-Yves PĂ©neau <pierre-yves.peneau@lirmm.fr>

11805:8702d8dc2def 27-Jan-2017 Paul Rosenfeld <prosenfeld@micon.com>

misc: Add support for switching multiple cores in SystemC

This patch adds a '-n' flag to the gem5 SystemC driver which allows
multiple CPUs to be switched out to a new CPU. Primarily this involves
appending CPU numbers to the objects searched for in the config
manager if there are multiple CPUs in the system.

Note that an equivalent change should be made to the util/cxx_config driver,
but I wanted to get input on this first before making the same change over
there

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11792:494ab5474716 09-Jan-2017 Matthias Jung <jungma@eit.uni-kl.de>

misc: fixes deprecated sc_time function for SystemC 2.3.1

The non-standard sc_time constructors

- sc_time( uint64, bool scale )
- sc_time( double, bool scale )

have been deprecated in SystemC 2.3.1 and a warning is issued when being
used. Insted the new 'sc_time::from_value' function is used to omit the
warning message.

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11791:ac5237fa4230 09-Jan-2017 Matthias Jung <jungma@eit.uni-kl.de>

misc: Documentation Update

Updates for READMEs of /util/cxx_config, /util/systemc, /util/tlm.
Some minor corrections, mostly with respect to MAC/OSX

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11786:6639b188ac11 03-Jan-2017 Andreas Sandberg <andreas.sandberg@arm.com>

util: Add maintainer tools to create upstream patches

This changeset adds a maintainer script, create_patches.sh, that can
be used to prepare for upstream from a git repository. The script can
be used to generate patches in Mercurial or git format. The commit
messages in the exported patches are all filtered, see
upstream_msg_filter.sed, to ensure that irrelevant meta data isn't
included in the upstream commit.

Kudos to Curtis Dunham and Nikos Nikoleris for reviews and usability
enhancements for earlier versions of this patch.

Change-Id: Ia4cd089a32834b5e046ef58c0a173ca285b77bca
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>

11776:ed89cb178ecd 19-Dec-2016 Curtis Dunham <Curtis.Dunham@arm.com>

dist, dev: fix etherswitch upgrade script

The aforementioned upgrader in [1] assumes every option in [system]
has a delimiting '.', and also seems to do its rewriting work a bit too
unconditionally. Most checkpoints in the wild don't have this device,
in which case this script should be a safe no-op.

[1] 2aa4d7b dist, dev: Fixed the packet ordering in etherswitch

Change-Id: Icfd0350985109df1628eb9ab864cda42c54060a8
Reviewed-by: Gabor Dozsa <gabor.dozsa@arm.com>

11768:5b80960dcf08 19-Dec-2016 Curtis Dunham <Curtis.Dunham@arm.com>

arm: update AArch{64,32} register mappings

Change-Id: Idaaaeb3f7b1a0bdbf18d8e2d46686c78bb411317
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11730:08ab68477ea0 30-Nov-2016 Alec Roelke <ar4jc@virginia.edu>

riscv: [Patch 8/5] Added some regression tests to RISC-V

This patch is the eighth patch in a series adding RISC-V to gem5, and
third of the bonus patches to the original series of five. It adds some
regression tests to RISC-V.

Regression tests included:
- se/00.hello
- se/02.insttest (split into several binaries which are not included due
to large size)

The tests added to 00.insttest will need to be build manually; to
facilitate this, a Makefile is included. The required toolchain and
compiler (riscv64-unknown-elf-gcc) can be built from the riscv-tools
GitHub repository at https://github.com/riscv/riscv-tools.

Note that because EBREAK only makes sense when gdb is running or while in
FS mode, it is not included in the linux-rv64i insttest. ERET is not
included because it does not make sense in SE mode and, in fact, causes
a panic by design.

Note also that not every system call is tested in linux-rv64i; of the ones
defined in linux/process.hh, some have been given numbers but not
definitions for the toolchain, or are merely stubs that always return 0. Of
the ones that do work properly, only a subset are tested due to similar
functionality.

Signed-off by: Alec Roelke

Signed-off by: Jason Lowe-Power <jason@lowepower.com>

11717:27622f94fdcc 25-Nov-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Add options to select checkers and apply fixes

Add an option, --checker/-c, to style.py that selects individual style
checkers to apply. When this option isn't specified, the script
defaults to all available style checkers. The option may be specified
multiple times to run multiple style checkers.

The option, --fix/-f, can be specified to automatically fix style
violations.

Change-Id: Id7597fba6b65cecfa17a88b1c87c8a4c8315af59
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Andreas Hansson <andreas.hansson@arm.com>

11716:95a34c2188f2 25-Nov-2016 Rekai Gonzalez Alberquilla <rekai.gonzalezalberquilla@arm.com>

util: git pre-commit hook to check staged files

This patch updates the git-pre-commit hook to check the files as they
will be after the commit, instead of as they are currently, this way we
prevent the undesired situation:
- unstylish modification of a file
- stage said file for commit
- try to commit and fail due to style
- fix style, forgetting staging changes
- try to commit and fail, as although the changes staged are not
styly, the current content of the file is.

Change-Id: I5cc3f783375d9e4162e310e176103ebbf0a59023
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
[andreas.sandberg@arm.com: Rebased ontop of latest gem5]

11706:7339a92fffb5 17-Nov-2016 Andreas Hansson <andreas.hansson@arm.com>

tests, ruby: Move rubytests from ALPHA (linux) to NULL (none)

This patch avoids compiling ALPHA six times as part of running
'util/regress', and instead relis on NULL with different protocols to
run the rubytest. All we need is the memory system, so there is really
no need to compile the ISA over and over again.

The one downside is the removal of running 'hello' for the variuos
ALPHA and protocol combinations, but if this is a concern we should
rather beef up the synthetic tests for the variuos protocols.


/gem5/build_opts/NULL_MESI_Two_Level
/gem5/build_opts/NULL_MOESI_CMP_directory
/gem5/build_opts/NULL_MOESI_CMP_token
/gem5/build_opts/NULL_MOESI_hammer
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_Two_Level/config.ini
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_Two_Level/simerr
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_Two_Level/simout
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_Two_Level/stats.txt
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/config.ini
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/simerr
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/simout
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/stats.txt
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/config.ini
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/simerr
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/simout
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/stats.txt
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/config.ini
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/simerr
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/simout
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_Two_Level/config.ini
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_Two_Level/simerr
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_Two_Level/simout
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_Two_Level/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_directory/config.ini
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_directory/simerr
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_directory/simout
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_directory/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_token/config.ini
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_token/simerr
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_token/simout
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_token/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/config.ini
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/simerr
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/simout
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby/config.ini
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby/simerr
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby/simout
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MESI_Two_Level/config.ini
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MESI_Two_Level/simerr
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MESI_Two_Level/simout
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MESI_Two_Level/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_CMP_directory/config.ini
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_CMP_directory/simerr
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_CMP_directory/simout
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_CMP_directory/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_CMP_token/config.ini
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_CMP_token/simerr
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_CMP_token/simout
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_CMP_token/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_hammer/config.ini
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_hammer/simerr
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_hammer/simout
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby-MOESI_hammer/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby/config.ini
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby/simerr
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby/simout
/gem5/tests/quick/se/60.rubytest/ref/null/none/rubytest-ruby/stats.txt
regress
11703:08b78e0a3717 26-Oct-2016 Michael LeBeane <michael.lebeane@amd.com>

dev: Add m5 op to toggle synchronization for dist-gem5.
This patch adds the ability for an application to request dist-gem5 to begin/
end synchronization using an m5 op. When toggling on sync, all nodes agree
on the next sync point based on the maximum of all nodes' ticks. CPUs are
suspended until the sync point to avoid sending network messages until sync has
been enabled. Toggling off sync acts like a global execution barrier, where
all CPUs are disabled until every node reaches the toggle off point. This
avoids tricky situations such as one node hitting a toggle off followed by a
toggle on before the other nodes hit the first toggle off.

11686:4a86763c0b30 15-Oct-2016 Shawn Rosti <shawn.rosti@gmail.com>

arm: Fix for ARM's Streamline conversion script

tracked down issue with ARM's version of gem5 using the "cluster" name.
The public/github version of ARM Gem5 does not use the "cluster" naming
mechanism.

Signed-off-by: Dam Sunwoo <dam.sunwoo@arm.com>
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>

11592:92509f1b24f7 03-Aug-2016 Jason Lowe-Power <powerjg@cs.wisc.edu>

style: Make the style fixers safe

Adds a wrapper to the fix functions of the verifiers. This wrapper first
copies the original file to a backup file, then performs the fix. If an
error occurs, the backup file is used to restore the original file.

Also fixed a line-length error in verifiers.py

11590:1a70f8188580 02-Aug-2016 Curtis Dunham <Curtis.Dunham@arm.com>

arm: bank GIC registers per CPU

Updated according to GICv2 documentation.

Change-Id: I5d926d1abf665eecc43ff0f7d6e561e1ee1c390a
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11567:560d7fbbddd1 21-Jul-2016 Mitch Hayenga <mitch.hayenga@arm.com>

cpu: Add SMT support to MinorCPU

This patch adds SMT support to the MinorCPU. Currently
RoundRobin or Random thread scheduling are supported.

Change-Id: I91faf39ff881af5918cca05051829fc6261f20e3

11554:adafd259839e 01-Jul-2016 Matthias Jung <jungma@eit.uni-kl.de>

misc: SystemC Elastic Trace Player Example.

This patch adds an example configuration for elastic trace playing into the
SystemC world, similar to the already existing traffic generator example in
/util/tlm.

Committed by Jason Lowe-Power <jason@lowepower.com>

11553:602835f8dc9d 01-Jul-2016 Christian Menard <Christian.Menard@tu-dresden.de>

misc: fix a compile error due to incompability with SystemC 2.3.1

This patch fixes an ambigous call compile error

Committed by Jason Lowe-Power <jason@lowepower.com>

11550:d2e815b98287 01-Jul-2016 Abdul Mutaal Ahmad <abdul.mutaal@gmail.com>

misc: Separate stats file for SystemC-gem5 co-simulation

In previous versions of systemC-gem5 coupling statistics were not updated
for the systemc-gem5 simulation. systemC-gem5 simulation only need the
previously built config.ini file and normal gem5 simulation has to be run
once to generate config.ini file. Thus stats.txt inside the m5out folder is
redundant for systemC-gem5 simulation. A new stats file is now generated
with the all the statistics for systemC-gem5 simulation. This will also
resolve the stats issue in tlm-sysmtemC simulation.

Committed by Jason Lowe-Power <jason@lowepower.com>

11549:4e5e087419df 01-Jul-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Fix incorrect references style verifiers

The style checker for spacing around control statements (ControlSpace)
and the whitespace checker (Whitespace) didn't refer to some of their
configuration variables correctly. This changeset fixes those issues.

Reported-by: Jason Lowe-Power <power.jg@gmail.com>

11541:3d518944f0cc 20-Jun-2016 Gabor Dozsa <gabor.dozsa@arm.com>

style: catch trailing white spaces in make and dts files

Change-Id: I2a4f1893919660e51599902b972a6f3f5717e305
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11533:2aa4d7bd47ec 08-Jun-2016 Mohammad Alian <m.alian1369@gmail.com>

dist, dev: Fixed the packet ordering in etherswitch

This patch fixes the order that packets gets pushed into the output fifo
of etherswitch. If two packets arrive at the same tick to the etherswitch,
we sort and push them based on their source port id.
In dist-gem5 simulations, if there is no ordering inforced while two
packets arrive at the same tick, it can lead to non-deterministic simulations

Committed by Jason Lowe-Power <power.jg@gmail.com>

11510:b539c1a6e597 02-Jun-2016 Gabor Dozsa <gabor.dozsa@arm.com>

style: remove extra newline from white space verifier fix method

Change-Id: I7bce7d1cb04efe20d31445eb67ea5ffd2a4a41f4
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11509:d7e83588e5bc 02-Jun-2016 Gabor Dozsa <gabor.dozsa@arm.com>

style: respect per verifier ignores for git commit

Change-Id: Id00379bdb17594e627ee49c077fb75f499ea550e
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11508:46e5f3bf7f17 02-Jun-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Move the last bits of file_types.py to the style package

The commit that refactored the style checkers into a new Python
package (style: Refactor the style checker as a Python package)
accidentally left a fragment of file_types.py in the old location
(util/style.py). This was caused by a race between the commit that
moved the file and Nate's commit that added a copyright header to the
file.

This commit moves the last fragment (the copyright header) and removes
the old file.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>

11468:e7d41fcc291a 28-Apr-2016 Curtis Dunham <Curtis.Dunham@arm.com>

style: ignore test data in style checks

Change-Id: If797eaf3842b5c1604942bb60f091800ee814a2a
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11467:e2ac1018d3aa 28-Apr-2016 Curtis Dunham <Curtis.Dunham@arm.com>

style: respect ignores for git commit

Previously it ignored the ignores for git but not Mercurial.

Change-Id: I178fe879ebd268e863063eb9e30ec87e8ac8faec
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>

11466:4ab31d6afa5e 28-Apr-2016 Curtis Dunham <Curtis.Dunham@arm.com>

style: improve compatibility with old git versions

Older versions of git need the '=' to connect --diff-filter to
its argument.

Change-Id: Ic62057567db061684be88a7c2d80a6a5d4c11dcf

11465:256ddcabe5e6 28-Apr-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Don't include diff context in git style hook

The git style hook currently includes a few lines of diff context when
determining changed regions. This is undesirable as this triggers
false positives when modifying existing files with a lot of style
violations. This change sets the amount of context to 0, which is the
default value when requesting staged regions from the git helper.

Change-Id: Ibe03123e329ea0241281e104183a68d6c495b190
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nathanael Premillieu <nathanael.premillieu@arm.com>

11449:4511f239d1ba 18-Apr-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Fix Python 2.6 compatibility

The style checker code needs to disable autojunk when diffing source
files using Python's difflib. Support for this was only introduced in
Python 2.7, which leads to a TypeError exception on older Python
version. This changeset adds a fallback mechanism for old Python
versions.

11445:a89bc3bc9f1e 15-Apr-2016 Abdul Mutaal Ahmad <abdul.mutaal@gmail.com>

misc: Bugfix in TLM memInhibit Command

memInhibitAsserted() has been removed from packet.hh. This change has been
reflected in TLM based SystemC memory.
This patch also adds a number of panics asserting the SystemC memory only
sees requests it expects.

Committed by Jason Lowe-Power <power.jg@gmail.com>

11444:219c5fe8fa0e 14-Apr-2016 Mohammad Alian <m.alian1369@gmail.com>

dist: config file for distributed switch

Distributed gem5 is the result of the convergence effort between
multi-gem5 and pd-gem5. It relies on the base multi-gem5 infrastructure
for packet forwarding, synchronisation and checkpointing but combines
those with the elaborated network switch model from pd-gem5.

11437:210624864179 07-Apr-2016 Victor Garcia <victor.garcia@arm.com>

mem: Add Program Counter to MemTraceProbe

11411:2201a8c86538 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

arm: Clean up m5ops assembly library

The m5ops assembly library contains a lot of repetitive code. This
changeset adds two macros, FOREACH_M5OP and FOREACH_M5_ANNOTATION, to
m5ops.h that simplify architecture-specific implementations. The ARM
and ARMv8 m5op implementations have been updated to use the new
macros.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>

11410:e51095583654 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Change maximum line length to 79 characters

The old style guide used to mandate 78 characters as the maximum line
length to accommodate traditional diffs on 80-column terminals. This
is an uncommon use case and it has therefore been decided (see email
thread on gem5-dev [1]) that a maximum length of 79-characters makes
more sense.

[1] http://comments.gmane.org/gmane.comp.emulators.m5.devel/29789

Signed-off-by: Andreas Sandberg <aandreas.sandberg@arm.com>
Reviewed-by: Brandon Potter <brandon.potter@amd.com>

11409:72f80dd8b194 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Add a style checker that doesn't depend on Mercurial

The current style checker script, hgstyle.py, assumes that it is being
run from Mercurial. This means that it depends on the Mercurial Python
libraries, which aren't necessarily present if using git. This
changeset adds a new style checker script, style.py, that has
been designed to be run from the command line.

The script has support for detecting which revision control system is
used and is able to query both git and Mercurial for changes. This
enables the script to operate on modified regions and/or all of the
modified files in the repository.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com>

11408:cb18b6551499 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

scons: Automatically install the git style hook

Add a check in the main SConscript that installs the git pre-commit
hook in util/ if git is used.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
[andreas.sandberg@arm.com: Cleanups suggested by Steve]
Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com>

11407:e6cc41b0a03c 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Add a git pre-commit hook

Add a git pre-commit hook that verifies that files that are about to
be committed. Since git stages changes into an index and the index
contains the changes that will be committed, the style checker only
looks at the state of files in the index.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com>

11406:dd204e5baba7 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Add repository helper functions

Add an AbstractRepo class and implementations for git and Mercurial
that provide a common interface to query repository status for style
checkers. The class defines the interfaces to list modified files that
are about to be committed and methods to identify changed regions.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com>

11405:bcec568e403c 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Remove style validators

Style validators provide a subset of the style verifier functionality
and are only exposed through the "hg m5format" command. This
functionality seems to be both redundant and unused.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>

11404:72b399971cbc 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Add a control character checker

Add a style checker that verifies that source code doesn't contain
non-printable (control) characters. The only allowed control
characters are:

* 0x0a / \n: New line
* 0x09 / \t: Tab (the whitespace checker enforces no-tabs for C/C++ files)

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Brandon Potter <brandon.potter@amd.com>

11403:e8949ea6961f 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Refactor the style checker as a Python package

Refactor the style checker into a Python module that can be reused by
command line tools that integrate with git. In particular:

* Create a style package in util
* Move style validators from style.py to the style/validators.py.
* Move style verifiers from style.py to the style/verifiers.py.
* Move utility functions (sort_includes, region handling,
file_types) into the style package
* Move generic code from style.py to style/style.py.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com>

11402:ac9e1a3bed79 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Change include sorter to yield one line at a time

The include sorter class normally yields one string per line and
relies on the caller to merge lines into a block of text separated by
newlines. However, there are cases when this isn't true. This makes
diffing using Python's difflib hard. This changeset updates the
include sorter to never do this and always yield one line at a time.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com>

11401:55f9a21e34b4 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

scons, style: Rename style.py to hgstyle.py

The Mercurial style checker extensions are currently stored in
style.py. This is not ideal since they won't work with other version
control systems. This changeset renames style.py to hgstyle.py and
adds upgrade code to scons that automatically updates the hooks in
hgrc.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Nathanael Premillieu <nathananel.premillieu@arm.com>
Reviewed-by: Steve Reinhardt <steve.reinhardt@amd.com>

11400:21ce6f5d4613 30-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Remove unsupported style.py commands

Remove the unsupported style.py subcommands (fixwhite, chkwhite),
which leaves the chkformat command as the only remaining
command. Since the script now only supports one command, remove the
sub-command support altogether.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Nathanael Premillieu <nathananel.premillieu@arm.com>

11398:5f487c387e2e 29-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

copyright: Update copyright in sort_includes.py

The following changes introduced substantial changes to sort_includes.py:
- hg:84b4d6af0ecc - util: Fix state leakage in ...
- hg:e2f9644a7738 - style: Update the style checker to handle new ...

Since the file didn't include a copyright header at the time, I never
added the correct ARM copyright notice. This changeset adds the
correct copyright notice.

Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>

11397:29f3f2fe9286 29-Mar-2016 Nathan Binkert <nate@binkert.org>

copyright: add copyright missing from files I created

11396:ddfc7795d8f8 24-Mar-2016 Andreas Sandberg <andreas.sandberg@arm.com>

style: Strip newline when checking lines

The style checker incorrectly includes newlines when checking lines of
code, which effectively decreases the column limit by 1. This
changeset strips the newline character from before calling line
checkers.

Change-Id: I0a8c7707ece57d782d11cc86db4b8064db291ce0
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>

11372:a5c8f7deb099 16-Mar-2016 Gabor Dozsa <gabor.dozsa@arm.com>

misc: Fix argument handling for m5 initparam util

11368:2fd64ea0a7cb 08-Mar-2016 Andreas Hansson <andreas.hansson@arm.com>

configs: Add a lat_mem_rd style test script

This patch adds a config script that broadly replicates the behaviour
of lat_mem_rd. The test is based on traffic generators, and as such we
simply randomise addresses in increasingly large ranges, and play them
back using the trace functionality of the traffic generator.

The test script is accompanied by a post-processing and visualisation
script. At the moment no configurability is added to tweak the memory
hierarchy, but a follow on patch could easily extend the
functionality.

11358:cd41493e8b7e 29-Feb-2016 Prakash Ramrakhyani <prakash.ramrakhyani@arm.com>

util: update Java JNI interface to m5ops

Synchronize with
ab19693da "pseudo inst,util: Add optional key to initparam pseudo instruction"

11351:bfc1285c61eb 24-Feb-2016 Matteo Andreozzi <Matteo.Andreozzi@arm.com>

cpu: TraceGen fix for tick frequency check

Bug fix for check on protobuf file frequency being different than
global frequency.

The ASCII encoder script is also fixed, and the example trace used in
the regressions is updated.

11323:98e8aa1585a7 06-Feb-2016 Steve Reinhardt <steve.reinhardt@amd.com>

util: fix apparent statetrace bug

In the process of trying to eliminate boolean comparisons,
I ran across this statement that appears to be a bug
(should have been an assignment).

11322:01b16bab6675 06-Feb-2016 Steve Reinhardt <steve.reinhardt@amd.com>

util: added line length and boolean comparison style checkers

Added checkers for line length and boolean comparisons
(== true/== false) to the style script.

11321:02e930db812d 06-Feb-2016 Steve Reinhardt <steve.reinhardt@amd.com>

style: fix missing spaces in control statements

Result of running 'hg m5style --skip-all --fix-control -a'.


/gem5/src/arch/alpha/process.cc
/gem5/src/arch/arm/insts/macromem.cc
/gem5/src/arch/arm/insts/vfp.hh
/gem5/src/arch/arm/kvm/arm_cpu.cc
/gem5/src/arch/arm/linux/system.cc
/gem5/src/arch/arm/tlb.cc
/gem5/src/arch/generic/tlb.cc
/gem5/src/arch/mips/isa.cc
/gem5/src/arch/x86/bios/intelmp.cc
/gem5/src/arch/x86/cpuid.cc
/gem5/src/arch/x86/decoder.cc
/gem5/src/arch/x86/insts/microldstop.cc
/gem5/src/arch/x86/insts/microregop.cc
/gem5/src/arch/x86/insts/static_inst.cc
/gem5/src/arch/x86/insts/static_inst.hh
/gem5/src/arch/x86/nativetrace.cc
/gem5/src/arch/x86/pagetable_walker.cc
/gem5/src/arch/x86/process.cc
/gem5/src/arch/x86/types.hh
/gem5/src/base/atomicio.hh
/gem5/src/base/cp_annotate.cc
/gem5/src/base/fenv.c
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/statistics.cc
/gem5/src/cpu/base.cc
/gem5/src/cpu/kvm/perfevent.cc
/gem5/src/cpu/kvm/x86_cpu.cc
/gem5/src/cpu/minor/decode.cc
/gem5/src/cpu/nativetrace.cc
/gem5/src/cpu/nativetrace.hh
/gem5/src/cpu/o3/inst_queue_impl.hh
/gem5/src/cpu/o3/rename_impl.hh
/gem5/src/cpu/pred/bpred_unit.cc
/gem5/src/cpu/simple/atomic.cc
/gem5/src/cpu/simple/base.cc
/gem5/src/cpu/simple/timing.cc
/gem5/src/dev/alpha/tsunami_cchip.cc
/gem5/src/dev/arm/flash_device.cc
/gem5/src/dev/arm/ufs_device.cc
/gem5/src/dev/intel_8254_timer.cc
/gem5/src/dev/mips/malta_cchip.cc
/gem5/src/dev/virtio/base.cc
/gem5/src/mem/bridge.cc
/gem5/src/mem/cache/prefetch/stride.cc
/gem5/src/mem/dram_ctrl.cc
/gem5/src/mem/physical.cc
/gem5/src/mem/port.cc
/gem5/src/mem/ruby/filters/BulkBloomFilter.cc
/gem5/src/mem/ruby/filters/H3BloomFilter.cc
/gem5/src/mem/ruby/filters/MultiBitSelBloomFilter.cc
/gem5/src/mem/ruby/filters/MultiGrainBloomFilter.cc
/gem5/src/mem/ruby/filters/NonCountingBloomFilter.cc
/gem5/src/mem/ruby/network/MessageBuffer.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
/gem5/src/mem/ruby/network/simple/PerfectSwitch.cc
/gem5/src/mem/ruby/profiler/AccessTraceForAddress.cc
/gem5/src/mem/ruby/slicc_interface/AbstractController.cc
/gem5/src/mem/ruby/structures/AbstractReplacementPolicy.cc
/gem5/src/mem/ruby/structures/BankedArray.cc
/gem5/src/mem/ruby/structures/CacheMemory.cc
/gem5/src/mem/ruby/structures/PseudoLRUPolicy.cc
/gem5/src/mem/ruby/structures/RubyMemoryControl.cc
/gem5/src/mem/ruby/structures/TBETable.hh
/gem5/src/mem/ruby/system/GPUCoalescer.cc
/gem5/src/mem/ruby/system/Sequencer.cc
/gem5/src/mem/ruby/system/VIPERCoalescer.cc
/gem5/src/mem/ruby/system/WeightedLRUPolicy.cc
/gem5/src/mem/serial_link.cc
/gem5/src/mem/stack_dist_calc.cc
/gem5/src/python/swig/pyobject.cc
/gem5/src/sim/backtrace_glibc.cc
/gem5/src/sim/dvfs_handler.cc
/gem5/src/sim/serialize.hh
/gem5/src/sim/syscall_emul.hh
/gem5/tests/test-progs/gpu-hello/src/gpu-hello-kernel.cl
/gem5/tests/test-progs/gpu-hello/src/gpu-hello.cpp
/gem5/tests/test-progs/mwait/mwait.c
statetrace/arch/amd64/tracechild.cc
statetrace/arch/arm/tracechild.cc
statetrace/arch/sparc/tracechild.cc
tlm/main.cc
tlm/sc_mm.cc
tlm/sc_port.cc
tlm/sc_target.cc
11320:42ecb523c64a 06-Feb-2016 Steve Reinhardt <steve.reinhardt@amd.com>

style: remove trailing whitespace

Result of running 'hg m5style --skip-all --fix-white -a'.


/gem5/configs/common/CacheConfig.py
/gem5/configs/common/Simulation.py
/gem5/configs/example/ruby_mem_test.py
/gem5/src/arch/alpha/isa/decoder.isa
/gem5/src/arch/alpha/linux/linux.hh
/gem5/src/arch/alpha/process.cc
/gem5/src/arch/alpha/tlb.cc
/gem5/src/arch/arm/SConscript
/gem5/src/arch/arm/interrupts.cc
/gem5/src/arch/arm/isa/bitfields.isa
/gem5/src/arch/arm/isa/formats/pred.isa
/gem5/src/arch/arm/linux/linux.hh
/gem5/src/arch/arm/stacktrace.cc
/gem5/src/arch/mips/isa/decoder.isa
/gem5/src/arch/mips/linux/linux.hh
/gem5/src/arch/mips/linux/process.cc
/gem5/src/arch/mips/pagetable.hh
/gem5/src/arch/power/SConscript
/gem5/src/arch/sparc/interrupts.cc
/gem5/src/arch/sparc/linux/linux.hh
/gem5/src/arch/sparc/pagetable.hh
/gem5/src/arch/x86/cpuid.cc
/gem5/src/arch/x86/faults.cc
/gem5/src/arch/x86/insts/micromediaop.hh
/gem5/src/arch/x86/isa/insts/general_purpose/system_calls.py
/gem5/src/arch/x86/isa/insts/romutil.py
/gem5/src/arch/x86/isa/insts/simd64/integer/data_transfer/move.py
/gem5/src/arch/x86/isa/microops/base.isa
/gem5/src/arch/x86/isa/microops/mediaop.isa
/gem5/src/arch/x86/isa/microops/regop.isa
/gem5/src/arch/x86/process.cc
/gem5/src/arch/x86/process.hh
/gem5/src/base/cp_annotate.cc
/gem5/src/base/cp_annotate.hh
/gem5/src/base/cprintf.hh
/gem5/src/base/flags.hh
/gem5/src/base/inet.cc
/gem5/src/base/inet.hh
/gem5/src/base/loader/ecoff_object.cc
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/statistics.cc
/gem5/src/cpu/o3/decode_impl.hh
/gem5/src/cpu/simple/timing.cc
/gem5/src/cpu/testers/directedtest/DirectedGenerator.cc
/gem5/src/cpu/testers/directedtest/DirectedGenerator.hh
/gem5/src/cpu/testers/directedtest/InvalidateGenerator.cc
/gem5/src/cpu/testers/directedtest/InvalidateGenerator.hh
/gem5/src/cpu/testers/directedtest/RubyDirectedTester.cc
/gem5/src/cpu/testers/directedtest/SeriesRequestGenerator.cc
/gem5/src/cpu/testers/directedtest/SeriesRequestGenerator.hh
/gem5/src/cpu/testers/networktest/networktest.cc
/gem5/src/cpu/timebuf.hh
/gem5/src/dev/mc146818.cc
/gem5/src/dev/net/i8254xGBe.cc
/gem5/src/dev/net/i8254xGBe.hh
/gem5/src/dev/net/i8254xGBe_defs.hh
/gem5/src/dev/x86/i8042.cc
/gem5/src/dev/x86/i8254.hh
/gem5/src/dev/x86/intdev.hh
/gem5/src/mem/mport.hh
/gem5/src/mem/ruby/network/Topology.cc
/gem5/src/mem/ruby/network/Topology.hh
/gem5/src/mem/ruby/network/fault_model/FaultModel.cc
/gem5/src/mem/ruby/network/fault_model/FaultModel.hh
/gem5/src/mem/ruby/network/fault_model/FaultModel.py
/gem5/src/mem/ruby/network/fault_model/SConscript
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/GarnetLink_d.py
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/GarnetLink.py
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/Router.hh
/gem5/src/mem/ruby/network/simple/SimpleLink.cc
/gem5/src/mem/slicc/ast/StallAndWaitStatementAST.py
/gem5/src/mem/slicc/ast/TypeFieldEnumAST.py
/gem5/src/mem/slicc/ast/TypeFieldStateAST.py
/gem5/src/python/m5/util/__init__.py
/gem5/src/python/swig/event.i
/gem5/src/sim/Root.py
/gem5/src/sim/eventq.cc
/gem5/src/sim/eventq.hh
/gem5/src/sim/insttracer.hh
/gem5/src/sim/pseudo_inst.cc
/gem5/src/unittest/cprintftest.cc
/gem5/system/alpha/console/console.c
/gem5/tests/configs/memtest-ruby.py
checkpoint-tester.py
compile
m5/m5.c
qdo
statetrace/SConstruct
11319:7ca84595249c 06-Feb-2016 Steve Reinhardt <steve.reinhardt@amd.com>

util: clean up and extend style checker

Added a new Verifier object to check for and fix spacing
between if/while/for and following paren.

Restructured Verifier class to make it easier to add
new subclasses, particularly by using a global list of
verifiers to auto-generate command line options and
simplify the invocation loop.

11318:abd21524cc71 06-Feb-2016 Steve Reinhardt <steve.reinhardt@amd.com>

util: delete old unused style-checking scripts

The functions in these scripts were apparently folded into style.py but the
old scripts were orphaned without being deleted. Get rid of them so their
existence is no longer confusing.

11308:7d8836fd043d 19-Jan-2016 Tony Gutierrez <anthony.gutierrez@amd.com>

gpu-compute: AMD's baseline GPU model


/gem5/SConstruct
/gem5/build_opts/HSAIL_X86
/gem5/build_opts/X86_MOESI_AMD_Base
/gem5/configs/common/GPUTLBConfig.py
/gem5/configs/common/GPUTLBOptions.py
/gem5/configs/example/apu_se.py
/gem5/configs/example/ruby_gpu_random_test.py
/gem5/configs/ruby/AMD_Base_Constructor.py
/gem5/configs/ruby/GPU_RfO.py
/gem5/configs/ruby/GPU_VIPER.py
/gem5/configs/ruby/GPU_VIPER_Baseline.py
/gem5/configs/ruby/GPU_VIPER_Region.py
/gem5/configs/ruby/MOESI_AMD_Base.py
/gem5/src/SConscript
/gem5/src/arch/SConscript
/gem5/src/arch/hsail/Brig.h
/gem5/src/arch/hsail/Brig_new.hpp
/gem5/src/arch/hsail/SConscript
/gem5/src/arch/hsail/SConsopts
/gem5/src/arch/hsail/gen.py
/gem5/src/arch/hsail/generic_types.cc
/gem5/src/arch/hsail/generic_types.hh
/gem5/src/arch/hsail/gpu_decoder.hh
/gem5/src/arch/hsail/gpu_types.hh
/gem5/src/arch/hsail/insts/branch.cc
/gem5/src/arch/hsail/insts/branch.hh
/gem5/src/arch/hsail/insts/decl.hh
/gem5/src/arch/hsail/insts/gpu_static_inst.cc
/gem5/src/arch/hsail/insts/gpu_static_inst.hh
/gem5/src/arch/hsail/insts/main.cc
/gem5/src/arch/hsail/insts/mem.cc
/gem5/src/arch/hsail/insts/mem.hh
/gem5/src/arch/hsail/insts/mem_impl.hh
/gem5/src/arch/hsail/insts/pseudo_inst.cc
/gem5/src/arch/hsail/operand.cc
/gem5/src/arch/hsail/operand.hh
/gem5/src/gpu-compute/GPU.py
/gem5/src/gpu-compute/LdsState.py
/gem5/src/gpu-compute/SConscript
/gem5/src/gpu-compute/X86GPUTLB.py
/gem5/src/gpu-compute/brig_object.cc
/gem5/src/gpu-compute/brig_object.hh
/gem5/src/gpu-compute/cl_driver.cc
/gem5/src/gpu-compute/cl_driver.hh
/gem5/src/gpu-compute/cl_event.hh
/gem5/src/gpu-compute/code_enums.hh
/gem5/src/gpu-compute/compute_unit.cc
/gem5/src/gpu-compute/compute_unit.hh
/gem5/src/gpu-compute/condition_register_state.cc
/gem5/src/gpu-compute/condition_register_state.hh
/gem5/src/gpu-compute/dispatcher.cc
/gem5/src/gpu-compute/dispatcher.hh
/gem5/src/gpu-compute/exec_stage.cc
/gem5/src/gpu-compute/exec_stage.hh
/gem5/src/gpu-compute/fetch_stage.cc
/gem5/src/gpu-compute/fetch_stage.hh
/gem5/src/gpu-compute/fetch_unit.cc
/gem5/src/gpu-compute/fetch_unit.hh
/gem5/src/gpu-compute/global_memory_pipeline.cc
/gem5/src/gpu-compute/global_memory_pipeline.hh
/gem5/src/gpu-compute/gpu_dyn_inst.cc
/gem5/src/gpu-compute/gpu_dyn_inst.hh
/gem5/src/gpu-compute/gpu_exec_context.cc
/gem5/src/gpu-compute/gpu_exec_context.hh
/gem5/src/gpu-compute/gpu_static_inst.cc
/gem5/src/gpu-compute/gpu_static_inst.hh
/gem5/src/gpu-compute/gpu_tlb.cc
/gem5/src/gpu-compute/gpu_tlb.hh
/gem5/src/gpu-compute/hsa_code.hh
/gem5/src/gpu-compute/hsa_kernel_info.hh
/gem5/src/gpu-compute/hsa_object.cc
/gem5/src/gpu-compute/hsa_object.hh
/gem5/src/gpu-compute/hsail_code.cc
/gem5/src/gpu-compute/hsail_code.hh
/gem5/src/gpu-compute/kernel_cfg.cc
/gem5/src/gpu-compute/kernel_cfg.hh
/gem5/src/gpu-compute/lds_state.cc
/gem5/src/gpu-compute/lds_state.hh
/gem5/src/gpu-compute/local_memory_pipeline.cc
/gem5/src/gpu-compute/local_memory_pipeline.hh
/gem5/src/gpu-compute/misc.hh
/gem5/src/gpu-compute/ndrange.hh
/gem5/src/gpu-compute/of_scheduling_policy.cc
/gem5/src/gpu-compute/of_scheduling_policy.hh
/gem5/src/gpu-compute/pool_manager.cc
/gem5/src/gpu-compute/pool_manager.hh
/gem5/src/gpu-compute/qstruct.hh
/gem5/src/gpu-compute/rr_scheduling_policy.cc
/gem5/src/gpu-compute/rr_scheduling_policy.hh
/gem5/src/gpu-compute/schedule_stage.cc
/gem5/src/gpu-compute/schedule_stage.hh
/gem5/src/gpu-compute/scheduler.cc
/gem5/src/gpu-compute/scheduler.hh
/gem5/src/gpu-compute/scheduling_policy.hh
/gem5/src/gpu-compute/scoreboard_check_stage.cc
/gem5/src/gpu-compute/scoreboard_check_stage.hh
/gem5/src/gpu-compute/shader.cc
/gem5/src/gpu-compute/shader.hh
/gem5/src/gpu-compute/simple_pool_manager.cc
/gem5/src/gpu-compute/simple_pool_manager.hh
/gem5/src/gpu-compute/tlb_coalescer.cc
/gem5/src/gpu-compute/tlb_coalescer.hh
/gem5/src/gpu-compute/vector_register_file.cc
/gem5/src/gpu-compute/vector_register_file.hh
/gem5/src/gpu-compute/vector_register_state.cc
/gem5/src/gpu-compute/vector_register_state.hh
/gem5/src/gpu-compute/wavefront.cc
/gem5/src/gpu-compute/wavefront.hh
/gem5/src/mem/protocol/GPU_RfO-SQC.sm
/gem5/src/mem/protocol/GPU_RfO-TCC.sm
/gem5/src/mem/protocol/GPU_RfO-TCCdir.sm
/gem5/src/mem/protocol/GPU_RfO-TCP.sm
/gem5/src/mem/protocol/GPU_RfO.slicc
/gem5/src/mem/protocol/GPU_VIPER-SQC.sm
/gem5/src/mem/protocol/GPU_VIPER-TCC.sm
/gem5/src/mem/protocol/GPU_VIPER-TCP.sm
/gem5/src/mem/protocol/GPU_VIPER.slicc
/gem5/src/mem/protocol/GPU_VIPER_Baseline.slicc
/gem5/src/mem/protocol/GPU_VIPER_Region-TCC.sm
/gem5/src/mem/protocol/GPU_VIPER_Region.slicc
/gem5/src/mem/protocol/MOESI_AMD_Base-CorePair.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-L3cache.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-Region-CorePair.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-Region-dir.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-Region-msg.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-RegionBuffer.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-RegionDir.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-dir.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-msg.sm
/gem5/src/mem/protocol/MOESI_AMD_Base-probeFilter.sm
/gem5/src/mem/protocol/MOESI_AMD_Base.slicc
/gem5/src/mem/protocol/RubySlicc_ComponentMapping.sm
/gem5/src/mem/protocol/RubySlicc_Exports.sm
/gem5/src/mem/protocol/RubySlicc_Types.sm
/gem5/src/mem/protocol/SConsopts
/gem5/src/mem/ruby/SConscript
/gem5/src/mem/ruby/profiler/Profiler.cc
/gem5/src/mem/ruby/slicc_interface/AbstractCacheEntry.hh
/gem5/src/mem/ruby/slicc_interface/AbstractController.cc
/gem5/src/mem/ruby/slicc_interface/AbstractController.hh
/gem5/src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh
/gem5/src/mem/ruby/structures/CacheMemory.cc
/gem5/src/mem/ruby/structures/CacheMemory.hh
/gem5/src/mem/ruby/structures/RubyCache.py
/gem5/src/mem/ruby/system/GPUCoalescer.cc
/gem5/src/mem/ruby/system/GPUCoalescer.hh
/gem5/src/mem/ruby/system/GPUCoalescer.py
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/ruby/system/RubyPort.hh
/gem5/src/mem/ruby/system/RubySystem.cc
/gem5/src/mem/ruby/system/SConscript
/gem5/src/mem/ruby/system/Sequencer.cc
/gem5/src/mem/ruby/system/Sequencer.hh
/gem5/src/mem/ruby/system/Sequencer.py
/gem5/src/mem/ruby/system/VIPERCoalescer.cc
/gem5/src/mem/ruby/system/VIPERCoalescer.hh
/gem5/src/mem/ruby/system/VIPERCoalescer.py
/gem5/src/mem/ruby/system/WeightedLRUPolicy.cc
/gem5/src/mem/ruby/system/WeightedLRUPolicy.hh
/gem5/src/mem/ruby/system/WeightedLRUReplacementPolicy.py
/gem5/src/mem/slicc/symbols/StateMachine.py
/gem5/tests/SConscript
/gem5/tests/configs/gpu-randomtest-ruby.py
/gem5/tests/configs/gpu-ruby.py
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_RfO/config.ini
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_RfO/simerr
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_RfO/simout
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_RfO/stats.txt
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER/config.ini
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER/simerr
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER/simout
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER/stats.txt
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Baseline/config.ini
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Baseline/simerr
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Baseline/simout
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Baseline/stats.txt
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Region/config.ini
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Region/simerr
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Region/simout
/gem5/tests/quick/se/04.gpu/ref/x86/linux/gpu-ruby-GPU_VIPER_Region/stats.txt
/gem5/tests/quick/se/04.gpu/test.py
/gem5/tests/quick/se/60.gpu-randomtest/ref/x86/linux/gpu-randomtest-ruby-GPU_RfO/config.ini
/gem5/tests/quick/se/60.gpu-randomtest/ref/x86/linux/gpu-randomtest-ruby-GPU_RfO/simerr
/gem5/tests/quick/se/60.gpu-randomtest/ref/x86/linux/gpu-randomtest-ruby-GPU_RfO/simout
/gem5/tests/quick/se/60.gpu-randomtest/ref/x86/linux/gpu-randomtest-ruby-GPU_RfO/stats.txt
/gem5/tests/quick/se/60.gpu-randomtest/test.py
/gem5/tests/test-progs/gpu-hello/bin/x86/linux/gpu-hello
/gem5/tests/test-progs/gpu-hello/bin/x86/linux/gpu-hello-kernel.asm
/gem5/tests/test-progs/gpu-hello/src/gpu-hello-kernel.cl
/gem5/tests/test-progs/gpu-hello/src/gpu-hello.cpp
regress
11291:9d2364203316 07-Jan-2016 Gabor Dozsa <gabor.dozsa@arm.com>

config: Updates for distributed gem5 simulations

11290:1640dd68b0a4 07-Jan-2016 Gabor Dozsa <gabor.dozsa@arm.com>

dev: Distributed Ethernet link for distributed gem5 simulations

Distributed gem5 (abbreviated dist-gem5) is the result of the
convergence effort between multi-gem5 and pd-gem5 (from Univ. of
Wisconsin). It relies on the base multi-gem5 infrastructure for packet
forwarding, synchronisation and checkpointing but combines those with
the elaborated network switch model from pd-gem5.

11289:ab19693da8c9 07-Jan-2016 Gabor Dozsa <gabor.dozsa@arm.com>

pseudo inst,util: Add optional key to initparam pseudo instruction

The key parameter can be used to read out various config parameters from
within the simulated software.

11257:39c4dcba7131 18-Sep-2015 Karthik Sangaiah <karthik.sangaiah@arm.com>

dev, arm: Add gem5 extensions to support more than 8 cores

Previous ARM-based simulations were limited to 8 cores due to
limitations in GICv2 and earlier. This changeset adds a set of
gem5-specific extensions that enable support for up to 256 cores.

When the gem5 extensions are enabled, the GIC uses CPU IDs instead of
a CPU bitmask in the GIC's register interface. To OS can enable the
extensions by setting bit 0x200 in ICDICTR.

This changeset is based on previous work by Matt Evans.

11253:daf9f91b11e9 07-Dec-2015 Radhika Jagtap <radhika.jagtap@ARM.com>

cpu: Support virtual addr in elastic traces

This patch adds support to optionally capture the virtual address and asid
for load/store instructions in the elastic traces. If they are present in
the traces, Trace CPU will set those fields of the request during replay.

11252:18bb597fc40c 07-Dec-2015 Radhika Jagtap <radhika.jagtap@ARM.com>

cpu: Create record type enum for elastic traces

This patch replaces the booleans that specified the elastic trace record
type with an enum type. The source of change is the proto message for
elastic trace where the enum is introduced. The struct definitions in the
elastic trace probe listener as well as the Trace CPU replace the boleans
with the proto message enum.

The patch does not impact functionality, but traces are not compatible with
previous version. This is preparation for adding new types of records in
subsequent patches.

11250:3db78b2af869 07-Dec-2015 Radhika Jagtap <radhika.jagtap@ARM.com>

util: Add decode and encode scripts for elastic traces

This patch adds python scripts to parse a protobuf encoded O3CPU
elastic trace and convert it to a text file output and vice versa.

11242:8b3c0bd14c01 04-Dec-2015 Bjoern A. Zeeb <baz21@cam.ac.uk>

util: term: drop CC from Makefile

With clang there are systems without gcc being installed anymore and we should
not rely on that. This patch drops CC so that system's default compiler is
invoked.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

11241:50a9d73b12d9 04-Dec-2015 Abdul Mutaal Ahmad <abdul.mutaal@gmail.com>

util: DrainManager/Checkpoint changes in SystemC coupling

Due to changes in Drain Manager, the lastest systemc coupling doesn't work. The
code for handling Checkpoint has been modified and it is now compatiable with
new drain manager.

Testing is being done on systemC coupling. It needs more testing to verify
checkpointing feature.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

11227:2659b1903b0f 10-Sep-2015 Andrew Bardsley <Andrew.Bardsley@arm.com>

sim: Update C++ config example to match SystemC example

Update the use of the drain manager, and checkpointing to
match changes to gem5 since the example was written.

11223:2981e399c816 22-Nov-2015 Andreas Hansson <andreas.hansson@arm.com>

config: Minor fixes to the DRAM utilisation sweep

11153:20bbfe5b2b86 30-Sep-2015 Curtis Dunham <Curtis.Dunham@arm.com>

base: remove Trace::enabled flag

The DTRACE() macro tests both Trace::enabled and the specific flag. This
change uses the same administrative interface for enabling/disabling
tracing, but masks the SimpleFlags settings directly. This eliminates a
load for every DTRACE() test, e.g. DPRINTF.

11150:a8a64cca231b 30-Sep-2015 Mitch Hayenga <mitch.hayenga@arm.com>

isa,cpu: Add support for FS SMT Interrupts

Adds per-thread interrupt controllers and thread/context logic
so that interrupts properly get routed in SMT systems.

11125:f918d72dbc02 25-Sep-2015 Andreas Hansson <andreas.hansson@arm.com>

util: Fix minor issues in DRAM sweep scripts

This patch fixes a few issues in the sweep scripts, bringing them
up-to-date with the latest memory configs and options.

11100:0e980afb1b63 15-Sep-2015 Abdul Mutaal Ahmad <abdul.mutaal@gmail.com>

misc: Bugfix for Freezing Terminal in SystemC Simulation

If the terminal was used in the SystemC or TLM simulations the simulation gets
in a deadlock state. This is because of the Event queue gets locked while
servicing the async events leading to event queue deadlock. This was solved by
locking the queue at the beginning of service of async events.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

11099:69fb77726e9e 15-Sep-2015 Abdul Mutaal Ahmad <abdul.mutaal@gmail.com>

misc: Bugfix in TLM integration regarding CleanEvict Command
The CleanEvict command was not considered in /util/tlm/sc_port.cc this could
lead to a simulator crash. This issue is solved by ignoring this special
command type.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

11090:f37a6b82f98f 11-Sep-2015 Andreas Sandberg <andreas.sandberg@arm.com>

dev, arm: Rewrite the HDLCD controller

Rewrite the HDLCD controller to use the new DMA engine and pixel
pump. This fixes several bugs in the current implementation:

* Broken/missing interrupt support (VSync, underrun, DMA end)
* Fragile resolution changes (changing resolutions used
to cause assertion errors).
* Support for resolutions with a width that isn't divisible by 32.
* The pixel clock can now be set dynamically.

This breaks checkpoint compatibility. Checkpoints can be upgraded with
the checkpoint conversion script. However, upgraded checkpoints won't
contain the state of the current frame. That means that HDLCD
controllers restoring from a converted checkpoint immediately start
drawing a new frame (i.e, expect timing differences).

11077:fae097742b7e 02-Sep-2015 Curtis Dunham <Curtis.Dunham@arm.com>

sim: tag-based checkpoint versioning

This commit addresses gem5 checkpoints' linear versioning bottleneck.
Since development is distributed across many private trees, there exists
a sort of 'race' for checkpoint version numbers: internally a checkpoint
version may be used but then resynchronizing with the external tree causes
a conflict on that version. This change replaces the linear version number
with a set of unique strings called tags. Now the only conflicts that can
arise are of tag names, where collisions are much easier to avoid.

The checkpoint upgrader (util/cpt_upgrader.py) upgrades the version
representation, as one would expect. Each tag version implements its
upgrader code in a python file in the util/cpt_upgraders directory
rather than adding a function to the upgrader script itself.

The version tags are stored in the 'Globals' section rather than 'root'
(as the version was previously) because 'Globals' gets unserialized
first and can provide a warning before any other unserialization errors
can occur.

11000:913585a4189a 05-Aug-2015 Andreas Hansson <andreas.hansson@arm.com>

util: Enable DRAM sweep to print power and efficiency

This patch enhances the functionality of the DRAM sweep script to not
only plot the bandwidth utilisation, but also total power and power
efficiency. To do so, a command-line switch is added, and a bit more
data extracted from the stats.

10993:4e27d8806403 04-Aug-2015 Matthias Jung <jungma@eit.uni-kl.de>

misc: Coupling gem5 with SystemC TLM2.0
Transaction Level Modeling (TLM2.0) is widely used in industry for creating
virtual platforms (IEEE 1666 SystemC). This patch contains a standard compliant
implementation of an external gem5 port, that enables the usage of gem5 as a
TLM initiator component in SystemC based virtual platforms. Both TLM coding
paradigms loosely timed (b_transport) and aproximately timed (nb_transport) are
supported.

Compared to the original patch a TLM memory manager was added. Furthermore, the
transaction object was removed and for each TLM payload a PacketPointer that
points to the original gem5 packet is added as an TLM extension. For event
handling single events are now created.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

10958:30c2e8004c0a 20-Jul-2015 Brad Beckmann <Brad.Beckmann@amd.com>

util: added .cl OpenCL extension to file_type.py

10957:c6c28616a57c 20-Jul-2015 Brad Beckmann <Brad.Beckmann@amd.com>

util: added .mk makefile extension to file_types.py

10952:fca6a566f057 31-Jul-2015 Anthony Gutierrez <atgutier@umich.edu>

util: add a vimrc that matches gem5 style guide

10930:ddc3d96d6313 24-Jul-2015 Brandon Potter <brandon.potter@amd.com>

base: refactor process class (specifically FdMap and friends)

This patch extends the previous patch's alterations around fd_map. It cleans
up some of the uglier code in the process file and replaces it with a more
concise C++11 version. As part of the changes, the FdMap class is pulled out
of the Process class and receives its own file.

10923:5fe05690d03d 15-Jul-2015 Gabor Dozsa <gabor.dozsa@arm.com>

dev: add support for multi gem5 runs

Multi gem5 is an extension to gem5 to enable parallel simulation of a
distributed system (e.g. simulation of a pool of machines
connected by Ethernet links). A multi gem5 run consists of seperate gem5
processes running in parallel (potentially on different hosts/slots on
a cluster). Each gem5 process executes the simulation of a component of the
simulated distributed system (e.g. a multi-core board with an Ethernet NIC).

The patch implements the "distributed" Ethernet link device
(dev/src/multi_etherlink.[hh.cc]). This device will send/receive
(simulated) Ethernet packets to/from peer gem5 processes. The interface
to talk to the peer gem5 processes is defined in dev/src/multi_iface.hh and
in tcp_iface.hh.

There is also a central message server process (util/multi/tcp_server.[hh,cc])
which acts like an Ethernet switch and transfers messages among the gem5 peers.

A multi gem5 simulations can be kicked off by the util/multi/gem5-multi.sh
wrapper script.

Checkpoints are supported by multi-gem5. The checkpoint must be
initiated by a single gem5 process. E.g., the gem5 process with rank 0
can take a checkpoint from the bootscript just before it invokes
'mpirun' to launch an MPI test. The message server process will notify
all the other peer gem5 processes and make them take a checkpoint, too
(after completing a global synchronisation to ensure that there are no
inflight messages among gem5).

10879:3946aa272087 03-Jul-2015 Andreas Hansson <andreas.hansson@arm.com>

util: Remove DRAMPower trace script

This script is deprecated and DRAMPower is now properly integrated
with the controller model.

10861:9141d87c7f71 01-Jun-2015 Curtis Dunham <Curtis.Dunham@arm.com>

sim, arm: add checkpoint upgrader for d02b45a5

The insertion of CONTEXTIDR_EL2 in the ARM miscellaneous registers
obsoletes old checkpoints.

10750:30efc3828bb4 19-Mar-2015 Andreas Hansson <andreas.hansson@arm.com>

config: Add soak test for memtest.py

This patch adds a random option to memtest.py which allows the user to
easily test valid random tree topologies. The patch also adds a
wrapper script to run soak tests using the newly introduced option.

We also adjust the progress interval and progress limit check to make
the output less noisy, and avoid false positives.

Bring on the pain.

10695:ef2c71a5f02e 16-Feb-2015 Ali Saidi <Ali.Saidi@ARM.com>

cpu: add support for outputing a protobuf formatted CPU trace

Doesn't support x86 due to static instruction representation.

10692:ab81a0feab55 11-Feb-2015 Andreas Sandberg <Andreas.Sandberg@ARM.com>

style: Fix broken m5format command

The m5format command didn't actually work due to parameter handling
issues and missing language detection. This changeset fixes those
issues and cleans up some of the code to shared between the style
checker and the format checker.

10691:65da28dee7cf 11-Feb-2015 Andreas Sandberg <Andreas.Sandberg@ARM.com>

style: Fix incorrect style checker option name

The style used to support the option -w to automatically fix white
space issues. However, this option was actually wired up to fix all
styles issues the checker encountered. This changeset cleans up the
code that handles automatic fixing and adds an option to fix all
issues, and separate options for white spaces and include ordering.

10674:e2f9644a7738 03-Feb-2015 Andreas Sandberg <Andreas.Sandberg@ARM.com>

style: Update the style checker to handle new include order

As of August 2014, the gem5 style guide mandates that a source file's
primary header is included first in that source file. This helps to
ensure that the header file does not depend on include file ordering
and avoids surprises down the road when someone tries to reuse code.

In the new order, include files are grouped into the following blocks:
* Primary header file (e.g., foo.hh for foo.cc)
* Python headers
* C system/stdlib includes
* C++ stdlib includes
* Include files in the gem5 source tree

Just like before, include files within a block are required to be
sorted in alphabetical order.

This changeset updates the style checker to enforce the new order.

10578:997be6ba467e 02-Dec-2014 Andrew Bardsley <Andrew.Bardsley@arm.com>

config: Fix to SystemC example's event handling

This patch fixes checkpoint restore in the SystemC hosting example by handling
early PollEvent events correctly before any EventQueue events are posted.

The SystemC event queue handler (SCEventQueue) reports an error if the event
loop is entered with no Events posted. It is possible for this to happen
after instantiate due to PollEvent events. This patch separates out
`external' events into a different handler in sc_module.cc to prevent the
error from occurring.

This fix also improves the event handling of asynchronous events by:

1) Making asynchronous events 'catch up' gem5 time to SystemC
time to avoid the appearance that events have been lost
while servicing an asynchronous event that schedules an
event loop exit event

2) Add an in_simulate data member to Module to allow the event
loop to check whether events should be processed or deferred
until the next time Module::simulate is entered

3) Cancel pending events around the entry/exit of the event loop
in Module::simulate

4) Moving the state initialisation of the example entirely into
run to correct a problem with early events in checkpoint
restore.

It is still possible to schedule asynchronous events (and talk PollQueue
actions) while simulate is not running. This behaviour may stil cause
some problems.

10577:5d7af9fa9809 02-Dec-2014 Andrew Bardsley <Andrew.Bardsley@arm.com>

config: SystemC Gem5Control top level additions

This patch cleans up a few style issues and adds a few capabilities to the
SystemC top level 'Gem5Control/Gem5System' mechanism. These include:

1) A space to store/retrieve a version string for a model
2) A mechanism for registering functions to be called at the end of
elaboration to perform simulation setup tasks in SystemC
3) Adding setGDBRemotePort to the Gem5Control
4) Changing the sc_set_time_resolution behaviour to instead check that
the SystemC time resolution is already acceptable

10553:c1ad57c53a36 23-Nov-2014 Alexandru Dutu <alexandru.dutu@amd.com>

kvm, x86: Adding support for SE mode execution
This patch adds methods in KvmCPU model to handle KVM exits caused by syscall
instructions and page faults. These types of exits will be encountered if
KvmCPU is run in SE mode.

10538:1a9e235cab09 14-Nov-2014 Andrew Bardsley <Andrew.Bardsley@arm.com>

config: Fix checkpoint restore in C++ config example

This patch fixes the checkpoint restore option in the example of C++
configuration (util/cxx_config).

The fix introduces a call to config_manager->startup() (which calls startup
on all SimObjects managed by that manager) to replicate the loop of
SimObject::startup calls in src/python/m5/simulate.py::simulate guarded by
need_startup. As util/cxx_config/main.cc is a C++ analogue of
src/python/mt/simulate.py, it should make a similar set of calls.

10477:16fd06ecdb64 16-Oct-2014 Andrew Bardsley <Andrew.Bardsley@arm.com>

sim: SystemC hosting

This patch hosts gem5 onto SystemC scheduler. There's already an upstream
review board patch that does something similar but this patch ...:

1) is less obtrusive to the existing gem5 code organisation. It's divided
into the 'generic' preparatory patches (already submitted) and this patch
which affects no existing files

2) does not try to exactly track the gem5 event queue with notifys into
SystemC and so doesn't requive the event queue to be modified for
anything other than 'out of event queue' scheduling events

3) supports debug logging with SC_REPORT

The patch consists of the files:
util/systemc/
sc_gem5_control.{cc,hh} -- top level objects to use to
instantiate gem5 Systems within
larger SystemC test harnesses as
sc_module objects
sc_logger.{cc,hh} -- logging support
sc_module.{cc,hh} -- a separated event loop specific to
SystemC
stats.{cc,hh} -- example Stats handling for the sample
top level
main.{cc,hh} -- a sample top level

On the downside this patch is only currently functional with C++
configuration at the top level.

The above sc_... files are indended to be compiled alongside gem5 (as a
library, see main.cc for a command line and util/systemc/README for
more details.)

The top-level system instantiation in sc_gem5_control.{cc,hh} provides
two classes: Gem5Control and Gem5System

Gem5Control is a simulation control class (from which a singleton
object should be created) derived from Gem5SystemC::Module which
carries the top level simulation control interface for gem5. This
includes hosting a system-building configuration file and
instantiating the Root object from that file.

Gem5System is a base class for instantiating renamed gem5 Systems
from the config file hosted by the Gem5Control object. In use, a
SystemC module class should be made which represents the desired,
instantiable gem5 System. That class's instances should create
a Gem5System during their construction, set the parameters of that
system and then call instantiate to build that system. If this
is all carried out in the sc_core::sc_module-derived classes
constructor, the System's external ports will become children of
that module and can then be recovered by name using sc_core::
sc_find_object.

It is intended that this interface is used with dlopen. To that
end, the header file sc_gem5_control.hh includes no other header
files from gem5 (and so can be easily copied into another project).
The classes Gem5System and Gem5Control have all their member
functions declared `virtual' so that those functions can be called
through the vtable acquired by building the top level Gem5Control
using dlsym(..., "makeGem5Control") and `makeSystem' on the
Gem5Control.

10458:64809024b924 16-Oct-2014 Andreas Hansson <andreas.hansson@arm.com>

config: Add the ability to read a config file using C++ and Python

This patch adds the ability to load in config.ini files generated from
gem5 into another instance of gem5 built without Python configuration
support. The intended use case is for configuring gem5 when it is a
library embedded in another simulation system.

A parallel config file reader is also provided purely in Python to
demonstrate the approach taken and to provided similar functionality
for as-yet-unknown use models. The Python configuration file reader
can read both .ini and .json files.

C++ configuration file reading:

A command line option has been added for scons to enable C++ configuration
file reading: --with-cxx-config

There is an example in util/cxx_config that shows C++ configuration in action.
util/cxx_config/README explains how to build the example.

Configuration is achieved by the object CxxConfigManager. It handles
reading object descriptions from a CxxConfigFileBase object which
wraps a config file reader. The wrapper class CxxIniFile is provided
which wraps an IniFile for reading .ini files. Reading .json files
from C++ would be possible with a similar wrapper and a JSON parser.

After reading object descriptions, CxxConfigManager creates
SimObjectParam-derived objects from the classes in the (generated with this
patch) directory build/ARCH/cxx_config

CxxConfigManager can then build SimObjects from those SimObjectParams (in an
order dictated by the SimObject-value parameters on other objects) and bind
ports of the produced SimObjects.

A minimal set of instantiate-replacing member functions are provided by
CxxConfigManager and few of the member functions of SimObject (such as drain)
are extended onto CxxConfigManager.

Python configuration file reading (configs/example/read_config.py):

A Python version of the reader is also supplied with a similar interface to
CxxConfigFileBase (In Python: ConfigFile) to config file readers.

The Python config file reading will handle both .ini and .json files.

The object construction strategy is slightly different in Python from the C++
reader as you need to avoid objects prematurely becoming the children of other
objects when setting parameters.

Port binding also needs to be strictly in the same port-index order as the
original instantiation.

10449:f4ff359c61ff 11-Oct-2014 Nilay Vaish <nilay@cs.wisc.edu>

util: adds a script for using DSENT
This patch adds a python script that processes the configuration and the
statistics file from a simulation run. Configuration and activity of network
routers and links obtained from this processing is fed to DSENT via its Python
interface. DSENT then computes the area and the power consumption of these
network components. The script outputs these quantities to the console.

10354:2d6d7a056a38 03-Sep-2014 Dam Sunwoo <dam.sunwoo@arm.com>

config: Update Streamline scripts and configs

Updated the stat_config.ini files to reflect new structure.

Moved to a more generic stat naming scheme that can easily handle
multiple CPUs and L2s by letting the script replace pre-defined #
symbols to CPU or L2 ids.

Removed the previous per_switch_cpus sections. Still can be used by
spelling out the stat names if necessary. (Resuming from checkpoints
no longer use switch_cpus. Only fast-forwarding does.)

10338:8bee5f4edb92 29-Apr-2014 Curtis Dunham <Curtis.Dunham@arm.com>

arm: use condition code registers for ARM ISA

Analogous to ee049bf (for x86). Requires a bump of the checkpoint version
and corresponding upgrader code to move the condition code register values
to the new register file.

10323:5169ebd26163 03-Sep-2014 Andreas Hansson <andreas.hansson@arm.com>

mem: Add utility script to plot DRAM efficiency sweep

This patch adds basic functionality to quickly visualise the output
from the DRAM efficiency script. There are some unfortunate hacks
needed to communicate the needed information from one script to the
other, and we fall back on (ab)using the simout to do this.

As part of this patch we also trim the efficiency sweep to stop at 512
bytes as this should be sufficient for all forseeable DRAMs.

10294:b58f6afe14c5 26-Aug-2014 Andreas Sandberg <Andreas.Sandberg@ARM.com>

style: Add support for a style ignore list and ignore ext/

There are some directories within the repository where we don't want
to enforce our coding style. Specifically, we don't want the style
hooks to warn whenever we update external code in the ext/ directory.

10293:62c95c428a3d 26-Aug-2014 Andreas Sandberg <Andreas.Sandberg@ARM.com>

style: Fixup strange semantics in hg m5style

The 'hg m5style' command had some rather strange semantics. When
called without arguments, it applied the style checker to all added
files and modified regions of modified files. However, when providing
a list of files, it used that list as an ignore list instead of
specifically checking those files.

This patch makes the m5style command behave more like other Mercurial
commands where the arguments are used to specify which files to work
on instead of which files to ignore.

10285:6cb378bad253 05-Feb-2014 Curtis Dunham <Curtis.Dunham@arm.com>

sim: bump checkpoint version for multiple event queues

This patch adds a fix for older checkpoints before support for
multiple event queues were added in changeset 2cce74fe359e. The change
in checkpoint version should really hav ebeen part of the
aforementioned changeset.

10275:84b4d6af0ecc 13-Aug-2014 Andreas Sandberg <Andreas.Sandberg@ARM.com>

util: Fix state leakage in the SortIncludes style verifier

There are cases where the state of a SortIncludes object gets messed
up and leaks between invocations/files. This typically happens when a
file ends with an include block (dump_block() gets called at the end
of __call__). In this case, the state of the class is not reset
between files. This bug manifests itself as ghost includes that leak
between files when applying the style hooks.

This changeset adds a reset at the beginning of the __call__ method
which ensures that the class is always in a clean state when
processing a new file.

10269:82773ace39fa 10-Aug-2014 Radhika Jagtap <radhika.jagtap@ARM.com>

util: Move packet trace file read to protolib

This patch moves the code for opening an input protobuf packet trace into
a function defined in the protobuf library. This is because the code is
commonly used in decode scripts and is independent of the src protobuf
message.

10259:ebb376f73dd2 23-Jul-2014 Andrew Bardsley <Andrew.Bardsley@arm.com>

cpu: `Minor' in-order CPU model

This patch contains a new CPU model named `Minor'. Minor models a four
stage in-order execution pipeline (fetch lines, decompose into
macroops, decompose macroops into microops, execute).

The model was developed to support the ARM ISA but should be fixable
to support all the remaining gem5 ISAs. It currently also works for
Alpha, and regressions are included for ARM and Alpha (including Linux
boot).

Documentation for the model can be found in src/doc/inside-minor.doxygen and
its internal operations can be visualised using the Minorview tool
utils/minorview.py.

Minor was designed to be fairly simple and not to engage in a lot of
instruction annotation. As such, it currently has very few gathered
stats and may lack other gem5 features.

Minor is faster than the o3 model. Sample results:

Benchmark | Stat host_seconds (s)
---------------+--------v--------v--------
(on ARM, opt) | simple | o3 | minor
| timing | timing | timing
---------------+--------+--------+--------
10.linux-boot | 169 | 1883 | 1075
10.mcf | 117 | 967 | 491
20.parser | 668 | 6315 | 3146
30.eon | 542 | 3413 | 2414
40.perlbmk | 2339 | 20905 | 11532
50.vortex | 122 | 1094 | 588
60.bzip2 | 2045 | 18061 | 9662
70.twolf | 207 | 2736 | 1036


/gem5/build_opts/ALPHA
/gem5/build_opts/ARM
/gem5/configs/common/CpuConfig.py
/gem5/src/base/trace.hh
/gem5/src/cpu/SConscript
/gem5/src/cpu/TimingExpr.py
/gem5/src/cpu/minor/MinorCPU.py
/gem5/src/cpu/minor/SConscript
/gem5/src/cpu/minor/SConsopts
/gem5/src/cpu/minor/activity.cc
/gem5/src/cpu/minor/activity.hh
/gem5/src/cpu/minor/buffers.hh
/gem5/src/cpu/minor/cpu.cc
/gem5/src/cpu/minor/cpu.hh
/gem5/src/cpu/minor/decode.cc
/gem5/src/cpu/minor/decode.hh
/gem5/src/cpu/minor/dyn_inst.cc
/gem5/src/cpu/minor/dyn_inst.hh
/gem5/src/cpu/minor/exec_context.hh
/gem5/src/cpu/minor/execute.cc
/gem5/src/cpu/minor/execute.hh
/gem5/src/cpu/minor/fetch1.cc
/gem5/src/cpu/minor/fetch1.hh
/gem5/src/cpu/minor/fetch2.cc
/gem5/src/cpu/minor/fetch2.hh
/gem5/src/cpu/minor/func_unit.cc
/gem5/src/cpu/minor/func_unit.hh
/gem5/src/cpu/minor/lsq.cc
/gem5/src/cpu/minor/lsq.hh
/gem5/src/cpu/minor/pipe_data.cc
/gem5/src/cpu/minor/pipe_data.hh
/gem5/src/cpu/minor/pipeline.cc
/gem5/src/cpu/minor/pipeline.hh
/gem5/src/cpu/minor/scoreboard.cc
/gem5/src/cpu/minor/scoreboard.hh
/gem5/src/cpu/minor/stats.cc
/gem5/src/cpu/minor/stats.hh
/gem5/src/cpu/minor/trace.hh
/gem5/src/cpu/pred/SConscript
/gem5/src/cpu/static_inst.hh
/gem5/src/cpu/timing_expr.cc
/gem5/src/cpu/timing_expr.hh
/gem5/src/doc/inside-minor.doxygen
/gem5/src/sim/SConscript
/gem5/src/sim/TickedObject.py
/gem5/src/sim/ticked_object.cc
/gem5/src/sim/ticked_object.hh
minorview.py
minorview/__init__.py
minorview/blobs.py
minorview/colours.py
minorview/minor.pic
minorview/model.py
minorview/parse.py
minorview/point.py
minorview/view.py
10250:9f5e9bdc2f27 01-Jul-2014 Radhika Jagtap <radhika.jagtap@ARM.com>

util: Add DVFS perfLevel to checkpoint upgrade script

This patch updates the checkpoint upgrader script. It adds the _perfLevel
variable in the clock domain and voltage domain simObjects used for DVFS.

10248:72277952d444 30-Jun-2014 Andreas Hansson <andreas.hansson@arm.com>

mem: DRAMPower trace formatting script

This patch adds a first version of a script that processes the debug
output and generates a command trace for DRAMPower. This is work in
progress and is intended as a snapshot of ongoing work at this point.

The longer term plan is to link in DRAMPower as a library and have one
instance of the model per rank, and instantiate it based on a struct
passed from gem5. Each command will then be a call to the model and no
parsing of traces will be necessary.

10237:b2850bdcec07 09-Jun-2014 Joel Hestness <jthestness@gmail.com>

Util: Do not style check symlinks

The style checker used to traverse symlinks if they pointed to files, which can
result in style checker failure if the pointed-to file doesn't exist. This
style check is actually unnecessary, since symlinks either point to other files
that are already style checked, or files outside gem5, which shouldn't be
checked. Skip symlinks.

10185:dc565194a1cd 09-May-2014 Eric Van Hensbergen <eric.vanhensbergen@arm.com>

arm: Add Makefile for aarch64 build of util/m5

10179:e30d66a1e550 23-Apr-2014 Mitch Hayenga <mitch.hayenga@arm.com>

util: Valgrind suppression addition

Adds a suppression rule to util/valgrind-suppressions due to a minor bug
present in zlib that has no impact on simulation.

10163:e8608cdddae2 19-Apr-2014 Marco Elver <marco.elver@ed.ac.uk>

ruby: recorder: Fix (de-)serializing with different cache block-sizes

Upon aggregating records, serialize system's cache-block size, as the
cache-block size can be different when restoring from a checkpoint. This way,
we can correctly read all records when restoring from a checkpoints, even if
the cache-block size is different.

Note, that it is only possible to restore from a checkpoint if the
desired cache-block size is smaller or equal to the cache-block size
when the checkpoint was taken; we can split one larger request into
multiple small ones, but it is not reliable to do the opposite.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

10151:2434d2fa50b6 01-Apr-2014 Anthony Gutierrez <atgutier@umich.edu>

arm: fix typos in makefile for ARM m5 util and link statically

1) fixes a typo for clean target libgemOpJni.so -> libgem5OpJni.so
2) addes jni_gem5Op.h to clean since it is added during make
3) links the m5 utility statically since it won't work on some images otherwise

10132:894ec19274e9 23-Mar-2014 Andreas Hansson <andreas.hansson@arm.com>

util: Add support for detection of gzipped packet traces

This patch adds support for automatically detecting a gzipped packet
trace, thus accepting either a compressed or uncompressed trace.

10107:524afa92d940 07-Mar-2014 Radhika Jagtap <radhika.jagtap@ARM.com>

mem: Edit proto Packet and enhance the python script

This patch changes the decode script to output the optional fields of
the proto message Packet, namely id and flags. The flags field is set
by the communication monitor.

The id field is useful for CPU trace experiments, e.g. linking the
fetch side to decode side. It had to be renamed because it clashes
with a built in python function id() for getting the "identity" of an
object.

This patch also takes a few common function definitions out from the
multiple scripts and adds them to a protolib python module.

10065:58bf21ca88de 18-Feb-2014 Andreas Hansson <andreas.hansson@arm.com>

util: Enhance the error messages for packet encode/decode

This patch adds a more verbose error message when the Python protobuf
module cannot be loaded.

10037:5cac77888310 24-Jan-2014 ARM gem5 Developers

arm: Add support for ARMv8 (AArch64 & AArch32)

Note: AArch64 and AArch32 interworking is not supported. If you use an AArch64
kernel you are restricted to AArch64 user-mode binaries. This will be addressed
in a later patch.

Note: Virtualization is only supported in AArch32 mode. This will also be fixed
in a later patch.

Contributors:
Giacomo Gabrielli (TrustZone, LPAE, system-level AArch64, AArch64 NEON, validation)
Thomas Grocutt (AArch32 Virtualization, AArch64 FP, validation)
Mbou Eyole (AArch64 NEON, validation)
Ali Saidi (AArch64 Linux support, code integration, validation)
Edmund Grimley-Evans (AArch64 FP)
William Wang (AArch64 Linux support)
Rene De Jong (AArch64 Linux support, performance opt.)
Matt Horsnell (AArch64 MP, validation)
Matt Evans (device models, code integration, validation)
Chris Adeniyi-Jones (AArch64 syscall-emulation)
Prakash Ramrakhyani (validation)
Dam Sunwoo (validation)
Chander Sudanthi (validation)
Stephan Diestelhorst (validation)
Andreas Hansson (code integration, performance opt.)
Eric Van Hensbergen (performance opt.)
Gabe Black


/gem5/configs/common/FSConfig.py
/gem5/configs/common/O3_ARM_v7a.py
/gem5/configs/common/Options.py
/gem5/configs/common/cpu2000.py
/gem5/configs/example/fs.py
/gem5/configs/example/se.py
/gem5/ext/libelf/elf_common.h
/gem5/src/arch/arm/ArmISA.py
/gem5/src/arch/arm/ArmSystem.py
/gem5/src/arch/arm/ArmTLB.py
/gem5/src/arch/arm/SConscript
/gem5/src/arch/arm/decoder.cc
/gem5/src/arch/arm/decoder.hh
/gem5/src/arch/arm/faults.cc
/gem5/src/arch/arm/faults.hh
/gem5/src/arch/arm/insts/branch64.cc
/gem5/src/arch/arm/insts/branch64.hh
/gem5/src/arch/arm/insts/data64.cc
/gem5/src/arch/arm/insts/data64.hh
/gem5/src/arch/arm/insts/fplib.cc
/gem5/src/arch/arm/insts/fplib.hh
/gem5/src/arch/arm/insts/macromem.cc
/gem5/src/arch/arm/insts/macromem.hh
/gem5/src/arch/arm/insts/mem.cc
/gem5/src/arch/arm/insts/mem64.cc
/gem5/src/arch/arm/insts/mem64.hh
/gem5/src/arch/arm/insts/misc.cc
/gem5/src/arch/arm/insts/misc.hh
/gem5/src/arch/arm/insts/misc64.cc
/gem5/src/arch/arm/insts/misc64.hh
/gem5/src/arch/arm/insts/neon64_mem.hh
/gem5/src/arch/arm/insts/pred_inst.hh
/gem5/src/arch/arm/insts/static_inst.cc
/gem5/src/arch/arm/insts/static_inst.hh
/gem5/src/arch/arm/insts/vfp.cc
/gem5/src/arch/arm/insts/vfp.hh
/gem5/src/arch/arm/interrupts.cc
/gem5/src/arch/arm/interrupts.hh
/gem5/src/arch/arm/intregs.hh
/gem5/src/arch/arm/isa.cc
/gem5/src/arch/arm/isa.hh
/gem5/src/arch/arm/isa/bitfields.isa
/gem5/src/arch/arm/isa/decoder/aarch64.isa
/gem5/src/arch/arm/isa/decoder/arm.isa
/gem5/src/arch/arm/isa/decoder/decoder.isa
/gem5/src/arch/arm/isa/decoder/thumb.isa
/gem5/src/arch/arm/isa/formats/aarch64.isa
/gem5/src/arch/arm/isa/formats/branch.isa
/gem5/src/arch/arm/isa/formats/formats.isa
/gem5/src/arch/arm/isa/formats/fp.isa
/gem5/src/arch/arm/isa/formats/mem.isa
/gem5/src/arch/arm/isa/formats/misc.isa
/gem5/src/arch/arm/isa/formats/neon64.isa
/gem5/src/arch/arm/isa/formats/uncond.isa
/gem5/src/arch/arm/isa/formats/unimp.isa
/gem5/src/arch/arm/isa/includes.isa
/gem5/src/arch/arm/isa/insts/aarch64.isa
/gem5/src/arch/arm/isa/insts/branch.isa
/gem5/src/arch/arm/isa/insts/branch64.isa
/gem5/src/arch/arm/isa/insts/data.isa
/gem5/src/arch/arm/isa/insts/data64.isa
/gem5/src/arch/arm/isa/insts/div.isa
/gem5/src/arch/arm/isa/insts/fp.isa
/gem5/src/arch/arm/isa/insts/fp64.isa
/gem5/src/arch/arm/isa/insts/insts.isa
/gem5/src/arch/arm/isa/insts/ldr.isa
/gem5/src/arch/arm/isa/insts/ldr64.isa
/gem5/src/arch/arm/isa/insts/m5ops.isa
/gem5/src/arch/arm/isa/insts/macromem.isa
/gem5/src/arch/arm/isa/insts/mem.isa
/gem5/src/arch/arm/isa/insts/misc.isa
/gem5/src/arch/arm/isa/insts/misc64.isa
/gem5/src/arch/arm/isa/insts/neon.isa
/gem5/src/arch/arm/isa/insts/neon64.isa
/gem5/src/arch/arm/isa/insts/neon64_mem.isa
/gem5/src/arch/arm/isa/insts/str.isa
/gem5/src/arch/arm/isa/insts/str64.isa
/gem5/src/arch/arm/isa/insts/swap.isa
/gem5/src/arch/arm/isa/operands.isa
/gem5/src/arch/arm/isa/templates/basic.isa
/gem5/src/arch/arm/isa/templates/branch64.isa
/gem5/src/arch/arm/isa/templates/data64.isa
/gem5/src/arch/arm/isa/templates/macromem.isa
/gem5/src/arch/arm/isa/templates/mem.isa
/gem5/src/arch/arm/isa/templates/mem64.isa
/gem5/src/arch/arm/isa/templates/misc.isa
/gem5/src/arch/arm/isa/templates/misc64.isa
/gem5/src/arch/arm/isa/templates/neon.isa
/gem5/src/arch/arm/isa/templates/neon64.isa
/gem5/src/arch/arm/isa/templates/templates.isa
/gem5/src/arch/arm/isa/templates/vfp.isa
/gem5/src/arch/arm/isa/templates/vfp64.isa
/gem5/src/arch/arm/isa_traits.hh
/gem5/src/arch/arm/linux/linux.cc
/gem5/src/arch/arm/linux/linux.hh
/gem5/src/arch/arm/linux/process.cc
/gem5/src/arch/arm/linux/process.hh
/gem5/src/arch/arm/linux/system.cc
/gem5/src/arch/arm/linux/system.hh
/gem5/src/arch/arm/locked_mem.hh
/gem5/src/arch/arm/miscregs.cc
/gem5/src/arch/arm/miscregs.hh
/gem5/src/arch/arm/nativetrace.cc
/gem5/src/arch/arm/pagetable.hh
/gem5/src/arch/arm/process.cc
/gem5/src/arch/arm/process.hh
/gem5/src/arch/arm/registers.hh
/gem5/src/arch/arm/remote_gdb.cc
/gem5/src/arch/arm/remote_gdb.hh
/gem5/src/arch/arm/stage2_lookup.cc
/gem5/src/arch/arm/stage2_lookup.hh
/gem5/src/arch/arm/stage2_mmu.cc
/gem5/src/arch/arm/stage2_mmu.hh
/gem5/src/arch/arm/system.cc
/gem5/src/arch/arm/system.hh
/gem5/src/arch/arm/table_walker.cc
/gem5/src/arch/arm/table_walker.hh
/gem5/src/arch/arm/tlb.cc
/gem5/src/arch/arm/tlb.hh
/gem5/src/arch/arm/types.hh
/gem5/src/arch/arm/utility.cc
/gem5/src/arch/arm/utility.hh
/gem5/src/arch/arm/vtophys.cc
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/loader/elf_object.hh
/gem5/src/base/loader/object_file.cc
/gem5/src/base/loader/object_file.hh
/gem5/src/cpu/BaseCPU.py
/gem5/src/dev/arm/RealView.py
/gem5/src/dev/arm/SConscript
/gem5/src/dev/arm/generic_timer.cc
/gem5/src/dev/arm/generic_timer.hh
/gem5/src/dev/arm/gic_pl390.cc
/gem5/src/dev/arm/vgic.cc
/gem5/src/dev/arm/vgic.hh
/gem5/src/sim/System.py
/gem5/src/sim/process.cc
/gem5/src/sim/serialize.hh
/gem5/src/sim/system.cc
/gem5/src/sim/system.hh
/gem5/system/arm/aarch64_bootloader/LICENSE.txt
/gem5/system/arm/aarch64_bootloader/boot.S
/gem5/system/arm/aarch64_bootloader/makefile
cpt_upgrader.py
m5/m5op_arm_A64.S
10016:dffa80408656 24-Jan-2014 Dam Sunwoo <dam.sunwoo@arm.com>

util: updated Streamline flow to support ARM DS-5 v5.17 protocol

The previous flow supported ARM DS-5 v5.13 protocol.

10007:94d286db85c1 04-Jan-2014 Nilay Vaish <nilay@cs.wisc.edu>

ruby: rename MESI_CMP_directory to MESI_Two_Level

This is because the next patch introduces a three level hierarchy.


/gem5/build_opts/ALPHA_MESI_CMP_directory
/gem5/build_opts/ALPHA_MESI_Two_Level
/gem5/build_opts/X86_MESI_CMP_directory
/gem5/build_opts/X86_MESI_Two_Level
/gem5/configs/ruby/MESI_CMP_directory.py
/gem5/configs/ruby/MESI_Two_Level.py
/gem5/src/mem/protocol/MESI_CMP_directory-L1cache.sm
/gem5/src/mem/protocol/MESI_CMP_directory-L2cache.sm
/gem5/src/mem/protocol/MESI_CMP_directory-dir.sm
/gem5/src/mem/protocol/MESI_CMP_directory-dma.sm
/gem5/src/mem/protocol/MESI_CMP_directory-msg.sm
/gem5/src/mem/protocol/MESI_CMP_directory.slicc
/gem5/src/mem/protocol/MESI_Two_Level-L1cache.sm
/gem5/src/mem/protocol/MESI_Two_Level-L2cache.sm
/gem5/src/mem/protocol/MESI_Two_Level-dir.sm
/gem5/src/mem/protocol/MESI_Two_Level-dma.sm
/gem5/src/mem/protocol/MESI_Two_Level-msg.sm
/gem5/src/mem/protocol/MESI_Two_Level.slicc
/gem5/src/mem/protocol/SConsopts
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_CMP_directory/config.ini
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_CMP_directory/ruby.stats
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_CMP_directory/simerr
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_CMP_directory/simout
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_CMP_directory/stats.txt
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_CMP_directory/system.pc.com_1.terminal
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_Two_Level/config.ini
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_Two_Level/ruby.stats
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_Two_Level/simerr
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_Two_Level/simout
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_Two_Level/stats.txt
/gem5/tests/long/fs/10.linux-boot/ref/x86/linux/pc-simple-timing-ruby-MESI_Two_Level/system.pc.com_1.terminal
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/config.ini
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/ruby.stats
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/simerr
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/simout
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/stats.txt
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_Two_Level/config.ini
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_Two_Level/ruby.stats
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_Two_Level/simerr
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_Two_Level/simout
/gem5/tests/quick/se/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_Two_Level/stats.txt
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/config.ini
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/ruby.stats
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/simerr
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/simout
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/stats.txt
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_Two_Level/config.ini
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_Two_Level/ruby.stats
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_Two_Level/simerr
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_Two_Level/simout
/gem5/tests/quick/se/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_Two_Level/stats.txt
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/config.ini
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/ruby.stats
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/simerr
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/simout
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/stats.txt
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_Two_Level/config.ini
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_Two_Level/ruby.stats
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_Two_Level/simerr
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_Two_Level/simout
/gem5/tests/quick/se/50.memtest/ref/alpha/linux/memtest-ruby-MESI_Two_Level/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/config.ini
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/ruby.stats
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/simerr
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/simout
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/stats.txt
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_Two_Level/config.ini
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_Two_Level/ruby.stats
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_Two_Level/simerr
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_Two_Level/simout
/gem5/tests/quick/se/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_Two_Level/stats.txt
regress
9991:51e683db5ab1 03-Dec-2013 Nilay Vaish <nilay@cs.wisc.edu>

util: update checkpoint aggregation script
The checkpoint aggregation script had become outdated due to numerous changes
to checkpoints over the past couple of years. This updates the script. It
now supports aggregation for x86 architecture instead of alpha. Also a couple
of new options have been added that specify the size of the memory file to be
created and whether or not the memory file should be compressed.

9959:ad4564da49b5 31-Oct-2013 Chander Sudanthi <chander.sudanthi@arm.com>

ARM: add support for TEEHBR access

Thumb2 ARM kernels may access the TEEHBR via thumbee_notifier
in arch/arm/kernel/thumbee.c. The Linux kernel code just seems
to be saving and restoring the register. This patch adds support
for the TEEHBR cp14 register. Note, this may be a special case
when restoring from an image that was run on a system that
supports ThumbEE.

9956:6f2b525b8f16 31-Oct-2013 Geoffrey Blake <Geoffrey.Blake@arm.com>

dev: Fix race conditions in IDE device on newer kernels

Newer linux kernels and distros exercise more functionality in the IDE device
than previously, exposing 2 races. The first race is the handling of aborted
DMA commands would immediately report the device is ready back to the kernel
and cause already in flight commands to assert the simulator when they returned
and discovered an inconsitent device state. The second race was due to the
Status register not being handled correctly, the interrupt status bit would get
stuck at 1 and the driver eventually views this as a bad state and logs the
condition to the terminal. This patch fixes these two conditions by making the
device handle aborted commands gracefully and properly handles clearing the
interrupt status bit in the Status register.

9949:7890c22dad25 31-Oct-2013 Ali Saidi <Ali.Saidi@ARM.com>

arm: fix m5ops binary for ARM and add m5fail.

Changes to make m5ops work under virtualization seemed to break them working
with non-virtualized systems and the recently added m5 fail command makes
the m5op binary not compile. For now remove the code for virtualization.

9935:cc9dc514036e 17-Oct-2013 Dam Sunwoo <dam.sunwoo@arm.com>

util: Streamline .apc project convertsion script

This Python script generates an ARM DS-5 Streamline .apc project based
on gem5 run. To successfully convert, the gem5 runs needs to be run
with the context-switch-based stats dump option enabled (The guest
kernel also needs to be patched to allow gem5 interrogate its task
information.) See help for more information.

9898:2935441b0870 29-Sep-2013 Andreas Sandberg <andreas@sandberg.pp.se>

x86: Add support for m5ops through a memory mapped interface

In order to support m5ops in virtualized environments, we need to use
a memory mapped interface. This changeset adds support for that by
reserving 0xFFFF0000-0xFFFFFFFF and mapping those to the generic IPR
interface for m5ops. The mapping is done in the
X86ISA::TLB::finalizePhysical() which means that it just works for all
of the CPU models, including virtualized ones.

9850:87d6b41749e9 04-Sep-2013 Andreas Hansson <andreas.hansson@arm.com>

arch: Resurrect the NOISA build target and rename it NULL

This patch makes it possible to once again build gem5 without any
ISA. The main purpose is to enable work around the interconnect and
memory system without having to build any CPU models or device models.

The regress script is updated to include the NULL ISA target. Currently
no regressions make use of it, but all the testers could (and perhaps
should) transition to it.

9843:1ddfb0679c75 21-Aug-2013 Steve Reinhardt <steve.reinhardt@amd.com>

util/regress: set --no-lto on regressions

See comment for motivation.

9821:afa9f7f4ee46 14-Aug-2013 Anthony Gutierrez <atgutier@umich.edu>

arm: use -march when compiling m5op_arm.S

Using arm-linux-gnueabi-gcc 4.7.3-1ubuntu1 on Ubuntu 13.04 to compiled
the m5 binary yields the error:

m5op_arm.S: Assembler messages:
m5op_arm.S:85: Error: selected processor does not support ARM mode `bxj lr'

For each of of the SIMPLE_OPs. Apparently, this compiler doesn't like the
interworking of these code types for the default arch. Adding -march=armv7-a
makes it compile. Another alternative that I found to work is replacing the
bxj lr instruction with mov pc, lr, but I don't know how that affects the
KVM stuff and if bxj is needed.

9818:ebd7d3e04b5f 07-Aug-2013 Nilay Vaish <nilay@cs.wisc.edu>

x86: add tlb checkpointing
This patch adds checkpointing support to x86 tlb. It upgrades the
cpt_upgrader.py script so that previously created checkpoints can
be updated. It moves the checkpoint version to 6.

9706:fbb19814adbc 30-May-2013 Andreas Hansson <andreas.hansson@arm.com>

util: Auto generate the packet proto definitions

This patch simplifies the usage of the packet trace encoder/decoder by
attempting to automatically generating the packet proto definitions in
case they cannot be found.

9687:22e9258c06bb 14-May-2013 Andreas Sandberg <andreas@sandberg.pp.se>

arm: Add support for the m5fail pseudo-op

9686:13a4419f09c5 14-May-2013 Andreas Sandberg <andreas@sandberg.pp.se>

arm: Fix compilation error in m5 utility

Changeset 5ca6098b9560 accidentally broke the m5 utility. This
changeset adds the missing co-processor call used to trigger the
pseudo-op in ARM mode and fixes an alignment issue that caused some
pseudo-ops to leave thumb mode.

9685:eb075b2b925a 07-May-2013 Andreas Sandberg <andreas@sandberg.pp.se>

arm: Make libm5 a dependency of the m5 utility

The m5 utility wasn't relinked properly since libm5.a wasn't a
dependency of the utility. This changeset addresses that issue.

9660:5ca6098b9560 22-Apr-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

kvm: Add support for pseudo-ops on ARM

This changeset adds support for m5 pseudo-ops when running in
kvm-mode. Unfortunately, we can't trap the normal gem5 co-processor
entry in KVM (it doesn't seem to be possible to trap accesses to
non-existing co-processors). We therefore use BZJ instructions to
cause a trap from virtualized mode into gem5. The BZJ instruction is
becomes a normal branch to the gem5 fallback code when running in
simulated mode, which means that this patch does not need to change
the ARM ISA-specific code.

Note: This requires a patched host kernel.

9617:c503acb59e51 26-Mar-2013 Andreas Hansson <andreas.hansson@arm.com>

util: Add a utility script for decoding packet traces

This patch adds a simple Python script that reads the protobuf-encoded
packet traces (not gzipped), and prints them to an ASCII trace file.

The script can also be used as a template for other packet output
formats.

9616:e37965a0b604 26-Mar-2013 Andreas Hansson <andreas.hansson@arm.com>

util: Add a utility script for encoding packet traces

This patch adds a simple Python script that reads a simple ASCII trace
format and encodes it as protobuf output compatible with the traffic
generator.

The script can also be used as a template for other packet input
formats that should be converted to the gem5 packet protobuf format.

9607:a54a4ef0f51d 25-Mar-2013 Andreas Sandberg <andreas@sandberg.pp.se>

x86: Revert [02321b16685f] which breaks m5ops on x86

Changeset 02321b16685f added m5_writefile to m5op_x86.S a second time,
which causes a compilation error on when compiling for x86. This
changeset reverts that changeset and fixes the error.

9527:68154bc0e0ea 15-Feb-2013 Matt Horsnell <Matt.Horsnell@arm.com>

o3: fix tick used for renaming and issue with range selection

Fixes the tick used from rename:
- previously this gathered the tick on leaving rename which was always 1 less
than the dispatch. This conflated the decode ticks when back pressure built
in the pipeline.
- now picks up tick on entry.

Added --store_completions flag:
- will additionally display the store completion tail in the viewer.
- this highlights periods when large numbers of stores are outstanding (>16 LSQ
blocking)

Allows selection by tick range (previously this caused an infinite loop)

9458:02321b16685f 08-Jan-2013 LluĂ­s Vilanova <vilanova@ac.upc.edu>

util: add writefile to m5 util program for x86

9457:a4739b6f799d 08-Jan-2013 LluĂ­s Vilanova <vilanova@ac.upc.edu>

util: add m5_fail op.

Used as a command in full-system scripts helps the user ensure the benchmarks have finished successfully.

For example, one can use:

/path/to/benchmark args || /sbin/m5 fail 1

and thus ensure gem5 will exit with an error if the benchmark fails.

9451:f56816facd25 07-Jan-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

util: Fix stack corruption in the m5 util

The number of arguments specified when calling parse_int_args() in
do_exit() is incorrect. This leads to stack corruption since it causes
writes past the end of the ints array.

9431:8bb372a49e1b 07-Jan-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

arm: Remove the register mapping hack used when copying TCs

In order to see all registers independent of the current CPU mode, the
ARM architecture model uses the magic MISCREG_CPSR_MODE register to
change the register mappings without actually updating the CPU
mode. This hack is no longer needed since the thread context now
provides a flat interface to the register file. This patch replaces
the CPSR_MODE hack with the flat register interface.

9425:a24092160ec7 07-Jan-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

arch: Move the ISA object to a separate section

After making the ISA an independent SimObject, it is serialized
automatically by the Python world. Previously, this just resulted in
an empty ISA section. This patch moves the contents of the ISA to that
section and removes the explicit ISA serialization from the thread
contexts, which makes it behave like a normal SimObject during
serialization.

Note: This patch breaks checkpoint backwards compatibility! Use the
cpt_upgrader.py utility to upgrade old checkpoints to the new format.

9351:4229aedfdd09 03-Nov-2012 Lluis Vilanova <vilanova@ac.upc.edu>

x86, util: add m5_writefile to m5op_x86.S

Committed by: Nilay Vaish

9333:b037944e4908 08-Oct-2012 James Clarkson <james.clarkson@arm.com>

m5: Expose m5 pseudo-instructions to C/C++ via a static library

Updated the util/m5/Makefile.arm so that m5op_arm.S is used to create
a static library - libm5.a. Allowing users to insert m5
psuedo-instructions into their applications for fine-grained
checkpointing, switching cpus or dumping statistics. e.g.

#include <m5op.h>

void foo(){
...
m5_reset_stats(<delay>,<period>)
m5_work_begin(<workid>,<threadid>);
...
m5_work_end(<workid>,<threadid>);
m5_dump_stats(<delay>,<period>);
}

9332:ae2a5329ce96 02-Nov-2012 Dam Sunwoo <dam.sunwoo@arm.com>

ARM: dump stats and process info on context switches

This patch enables dumping statistics and Linux process information on
context switch boundaries (__switch_to() calls) that are used for
Streamline integration (a graphical statistics viewer from ARM).

9293:df7c3f99ebca 15-Oct-2012 Andreas Hansson <andreas.hansson@arm.com>

Mem: Separate the host and guest views of memory backing store

This patch moves all the memory backing store operations from the
independent memory controllers to the global physical memory. The main
reason for this patch is to allow address striping in a future set of
patches, but at this point it already provides some useful
functionality in that it is now possible to change the number of
memory controllers and their address mapping in combination with
checkpointing. Thus, the host and guest view of the memory backing
store are now completely separate.

With this patch, the individual memory controllers are far simpler as
all responsibility for serializing/unserializing is moved to the
physical memory. Currently, the functionality is more or less moved
from AbstractMemory to PhysicalMemory without any major
changes. However, in a future patch the physical memory will also
resolve any ranges that are interleaved and properly assign the
backing store to the memory controllers, and keep the host memory as a
single contigous chunk per address range.

Functionality for future extensions which involve CPU virtualization
also enable the host to get pointers to the backing store.

9257:04dfa1898882 25-Sep-2012 Sascha Bischoff <sascha.bischoff@arm.com>

Util: Added script to semantically diff two config.ini files

This script (util/diff_config.pl) takes two config.ini files and compares them.
It highlights value changes, as well as displaying which parts are unique to
a specific config.ini file. This is useful when trying to replicate an earlier
experiment and when trying to make small changes to an existing configuration.

9252:f350fac86d0f 25-Sep-2012 Djordje Kovacevic <djordje.kovacevic@arm.com>

CPU: Add abandoned instructions to O3 Pipe Viewer

9192:0fd64ccb4c93 07-Sep-2012 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Fix the compiler and platform identification for building on ARM.

9191:54423643dd88 07-Sep-2012 Ali Saidi <Ali.Saidi@ARM.com>

ARM: fix m5 op binary to properly convert 64bit operands

9188:b91e4bec7a76 07-Sep-2012 Djordje Kovacevic <Djordje.Kovacevic@arm.com>

CPU: O3-PipeView.py doesn't display the end of timelines.
Insts' timeline that stretches over multiple lines doesn't always get printed.

9135:64d4c9d8a384 27-Jul-2012 Nathanael Premillieu <npremill@irisa.fr>

util: Fix issues with style checker.

9081:bbb0132f0369 29-Jun-2012 Matt Evans <matt.evans@arm.com>

Style: Make style.py's invalid warning print which file caused the infraction.

9056:0e38b529c387 05-Jun-2012 Ali Saidi <Ali.Saidi@ARM.com>

cpt: update some comments in the checkpoint migration script

9048:950298f29140 05-Jun-2012 Ali Saidi <Ali.Saidi@ARM.com>

sim: Provide a framework for detecting out of data checkpoints and migrating them.

8987:a5add07e066c 10-May-2012 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Update m5op assembly for thumb compilation.

8969:b9f4e3884951 26-Apr-2012 Nilay Vaish <nilay@cs.wisc.edu>

util/regress: Add the missing comma in the list of builds

8968:6d11b01e2c53 25-Apr-2012 Nilay Vaish <nilay@cs.wisc.edu>

Regression: Add a test for x86 timing full system ruby simulation

8816:c80758736323 07-Feb-2012 Gabe Black <gblack@eecs.umich.edu>

m5=>gem5: Make the regression script build gem5.* instead of m5.*

8814:f0fcb53bed25 05-Feb-2012 Gabe Black <gblack@eecs.umich.edu>

Regressions: Fix the regress script when "all" is used.

When the "all" test is specified, the "tests" list should have two elements in
it, "quick" and "long", not a single element "quick,long". The later would be
appropriate as the default for one of the command line options which are split
at commas, but at that point "tests" should already be a list.

8811:be4990a2c764 02-Feb-2012 Andreas Hansson <andreas.hansson@arm.com>

Regression: Update the regress script after SE/FS merge

This patch updates the regress script to reflect the merge of the
SE/FS builds and the new structure of the test directories. It adds a
"mode" flag to the script, that defaults to both se and fs.

8734:79592b2b1d55 31-Jan-2012 Dam Sunwoo <dam.sunwoo@arm.com>

util: implements "writefile" gem5 op to export file from guest to host filesystem

Usage: m5 writefile <filename>

File will be created in the gem5 output folder with the identical filename.
Implementation is largely based on the existing "readfile" functionality.
Currently does not support exporting of folders.

8680:508bbec99e58 11-Jan-2012 Nathan Binkert <nate@binkert.org>

hgfilesize: skip files that have been removed

8659:78f27ef5e919 09-Jan-2012 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add support for initparam m5 op

8652:104bd212ae41 06-Jan-2012 Nathan Binkert <nate@binkert.org>

hooks: Add a hook to limit the size of any individual file

8583:d182a475a668 24-Sep-2011 Steve Reinhardt <steve.reinhardt@amd.com>

style.py: don't die on empty files

8547:5979b029bbb4 13-Sep-2011 Prakash Ramrakhyani <prakash.ramrakhyani@arm.com>

gem5ops: Implement Java JNI for gem5Ops

These ops allow gem5 ops to be called from within java programs like the following:
import jni.gem5Op;

public class HelloWorld {

public static void main(String[] args) {
gem5Op gem5 = new gem5Op();
System.out.println("Rpns0:" + gem5.rpns());
System.out.println("Rpns1:" + gem5.rpns());
}

static {
System.loadLibrary("gem5OpJni");
}
}

When building you need to make sure classpath include gem5OpJni.jar:
javac -classpath $CLASSPATH:/path/to/gem5OpJni.jar HelloWorld.java

and when running you need to make sure both the java and library path are set:
java -classpath $CLASSPATH:/path/to/gem5OpJni.jar -Djava.library.path=/path/to/libgem5OpJni.so HelloWorld

8471:18e560ba1539 15-Jul-2011 Giacomo Gabrielli <Giacomo.Gabrielli@arm.com>

O3: Create a pipeline activity viewer for the O3 CPU model.

Implemented a pipeline activity viewer as a python script (util/o3-pipeview.py)
and modified O3 code base to support an extra trace flag (O3PipeView) for
generating traces to be used as inputs by the tool.

8445:1b4b9c05ad2b 03-Jul-2011 Gabe Black <gblack@eecs.umich.edu>

tracediff: Check for --debug-flags now instead of --trace-flags.

8355:89071b71691e 17-Jun-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Cleanup m5ops usage of r0 and r1 a bit.

8354:26be660e365a 17-Jun-2011 Gedare Bloom <gedare@gwmail.gwu.edu>

ARM: Add m5ops and related support for workbegin() and workend() to ARM ISA.

8333:c1a07ecb6619 02-Jun-2011 Nathan Binkert <nate@binkert.org>

copyright: Add code for finding all copyright blocks and create a COPYING file

The end of the COPYING file was generated with:
% python ./util/find_copyrights.py configs src system tests util

Update -C command line option to spit out COPYING file

8326:8b0eee09deaf 25-May-2011 Nathan Binkert <nate@binkert.org>

style: Make the style hook work in directories other than the root.

8319:6a49ac49fd67 23-May-2011 Steve Reinhardt <steve.reinhardt@amd.com>

util/regress: make default action a more thorough regression

Changed the --variants option to --test-variants and added a new
--compile-variants option for variants that are only compiled
(not tested). The former still defaults to 'opt' and the latter
defaults to 'debug,fast'.

Also changed the behavior when no tests are specified from just
compiling to running the 'quick' tests.

As a result, a plain 'util/regress' invocation will now compile
(but not test) the debug and fast builds, and compile and run the
quick regressions on the opt build. This should be the default
set of tests that are run before committing. Since the nightly
regressions use this same script, this will also be the new
nightly regression behavior.

Test-only regressions can still be done by setting --compile=''.
Compile-only regressions can be done by setting --test=''.

8271:1d3733d3acee 04-May-2011 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add vfpv3 support to native trace.

8265:7939dd0c4ff2 29-Apr-2011 Gabe Black <gblack@eecs.umich.edu>

Util: Replace mkblankimage.sh with the new gem5img.py.

This change replaces the mkblankimage.sh script, used for creating new disk
images, with a new gem5img.py script. The new version is written in python
instead of bash, takes its parameters from command line arguments instead of
prompting for them, and finds a free loopback device dynamically instead of
hardcoding /dev/loop1. The file system used is now optionally configurable,
and the blank image is filled by a "hole" left by lseek and write instead of
literally filling it with zeroes.

The functionality of the new script is broken into subcommands "init",
"mount", "umount", "new", "partition", and "format". "init" creates a new file
of the appropriate size, partitions it, and then formats the first (and only)
new parition. "mount" attaches a new loopback device to the first parition of
the image file and mounts it to the specified mount point. "umount" unmounts
the specified mount point and identifies and cleans up the underlying loopback
device. "new", "partition", and "format" are the individual stages of "init"
but broken out so they can be run individually. That's so an image can be
reinitialized in place if needed.

Two features of the original script are being dropped. The first is the
ability to specify a source directory to copy into the new file system. The
second is the ability to specify a list of commands to run which are expected
to (but not required to) update the permissions of the files in the new fs.
Both of these seem easy enough to do manually, especially given the "mount"
and "umount" commands, that removing them would meaningfully simplify the
script without making it less useful.

8244:95b2bf400ee4 20-Apr-2011 Steve Reinhardt <steve.reinhardt@amd.com>

Change default regression build from 'fast' to 'opt'

8238:d8ec0a7b3f0c 17-Apr-2011 Nathan Binkert <nate@binkert.org>

style: fix all_regions code and remove bogus region type

8237:b83e07b4541d 17-Apr-2011 Nathan Binkert <nate@binkert.org>

style: remove extra debugging print

8236:a660cabc3ea6 17-Apr-2011 Nathan Binkert <nate@binkert.org>

file_types: Make code work in Python 2.4

8229:78bf55f23338 15-Apr-2011 Nathan Binkert <nate@binkert.org>

includes: sort all includes


/gem5/src/arch/alpha/faults.cc
/gem5/src/arch/alpha/isa.hh
/gem5/src/arch/alpha/isa/main.isa
/gem5/src/arch/alpha/linux/system.cc
/gem5/src/arch/alpha/mt.hh
/gem5/src/arch/alpha/process.cc
/gem5/src/arch/alpha/remote_gdb.cc
/gem5/src/arch/alpha/remote_gdb.hh
/gem5/src/arch/alpha/tlb.cc
/gem5/src/arch/alpha/tru64/process.cc
/gem5/src/arch/alpha/types.hh
/gem5/src/arch/alpha/utility.hh
/gem5/src/arch/arm/faults.cc
/gem5/src/arch/arm/faults.hh
/gem5/src/arch/arm/insts/macromem.cc
/gem5/src/arch/arm/insts/static_inst.cc
/gem5/src/arch/arm/insts/vfp.hh
/gem5/src/arch/arm/intregs.hh
/gem5/src/arch/arm/isa/includes.isa
/gem5/src/arch/arm/linux/atag.hh
/gem5/src/arch/arm/linux/linux.cc
/gem5/src/arch/arm/linux/process.cc
/gem5/src/arch/arm/linux/process.hh
/gem5/src/arch/arm/linux/system.cc
/gem5/src/arch/arm/locked_mem.hh
/gem5/src/arch/arm/pagetable.hh
/gem5/src/arch/arm/predecoder.hh
/gem5/src/arch/arm/process.hh
/gem5/src/arch/arm/registers.hh
/gem5/src/arch/arm/remote_gdb.cc
/gem5/src/arch/arm/system.cc
/gem5/src/arch/arm/system.hh
/gem5/src/arch/arm/table_walker.cc
/gem5/src/arch/arm/table_walker.hh
/gem5/src/arch/arm/tlb.hh
/gem5/src/arch/arm/vtophys.hh
/gem5/src/arch/generic/debugfaults.hh
/gem5/src/arch/generic/types.hh
/gem5/src/arch/mips/dsp.cc
/gem5/src/arch/mips/dsp.hh
/gem5/src/arch/mips/isa.cc
/gem5/src/arch/mips/isa.hh
/gem5/src/arch/mips/isa/includes.isa
/gem5/src/arch/mips/isa_traits.hh
/gem5/src/arch/mips/linux/linux.cc
/gem5/src/arch/mips/linux/process.cc
/gem5/src/arch/mips/linux/process.hh
/gem5/src/arch/mips/linux/system.cc
/gem5/src/arch/mips/mt.hh
/gem5/src/arch/mips/process.cc
/gem5/src/arch/mips/process.hh
/gem5/src/arch/mips/system.cc
/gem5/src/arch/mips/system.hh
/gem5/src/arch/mips/tlb.cc
/gem5/src/arch/mips/tlb.hh
/gem5/src/arch/mips/utility.cc
/gem5/src/arch/mips/utility.hh
/gem5/src/arch/mips/vtophys.hh
/gem5/src/arch/power/insts/floating.hh
/gem5/src/arch/power/insts/integer.hh
/gem5/src/arch/power/isa/includes.isa
/gem5/src/arch/power/linux/linux.cc
/gem5/src/arch/power/linux/process.cc
/gem5/src/arch/power/linux/process.hh
/gem5/src/arch/power/process.hh
/gem5/src/arch/power/tlb.hh
/gem5/src/arch/power/vtophys.hh
/gem5/src/arch/sparc/isa.hh
/gem5/src/arch/sparc/isa/includes.isa
/gem5/src/arch/sparc/isa_traits.hh
/gem5/src/arch/sparc/linux/linux.cc
/gem5/src/arch/sparc/linux/process.cc
/gem5/src/arch/sparc/locked_mem.hh
/gem5/src/arch/sparc/mmapped_ipr.hh
/gem5/src/arch/sparc/nativetrace.cc
/gem5/src/arch/sparc/process.cc
/gem5/src/arch/sparc/process.hh
/gem5/src/arch/sparc/remote_gdb.cc
/gem5/src/arch/sparc/remote_gdb.hh
/gem5/src/arch/sparc/solaris/process.cc
/gem5/src/arch/sparc/solaris/solaris.cc
/gem5/src/arch/sparc/system.cc
/gem5/src/arch/sparc/tlb.cc
/gem5/src/arch/sparc/tlb_map.hh
/gem5/src/arch/sparc/types.hh
/gem5/src/arch/sparc/utility.hh
/gem5/src/arch/sparc/vtophys.cc
/gem5/src/arch/x86/bios/acpi.cc
/gem5/src/arch/x86/bios/intelmp.hh
/gem5/src/arch/x86/emulenv.hh
/gem5/src/arch/x86/faults.hh
/gem5/src/arch/x86/insts/badmicroop.cc
/gem5/src/arch/x86/insts/macroop.hh
/gem5/src/arch/x86/insts/microfpop.cc
/gem5/src/arch/x86/insts/microldstop.cc
/gem5/src/arch/x86/insts/micromediaop.cc
/gem5/src/arch/x86/interrupts.cc
/gem5/src/arch/x86/interrupts.hh
/gem5/src/arch/x86/isa.hh
/gem5/src/arch/x86/isa/includes.isa
/gem5/src/arch/x86/linux/linux.cc
/gem5/src/arch/x86/linux/process.cc
/gem5/src/arch/x86/linux/process.hh
/gem5/src/arch/x86/linux/syscalls.cc
/gem5/src/arch/x86/linux/system.cc
/gem5/src/arch/x86/linux/system.hh
/gem5/src/arch/x86/microcode_rom.hh
/gem5/src/arch/x86/nativetrace.cc
/gem5/src/arch/x86/pagetable_walker.cc
/gem5/src/arch/x86/pagetable_walker.hh
/gem5/src/arch/x86/predecoder.hh
/gem5/src/arch/x86/process.cc
/gem5/src/arch/x86/process.hh
/gem5/src/arch/x86/registers.hh
/gem5/src/arch/x86/remote_gdb.cc
/gem5/src/arch/x86/system.cc
/gem5/src/arch/x86/tlb.cc
/gem5/src/arch/x86/tlb.hh
/gem5/src/base/cp_annotate.cc
/gem5/src/base/cp_annotate.hh
/gem5/src/base/cprintf.hh
/gem5/src/base/debug.cc
/gem5/src/base/fast_alloc.hh
/gem5/src/base/fenv.c
/gem5/src/base/hostinfo.cc
/gem5/src/base/inet.hh
/gem5/src/base/inifile.cc
/gem5/src/base/loader/aout_object.cc
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/loader/elf_object.hh
/gem5/src/base/loader/hex_file.cc
/gem5/src/base/loader/object_file.cc
/gem5/src/base/loader/symtab.cc
/gem5/src/base/misc.cc
/gem5/src/base/mysql.hh
/gem5/src/base/output.cc
/gem5/src/base/pollevent.cc
/gem5/src/base/pollevent.hh
/gem5/src/base/range_map.hh
/gem5/src/base/remote_gdb.cc
/gem5/src/base/remote_gdb.hh
/gem5/src/base/socket.cc
/gem5/src/base/statistics.cc
/gem5/src/base/statistics.hh
/gem5/src/base/stats/info.hh
/gem5/src/base/stats/mysql.cc
/gem5/src/base/stats/output.cc
/gem5/src/base/stats/text.cc
/gem5/src/base/stats/text.hh
/gem5/src/base/str.hh
/gem5/src/base/time.hh
/gem5/src/base/trace.cc
/gem5/src/base/vnc/convert.cc
/gem5/src/base/vnc/vncserver.cc
/gem5/src/base/vnc/vncserver.hh
/gem5/src/cpu/activity.cc
/gem5/src/cpu/activity.hh
/gem5/src/cpu/base.cc
/gem5/src/cpu/base.hh
/gem5/src/cpu/base_dyn_inst_impl.hh
/gem5/src/cpu/checker/cpu.cc
/gem5/src/cpu/checker/cpu.hh
/gem5/src/cpu/checker/cpu_impl.hh
/gem5/src/cpu/cpuevent.hh
/gem5/src/cpu/exetrace.cc
/gem5/src/cpu/func_unit.hh
/gem5/src/cpu/inorder/cpu.cc
/gem5/src/cpu/inorder/cpu.hh
/gem5/src/cpu/inorder/first_stage.cc
/gem5/src/cpu/inorder/first_stage.hh
/gem5/src/cpu/inorder/inorder_cpu_builder.cc
/gem5/src/cpu/inorder/inorder_dyn_inst.cc
/gem5/src/cpu/inorder/inorder_dyn_inst.hh
/gem5/src/cpu/inorder/inorder_trace.cc
/gem5/src/cpu/inorder/pipeline_stage.cc
/gem5/src/cpu/inorder/pipeline_stage.hh
/gem5/src/cpu/inorder/pipeline_traits.5stage.cc
/gem5/src/cpu/inorder/pipeline_traits.5stage.hh
/gem5/src/cpu/inorder/pipeline_traits.9stage.cc
/gem5/src/cpu/inorder/pipeline_traits.9stage.hh
/gem5/src/cpu/inorder/pipeline_traits.9stage.smt2.cc
/gem5/src/cpu/inorder/pipeline_traits.9stage.smt2.hh
/gem5/src/cpu/inorder/pipeline_traits.hh
/gem5/src/cpu/inorder/reg_dep_map.cc
/gem5/src/cpu/inorder/resource.cc
/gem5/src/cpu/inorder/resource.hh
/gem5/src/cpu/inorder/resource_pool.9stage.cc
/gem5/src/cpu/inorder/resource_pool.cc
/gem5/src/cpu/inorder/resource_pool.hh
/gem5/src/cpu/inorder/resource_sked.cc
/gem5/src/cpu/inorder/resource_sked.hh
/gem5/src/cpu/inorder/resources/agen_unit.hh
/gem5/src/cpu/inorder/resources/bpred_unit.hh
/gem5/src/cpu/inorder/resources/branch_predictor.hh
/gem5/src/cpu/inorder/resources/cache_unit.cc
/gem5/src/cpu/inorder/resources/cache_unit.hh
/gem5/src/cpu/inorder/resources/decode_unit.hh
/gem5/src/cpu/inorder/resources/execution_unit.cc
/gem5/src/cpu/inorder/resources/execution_unit.hh
/gem5/src/cpu/inorder/resources/fetch_seq_unit.hh
/gem5/src/cpu/inorder/resources/fetch_unit.cc
/gem5/src/cpu/inorder/resources/fetch_unit.hh
/gem5/src/cpu/inorder/resources/graduation_unit.hh
/gem5/src/cpu/inorder/resources/inst_buffer.cc
/gem5/src/cpu/inorder/resources/inst_buffer.hh
/gem5/src/cpu/inorder/resources/mem_dep_unit.hh
/gem5/src/cpu/inorder/resources/mult_div_unit.cc
/gem5/src/cpu/inorder/resources/mult_div_unit.hh
/gem5/src/cpu/inorder/resources/resource_list.hh
/gem5/src/cpu/inorder/resources/tlb_unit.cc
/gem5/src/cpu/inorder/resources/tlb_unit.hh
/gem5/src/cpu/inorder/resources/use_def.cc
/gem5/src/cpu/inorder/resources/use_def.hh
/gem5/src/cpu/inorder/thread_context.cc
/gem5/src/cpu/inorder/thread_context.hh
/gem5/src/cpu/inorder/thread_state.cc
/gem5/src/cpu/intr_control.cc
/gem5/src/cpu/intr_control.hh
/gem5/src/cpu/nativetrace.hh
/gem5/src/cpu/o3/base_dyn_inst.cc
/gem5/src/cpu/o3/bpred_unit.hh
/gem5/src/cpu/o3/bpred_unit_impl.hh
/gem5/src/cpu/o3/checker_builder.cc
/gem5/src/cpu/o3/commit.cc
/gem5/src/cpu/o3/commit.hh
/gem5/src/cpu/o3/commit_impl.hh
/gem5/src/cpu/o3/cpu.cc
/gem5/src/cpu/o3/cpu.hh
/gem5/src/cpu/o3/cpu_policy.hh
/gem5/src/cpu/o3/decode.cc
/gem5/src/cpu/o3/dyn_inst.hh
/gem5/src/cpu/o3/fetch.cc
/gem5/src/cpu/o3/fetch.hh
/gem5/src/cpu/o3/fetch_impl.hh
/gem5/src/cpu/o3/free_list.cc
/gem5/src/cpu/o3/fu_pool.hh
/gem5/src/cpu/o3/iew.cc
/gem5/src/cpu/o3/iew.hh
/gem5/src/cpu/o3/iew_impl.hh
/gem5/src/cpu/o3/impl.hh
/gem5/src/cpu/o3/inst_queue.cc
/gem5/src/cpu/o3/inst_queue.hh
/gem5/src/cpu/o3/isa_specific.hh
/gem5/src/cpu/o3/lsq.hh
/gem5/src/cpu/o3/lsq_unit.hh
/gem5/src/cpu/o3/lsq_unit_impl.hh
/gem5/src/cpu/o3/mem_dep_unit.cc
/gem5/src/cpu/o3/rename.hh
/gem5/src/cpu/o3/scoreboard.hh
/gem5/src/cpu/o3/thread_context.cc
/gem5/src/cpu/o3/thread_context.hh
/gem5/src/cpu/ozone/back_end.hh
/gem5/src/cpu/ozone/back_end_impl.hh
/gem5/src/cpu/ozone/base_dyn_inst.cc
/gem5/src/cpu/ozone/checker_builder.cc
/gem5/src/cpu/ozone/cpu.hh
/gem5/src/cpu/ozone/cpu_builder.cc
/gem5/src/cpu/ozone/cpu_impl.hh
/gem5/src/cpu/ozone/dyn_inst.hh
/gem5/src/cpu/ozone/dyn_inst_impl.hh
/gem5/src/cpu/ozone/ea_list.cc
/gem5/src/cpu/ozone/front_end.hh
/gem5/src/cpu/ozone/front_end_impl.hh
/gem5/src/cpu/ozone/inorder_back_end.hh
/gem5/src/cpu/ozone/inorder_back_end_impl.hh
/gem5/src/cpu/ozone/inst_queue.cc
/gem5/src/cpu/ozone/inst_queue.hh
/gem5/src/cpu/ozone/inst_queue_impl.hh
/gem5/src/cpu/ozone/lsq_unit.cc
/gem5/src/cpu/ozone/lsq_unit.hh
/gem5/src/cpu/ozone/lw_back_end.hh
/gem5/src/cpu/ozone/lw_lsq.cc
/gem5/src/cpu/ozone/lw_lsq.hh
/gem5/src/cpu/ozone/lw_lsq_impl.hh
/gem5/src/cpu/ozone/ozone_base_dyn_inst.cc
/gem5/src/cpu/ozone/ozone_impl.hh
/gem5/src/cpu/ozone/rename_table.cc
/gem5/src/cpu/ozone/simple_base_dyn_inst.cc
/gem5/src/cpu/ozone/simple_cpu_builder.cc
/gem5/src/cpu/ozone/simple_impl.hh
/gem5/src/cpu/pc_event.cc
/gem5/src/cpu/profile.cc
/gem5/src/cpu/profile.hh
/gem5/src/cpu/quiesce_event.cc
/gem5/src/cpu/sched_list.hh
/gem5/src/cpu/simple/atomic.cc
/gem5/src/cpu/simple/base.cc
/gem5/src/cpu/simple/base.hh
/gem5/src/cpu/simple/timing.cc
/gem5/src/cpu/simple/timing.hh
/gem5/src/cpu/simple_thread.hh
/gem5/src/cpu/static_inst.cc
/gem5/src/cpu/static_inst.hh
/gem5/src/cpu/testers/directedtest/InvalidateGenerator.cc
/gem5/src/cpu/testers/directedtest/InvalidateGenerator.hh
/gem5/src/cpu/testers/directedtest/RubyDirectedTester.hh
/gem5/src/cpu/testers/memtest/memtest.cc
/gem5/src/cpu/testers/memtest/memtest.hh
/gem5/src/cpu/testers/networktest/networktest.cc
/gem5/src/cpu/testers/networktest/networktest.hh
/gem5/src/cpu/testers/rubytest/CheckTable.cc
/gem5/src/cpu/testers/rubytest/RubyTester.hh
/gem5/src/cpu/thread_context.hh
/gem5/src/cpu/thread_state.hh
/gem5/src/cpu/trace/opt_cpu.cc
/gem5/src/cpu/trace/reader/ibm_reader.hh
/gem5/src/cpu/trace/reader/itx_reader.hh
/gem5/src/cpu/trace/reader/mem_trace_reader.hh
/gem5/src/cpu/trace/trace_cpu.cc
/gem5/src/dev/alpha/tsunami.cc
/gem5/src/dev/alpha/tsunami_io.cc
/gem5/src/dev/alpha/tsunami_io.hh
/gem5/src/dev/alpha/tsunami_pchip.cc
/gem5/src/dev/arm/amba_device.cc
/gem5/src/dev/arm/amba_device.hh
/gem5/src/dev/arm/kmi.cc
/gem5/src/dev/arm/kmi.hh
/gem5/src/dev/arm/pl111.cc
/gem5/src/dev/disk_image.cc
/gem5/src/dev/disk_image.hh
/gem5/src/dev/etherbus.hh
/gem5/src/dev/etherdump.hh
/gem5/src/dev/etherint.cc
/gem5/src/dev/etherlink.cc
/gem5/src/dev/etherlink.hh
/gem5/src/dev/ethertap.cc
/gem5/src/dev/ethertap.hh
/gem5/src/dev/ide_ctrl.hh
/gem5/src/dev/ide_disk.cc
/gem5/src/dev/ide_disk.hh
/gem5/src/dev/intel_8254_timer.hh
/gem5/src/dev/io_device.cc
/gem5/src/dev/isa_fake.hh
/gem5/src/dev/mc146818.cc
/gem5/src/dev/mips/malta.cc
/gem5/src/dev/mips/malta_cchip.hh
/gem5/src/dev/mips/malta_io.cc
/gem5/src/dev/mips/malta_pchip.cc
/gem5/src/dev/mips/malta_pchip.hh
/gem5/src/dev/pciconfigall.hh
/gem5/src/dev/platform.hh
/gem5/src/dev/ps2.cc
/gem5/src/dev/simple_disk.hh
/gem5/src/dev/sparc/iob.cc
/gem5/src/dev/sparc/iob.hh
/gem5/src/dev/sparc/mm_disk.cc
/gem5/src/dev/sparc/mm_disk.hh
/gem5/src/dev/terminal.cc
/gem5/src/dev/terminal.hh
/gem5/src/dev/x86/i8042.hh
/gem5/src/dev/x86/i82094aa.hh
/gem5/src/dev/x86/i8259.hh
/gem5/src/dev/x86/intdev.hh
/gem5/src/dev/x86/pc.cc
/gem5/src/dev/x86/south_bridge.hh
/gem5/src/kern/kernel_stats.cc
/gem5/src/kern/kernel_stats.hh
/gem5/src/kern/linux/events.cc
/gem5/src/kern/linux/printk.cc
/gem5/src/kern/operatingsystem.cc
/gem5/src/kern/tru64/dump_mbuf.cc
/gem5/src/kern/tru64/printf.cc
/gem5/src/kern/tru64/tru64.hh
/gem5/src/kern/tru64/tru64_events.cc
/gem5/src/mem/bridge.hh
/gem5/src/mem/bus.hh
/gem5/src/mem/cache/base.hh
/gem5/src/mem/cache/blk.hh
/gem5/src/mem/cache/builder.cc
/gem5/src/mem/cache/cache.hh
/gem5/src/mem/cache/cache_impl.hh
/gem5/src/mem/cache/mshr_queue.hh
/gem5/src/mem/cache/prefetch/base.cc
/gem5/src/mem/cache/prefetch/stride.hh
/gem5/src/mem/cache/tags/base.cc
/gem5/src/mem/cache/tags/base.hh
/gem5/src/mem/cache/tags/cacheset.hh
/gem5/src/mem/cache/tags/fa_lru.hh
/gem5/src/mem/cache/tags/iic.cc
/gem5/src/mem/cache/tags/iic.hh
/gem5/src/mem/cache/tags/iic_repl/gen.cc
/gem5/src/mem/cache/tags/iic_repl/repl.hh
/gem5/src/mem/cache/tags/lru.cc
/gem5/src/mem/cache/tags/lru.hh
/gem5/src/mem/packet.cc
/gem5/src/mem/packet.hh
/gem5/src/mem/page_table.cc
/gem5/src/mem/physical.cc
/gem5/src/mem/ruby/buffers/MessageBuffer.hh
/gem5/src/mem/ruby/common/NetDest.cc
/gem5/src/mem/ruby/common/Set.hh
/gem5/src/mem/ruby/filters/GenericBloomFilter.hh
/gem5/src/mem/ruby/network/Network.cc
/gem5/src/mem/ruby/network/garnet/BaseGarnetNetwork.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/InputUnit_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/OutVcState_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/OutputUnit_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/Router_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/RoutingUnit_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/RoutingUnit_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/SWallocator_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/Switch_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.cc
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/VCallocator_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/VirtualChannel_d.hh
/gem5/src/mem/ruby/network/garnet/fixed-pipeline/flitBuffer_d.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/FlexibleConsumer.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.cc
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/NetworkLink.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/Router.cc
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/Router.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.cc
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/VCarbiter.hh
/gem5/src/mem/ruby/network/garnet/flexible-pipeline/flitBuffer.hh
/gem5/src/mem/ruby/network/orion/Allocator/Arbiter.cc
/gem5/src/mem/ruby/network/orion/Allocator/MatrixArbiter.hh
/gem5/src/mem/ruby/network/orion/Allocator/RRArbiter.cc
/gem5/src/mem/ruby/network/orion/Allocator/RRArbiter.hh
/gem5/src/mem/ruby/network/orion/Allocator/SWAllocator.cc
/gem5/src/mem/ruby/network/orion/Allocator/VCAllocator.cc
/gem5/src/mem/ruby/network/orion/Buffer/Buffer.cc
/gem5/src/mem/ruby/network/orion/Buffer/DecoderUnit.hh
/gem5/src/mem/ruby/network/orion/Buffer/OutdrvUnit.cc
/gem5/src/mem/ruby/network/orion/Buffer/PrechargeUnit.cc
/gem5/src/mem/ruby/network/orion/Buffer/Register.cc
/gem5/src/mem/ruby/network/orion/Buffer/SRAM.cc
/gem5/src/mem/ruby/network/orion/Buffer/SRAM.hh
/gem5/src/mem/ruby/network/orion/Buffer/WordlineUnit.cc
/gem5/src/mem/ruby/network/orion/Clock.cc
/gem5/src/mem/ruby/network/orion/ConfigFile.hh
/gem5/src/mem/ruby/network/orion/Crossbar/Crossbar.cc
/gem5/src/mem/ruby/network/orion/Crossbar/MatrixCrossbar.cc
/gem5/src/mem/ruby/network/orion/Crossbar/MatrixCrossbar.hh
/gem5/src/mem/ruby/network/orion/Crossbar/MultreeCrossbar.cc
/gem5/src/mem/ruby/network/orion/Crossbar/MultreeCrossbar.hh
/gem5/src/mem/ruby/network/orion/FlipFlop.cc
/gem5/src/mem/ruby/network/orion/NetworkPower.cc
/gem5/src/mem/ruby/network/orion/NetworkPower.hh
/gem5/src/mem/ruby/network/orion/OrionConfig.cc
/gem5/src/mem/ruby/network/orion/OrionConfig.hh
/gem5/src/mem/ruby/network/orion/OrionLink.cc
/gem5/src/mem/ruby/network/orion/OrionRouter.cc
/gem5/src/mem/ruby/network/orion/TechParameter.cc
/gem5/src/mem/ruby/network/orion/Wire.cc
/gem5/src/mem/ruby/network/orion/orion.hh
/gem5/src/mem/ruby/network/simple/PerfectSwitch.hh
/gem5/src/mem/ruby/network/simple/Switch.cc
/gem5/src/mem/ruby/network/simple/Throttle.cc
/gem5/src/mem/ruby/network/simple/Throttle.hh
/gem5/src/mem/ruby/network/simple/Topology.cc
/gem5/src/mem/ruby/profiler/CacheProfiler.hh
/gem5/src/mem/ruby/profiler/Profiler.cc
/gem5/src/mem/ruby/profiler/Profiler.hh
/gem5/src/mem/ruby/recorder/CacheRecorder.cc
/gem5/src/mem/ruby/recorder/CacheRecorder.hh
/gem5/src/mem/ruby/recorder/Tracer.hh
/gem5/src/mem/ruby/slicc_interface/AbstractEntry.hh
/gem5/src/mem/ruby/slicc_interface/RubyRequest.hh
/gem5/src/mem/ruby/slicc_interface/RubySlicc_ComponentMapping.cc
/gem5/src/mem/ruby/slicc_interface/RubySlicc_includes.hh
/gem5/src/mem/ruby/system/CacheMemory.hh
/gem5/src/mem/ruby/system/RubyPort.cc
/gem5/src/mem/ruby/system/RubyPort.hh
/gem5/src/mem/ruby/system/Sequencer.cc
/gem5/src/mem/ruby/system/Sequencer.hh
/gem5/src/mem/ruby/system/WireBuffer.hh
/gem5/src/mem/slicc/symbols/StateMachine.py
/gem5/src/mem/tport.hh
/gem5/src/mem/translating_port.cc
/gem5/src/mem/vport.hh
/gem5/src/python/swig/core.i
/gem5/src/python/swig/event.i
/gem5/src/python/swig/inet.i
/gem5/src/python/swig/pyobject.cc
/gem5/src/python/swig/sim_object.i
/gem5/src/python/swig/stats.i
/gem5/src/python/swig/system.i
/gem5/src/sim/faults.cc
/gem5/src/sim/faults.hh
/gem5/src/sim/init.cc
/gem5/src/sim/process.cc
/gem5/src/sim/process_impl.hh
/gem5/src/sim/pseudo_inst.cc
/gem5/src/sim/serialize.cc
/gem5/src/sim/serialize.hh
/gem5/src/sim/stat_control.cc
/gem5/src/sim/syscall_emul.cc
/gem5/src/sim/syscall_emul.hh
/gem5/src/sim/system.cc
/gem5/src/sim/tlb.cc
/gem5/src/sim/vptr.hh
/gem5/src/unittest/cprintftest.cc
/gem5/src/unittest/cprintftime.cc
/gem5/src/unittest/initest.cc
/gem5/src/unittest/rangemaptest.cc
/gem5/src/unittest/stattest.cc
/gem5/src/unittest/symtest.cc
ccdrv/devtime.c
m5/m5.c
statetrace/arch/amd64/tracechild.cc
statetrace/arch/amd64/tracechild.hh
statetrace/arch/arm/tracechild.cc
statetrace/arch/arm/tracechild.hh
statetrace/arch/i686/tracechild.cc
statetrace/arch/i686/tracechild.hh
statetrace/arch/sparc/tracechild.cc
statetrace/arch/sparc/tracechild.hh
statetrace/base/regstate.hh
statetrace/base/statetrace.cc
statetrace/base/tracechild.cc
tap/tap.cc
term/term.c
8228:59d3bfa85f16 15-Apr-2011 Nathan Binkert <nate@binkert.org>

style: add sort_includes to the style hook

8227:f3aaa2470b5a 15-Apr-2011 Nathan Binkert <nate@binkert.org>

style: move style verifiers into classes

8226:bca419132437 15-Apr-2011 Nathan Binkert <nate@binkert.org>

style: add a user interface wrapper class
makes things work both with mercurial and stand alone with stdio

8225:ae1182b73fdb 15-Apr-2011 Nathan Binkert <nate@binkert.org>

util: python implementation of a routine that will sort includes
I didn't realize that the perl version existed when I started this,
this version has a lot more features than the previous one since it will
sort and separate python, system, and m5 headers in separate groups, it
will remove duplicates, it will also convert c headers to stl headers

8218:a1b68c63c754 13-Apr-2011 Nathan Binkert <nate@binkert.org>

util: fix the language type function

8166:c40d598146ec 20-Mar-2011 Lisa Hsu <Lisa.Hsu@amd.com>

util: update aggregator to handle x86 checkpoints.
Also, make update to understand some of the newer serialized variables

8127:e64347d17555 12-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Regressions: Make X86_FS run automatically.

8120:e4257cde2d79 04-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

SCons: Turn some scons variables into command line options.

8118:92229cb0cee9 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Stub out the missing i386 version of sendState.

8117:2eec3c58e50e 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Rename i386 to i686.

8116:7739ad28c365 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Fix the i686 detection macro.

8115:bfbec82af250 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Use sys/user.h instead of linux/user.h.

8114:04b349c6dbf9 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Tweak the help for the -nt option.

8113:5c7c804e0645 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Accomodate cross compiling statetrace with scons.

8112:70fffada3270 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Convert the build to scons.

8111:206dbeb6a6ff 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Allow the user to override CXX.

8110:8260f199f7d8 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Get rid of explicit register name handling.

8109:8796e77f2dd6 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Kill the printer functionality in statetrace.

8108:2195c1847f09 03-Mar-2011 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Clean up style.

8053:e6ce478c05d3 22-Feb-2011 Brad Beckmann <Brad.Beckmann@amd.com>

m5: merged in hammer fix

8048:bb35cb393bbb 18-Feb-2011 Korey Sewell <ksewell@umich.edu>

m5: merge inorder/release-notes/make_release changes

8031:96bde0910197 16-Feb-2011 Nathan Binkert <nate@binkert.org>

merge alpha system files into tree

7976:c6ba129c2764 16-Feb-2011 Gabe Black <gblack@eecs.umich.edu>

Util: Get rid of the make_release.py script.

Since we're not doing releases any more we don't really need this script. If
we need it in the future, we can resurrect it from the history.

7914:eee5bb0fb8ea 07-Feb-2011 Brad Beckmann <Brad.Beckmann@amd.com>

m5: added work completed monitoring support

7844:7902269340f8 18-Jan-2011 Ali Saidi <Ali.Saidi@ARM.com>

mkblankimage: bash != sh on many systems and this script needs bash

7834:7107a2f3e53a 13-Jan-2011 Gabe Black <gblack@eecs.umich.edu>

Style checker: Fix a couple bugs in style.py.

7828:817c662677d1 10-Jan-2011 Nathan Binkert <nate@binkert.org>

style: prevent the style hook from aborting uncleanly because of an exception

7827:49b7d40ee88a 10-Jan-2011 Nathan Binkert <nate@binkert.org>

style: clean up style hook code a bit

I've renamed the check_whitespace operation to check_style. You're going to
need to change your .hg/hgrc file. While you're at it, add a pre-qrefresh
hook please.

7807:15553b536bd6 30-Dec-2010 Nathan Binkert <nate@binkert.org>

style: make style hook work with pre-qrefresh and update to use new code
clean up the code a little bit while we're at it.

I recommend that everyone adds the pre-qrefresh hook below since it
will make qref run the style hook and not just commit/qpush

[extensions]
style = <m5 path>/util/style.py

[hooks]
pretxncommit.style = python:style.check_whitespace
pre-qrefresh.style = python:style.check_whitespace

7773:0c67ea5dbb7e 22-Nov-2010 Gabe Black <gblack@eecs.umich.edu>

X86: Remove reserved* from the m5 utility program for x86.

7735:a1a85250e897 08-Nov-2010 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add full-system regressions


/gem5/tests/SConscript
/gem5/tests/configs/realview-simple-atomic.py
/gem5/tests/configs/realview-simple-timing.py
/gem5/tests/long/00.gzip/ref/arm/linux/simple-atomic/config.ini
/gem5/tests/long/00.gzip/ref/arm/linux/simple-atomic/simout
/gem5/tests/long/00.gzip/ref/arm/linux/simple-atomic/stats.txt
/gem5/tests/long/10.mcf/ref/arm/linux/simple-atomic/config.ini
/gem5/tests/long/10.mcf/ref/arm/linux/simple-atomic/simout
/gem5/tests/long/10.mcf/ref/arm/linux/simple-atomic/stats.txt
/gem5/tests/long/10.mcf/ref/arm/linux/simple-timing/config.ini
/gem5/tests/long/10.mcf/ref/arm/linux/simple-timing/simout
/gem5/tests/long/10.mcf/ref/arm/linux/simple-timing/stats.txt
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/config.ini
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/simerr
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/simout
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/stats.txt
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/status
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-atomic/system.terminal
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/config.ini
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/simerr
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/simout
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/stats.txt
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/status
/gem5/tests/quick/10.linux-boot/ref/arm/linux/realview-simple-timing/system.terminal
regress
7732:a2c660de7787 08-Nov-2010 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Add support for M5 ops in the ARM ISA

7517:b69cc0fd934d 12-Aug-2010 Joel Hestness <hestness@cs.utexas.edu>

util/m5/m5.c: ensure readfile() buffer pages are in page table
(and marked dirty, in case that matters) by touching them beforehand

7489:26cd0ad262d0 06-Jul-2010 Steve Reinhardt <steve.reinhardt@amd.com>

util: add a script for testing checkpointing
See comments in util/checkpoint-tester.py for details.

7443:cbedf338fc44 03-Jun-2010 Lisa Hsu <Lisa.Hsu@amd.com>

utils: checkpoint aggregator: some physmem files are too big to read at once,
break it up into reading one page at a time. Also, avoid redoing a aggregating a checkpoint that's
already done.

7414:0a05aa495903 02-Jun-2010 Ali Saidi <Ali.Saidi@ARM.com>

ARM: Fixup native trace support and add some v7/recent stack code

7071:68195a20503b 02-May-2010 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Fix compile problems with the AMD64 version of statetrace.

7047:04d988a19ae9 23-Mar-2010 Nathan Binkert <nate@binkert.org>

regress: add some new options
add -n/--no-exec which doesn't execute scons, but just prints the command line
add -j0 which tries to calculate how many cpus you have
add -D/--build-dir to specify a build directory other than ./build

6928:5bd33f7c26ea 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

m5: Regression Tester Update

This patch includes the necessary regression updates to test the new ruby
configuration system. The patch includes support for multiple ruby protocols
and adds the ruby random tester. The patch removes atomic mode test for
ruby since ruby does not support atomic mode acceses. These tests can be
added back in when ruby supports atomic mode for real.


/gem5/build_opts/ALPHA_SE_MESI_CMP_directory
/gem5/build_opts/ALPHA_SE_MOESI_CMP_directory
/gem5/build_opts/ALPHA_SE_MOESI_CMP_token
/gem5/build_opts/ALPHA_SE_MOESI_hammer
/gem5/src/mem/protocol/MESI_CMP_directory.slicc
/gem5/tests/SConscript
/gem5/tests/configs/memtest-ruby.py
/gem5/tests/configs/ruby_config.py
/gem5/tests/configs/rubytest-ruby.py
/gem5/tests/configs/simple-atomic-ruby.py
/gem5/tests/configs/simple-timing-mp-ruby.py
/gem5/tests/configs/simple-timing-ruby.py
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-atomic-ruby/config.ini
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-atomic-ruby/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-atomic-ruby/simerr
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-atomic-ruby/simout
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-atomic-ruby/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/config.ini
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/simerr
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/simout
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MESI_CMP_directory/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/config.ini
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/simerr
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/simout
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_directory/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/config.ini
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/simerr
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/simout
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_CMP_token/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/config.ini
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/simerr
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/simout
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby-MOESI_hammer/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby/config.ini
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby/simerr
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby/simout
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing-ruby/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-atomic-ruby/config.ini
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-atomic-ruby/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-atomic-ruby/simerr
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-atomic-ruby/simout
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-atomic-ruby/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/config.ini
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/simerr
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/simout
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MESI_CMP_directory/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory/config.ini
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory/simerr
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory/simout
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_directory/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_token/config.ini
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_token/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_token/simerr
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_token/simout
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_CMP_token/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/config.ini
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/simerr
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/simout
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby-MOESI_hammer/stats.txt
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby/config.ini
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby/ruby.stats
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby/simerr
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby/simout
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing-ruby/stats.txt
/gem5/tests/quick/00.hello/ref/mips/linux/simple-atomic-ruby/config.ini
/gem5/tests/quick/00.hello/ref/mips/linux/simple-atomic-ruby/simerr
/gem5/tests/quick/00.hello/ref/mips/linux/simple-atomic-ruby/simout
/gem5/tests/quick/00.hello/ref/mips/linux/simple-atomic-ruby/stats.txt
/gem5/tests/quick/00.hello/ref/mips/linux/simple-timing-ruby/config.ini
/gem5/tests/quick/00.hello/ref/mips/linux/simple-timing-ruby/simerr
/gem5/tests/quick/00.hello/ref/mips/linux/simple-timing-ruby/simout
/gem5/tests/quick/00.hello/ref/mips/linux/simple-timing-ruby/stats.txt
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-atomic-ruby/config.ini
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-atomic-ruby/ruby.stats
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-atomic-ruby/simerr
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-atomic-ruby/simout
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-atomic-ruby/stats.txt
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-timing-ruby/config.ini
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-timing-ruby/ruby.stats
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-timing-ruby/simerr
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-timing-ruby/simout
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-timing-ruby/stats.txt
/gem5/tests/quick/00.hello/ref/x86/linux/simple-atomic-ruby/config.ini
/gem5/tests/quick/00.hello/ref/x86/linux/simple-atomic-ruby/ruby.stats
/gem5/tests/quick/00.hello/ref/x86/linux/simple-atomic-ruby/simerr
/gem5/tests/quick/00.hello/ref/x86/linux/simple-atomic-ruby/simout
/gem5/tests/quick/00.hello/ref/x86/linux/simple-atomic-ruby/stats.txt
/gem5/tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/config.ini
/gem5/tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/ruby.stats
/gem5/tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/simerr
/gem5/tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/simout
/gem5/tests/quick/00.hello/ref/x86/linux/simple-timing-ruby/stats.txt
/gem5/tests/quick/40.m5threads-test-atomic/ref/sparc/linux/simple-atomic-mp-ruby/config.ini
/gem5/tests/quick/40.m5threads-test-atomic/ref/sparc/linux/simple-atomic-mp-ruby/ruby.stats
/gem5/tests/quick/40.m5threads-test-atomic/ref/sparc/linux/simple-atomic-mp-ruby/simerr
/gem5/tests/quick/40.m5threads-test-atomic/ref/sparc/linux/simple-atomic-mp-ruby/simout
/gem5/tests/quick/40.m5threads-test-atomic/ref/sparc/linux/simple-atomic-mp-ruby/stats.txt
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/config.ini
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/ruby.stats
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/simerr
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/simout
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MESI_CMP_directory/stats.txt
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_directory/config.ini
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_directory/ruby.stats
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_directory/simerr
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_directory/simout
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_directory/stats.txt
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_token/config.ini
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_token/ruby.stats
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_token/simerr
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_token/simout
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_CMP_token/stats.txt
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/config.ini
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/ruby.stats
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/simerr
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/simout
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby-MOESI_hammer/stats.txt
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/config.ini
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/ruby.stats
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/simerr
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/simout
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest-ruby/stats.txt
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/config.ini
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/ruby.stats
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/simerr
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/simout
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MESI_CMP_directory/stats.txt
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_directory/config.ini
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_directory/ruby.stats
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_directory/simerr
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_directory/simout
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_directory/stats.txt
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_token/config.ini
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_token/ruby.stats
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_token/simerr
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_token/simout
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_CMP_token/stats.txt
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/config.ini
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/ruby.stats
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/simerr
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/simout
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby-MOESI_hammer/stats.txt
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby/config.ini
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby/ruby.stats
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby/simerr
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby/simout
/gem5/tests/quick/60.rubytest/ref/alpha/linux/rubytest-ruby/stats.txt
/gem5/tests/quick/60.rubytest/test.py
/gem5/tests/run.py
regress
6868:c7eb55c68529 23-Jan-2010 Nathan Binkert <nate@binkert.org>

style_hook: Fix the style hook
Re-enable it and update it for more modern versions of mercurial.

6846:60e0df8086f0 17-Sep-2009 Polina Dudnik <pdudnik@cs.wisc.edu>

Functionality migrated to sequencer.

6825:104115ebc206 21-Aug-2009 pdudnik@gmail.com

[mq]: first_patch

6821:d6284ec9bdf9 20-Jan-2010 Lisa Hsu <Lisa.Hsu@amd.com>

copyrights: add copyright info to the files I added.
checkpoint-aggregator.py was written at UM so I added a UM copyright, agg_se.py was
written at AMD so I added the AMD copyright.

6820:2980bd04e6df 20-Jan-2010 Lisa Hsu <Lisa.Hsu@amd.com>

util: do checkpoint aggregation more cleanly, fix last changeset.
1) Move alpha-specific code out of page_table.cc:serialize().
2) Begin serializing M5_pid and unserializing it, but adding an function to do optional paramIn so that old checkpoints don't need to be fixed up.
3) Fix up alpha startup code so that the unserialized M5_pid value is properly written to DTB_IPR_ASN.
4) Fix the memory unserialize that I forgot somehow in the last changeset.
5) Add in an agg_se.py to handle aggregated checkpoints. --bench foo-bar plus positional arguments foo bar are the only changes in usage from se.py.
Note this aggregation stuff has only been tested for Alpha and nothing else, though it should take a very minimal amount of work to get it to work with another ISA.

6818:5a0e3a283826 18-Jan-2010 Lisa Hsu <Lisa.Hsu@amd.com>

util: make a generic checkpoint aggregator that can aggregate different cpts into one multi-programmed cpt. Make minor changes to serialization/unserialization to get it to work properly. Note that checkpoints were made with a comment at the beginning with // - this must be changed to ## to work properly with the python config parser in the aggregator.

6699:b61018e8d169 28-Oct-2009 Nathan Binkert <nate@binkert.org>

regress: add POWER to regressions

6668:e0f3287fc680 26-Sep-2009 Steve Reinhardt <steve.reinhardt@amd.com>

rundiff: Don't flush stdout until after postcontext is printed.

6657:ef5fae93a3b2 22-Sep-2009 Nathan Binkert <nate@binkert.org>

slicc: Pure python implementation of slicc.
This is simply a translation of the C++ slicc into python with very minimal
reorganization of the code. The output can be verified as nearly identical
by doing a "diff -wBur".

Slicc can easily be run manually by using util/slicc


/gem5/src/mem/protocol/SConscript
/gem5/src/mem/slicc/SConscript
/gem5/src/mem/slicc/__init__.py
/gem5/src/mem/slicc/ast/AST.cc
/gem5/src/mem/slicc/ast/AST.hh
/gem5/src/mem/slicc/ast/AST.py
/gem5/src/mem/slicc/ast/ASTs.hh
/gem5/src/mem/slicc/ast/ActionDeclAST.cc
/gem5/src/mem/slicc/ast/ActionDeclAST.hh
/gem5/src/mem/slicc/ast/ActionDeclAST.py
/gem5/src/mem/slicc/ast/AssignStatementAST.cc
/gem5/src/mem/slicc/ast/AssignStatementAST.hh
/gem5/src/mem/slicc/ast/AssignStatementAST.py
/gem5/src/mem/slicc/ast/CheckAllocateStatementAST.cc
/gem5/src/mem/slicc/ast/CheckAllocateStatementAST.hh
/gem5/src/mem/slicc/ast/CheckAllocateStatementAST.py
/gem5/src/mem/slicc/ast/CheckStopSlotsStatementAST.cc
/gem5/src/mem/slicc/ast/CheckStopSlotsStatementAST.hh
/gem5/src/mem/slicc/ast/CheckStopSlotsStatementAST.py
/gem5/src/mem/slicc/ast/ChipComponentAccessAST.cc
/gem5/src/mem/slicc/ast/ChipComponentAccessAST.hh
/gem5/src/mem/slicc/ast/ChipComponentAccessAST.py
/gem5/src/mem/slicc/ast/CopyHeadStatementAST.cc
/gem5/src/mem/slicc/ast/CopyHeadStatementAST.hh
/gem5/src/mem/slicc/ast/CopyHeadStatementAST.py
/gem5/src/mem/slicc/ast/DeclAST.cc
/gem5/src/mem/slicc/ast/DeclAST.hh
/gem5/src/mem/slicc/ast/DeclAST.py
/gem5/src/mem/slicc/ast/DeclListAST.cc
/gem5/src/mem/slicc/ast/DeclListAST.hh
/gem5/src/mem/slicc/ast/DeclListAST.py
/gem5/src/mem/slicc/ast/EnqueueStatementAST.cc
/gem5/src/mem/slicc/ast/EnqueueStatementAST.hh
/gem5/src/mem/slicc/ast/EnqueueStatementAST.py
/gem5/src/mem/slicc/ast/EnumDeclAST.cc
/gem5/src/mem/slicc/ast/EnumDeclAST.hh
/gem5/src/mem/slicc/ast/EnumDeclAST.py
/gem5/src/mem/slicc/ast/EnumExprAST.cc
/gem5/src/mem/slicc/ast/EnumExprAST.hh
/gem5/src/mem/slicc/ast/EnumExprAST.py
/gem5/src/mem/slicc/ast/ExprAST.cc
/gem5/src/mem/slicc/ast/ExprAST.hh
/gem5/src/mem/slicc/ast/ExprAST.py
/gem5/src/mem/slicc/ast/ExprStatementAST.cc
/gem5/src/mem/slicc/ast/ExprStatementAST.hh
/gem5/src/mem/slicc/ast/ExprStatementAST.py
/gem5/src/mem/slicc/ast/FormalParamAST.cc
/gem5/src/mem/slicc/ast/FormalParamAST.hh
/gem5/src/mem/slicc/ast/FormalParamAST.py
/gem5/src/mem/slicc/ast/FuncCallExprAST.cc
/gem5/src/mem/slicc/ast/FuncCallExprAST.hh
/gem5/src/mem/slicc/ast/FuncCallExprAST.py
/gem5/src/mem/slicc/ast/FuncDeclAST.cc
/gem5/src/mem/slicc/ast/FuncDeclAST.hh
/gem5/src/mem/slicc/ast/FuncDeclAST.py
/gem5/src/mem/slicc/ast/IfStatementAST.cc
/gem5/src/mem/slicc/ast/IfStatementAST.hh
/gem5/src/mem/slicc/ast/IfStatementAST.py
/gem5/src/mem/slicc/ast/InPortDeclAST.cc
/gem5/src/mem/slicc/ast/InPortDeclAST.hh
/gem5/src/mem/slicc/ast/InPortDeclAST.py
/gem5/src/mem/slicc/ast/InfixOperatorExprAST.cc
/gem5/src/mem/slicc/ast/InfixOperatorExprAST.hh
/gem5/src/mem/slicc/ast/InfixOperatorExprAST.py
/gem5/src/mem/slicc/ast/LiteralExprAST.cc
/gem5/src/mem/slicc/ast/LiteralExprAST.hh
/gem5/src/mem/slicc/ast/LiteralExprAST.py
/gem5/src/mem/slicc/ast/Location.cc
/gem5/src/mem/slicc/ast/Location.hh
/gem5/src/mem/slicc/ast/MachineAST.cc
/gem5/src/mem/slicc/ast/MachineAST.hh
/gem5/src/mem/slicc/ast/MachineAST.py
/gem5/src/mem/slicc/ast/MemberExprAST.cc
/gem5/src/mem/slicc/ast/MemberExprAST.hh
/gem5/src/mem/slicc/ast/MemberExprAST.py
/gem5/src/mem/slicc/ast/MethodCallExprAST.cc
/gem5/src/mem/slicc/ast/MethodCallExprAST.hh
/gem5/src/mem/slicc/ast/MethodCallExprAST.py
/gem5/src/mem/slicc/ast/NewExprAST.cc
/gem5/src/mem/slicc/ast/NewExprAST.hh
/gem5/src/mem/slicc/ast/NewExprAST.py
/gem5/src/mem/slicc/ast/ObjDeclAST.cc
/gem5/src/mem/slicc/ast/ObjDeclAST.hh
/gem5/src/mem/slicc/ast/ObjDeclAST.py
/gem5/src/mem/slicc/ast/OutPortDeclAST.cc
/gem5/src/mem/slicc/ast/OutPortDeclAST.hh
/gem5/src/mem/slicc/ast/OutPortDeclAST.py
/gem5/src/mem/slicc/ast/PairAST.cc
/gem5/src/mem/slicc/ast/PairAST.hh
/gem5/src/mem/slicc/ast/PairAST.py
/gem5/src/mem/slicc/ast/PairListAST.cc
/gem5/src/mem/slicc/ast/PairListAST.hh
/gem5/src/mem/slicc/ast/PairListAST.py
/gem5/src/mem/slicc/ast/PeekStatementAST.cc
/gem5/src/mem/slicc/ast/PeekStatementAST.hh
/gem5/src/mem/slicc/ast/PeekStatementAST.py
/gem5/src/mem/slicc/ast/ReturnStatementAST.cc
/gem5/src/mem/slicc/ast/ReturnStatementAST.hh
/gem5/src/mem/slicc/ast/ReturnStatementAST.py
/gem5/src/mem/slicc/ast/StatementAST.cc
/gem5/src/mem/slicc/ast/StatementAST.hh
/gem5/src/mem/slicc/ast/StatementAST.py
/gem5/src/mem/slicc/ast/StatementListAST.cc
/gem5/src/mem/slicc/ast/StatementListAST.hh
/gem5/src/mem/slicc/ast/StatementListAST.py
/gem5/src/mem/slicc/ast/TransitionDeclAST.cc
/gem5/src/mem/slicc/ast/TransitionDeclAST.hh
/gem5/src/mem/slicc/ast/TransitionDeclAST.py
/gem5/src/mem/slicc/ast/TypeAST.cc
/gem5/src/mem/slicc/ast/TypeAST.hh
/gem5/src/mem/slicc/ast/TypeAST.py
/gem5/src/mem/slicc/ast/TypeDeclAST.cc
/gem5/src/mem/slicc/ast/TypeDeclAST.hh
/gem5/src/mem/slicc/ast/TypeDeclAST.py
/gem5/src/mem/slicc/ast/TypeFieldAST.cc
/gem5/src/mem/slicc/ast/TypeFieldAST.hh
/gem5/src/mem/slicc/ast/TypeFieldAST.py
/gem5/src/mem/slicc/ast/TypeFieldEnumAST.cc
/gem5/src/mem/slicc/ast/TypeFieldEnumAST.hh
/gem5/src/mem/slicc/ast/TypeFieldEnumAST.py
/gem5/src/mem/slicc/ast/TypeFieldMemberAST.cc
/gem5/src/mem/slicc/ast/TypeFieldMemberAST.hh
/gem5/src/mem/slicc/ast/TypeFieldMemberAST.py
/gem5/src/mem/slicc/ast/TypeFieldMethodAST.cc
/gem5/src/mem/slicc/ast/TypeFieldMethodAST.hh
/gem5/src/mem/slicc/ast/TypeFieldMethodAST.py
/gem5/src/mem/slicc/ast/VarExprAST.cc
/gem5/src/mem/slicc/ast/VarExprAST.hh
/gem5/src/mem/slicc/ast/VarExprAST.py
/gem5/src/mem/slicc/ast/__init__.py
/gem5/src/mem/slicc/generate/__init__.py
/gem5/src/mem/slicc/generate/dot.py
/gem5/src/mem/slicc/generate/html.py
/gem5/src/mem/slicc/generate/tex.py
/gem5/src/mem/slicc/generator/fileio.cc
/gem5/src/mem/slicc/generator/fileio.hh
/gem5/src/mem/slicc/generator/html_gen.cc
/gem5/src/mem/slicc/generator/html_gen.hh
/gem5/src/mem/slicc/generator/mif_gen.cc
/gem5/src/mem/slicc/generator/mif_gen.hh
/gem5/src/mem/slicc/main.cc
/gem5/src/mem/slicc/main.hh
/gem5/src/mem/slicc/main.py
/gem5/src/mem/slicc/parser.py
/gem5/src/mem/slicc/parser/lexer.ll
/gem5/src/mem/slicc/parser/parser.py
/gem5/src/mem/slicc/parser/parser.yy
/gem5/src/mem/slicc/slicc_global.hh
/gem5/src/mem/slicc/symbols/Action.hh
/gem5/src/mem/slicc/symbols/Action.py
/gem5/src/mem/slicc/symbols/Event.hh
/gem5/src/mem/slicc/symbols/Event.py
/gem5/src/mem/slicc/symbols/Func.cc
/gem5/src/mem/slicc/symbols/Func.hh
/gem5/src/mem/slicc/symbols/Func.py
/gem5/src/mem/slicc/symbols/State.hh
/gem5/src/mem/slicc/symbols/State.py
/gem5/src/mem/slicc/symbols/StateMachine.cc
/gem5/src/mem/slicc/symbols/StateMachine.hh
/gem5/src/mem/slicc/symbols/StateMachine.py
/gem5/src/mem/slicc/symbols/Symbol.cc
/gem5/src/mem/slicc/symbols/Symbol.hh
/gem5/src/mem/slicc/symbols/Symbol.py
/gem5/src/mem/slicc/symbols/SymbolTable.cc
/gem5/src/mem/slicc/symbols/SymbolTable.hh
/gem5/src/mem/slicc/symbols/SymbolTable.py
/gem5/src/mem/slicc/symbols/Transition.cc
/gem5/src/mem/slicc/symbols/Transition.hh
/gem5/src/mem/slicc/symbols/Transition.py
/gem5/src/mem/slicc/symbols/Type.cc
/gem5/src/mem/slicc/symbols/Type.hh
/gem5/src/mem/slicc/symbols/Type.py
/gem5/src/mem/slicc/symbols/Var.cc
/gem5/src/mem/slicc/symbols/Var.hh
/gem5/src/mem/slicc/symbols/Var.py
/gem5/src/mem/slicc/symbols/__init__.py
/gem5/src/mem/slicc/util.py
slicc
6422:b35ef789e6f6 29-Jul-2009 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Make sure the current state is loaded to print the initial stack frame.
The early call to child->step() was removed earlier because it confused the
new differences-only protocol ARM sendState() was using. It's necessary that
that gets called at least once before attempting to print the initial stack
frame, though, because otherwise statetrace doesn't know what the stack
pointer is. By putting the first call to child->step() in a common spot, both
needs are met.

6417:fbc8d1e996d9 29-Jul-2009 Gabe Black <gblack@eecs.umich.edu>

ARM: Make sure the target process doesn't run away from statetrace.

6411:cf69f61d8f24 27-Jul-2009 Gabe Black <gblack@eecs.umich.edu>

ARM: Only send information that changed between statetrace and M5.

6408:f61a3b66a5f5 27-Jul-2009 Gabe Black <gblack@eecs.umich.edu>

imported patch statetracehost.patch

6407:10f05e881153 27-Jul-2009 Ali Saidi <saidi@eecs.umich.edu>

ARM: Add ARM support to statetrace.

6406:91d6a6c9a66b 27-Jul-2009 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Fix up headers.

6277:f67c9be3cd57 02-Jul-2009 Nathan Binkert <nate@binkert.org>

stats: fix usage of jobfile

6257:1ab29409ee29 23-Jun-2009 Gabe Black <gblack@eecs.umich.edu>

makerelease: Don't hide x86 any more.

6256:5e8d93b5d71a 23-Jun-2009 Gabe Black <gblack@eecs.umich.edu>

Regressions: Build ARM_SE regressions by default.

6219:0145a40f6b27 23-May-2009 Steve Reinhardt <steve.reinhardt@amd.com>

util: mkblankimage.sh should be executable

6216:2f4020838149 17-May-2009 Nathan Binkert <nate@binkert.org>

includes: sort includes again


/gem5/src/arch/alpha/isa_traits.hh
/gem5/src/arch/alpha/predecoder.hh
/gem5/src/arch/arm/utility.hh
/gem5/src/arch/mips/dsp.hh
/gem5/src/arch/mips/isa_traits.hh
/gem5/src/arch/mips/utility.hh
/gem5/src/arch/sparc/isa_traits.hh
/gem5/src/arch/sparc/predecoder.hh
/gem5/src/arch/sparc/regfile.hh
/gem5/src/arch/x86/bios/acpi.hh
/gem5/src/arch/x86/bios/e820.hh
/gem5/src/arch/x86/bios/intelmp.cc
/gem5/src/arch/x86/bios/smbios.cc
/gem5/src/arch/x86/bios/smbios.hh
/gem5/src/arch/x86/intmessage.hh
/gem5/src/arch/x86/miscregfile.hh
/gem5/src/arch/x86/pagetable.hh
/gem5/src/arch/x86/pagetable_walker.hh
/gem5/src/arch/x86/predecoder.cc
/gem5/src/arch/x86/regfile.hh
/gem5/src/arch/x86/utility.hh
/gem5/src/arch/x86/x86_traits.hh
/gem5/src/base/cp_annotate.hh
/gem5/src/base/crc.cc
/gem5/src/base/inet.cc
/gem5/src/base/inet.hh
/gem5/src/base/intmath.hh
/gem5/src/base/misc.cc
/gem5/src/base/pollevent.cc
/gem5/src/base/res_list.hh
/gem5/src/base/statistics.hh
/gem5/src/base/stats/mysql.cc
/gem5/src/base/stats/output.cc
/gem5/src/cpu/exetrace.hh
/gem5/src/cpu/inorder/comm.hh
/gem5/src/cpu/inorder/inorder_trace.hh
/gem5/src/cpu/inteltrace.hh
/gem5/src/cpu/legiontrace.hh
/gem5/src/cpu/nativetrace.hh
/gem5/src/cpu/o3/2bit_local_pred.hh
/gem5/src/cpu/o3/bpred_unit.hh
/gem5/src/cpu/o3/comm.hh
/gem5/src/cpu/o3/fetch_impl.hh
/gem5/src/cpu/o3/inst_queue.hh
/gem5/src/cpu/o3/ras.hh
/gem5/src/cpu/o3/store_set.hh
/gem5/src/cpu/o3/tournament_pred.hh
/gem5/src/cpu/ozone/ea_list.hh
/gem5/src/cpu/ozone/inst_queue.hh
/gem5/src/cpu/ozone/null_predictor.hh
/gem5/src/cpu/simple/base.cc
/gem5/src/cpu/simple_thread.hh
/gem5/src/cpu/static_inst.hh
/gem5/src/cpu/thread_context.hh
/gem5/src/dev/alpha/backdoor.hh
/gem5/src/dev/etherlink.hh
/gem5/src/dev/etherpkt.hh
/gem5/src/dev/intel_8254_timer.hh
/gem5/src/dev/mips/backdoor.hh
/gem5/src/dev/ns_gige.cc
/gem5/src/dev/sinic.cc
/gem5/src/dev/x86/intdev.hh
/gem5/src/dev/x86/south_bridge.cc
/gem5/src/kern/tru64/dump_mbuf.cc
/gem5/src/kern/tru64/mbuf.hh
/gem5/src/mem/bus.hh
/gem5/src/mem/cache/cache_impl.hh
/gem5/src/mem/cache/mshr.cc
/gem5/src/mem/cache/tags/fa_lru.cc
/gem5/src/mem/cache/tags/fa_lru.hh
/gem5/src/mem/cache/tags/iic_repl/gen.cc
/gem5/src/mem/cache/tags/iic_repl/repl.hh
/gem5/src/mem/cache/tags/lru.hh
/gem5/src/mem/gems_common/util.cc
/gem5/src/mem/packet.hh
/gem5/src/mem/page_table.hh
/gem5/src/mem/physical.cc
/gem5/src/mem/ruby/common/Debug.hh
/gem5/src/mem/ruby/common/Global.hh
/gem5/src/mem/ruby/network/orion/power_ll.cc
/gem5/src/mem/ruby/network/orion/power_utils.cc
/gem5/src/mem/rubymem.cc
/gem5/src/mem/slicc/slicc_global.hh
/gem5/src/python/swig/core.i
/gem5/src/python/swig/event.i
/gem5/src/python/swig/pyobject.hh
/gem5/src/python/swig/sim_object.i
/gem5/src/sim/arguments.hh
/gem5/src/sim/eventq.hh
/gem5/src/sim/init.cc
/gem5/src/sim/insttracer.hh
/gem5/src/sim/sim_object.cc
/gem5/src/sim/simulate.cc
/gem5/src/sim/syscall_emul.hh
/gem5/src/unittest/rangemaptest.cc
/gem5/src/unittest/rangemultimaptest.cc
statetrace/arch/tracechild_amd64.hh
statetrace/arch/tracechild_i386.hh
statetrace/arch/tracechild_sparc.hh
6115:7c6971582cd4 21-Apr-2009 Steve Reinhardt <steve.reinhardt@amd.com>

rundiff: flush stdout after each diff

6021:6df0633d883b 09-Apr-2009 Nathan Binkert <nate@binkert.org>

style: fix style hook for some newer versions of mercurial.

6020:0647c8b31a99 06-Apr-2009 Gabe Black <gblack@eecs.umich.edu>

Merge ARM into the head. ARM will compile but may not actually work.


/gem5/ext/dnet/dnet/addr.h
/gem5/ext/dnet/dnet/arp.h
/gem5/ext/dnet/dnet/blob.h
/gem5/ext/dnet/dnet/eth.h
/gem5/ext/dnet/dnet/fw.h
/gem5/ext/dnet/dnet/icmp.h
/gem5/ext/dnet/dnet/intf.h
/gem5/ext/dnet/dnet/ip.h
/gem5/ext/dnet/dnet/ip6.h
/gem5/ext/dnet/dnet/os.h
/gem5/ext/dnet/dnet/rand.h
/gem5/ext/dnet/dnet/route.h
/gem5/ext/dnet/dnet/tcp.h
/gem5/ext/dnet/dnet/udp.h
/gem5/src/arch/alpha/syscallreturn.hh
/gem5/src/arch/arm/ArmTLB.py
/gem5/src/arch/arm/isa_traits.hh
/gem5/src/arch/arm/linux/process.cc
/gem5/src/arch/arm/process.cc
/gem5/src/arch/arm/process.hh
/gem5/src/arch/arm/regfile/regfile.cc
/gem5/src/arch/arm/regfile/regfile.hh
/gem5/src/arch/arm/syscallreturn.hh
/gem5/src/arch/arm/tlb.cc
/gem5/src/arch/arm/tlb.hh
/gem5/src/arch/mips/syscallreturn.hh
/gem5/src/arch/sparc/syscallreturn.hh
/gem5/src/arch/x86/isa/insts/general_purpose/processor_information.py
/gem5/src/arch/x86/smbios.cc
/gem5/src/arch/x86/smbios.hh
/gem5/src/arch/x86/syscallreturn.hh
/gem5/src/base/annotate.cc
/gem5/src/base/annotate.hh
/gem5/src/base/stats/statdb.cc
/gem5/src/base/stats/statdb.hh
/gem5/src/cpu/o3/alpha/cpu.cc
/gem5/src/cpu/o3/alpha/cpu.hh
/gem5/src/cpu/o3/alpha/cpu_builder.cc
/gem5/src/cpu/o3/alpha/cpu_impl.hh
/gem5/src/cpu/o3/alpha/dyn_inst.cc
/gem5/src/cpu/o3/alpha/dyn_inst.hh
/gem5/src/cpu/o3/alpha/dyn_inst_impl.hh
/gem5/src/cpu/o3/alpha/impl.hh
/gem5/src/cpu/o3/alpha/params.hh
/gem5/src/cpu/o3/alpha/thread_context.cc
/gem5/src/cpu/o3/alpha/thread_context.hh
/gem5/src/cpu/o3/mips/cpu.cc
/gem5/src/cpu/o3/mips/cpu.hh
/gem5/src/cpu/o3/mips/cpu_builder.cc
/gem5/src/cpu/o3/mips/cpu_impl.hh
/gem5/src/cpu/o3/mips/dyn_inst.cc
/gem5/src/cpu/o3/mips/dyn_inst.hh
/gem5/src/cpu/o3/mips/dyn_inst_impl.hh
/gem5/src/cpu/o3/mips/impl.hh
/gem5/src/cpu/o3/mips/params.hh
/gem5/src/cpu/o3/mips/thread_context.cc
/gem5/src/cpu/o3/mips/thread_context.hh
/gem5/src/cpu/o3/params.hh
/gem5/src/cpu/o3/sparc/cpu.cc
/gem5/src/cpu/o3/sparc/cpu.hh
/gem5/src/cpu/o3/sparc/cpu_builder.cc
/gem5/src/cpu/o3/sparc/cpu_impl.hh
/gem5/src/cpu/o3/sparc/dyn_inst.cc
/gem5/src/cpu/o3/sparc/dyn_inst.hh
/gem5/src/cpu/o3/sparc/dyn_inst_impl.hh
/gem5/src/cpu/o3/sparc/impl.hh
/gem5/src/cpu/o3/sparc/params.hh
/gem5/src/cpu/o3/sparc/thread_context.cc
/gem5/src/cpu/o3/sparc/thread_context.hh
/gem5/src/dev/SimConsole.py
/gem5/src/dev/alpha/AlphaConsole.py
/gem5/src/dev/alpha/console.cc
/gem5/src/dev/alpha/console.hh
/gem5/src/dev/mips/MipsConsole.py
/gem5/src/dev/mips/console.cc
/gem5/src/dev/mips/console.hh
/gem5/src/dev/pitreg.h
/gem5/src/dev/simconsole.cc
/gem5/src/dev/simconsole.hh
/gem5/src/dev/x86/Opteron.py
/gem5/src/dev/x86/opteron.cc
/gem5/src/dev/x86/opteron.hh
/gem5/src/mem/cache/tags/split.cc
/gem5/src/mem/cache/tags/split.hh
/gem5/src/mem/cache/tags/split_blk.hh
/gem5/src/mem/cache/tags/split_lifo.cc
/gem5/src/mem/cache/tags/split_lifo.hh
/gem5/src/mem/cache/tags/split_lru.cc
/gem5/src/mem/cache/tags/split_lru.hh
/gem5/src/mem/config/prefetch.hh
/gem5/src/python/generate.py
/gem5/src/python/m5/attrdict.py
/gem5/src/python/m5/multidict.py
/gem5/src/python/m5/util.py
/gem5/src/python/swig/init.hh
/gem5/src/unittest/Makefile
/gem5/src/unittest/initest.ini
/gem5/src/unittest/lru_test.cc
/gem5/src/unittest/offtest.cc
/gem5/src/unittest/paramtest.cc
/gem5/src/unittest/rangemaptest2.cc
/gem5/src/unittest/sized_test.cc
/gem5/src/unittest/tracetest.cc
/gem5/tests/long/00.gzip/ref/alpha/tru64/o3-timing/m5stats.txt
/gem5/tests/long/00.gzip/ref/alpha/tru64/o3-timing/stderr
/gem5/tests/long/00.gzip/ref/alpha/tru64/o3-timing/stdout
/gem5/tests/long/00.gzip/ref/alpha/tru64/simple-atomic/m5stats.txt
/gem5/tests/long/00.gzip/ref/alpha/tru64/simple-atomic/stderr
/gem5/tests/long/00.gzip/ref/alpha/tru64/simple-atomic/stdout
/gem5/tests/long/00.gzip/ref/alpha/tru64/simple-timing/m5stats.txt
/gem5/tests/long/00.gzip/ref/alpha/tru64/simple-timing/stderr
/gem5/tests/long/00.gzip/ref/alpha/tru64/simple-timing/stdout
/gem5/tests/long/00.gzip/ref/sparc/linux/o3-timing/m5stats.txt
/gem5/tests/long/00.gzip/ref/sparc/linux/o3-timing/stderr
/gem5/tests/long/00.gzip/ref/sparc/linux/o3-timing/stdout
/gem5/tests/long/00.gzip/ref/sparc/linux/simple-atomic/m5stats.txt
/gem5/tests/long/00.gzip/ref/sparc/linux/simple-atomic/stderr
/gem5/tests/long/00.gzip/ref/sparc/linux/simple-atomic/stdout
/gem5/tests/long/00.gzip/ref/sparc/linux/simple-timing/m5stats.txt
/gem5/tests/long/00.gzip/ref/sparc/linux/simple-timing/stderr
/gem5/tests/long/00.gzip/ref/sparc/linux/simple-timing/stdout
/gem5/tests/long/00.gzip/ref/x86/linux/simple-atomic/m5stats.txt
/gem5/tests/long/00.gzip/ref/x86/linux/simple-atomic/stderr
/gem5/tests/long/00.gzip/ref/x86/linux/simple-atomic/stdout
/gem5/tests/long/10.mcf/ref/sparc/linux/simple-atomic/m5stats.txt
/gem5/tests/long/10.mcf/ref/sparc/linux/simple-atomic/stderr
/gem5/tests/long/10.mcf/ref/sparc/linux/simple-atomic/stdout
/gem5/tests/long/10.mcf/ref/sparc/linux/simple-timing/m5stats.txt
/gem5/tests/long/10.mcf/ref/sparc/linux/simple-timing/stderr
/gem5/tests/long/10.mcf/ref/sparc/linux/simple-timing/stdout
/gem5/tests/long/10.mcf/ref/x86/linux/simple-atomic/m5stats.txt
/gem5/tests/long/10.mcf/ref/x86/linux/simple-atomic/stderr
/gem5/tests/long/10.mcf/ref/x86/linux/simple-atomic/stdout
/gem5/tests/long/20.parser/ref/x86/linux/simple-atomic/m5stats.txt
/gem5/tests/long/20.parser/ref/x86/linux/simple-atomic/stderr
/gem5/tests/long/20.parser/ref/x86/linux/simple-atomic/stdout
/gem5/tests/long/30.eon/ref/alpha/tru64/o3-timing/m5stats.txt
/gem5/tests/long/30.eon/ref/alpha/tru64/o3-timing/stderr
/gem5/tests/long/30.eon/ref/alpha/tru64/o3-timing/stdout
/gem5/tests/long/30.eon/ref/alpha/tru64/simple-atomic/m5stats.txt
/gem5/tests/long/30.eon/ref/alpha/tru64/simple-atomic/stderr
/gem5/tests/long/30.eon/ref/alpha/tru64/simple-atomic/stdout
/gem5/tests/long/30.eon/ref/alpha/tru64/simple-timing/m5stats.txt
/gem5/tests/long/30.eon/ref/alpha/tru64/simple-timing/stderr
/gem5/tests/long/30.eon/ref/alpha/tru64/simple-timing/stdout
/gem5/tests/long/40.perlbmk/ref/alpha/tru64/simple-atomic/m5stats.txt
/gem5/tests/long/40.perlbmk/ref/alpha/tru64/simple-atomic/stderr
/gem5/tests/long/40.perlbmk/ref/alpha/tru64/simple-atomic/stdout
/gem5/tests/long/40.perlbmk/ref/alpha/tru64/simple-timing/m5stats.txt
/gem5/tests/long/40.perlbmk/ref/alpha/tru64/simple-timing/stderr
/gem5/tests/long/40.perlbmk/ref/alpha/tru64/simple-timing/stdout
/gem5/tests/long/50.vortex/ref/alpha/tru64/o3-timing/m5stats.txt
/gem5/tests/long/50.vortex/ref/alpha/tru64/o3-timing/stderr
/gem5/tests/long/50.vortex/ref/alpha/tru64/o3-timing/stdout
/gem5/tests/long/50.vortex/ref/alpha/tru64/simple-atomic/m5stats.txt
/gem5/tests/long/50.vortex/ref/alpha/tru64/simple-atomic/stderr
/gem5/tests/long/50.vortex/ref/alpha/tru64/simple-atomic/stdout
/gem5/tests/long/50.vortex/ref/alpha/tru64/simple-timing/m5stats.txt
/gem5/tests/long/50.vortex/ref/alpha/tru64/simple-timing/stderr
/gem5/tests/long/50.vortex/ref/alpha/tru64/simple-timing/stdout
/gem5/tests/long/50.vortex/ref/sparc/linux/simple-atomic/m5stats.txt
/gem5/tests/long/50.vortex/ref/sparc/linux/simple-atomic/stderr
/gem5/tests/long/50.vortex/ref/sparc/linux/simple-atomic/stdout
/gem5/tests/long/50.vortex/ref/sparc/linux/simple-timing/m5stats.txt
/gem5/tests/long/50.vortex/ref/sparc/linux/simple-timing/stderr
/gem5/tests/long/50.vortex/ref/sparc/linux/simple-timing/stdout
/gem5/tests/long/60.bzip2/ref/alpha/tru64/o3-timing/m5stats.txt
/gem5/tests/long/60.bzip2/ref/alpha/tru64/o3-timing/stderr
/gem5/tests/long/60.bzip2/ref/alpha/tru64/o3-timing/stdout
/gem5/tests/long/60.bzip2/ref/alpha/tru64/simple-atomic/m5stats.txt
/gem5/tests/long/60.bzip2/ref/alpha/tru64/simple-atomic/stderr
/gem5/tests/long/60.bzip2/ref/alpha/tru64/simple-atomic/stdout
/gem5/tests/long/60.bzip2/ref/alpha/tru64/simple-timing/m5stats.txt
/gem5/tests/long/60.bzip2/ref/alpha/tru64/simple-timing/stderr
/gem5/tests/long/60.bzip2/ref/alpha/tru64/simple-timing/stdout
/gem5/tests/long/60.bzip2/ref/x86/linux/simple-atomic/m5stats.txt
/gem5/tests/long/60.bzip2/ref/x86/linux/simple-atomic/stderr
/gem5/tests/long/60.bzip2/ref/x86/linux/simple-atomic/stdout
/gem5/tests/long/70.twolf/ref/alpha/tru64/o3-timing/m5stats.txt
/gem5/tests/long/70.twolf/ref/alpha/tru64/o3-timing/stderr
/gem5/tests/long/70.twolf/ref/alpha/tru64/o3-timing/stdout
/gem5/tests/long/70.twolf/ref/alpha/tru64/simple-atomic/m5stats.txt
/gem5/tests/long/70.twolf/ref/alpha/tru64/simple-atomic/stderr
/gem5/tests/long/70.twolf/ref/alpha/tru64/simple-atomic/stdout
/gem5/tests/long/70.twolf/ref/alpha/tru64/simple-timing/m5stats.txt
/gem5/tests/long/70.twolf/ref/alpha/tru64/simple-timing/stderr
/gem5/tests/long/70.twolf/ref/alpha/tru64/simple-timing/stdout
/gem5/tests/long/70.twolf/ref/sparc/linux/simple-atomic/m5stats.txt
/gem5/tests/long/70.twolf/ref/sparc/linux/simple-atomic/stderr
/gem5/tests/long/70.twolf/ref/sparc/linux/simple-atomic/stdout
/gem5/tests/long/70.twolf/ref/sparc/linux/simple-timing/m5stats.txt
/gem5/tests/long/70.twolf/ref/sparc/linux/simple-timing/stderr
/gem5/tests/long/70.twolf/ref/sparc/linux/simple-timing/stdout
/gem5/tests/long/70.twolf/ref/x86/linux/simple-atomic/m5stats.txt
/gem5/tests/long/70.twolf/ref/x86/linux/simple-atomic/stderr
/gem5/tests/long/70.twolf/ref/x86/linux/simple-atomic/stdout
/gem5/tests/long/80.solaris-boot/ref/sparc/solaris/t1000-simple-atomic/console.system.t1000.hconsole
/gem5/tests/long/80.solaris-boot/ref/sparc/solaris/t1000-simple-atomic/console.system.t1000.pconsole
/gem5/tests/long/80.solaris-boot/ref/sparc/solaris/t1000-simple-atomic/m5stats.txt
/gem5/tests/long/80.solaris-boot/ref/sparc/solaris/t1000-simple-atomic/stderr
/gem5/tests/long/80.solaris-boot/ref/sparc/solaris/t1000-simple-atomic/stdout
/gem5/tests/quick/00.hello/ref/alpha/linux/o3-timing/m5stats.txt
/gem5/tests/quick/00.hello/ref/alpha/linux/o3-timing/stderr
/gem5/tests/quick/00.hello/ref/alpha/linux/o3-timing/stdout
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-atomic/m5stats.txt
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-atomic/stderr
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-atomic/stdout
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing/m5stats.txt
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing/stderr
/gem5/tests/quick/00.hello/ref/alpha/linux/simple-timing/stdout
/gem5/tests/quick/00.hello/ref/alpha/tru64/o3-timing/m5stats.txt
/gem5/tests/quick/00.hello/ref/alpha/tru64/o3-timing/stderr
/gem5/tests/quick/00.hello/ref/alpha/tru64/o3-timing/stdout
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-atomic/m5stats.txt
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-atomic/stderr
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-atomic/stdout
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing/m5stats.txt
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing/stderr
/gem5/tests/quick/00.hello/ref/alpha/tru64/simple-timing/stdout
/gem5/tests/quick/00.hello/ref/mips/linux/simple-atomic/m5stats.txt
/gem5/tests/quick/00.hello/ref/mips/linux/simple-atomic/stderr
/gem5/tests/quick/00.hello/ref/mips/linux/simple-atomic/stdout
/gem5/tests/quick/00.hello/ref/mips/linux/simple-timing/m5stats.txt
/gem5/tests/quick/00.hello/ref/mips/linux/simple-timing/stderr
/gem5/tests/quick/00.hello/ref/mips/linux/simple-timing/stdout
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-atomic/m5stats.txt
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-atomic/stderr
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-atomic/stdout
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-timing/m5stats.txt
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-timing/stderr
/gem5/tests/quick/00.hello/ref/sparc/linux/simple-timing/stdout
/gem5/tests/quick/00.hello/ref/x86/linux/simple-atomic/m5stats.txt
/gem5/tests/quick/00.hello/ref/x86/linux/simple-atomic/stderr
/gem5/tests/quick/00.hello/ref/x86/linux/simple-atomic/stdout
/gem5/tests/quick/01.hello-2T-smt/ref/alpha/linux/o3-timing/m5stats.txt
/gem5/tests/quick/01.hello-2T-smt/ref/alpha/linux/o3-timing/stderr
/gem5/tests/quick/01.hello-2T-smt/ref/alpha/linux/o3-timing/stdout
/gem5/tests/quick/02.insttest/ref/sparc/linux/o3-timing/m5stats.txt
/gem5/tests/quick/02.insttest/ref/sparc/linux/o3-timing/stderr
/gem5/tests/quick/02.insttest/ref/sparc/linux/o3-timing/stdout
/gem5/tests/quick/02.insttest/ref/sparc/linux/simple-atomic/m5stats.txt
/gem5/tests/quick/02.insttest/ref/sparc/linux/simple-atomic/stderr
/gem5/tests/quick/02.insttest/ref/sparc/linux/simple-atomic/stdout
/gem5/tests/quick/02.insttest/ref/sparc/linux/simple-timing/m5stats.txt
/gem5/tests/quick/02.insttest/ref/sparc/linux/simple-timing/stderr
/gem5/tests/quick/02.insttest/ref/sparc/linux/simple-timing/stdout
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/console.system.sim_console
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/m5stats.txt
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stderr
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic-dual/stdout
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/console.system.sim_console
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/m5stats.txt
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stderr
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-atomic/stdout
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/console.system.sim_console
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/m5stats.txt
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stderr
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing-dual/stdout
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/console.system.sim_console
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/m5stats.txt
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stderr
/gem5/tests/quick/10.linux-boot/ref/alpha/linux/tsunami-simple-timing/stdout
/gem5/tests/quick/20.eio-short/ref/alpha/eio/detailed/m5stats.txt
/gem5/tests/quick/20.eio-short/ref/alpha/eio/detailed/stderr
/gem5/tests/quick/20.eio-short/ref/alpha/eio/detailed/stdout
/gem5/tests/quick/20.eio-short/ref/alpha/eio/simple-atomic/m5stats.txt
/gem5/tests/quick/20.eio-short/ref/alpha/eio/simple-atomic/stderr
/gem5/tests/quick/20.eio-short/ref/alpha/eio/simple-atomic/stdout
/gem5/tests/quick/20.eio-short/ref/alpha/eio/simple-timing/m5stats.txt
/gem5/tests/quick/20.eio-short/ref/alpha/eio/simple-timing/stderr
/gem5/tests/quick/20.eio-short/ref/alpha/eio/simple-timing/stdout
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest/m5stats.txt
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest/stderr
/gem5/tests/quick/50.memtest/ref/alpha/linux/memtest/stdout
/gem5/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/console.drivesys.sim_console
/gem5/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/console.testsys.sim_console
/gem5/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/m5stats.txt
/gem5/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stderr
/gem5/tests/quick/80.netperf-stream/ref/alpha/linux/twosys-tsunami-simple-atomic/stdout
batch/jobfile.py
pbs/jobfile.py
stats/orderdict.py
5951:960caa92210d 26-Feb-2009 Ali Saidi <saidi@eecs.umich.edu>

CPA: Add m5ops for critical path annotation work.

5808:baf5d5c96c68 24-Jan-2009 Nathan Binkert <nate@binkert.org>

pseudo inst: Add new wake cpu instruction for sending a message to wake a cpu.
It's instantaneous and so it's somewhat bogus, but it's a first step.

5792:72c3f3e914c1 13-Jan-2009 Ali Saidi <saidi@eecs.umich.edu>

Fix style hook for Mercurial >= 1.1

5790:9279812da5ee 07-Jan-2009 Gabe Black <gblack@eecs.umich.edu>

X86: Set up support for adding m5 pseudo insts to a binary.

5757:c45e8cb7f4ea 03-Dec-2008 Nathan Binkert <nate@binkert.org>

Add the mkblankimage.sh utility to the utils directory.

5755:8ef4ad572a6b 03-Dec-2008 Nathan Binkert <nate@binkert.org>

util/m5: Add a new function called pin to bind a program to a set of cores.
This is not m5 specific and this currently only works in linux.

5754:b50a557f93df 03-Dec-2008 Nathan Binkert <nate@binkert.org>

util/m5: reorganize code so it is easier to add operations

5751:54cb03a1a577 17-Nov-2008 Steve Reinhardt <Steve.Reinhardt@amd.com>

Minor tracediff bug fixes.

5747:ffded3077c63 15-Nov-2008 Clint Smullen <cws3k@cs.virginia.edu>

Remove the pointless, repository destroying assertion and just have the script check every line in the file if it cannot get context information.

5741:323dac95e72c 10-Nov-2008 Nathan Binkert <nate@binkert.org>

pseudo inst: Add rpns (read processor nanoseconds) instruction.
This instruction basically returns the number of nanoseconds that the CPU
has been running.

5725:61c838ecc225 06-Nov-2008 Steve Reinhardt <Steve.Reinhardt@amd.com>

tracediff: add '#' support for sub-arg alternatives, '-n' param

5580:6be5ac0eb1ea 01-Oct-2008 Ali Saidi <saidi@eecs.umich.edu>

Cleanup m5term changes with Nate's comments.

5579:29cd33ac16cb 01-Oct-2008 Ali Saidi <saidi@eecs.umich.edu>

Make m5term use select() so OS X is happy.

5543:3af77710f397 10-Sep-2008 Ali Saidi <saidi@eecs.umich.edu>

style: Remove non-leading tabs everywhere they shouldn't be. Developers should configure their editors to not insert tabs


/gem5/configs/common/Benchmarks.py
/gem5/src/arch/alpha/aout_machdep.h
/gem5/src/arch/alpha/ev5.cc
/gem5/src/arch/alpha/floatregfile.hh
/gem5/src/arch/alpha/ipr.cc
/gem5/src/arch/alpha/ipr.hh
/gem5/src/arch/alpha/isa_traits.hh
/gem5/src/arch/alpha/linux/linux.cc
/gem5/src/arch/alpha/linux/linux.hh
/gem5/src/arch/alpha/miscregfile.hh
/gem5/src/arch/alpha/osfpal.cc
/gem5/src/arch/alpha/pagetable.hh
/gem5/src/arch/alpha/regfile.hh
/gem5/src/arch/alpha/remote_gdb.cc
/gem5/src/arch/alpha/system.cc
/gem5/src/arch/alpha/tlb.cc
/gem5/src/arch/alpha/tru64/process.cc
/gem5/src/arch/alpha/tru64/tru64.cc
/gem5/src/arch/alpha/tru64/tru64.hh
/gem5/src/arch/isa_parser.py
/gem5/src/arch/isa_specific.hh
/gem5/src/arch/mips/isa_traits.hh
/gem5/src/arch/mips/linux/linux.cc
/gem5/src/arch/mips/linux/linux.hh
/gem5/src/arch/mips/regfile/regfile.hh
/gem5/src/arch/mips/system.cc
/gem5/src/arch/mips/tlb.cc
/gem5/src/arch/mips/tlb.hh
/gem5/src/arch/sparc/isa_traits.hh
/gem5/src/arch/sparc/linux/linux.cc
/gem5/src/arch/sparc/linux/linux.hh
/gem5/src/arch/sparc/miscregfile.hh
/gem5/src/arch/sparc/regfile.hh
/gem5/src/arch/sparc/remote_gdb.cc
/gem5/src/arch/sparc/solaris/solaris.cc
/gem5/src/arch/sparc/solaris/solaris.hh
/gem5/src/arch/sparc/sparc_traits.hh
/gem5/src/arch/x86/isa/insts/general_purpose/cache_and_memory_management.py
/gem5/src/arch/x86/isa/insts/general_purpose/control_transfer/call.py
/gem5/src/arch/x86/isa/insts/general_purpose/control_transfer/interrupts_and_exceptions.py
/gem5/src/arch/x86/isa/insts/general_purpose/data_conversion/ascii_adjust.py
/gem5/src/arch/x86/isa/insts/general_purpose/data_conversion/bcd_adjust.py
/gem5/src/arch/x86/isa/insts/general_purpose/data_conversion/endian_conversion.py
/gem5/src/arch/x86/isa/insts/general_purpose/data_conversion/extract_sign_mask.py
/gem5/src/arch/x86/isa/insts/general_purpose/data_transfer/move.py
/gem5/src/arch/x86/isa/insts/general_purpose/load_segment_registers.py
/gem5/src/arch/x86/isa/insts/general_purpose/semaphores.py
/gem5/src/arch/x86/isa/insts/general_purpose/system_calls.py
/gem5/src/arch/x86/linux/linux.hh
/gem5/src/arch/x86/remote_gdb.cc
/gem5/src/base/bitunion.hh
/gem5/src/base/crc.cc
/gem5/src/base/fast_alloc.cc
/gem5/src/base/fast_alloc.hh
/gem5/src/base/inifile.hh
/gem5/src/base/loader/aout_object.cc
/gem5/src/base/loader/coff_sym.h
/gem5/src/base/loader/coff_symconst.h
/gem5/src/base/loader/ecoff_object.cc
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/loader/hex_file.hh
/gem5/src/base/loader/object_file.hh
/gem5/src/base/loader/symtab.hh
/gem5/src/base/remote_gdb.cc
/gem5/src/base/res_list.hh
/gem5/src/base/stats/flags.hh
/gem5/src/base/stats/mysql.cc
/gem5/src/base/time.hh
/gem5/src/base/trace.hh
/gem5/src/cpu/base_dyn_inst.hh
/gem5/src/cpu/checker/cpu.hh
/gem5/src/cpu/checker/cpu_impl.hh
/gem5/src/cpu/memtest/memtest.hh
/gem5/src/cpu/o3/alpha/dyn_inst.hh
/gem5/src/cpu/o3/mips/dyn_inst.hh
/gem5/src/cpu/o3/regfile.hh
/gem5/src/cpu/ozone/back_end.hh
/gem5/src/cpu/ozone/cpu_impl.hh
/gem5/src/cpu/ozone/front_end.hh
/gem5/src/cpu/ozone/inorder_back_end.hh
/gem5/src/cpu/ozone/lsq_unit_impl.hh
/gem5/src/cpu/ozone/lw_back_end.hh
/gem5/src/cpu/simple/base.hh
/gem5/src/cpu/simple_thread.cc
/gem5/src/cpu/simple_thread.hh
/gem5/src/cpu/static_inst.hh
/gem5/src/dev/alpha/access.h
/gem5/src/dev/etherdump.cc
/gem5/src/dev/mips/access.h
/gem5/src/dev/ns_gige.hh
/gem5/src/dev/pcidev.cc
/gem5/src/dev/pcireg.h
/gem5/src/dev/sinicreg.hh
/gem5/src/kern/linux/linux.hh
/gem5/src/kern/operatingsystem.hh
/gem5/src/kern/solaris/solaris.hh
/gem5/src/kern/tru64/mbuf.hh
/gem5/src/kern/tru64/tru64.hh
/gem5/src/kern/tru64/tru64_syscalls.cc
/gem5/src/mem/cache/blk.hh
/gem5/src/mem/cache/builder.cc
/gem5/src/mem/cache/prefetch/stride.cc
/gem5/src/mem/cache/prefetch/stride.hh
/gem5/src/mem/cache/tags/iic.cc
/gem5/src/mem/cache/tags/lru.cc
/gem5/src/mem/cache/tags/lru.hh
/gem5/src/mem/cache/tags/split_lru.cc
/gem5/src/mem/dram.cc
/gem5/src/mem/physical.hh
/gem5/src/mem/request.hh
/gem5/src/python/m5/SimObject.py
/gem5/src/sim/async.hh
/gem5/src/sim/debug.cc
/gem5/src/sim/eventq.hh
/gem5/src/sim/host.hh
/gem5/src/sim/insttracer.hh
/gem5/src/sim/process.hh
/gem5/src/sim/serialize.cc
/gem5/src/sim/serialize.hh
/gem5/src/sim/sim_events.hh
/gem5/src/sim/syscall_emul.cc
/gem5/src/sim/syscall_emul.hh
m5/m5op_alpha.S
m5/m5ops.h
term/term.c
5505:90d6811d5ea6 11-Jul-2008 Nathan Binkert <nate@binkert.org>

m5ops: clean up the m5ops stuff.
- insert warnings for deprecated m5ops
- reserve opcodes for Ali's stuff
- remove code for stuff that has been deprecated forever
- simplify m5op_alpha

5467:6d9df90d70d7 14-Jun-2008 Nathan Binkert <nate@binkert.org>

python: Move various utility classes into a new m5.util package so
they're all in the same place. This also involves having just one
jobfile.py and moving it into the utils directory to avoid
duplication. Lots of improvements to the utility as well.

5465:4cff095bbf2b 14-Jun-2008 Nathan Binkert <nate@binkert.org>

Add hg commands for style check so you can check at times other than commit

5356:16f57bce72d6 26-Feb-2008 Ali Saidi <saidi@eecs.umich.edu>

Update make release, README, and RELEASE_NOTES for b5

5309:4d3a6e086488 11-Dec-2007 Steve Reinhardt <stever@gmail.com>

Fix minor bug in util/style.py

5277:70f84948b4f4 20-Nov-2007 Steve Reinhardt <stever@gmail.com>

Might as well ship splash2 scripts since we get questions on the list.

5247:fdbfa56f0b09 13-Nov-2007 Steve Reinhardt <stever@gmail.com>

Add -k flag to util/regress.

5212:00736ad602ed 04-Nov-2007 Ali Saidi <saidi@eecs.umich.edu>

RELEASE: A little more work on make_release.py

5210:7f834384864b 02-Nov-2007 Ali Saidi <saidi@eecs.umich.edu>

RELEASE: Add dummy cpu to make SCons + Python 2.5 happy

5209:f033c7dadbbd 02-Nov-2007 Ali Saidi <saidi@eecs.umich.edu>

RELEASE: remove insttest since we're not shipping the binary.

5207:20c1f499cd08 01-Nov-2007 Ali Saidi <saidi@eecs.umich.edu>

RELEASE: Grammer

5206:3196b47f0168 01-Nov-2007 Ali Saidi <saidi@eecs.umich.edu>

RELEASE: More changes to text

5195:785a0c97365e 31-Oct-2007 Ali Saidi <saidi@eecs.umich.edu>

Release: fix make_release bug

5194:28d638465c92 31-Oct-2007 Ali Saidi <saidi@eecs.umich.edu>

RELEASE: Update make release for new release.

5187:a0ff86ffdefe 26-Oct-2007 Gabe Black <gblack@eecs.umich.edu>

Regressions: Added X86_SE into the default list of builds.

5147:a7b91336a3fc 10-Oct-2007 Ali Saidi <saidi@eecs.umich.edu>

Make qdo work with oar. I don't know if this catches every case, but it appears
to be working at the moment.

5049:16a0724434b8 05-Sep-2007 Gabe Black <gblack@eecs.umich.edu>

X86/StateTrace: Make m5 and statetrace track mmx and xmm registers, and actually compare xmm.

4984:1cbcac3f8144 21-Aug-2007 Nathan Binkert <nate@binkert.org>

style: fix style hook when run from a repo subdir.
Before this fix, the style hook would blow up when you did a qrefresh to add
a new file, but executed the qrefresh from a repository sub directory.

4980:b386c80ceb05 14-Aug-2007 Nathan Binkert <nate@binkert.org>

style: Don't try to fix files that should be ignored.
The style hook was ignoring new files, but processing all modified
files.

4976:eb1067b3060c 13-Aug-2007 Ali Saidi <saidi@eecs.umich.edu>

fixup bad hand merge

4975:3fd697e69e06 13-Aug-2007 Ali Saidi <saidi@eecs.umich.edu>

Merge IGNORE_STYLE change and my change.

4961:31f1d816dc26 13-Aug-2007 Ali Saidi <saidi@eecs.umich.edu>

Regression: See if using subprocess instead of os.system and erroring immediately will stop regression randomly hanging.

4955:7093b1eba0a2 07-Aug-2007 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Make statetrace do string instructions all at once like m5 does.

4949:302707329b7e 12-Aug-2007 Nathan Binkert <nate@binkert.org>

style: If IGNORE_STYLE=True is set on the scons command line, ignore style.
Use this in the regress script to avoid issues with the checker.

4897:41b298e2bed2 15-Jul-2007 Steve Reinhardt <stever@eecs.umich.edu>

Add valgrind-suppressions file.

4843:68739bf529d8 01-Aug-2007 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Make sure all the info block strings are printed.

4795:0c5cf74ebb2d 29-Jul-2007 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Make statetrace patch amd64 executables for true single stepping after system calls.
Because of peculiarities in how system calls are returned from, single stepping executes some system calls and the instruction following them in a single step. Statetrace now patches the executable image when it detects a system call to force "correct" behavior, aka the appearance of stepping one instruction every single time.

4794:88afe390fc0f 29-Jul-2007 Gabe Black <gblack@eecs.umich.edu>

Merge with head. style.py was also missing an argument in one call to modified_lines.

4791:75f10dd85ec3 29-Jul-2007 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Print the correct address of auxiliary vectors.
The address of the stackpointer proceeding the vector minus 8 should be minus 16.

4784:e8b1f87b3a85 29-Jul-2007 Nathan Binkert <nate@binkert.org>

Work around a mercurial bug in bdiff.blocks

4782:50a634ae064a 28-Jul-2007 Nathan Binkert <nate@binkert.org>

style: fix stupid bugs

4781:59a75bd0ddf4 28-Jul-2007 Nathan Binkert <nate@binkert.org>

style: Check/Fix whitespace on SCons files

4780:8bb94c8a70e7 28-Jul-2007 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Implement the AMD64 version of TraceChild.

4779:a430e68a667e 28-Jul-2007 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Fix indendation. Set the default hostname to "localhost" instead of my machine at UM.

4778:33bf0282272a 28-Jul-2007 Gabe Black <gblack@eecs.umich.edu>

Statetrace: Fix compilation problem.

4762:c94e103c83ad 24-Jul-2007 Nathan Binkert <nate@binkert.org>

Major changes to how SimObjects are created and initialized. Almost all
creation and initialization now happens in python. Parameter objects
are generated and initialized by python. The .ini file is now solely for
debugging purposes and is not used in construction of the objects in any
way.


/gem5/src/SConscript
/gem5/src/arch/alpha/AlphaTLB.py
/gem5/src/arch/alpha/freebsd/system.cc
/gem5/src/arch/alpha/freebsd/system.hh
/gem5/src/arch/alpha/linux/system.cc
/gem5/src/arch/alpha/linux/system.hh
/gem5/src/arch/alpha/system.cc
/gem5/src/arch/alpha/system.hh
/gem5/src/arch/alpha/tlb.cc
/gem5/src/arch/alpha/tru64/system.cc
/gem5/src/arch/alpha/tru64/system.hh
/gem5/src/arch/sparc/SparcTLB.py
/gem5/src/arch/sparc/system.cc
/gem5/src/arch/sparc/system.hh
/gem5/src/arch/sparc/tlb.cc
/gem5/src/cpu/SConscript
/gem5/src/cpu/base.cc
/gem5/src/cpu/exetrace.cc
/gem5/src/cpu/func_unit.cc
/gem5/src/cpu/intr_control.cc
/gem5/src/cpu/memtest/memtest.cc
/gem5/src/cpu/o3/alpha/cpu_builder.cc
/gem5/src/cpu/o3/checker_builder.cc
/gem5/src/cpu/o3/cpu.cc
/gem5/src/cpu/o3/fu_pool.cc
/gem5/src/cpu/o3/inst_queue_impl.hh
/gem5/src/cpu/o3/mips/cpu_builder.cc
/gem5/src/cpu/o3/sparc/cpu_builder.cc
/gem5/src/cpu/op_class.cc
/gem5/src/cpu/op_class.hh
/gem5/src/cpu/ozone/checker_builder.cc
/gem5/src/cpu/ozone/cpu_builder.cc
/gem5/src/cpu/ozone/simple_cpu_builder.cc
/gem5/src/cpu/simple/atomic.cc
/gem5/src/cpu/simple/base.cc
/gem5/src/cpu/simple/timing.cc
/gem5/src/cpu/trace/opt_cpu.cc
/gem5/src/cpu/trace/reader/ibm_reader.cc
/gem5/src/cpu/trace/reader/itx_reader.cc
/gem5/src/cpu/trace/reader/m5_reader.cc
/gem5/src/cpu/trace/reader/mem_trace_reader.cc
/gem5/src/cpu/trace/trace_cpu.cc
/gem5/src/dev/Ethernet.py
/gem5/src/dev/SConscript
/gem5/src/dev/alpha/console.cc
/gem5/src/dev/alpha/console.hh
/gem5/src/dev/alpha/tsunami.cc
/gem5/src/dev/alpha/tsunami_cchip.cc
/gem5/src/dev/alpha/tsunami_cchip.hh
/gem5/src/dev/alpha/tsunami_io.cc
/gem5/src/dev/alpha/tsunami_io.hh
/gem5/src/dev/alpha/tsunami_pchip.cc
/gem5/src/dev/alpha/tsunami_pchip.hh
/gem5/src/dev/baddev.cc
/gem5/src/dev/baddev.hh
/gem5/src/dev/disk_image.cc
/gem5/src/dev/etherbus.cc
/gem5/src/dev/etherdump.cc
/gem5/src/dev/etherint.cc
/gem5/src/dev/etherlink.cc
/gem5/src/dev/ethertap.cc
/gem5/src/dev/i8254xGBe.cc
/gem5/src/dev/i8254xGBe.hh
/gem5/src/dev/ide_ctrl.cc
/gem5/src/dev/ide_ctrl.hh
/gem5/src/dev/ide_disk.cc
/gem5/src/dev/io_device.cc
/gem5/src/dev/io_device.hh
/gem5/src/dev/isa_fake.cc
/gem5/src/dev/isa_fake.hh
/gem5/src/dev/ns_gige.cc
/gem5/src/dev/ns_gige.hh
/gem5/src/dev/pciconfigall.cc
/gem5/src/dev/pcidev.cc
/gem5/src/dev/pcidev.hh
/gem5/src/dev/platform.cc
/gem5/src/dev/simconsole.cc
/gem5/src/dev/simple_disk.cc
/gem5/src/dev/sinic.cc
/gem5/src/dev/sinic.hh
/gem5/src/dev/sparc/dtod.cc
/gem5/src/dev/sparc/dtod.hh
/gem5/src/dev/sparc/iob.cc
/gem5/src/dev/sparc/iob.hh
/gem5/src/dev/sparc/mm_disk.cc
/gem5/src/dev/sparc/mm_disk.hh
/gem5/src/dev/sparc/t1000.cc
/gem5/src/dev/uart.cc
/gem5/src/dev/uart.hh
/gem5/src/dev/uart8250.cc
/gem5/src/dev/uart8250.hh
/gem5/src/mem/MemObject.py
/gem5/src/mem/bridge.cc
/gem5/src/mem/bridge.hh
/gem5/src/mem/bus.cc
/gem5/src/mem/cache/cache_builder.cc
/gem5/src/mem/cache/coherence/coherence_protocol.cc
/gem5/src/mem/cache/coherence/coherence_protocol.hh
/gem5/src/mem/cache/tags/SConscript
/gem5/src/mem/cache/tags/repl/gen.cc
/gem5/src/mem/cache/tags/repl/repl.cc
/gem5/src/mem/dram.cc
/gem5/src/mem/dram.hh
/gem5/src/mem/mem_object.cc
/gem5/src/mem/mem_object.hh
/gem5/src/mem/page_table.cc
/gem5/src/mem/physical.cc
/gem5/src/mem/physical.hh
/gem5/src/python/SConscript
/gem5/src/python/generate.py
/gem5/src/python/m5/SimObject.py
/gem5/src/python/m5/__init__.py
/gem5/src/python/m5/environment.py
/gem5/src/python/m5/params.py
/gem5/src/python/m5/simulate.py
/gem5/src/python/m5/ticks.py
/gem5/src/python/swig/inet.i
/gem5/src/python/swig/pyobject.cc
/gem5/src/python/swig/pyobject.hh
/gem5/src/python/swig/range.i
/gem5/src/python/swig/sim_object.i
/gem5/src/python/swig/time.i
/gem5/src/sim/SConscript
/gem5/src/sim/builder.cc
/gem5/src/sim/builder.hh
/gem5/src/sim/core.cc
/gem5/src/sim/core.hh
/gem5/src/sim/debug.cc
/gem5/src/sim/param.cc
/gem5/src/sim/param.hh
/gem5/src/sim/process.cc
/gem5/src/sim/root.cc
/gem5/src/sim/serialize.cc
/gem5/src/sim/sim_events.cc
/gem5/src/sim/sim_object.cc
/gem5/src/sim/sim_object.hh
/gem5/src/sim/system.cc
/gem5/src/sim/system.hh
SConscript
4761:4bb357497886 23-Jul-2007 Nathan Binkert <nate@binkert.org>

Allow the fixwhite stuff to work when committing from a subdir

4745:33b409225928 22-Jul-2007 Nathan Binkert <nate@binkert.org>

do proper style checks for merged files

4744:4a08d0c0f929 22-Jul-2007 Nathan Binkert <nate@binkert.org>

fix the style fixing thing

4678:fd95d7ddd1ee 22-Jul-2007 Nathan Binkert <nate@binkert.org>

Add code to turn the style stuff into a mercurial hook.
Nag the user during compile if they have an hg cloned copy of M5, have
mercurial installed, but don't have the style hook enabled.

4484:7c56a6c9c265 26-May-2007 Nathan Binkert <binkertn@umich.edu>

Get rid of GNU libelf and its autoconf nastiness and replace
it with FreeBSD's implementation


/gem5/ext/libelf/SConscript
/gem5/ext/libelf/_libelf.h
/gem5/ext/libelf/elf32.h
/gem5/ext/libelf/elf64.h
/gem5/ext/libelf/elf_begin.c
/gem5/ext/libelf/elf_cntl.c
/gem5/ext/libelf/elf_common.h
/gem5/ext/libelf/elf_data.c
/gem5/ext/libelf/elf_end.c
/gem5/ext/libelf/elf_errmsg.c
/gem5/ext/libelf/elf_errno.c
/gem5/ext/libelf/elf_fill.c
/gem5/ext/libelf/elf_flag.c
/gem5/ext/libelf/elf_getarhdr.c
/gem5/ext/libelf/elf_getarsym.c
/gem5/ext/libelf/elf_getbase.c
/gem5/ext/libelf/elf_getident.c
/gem5/ext/libelf/elf_hash.c
/gem5/ext/libelf/elf_kind.c
/gem5/ext/libelf/elf_memory.c
/gem5/ext/libelf/elf_next.c
/gem5/ext/libelf/elf_phnum.c
/gem5/ext/libelf/elf_queue.h
/gem5/ext/libelf/elf_rand.c
/gem5/ext/libelf/elf_rawfile.c
/gem5/ext/libelf/elf_scn.c
/gem5/ext/libelf/elf_shnum.c
/gem5/ext/libelf/elf_shstrndx.c
/gem5/ext/libelf/elf_strptr.c
/gem5/ext/libelf/elf_types.m4
/gem5/ext/libelf/elf_update.c
/gem5/ext/libelf/elf_version.c
/gem5/ext/libelf/gelf.h
/gem5/ext/libelf/gelf_checksum.c
/gem5/ext/libelf/gelf_dyn.c
/gem5/ext/libelf/gelf_ehdr.c
/gem5/ext/libelf/gelf_fsize.c
/gem5/ext/libelf/gelf_getclass.c
/gem5/ext/libelf/gelf_phdr.c
/gem5/ext/libelf/gelf_rel.c
/gem5/ext/libelf/gelf_rela.c
/gem5/ext/libelf/gelf_shdr.c
/gem5/ext/libelf/gelf_sym.c
/gem5/ext/libelf/gelf_symshndx.c
/gem5/ext/libelf/gelf_xlate.c
/gem5/ext/libelf/libelf.c
/gem5/ext/libelf/libelf.h
/gem5/ext/libelf/libelf_align.c
/gem5/ext/libelf/libelf_allocate.c
/gem5/ext/libelf/libelf_ar.c
/gem5/ext/libelf/libelf_checksum.c
/gem5/ext/libelf/libelf_convert.m4
/gem5/ext/libelf/libelf_data.c
/gem5/ext/libelf/libelf_ehdr.c
/gem5/ext/libelf/libelf_extended.c
/gem5/ext/libelf/libelf_fsize.m4
/gem5/ext/libelf/libelf_msize.m4
/gem5/ext/libelf/libelf_phdr.c
/gem5/ext/libelf/libelf_shdr.c
/gem5/ext/libelf/libelf_xlate.c
/gem5/src/base/loader/elf_object.cc
make_release.py
4411:61748375cb76 27-Apr-2007 Nathan Binkert <binkertn@umich.edu>

Actually move the time two minutes into the future to make sure
that we get the result that we want

4408:7931e5da49db 27-Apr-2007 Nathan Binkert <binkertn@umich.edu>

Make sure that we don't rebuild libelf stuff that we don't
have to since it doesn't work well on non-linux

4387:0ea805f4234a 18-Apr-2007 Nathan Binkert <binkertn@umich.edu>

update the stuff that's removed from the SConscripts
since things have moved around a bit

4360:2e6e92279095 09-Apr-2007 Ali Saidi <saidi@eecs.umich.edu>

add code to whack the intel gbe model from the relase.... it's not tested and it's configuration is a hack

4245:02bbb73d86e6 15-Mar-2007 Gabe Black <gblack@eecs.umich.edu>

Update to statetrace. This will break it, but I want to make sure it gets into mercurial.

4193:1363532bc464 09-Mar-2007 Ali Saidi <saidi@eecs.umich.edu>

fix regress... SPARC_FS may not be in the builds so check for it

4169:b03a74834dfe 07-Mar-2007 Ali Saidi <saidi@eecs.umich.edu>

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

4130:a611c874376e 03-Mar-2007 Ali Saidi <saidi@eecs.umich.edu>

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

4125:a130ea200cf9 05-Mar-2007 Gabe Black <gblack@eecs.umich.edu>

Fixing statetrace to work with 32 bit SPARC processes, as well as rewritting it's single stepping code.

4105:ae9fb462e662 22-Feb-2007 Gabe Black <gblack@eecs.umich.edu>

Merge zizzer.eecs.umich.edu:/bk/newmem
into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem

4098:9b57d3d6af2a 24-Feb-2007 Ali Saidi <saidi@eecs.umich.edu>

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

4091:e9d669b2d6b1 21-Feb-2007 Ali Saidi <saidi@eecs.umich.edu>

Merge zizzer:/bk/newmem
into zeep.pool:/z/saidi/work/m5.newmem

4090:08bd6439b907 21-Feb-2007 Ali Saidi <saidi@eecs.umich.edu>

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

4018:77a084a042bb 06-Feb-2007 Steve Reinhardt <stever@eecs.umich.edu>

Use perl FindBin package to set path to rundiff to the
directory where tracediff is.

3855:e680b27c19cc 17-Dec-2006 Nathan Binkert <binkertn@umich.edu>

Nate's utility for compiling m5

3854:1fe852cbb6d1 17-Dec-2006 Nathan Binkert <binkertn@umich.edu>

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.

3845:77de58af24f0 15-Dec-2006 Lisa Hsu <hsul@eecs.umich.edu>

Merge zizzer:/bk/sparcfs
into zed.eecs.umich.edu:/z/hsul/work/sparc/m5

3842:031cfdeec2b6 13-Dec-2006 Lisa Hsu <hsul@eecs.umich.edu>

Merge zizzer:/bk/sparcfs
into zed.eecs.umich.edu:/z/hsul/work/sparc/m5

3841:9fe36a649632 15-Dec-2006 Lisa Hsu <hsul@eecs.umich.edu>

Merge zizzer:/bk/sparcfs
into zed.eecs.umich.edu:/z/hsul/work/m5/newmem

3829:6612f906efd5 12-Dec-2006 Lisa Hsu <hsul@eecs.umich.edu>

Merge zizzer:/bk/newmem
into zed.eecs.umich.edu:/z/hsul/work/sparc/m5

3778:ac52cbef744c 06-Dec-2006 Gabe Black <gblack@eecs.umich.edu>

Merge zizzer:/bk/newmem
into zower.eecs.umich.edu:/eecshome/m5/newmem

src/cpu/o3/commit_impl.hh:
Hand Merge

3734:5eb062f81950 12-Dec-2006 Steve Reinhardt <stever@eecs.umich.edu>

If no tests are specified for regression, just build the binaries
(instead of complaining and exiting).

3727:7e3511898306 10-Dec-2006 Steve Reinhardt <stever@eecs.umich.edu>

Merge zizzer.eecs.umich.edu:/z/stever/bk/newmem-cache2
into zizzer.eecs.umich.edu:/z/stever/bk/newmem-cache3

3725:16980dd7d58f 10-Dec-2006 Steve Reinhardt <stever@eecs.umich.edu>

Add '-j' option directly to regress script (passed to scons).

3709:cc18eeefd07e 07-Dec-2006 Steve Reinhardt <stever@eecs.umich.edu>

Change detault regression build from opt to fast.

3704:e56d4e8a66eb 02-Dec-2006 Steve Reinhardt <stever@eecs.umich.edu>

Merge zizzer.eecs.umich.edu:/bk/newmem
into vm1.(none):/home/stever/bk/newmem-head

3703:fd40ba40aa78 29-Nov-2006 Steve Reinhardt <stever@eecs.umich.edu>

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.

3699:eccf20074a01 03-Dec-2006 Steve Reinhardt <stever@eecs.umich.edu>

Delete src/oldmem.

util/make_release.py:
src/oldmem gone from repo, no need to delete here.

3696:6cfd5c50f8a3 02-Dec-2006 Nathan Binkert <binkertn@umich.edu>

don't blow away the whole destination directory

3689:9efafcc19b54 30-Nov-2006 Nathan Binkert <binkertn@umich.edu>

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.

3680:00bf1ba79520 24-Nov-2006 Steve Reinhardt <stever@eecs.umich.edu>

Add no-op versions of ivlb and ivle back in for backwards compatibility.

3545:a49b07ba610e 06-Nov-2006 Gabe Black <gblack@eecs.umich.edu>

Cleaned up remnants of ivlb and ivle

3382:e8260cd0fc08 19-Oct-2006 Gabe Black <gblack@eecs.umich.edu>

Cleaned up the function a bit to help route out bugs.

3380:382e21bc32f3 18-Oct-2006 Gabe Black <gblack@eecs.umich.edu>

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.

3370:04aed9a69c6e 22-Oct-2006 Steve Reinhardt <stever@eecs.umich.edu>

Have tracediff print warning if no traceflags are set.
Elaborate on description a bit.

3362:dbddc0f40f0f 21-Oct-2006 Steve Reinhardt <stever@eecs.umich.edu>

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.

3343:539f62f485dd 20-Oct-2006 Steve Reinhardt <stever@eecs.umich.edu>

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.

3125:febd811bccc6 30-Sep-2006 Kevin Lim <ktlim@umich.edu>

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.


/gem5/configs/boot/micro_memlat.rcS
/gem5/configs/boot/micro_tlblat.rcS
/gem5/src/arch/alpha/ev5.cc
/gem5/src/arch/alpha/freebsd/system.cc
/gem5/src/arch/alpha/isa/decoder.isa
/gem5/src/arch/alpha/isa/mem.isa
/gem5/src/arch/alpha/isa_traits.hh
/gem5/src/arch/alpha/linux/system.cc
/gem5/src/arch/alpha/system.cc
/gem5/src/arch/alpha/tru64/system.cc
/gem5/src/cpu/base.cc
/gem5/src/cpu/base.hh
/gem5/src/cpu/base_dyn_inst.hh
/gem5/src/cpu/checker/cpu.hh
/gem5/src/cpu/checker/cpu_impl.hh
/gem5/src/cpu/o3/alpha/cpu_builder.cc
/gem5/src/cpu/o3/checker_builder.cc
/gem5/src/cpu/o3/commit_impl.hh
/gem5/src/cpu/o3/cpu.cc
/gem5/src/cpu/o3/fetch_impl.hh
/gem5/src/cpu/o3/iew.hh
/gem5/src/cpu/o3/iew_impl.hh
/gem5/src/cpu/o3/inst_queue.hh
/gem5/src/cpu/o3/inst_queue_impl.hh
/gem5/src/cpu/o3/lsq_impl.hh
/gem5/src/cpu/o3/lsq_unit.hh
/gem5/src/cpu/o3/lsq_unit_impl.hh
/gem5/src/cpu/o3/mem_dep_unit_impl.hh
/gem5/src/cpu/o3/rename.hh
/gem5/src/cpu/o3/rename_impl.hh
/gem5/src/cpu/o3/thread_state.hh
/gem5/src/cpu/o3/tournament_pred.cc
/gem5/src/cpu/o3/tournament_pred.hh
/gem5/src/cpu/ozone/checker_builder.cc
/gem5/src/cpu/ozone/cpu.hh
/gem5/src/cpu/ozone/cpu_builder.cc
/gem5/src/cpu/ozone/cpu_impl.hh
/gem5/src/cpu/ozone/front_end.hh
/gem5/src/cpu/ozone/front_end_impl.hh
/gem5/src/cpu/ozone/inorder_back_end_impl.hh
/gem5/src/cpu/ozone/inst_queue_impl.hh
/gem5/src/cpu/ozone/lw_back_end.hh
/gem5/src/cpu/ozone/lw_back_end_impl.hh
/gem5/src/cpu/ozone/lw_lsq.hh
/gem5/src/cpu/ozone/lw_lsq_impl.hh
/gem5/src/cpu/ozone/simple_params.hh
/gem5/src/cpu/ozone/thread_state.hh
/gem5/src/cpu/simple/base.cc
/gem5/src/cpu/simple_thread.cc
/gem5/src/cpu/thread_state.hh
/gem5/src/dev/ide_disk.hh
/gem5/src/python/m5/objects/BaseCPU.py
/gem5/src/python/m5/objects/O3CPU.py
/gem5/src/python/m5/objects/OzoneCPU.py
/gem5/src/python/m5/objects/Root.py
/gem5/src/python/m5/objects/System.py
/gem5/src/sim/eventq.hh
/gem5/src/sim/pseudo_inst.cc
/gem5/src/sim/pseudo_inst.hh
/gem5/src/sim/serialize.cc
/gem5/src/sim/stat_control.cc
/gem5/src/sim/stat_control.hh
/gem5/src/sim/system.hh
m5/m5.c
m5/m5op.S
3115:494b6592a4d8 17-Sep-2006 Gabe Black <gblack@eecs.umich.edu>

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.

3110:f5b13fb714e0 08-Sep-2006 Steve Reinhardt <stever@eecs.umich.edu>

Added cscope-find.py utility to generate file list for cscope.

3099:e3f3ff36645b 02-Sep-2006 Steve Reinhardt <stever@eecs.umich.edu>

regress:
Clean up help output.

util/regress:
Clean up help output.

3097:6d06427d2248 01-Sep-2006 Steve Reinhardt <stever@eecs.umich.edu>

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.

3089:0ea2eb13c4de 11-Sep-2006 Ali Saidi <saidi@eecs.umich.edu>

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

3080:5e384f5480af 28-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

Fix command for new options processing.

3077:31da34df3139 25-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

Update for new regression test structure.

3038:a20a6f060dd7 17-Aug-2006 Kevin Lim <ktlim@umich.edu>

Add readfile back in.

2783:381a5413b55a 17-Jun-2006 Kevin Lim <ktlim@umich.edu>

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.

2716:b9114064d77a 11-Jun-2006 Nathan Binkert <binkertn@umich.edu>

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

2665:a124942bacb8 31-May-2006 Ali Saidi <saidi@eecs.umich.edu>

Updated Authors from bk prs info


/gem5/SConstruct
/gem5/docs/stl.hh
/gem5/src/SConscript
/gem5/src/arch/SConscript
/gem5/src/arch/alpha/SConscript
/gem5/src/arch/alpha/aout_machdep.h
/gem5/src/arch/alpha/arguments.cc
/gem5/src/arch/alpha/arguments.hh
/gem5/src/arch/alpha/ev5.cc
/gem5/src/arch/alpha/ev5.hh
/gem5/src/arch/alpha/faults.cc
/gem5/src/arch/alpha/faults.hh
/gem5/src/arch/alpha/freebsd/system.cc
/gem5/src/arch/alpha/freebsd/system.hh
/gem5/src/arch/alpha/isa/branch.isa
/gem5/src/arch/alpha/isa/decoder.isa
/gem5/src/arch/alpha/isa/fp.isa
/gem5/src/arch/alpha/isa/int.isa
/gem5/src/arch/alpha/isa/main.isa
/gem5/src/arch/alpha/isa/mem.isa
/gem5/src/arch/alpha/isa/opcdec.isa
/gem5/src/arch/alpha/isa/pal.isa
/gem5/src/arch/alpha/isa/unimp.isa
/gem5/src/arch/alpha/isa/unknown.isa
/gem5/src/arch/alpha/isa/util.isa
/gem5/src/arch/alpha/isa_traits.hh
/gem5/src/arch/alpha/linux/aligned.hh
/gem5/src/arch/alpha/linux/linux.cc
/gem5/src/arch/alpha/linux/linux.hh
/gem5/src/arch/alpha/linux/process.cc
/gem5/src/arch/alpha/linux/process.hh
/gem5/src/arch/alpha/linux/system.cc
/gem5/src/arch/alpha/linux/system.hh
/gem5/src/arch/alpha/linux/thread_info.hh
/gem5/src/arch/alpha/linux/threadinfo.hh
/gem5/src/arch/alpha/osfpal.cc
/gem5/src/arch/alpha/osfpal.hh
/gem5/src/arch/alpha/process.cc
/gem5/src/arch/alpha/process.hh
/gem5/src/arch/alpha/regfile.hh
/gem5/src/arch/alpha/stacktrace.cc
/gem5/src/arch/alpha/stacktrace.hh
/gem5/src/arch/alpha/system.cc
/gem5/src/arch/alpha/system.hh
/gem5/src/arch/alpha/tlb.cc
/gem5/src/arch/alpha/tlb.hh
/gem5/src/arch/alpha/tru64/process.cc
/gem5/src/arch/alpha/tru64/process.hh
/gem5/src/arch/alpha/tru64/system.cc
/gem5/src/arch/alpha/tru64/system.hh
/gem5/src/arch/alpha/tru64/tru64.cc
/gem5/src/arch/alpha/tru64/tru64.hh
/gem5/src/arch/alpha/types.hh
/gem5/src/arch/alpha/utility.hh
/gem5/src/arch/alpha/vtophys.cc
/gem5/src/arch/alpha/vtophys.hh
/gem5/src/arch/isa_parser.py
/gem5/src/arch/isa_specific.hh
/gem5/src/arch/mips/SConscript
/gem5/src/arch/mips/faults.cc
/gem5/src/arch/mips/faults.hh
/gem5/src/arch/mips/isa/formats/mem.isa
/gem5/src/arch/mips/isa/formats/unimp.isa
/gem5/src/arch/mips/isa/formats/unknown.isa
/gem5/src/arch/mips/isa/main.isa
/gem5/src/arch/mips/isa_traits.cc
/gem5/src/arch/mips/isa_traits.hh
/gem5/src/arch/mips/linux/process.cc
/gem5/src/arch/mips/linux/process.hh
/gem5/src/arch/mips/process.cc
/gem5/src/arch/mips/process.hh
/gem5/src/arch/mips/regfile/float_regfile.hh
/gem5/src/arch/mips/regfile/int_regfile.hh
/gem5/src/arch/mips/regfile/misc_regfile.hh
/gem5/src/arch/mips/regfile/regfile.hh
/gem5/src/arch/mips/stacktrace.hh
/gem5/src/arch/mips/types.hh
/gem5/src/arch/sparc/SConscript
/gem5/src/arch/sparc/faults.cc
/gem5/src/arch/sparc/faults.hh
/gem5/src/arch/sparc/isa/main.isa
/gem5/src/arch/sparc/isa_traits.hh
/gem5/src/arch/sparc/linux/linux.cc
/gem5/src/arch/sparc/linux/linux.hh
/gem5/src/arch/sparc/linux/process.cc
/gem5/src/arch/sparc/linux/process.hh
/gem5/src/arch/sparc/process.cc
/gem5/src/arch/sparc/process.hh
/gem5/src/arch/sparc/regfile.hh
/gem5/src/arch/sparc/solaris/process.cc
/gem5/src/arch/sparc/solaris/process.hh
/gem5/src/arch/sparc/solaris/solaris.cc
/gem5/src/arch/sparc/solaris/solaris.hh
/gem5/src/arch/sparc/stacktrace.hh
/gem5/src/arch/sparc/system.cc
/gem5/src/arch/sparc/system.hh
/gem5/src/arch/sparc/ua2005.cc
/gem5/src/arch/sparc/utility.hh
/gem5/src/arch/sparc/vtophys.cc
/gem5/src/arch/sparc/vtophys.hh
/gem5/src/base/bitfield.hh
/gem5/src/base/callback.hh
/gem5/src/base/chunk_generator.hh
/gem5/src/base/circlebuf.cc
/gem5/src/base/circlebuf.hh
/gem5/src/base/compression/lzss_compression.cc
/gem5/src/base/compression/lzss_compression.hh
/gem5/src/base/compression/null_compression.hh
/gem5/src/base/cprintf.cc
/gem5/src/base/cprintf.hh
/gem5/src/base/cprintf_formats.hh
/gem5/src/base/crc.hh
/gem5/src/base/date.cc
/gem5/src/base/dbl_list.hh
/gem5/src/base/endian.hh
/gem5/src/base/fast_alloc.cc
/gem5/src/base/fast_alloc.hh
/gem5/src/base/fenv.hh
/gem5/src/base/fifo_buffer.cc
/gem5/src/base/fifo_buffer.hh
/gem5/src/base/hashmap.hh
/gem5/src/base/hostinfo.cc
/gem5/src/base/hostinfo.hh
/gem5/src/base/hybrid_pred.cc
/gem5/src/base/hybrid_pred.hh
/gem5/src/base/inet.cc
/gem5/src/base/inet.hh
/gem5/src/base/inifile.cc
/gem5/src/base/inifile.hh
/gem5/src/base/intmath.cc
/gem5/src/base/intmath.hh
/gem5/src/base/loader/aout_object.cc
/gem5/src/base/loader/aout_object.hh
/gem5/src/base/loader/ecoff_object.cc
/gem5/src/base/loader/ecoff_object.hh
/gem5/src/base/loader/elf_object.cc
/gem5/src/base/loader/elf_object.hh
/gem5/src/base/loader/object_file.cc
/gem5/src/base/loader/object_file.hh
/gem5/src/base/loader/symtab.cc
/gem5/src/base/loader/symtab.hh
/gem5/src/base/match.cc
/gem5/src/base/match.hh
/gem5/src/base/misc.cc
/gem5/src/base/misc.hh
/gem5/src/base/mod_num.hh
/gem5/src/base/mysql.cc
/gem5/src/base/mysql.hh
/gem5/src/base/output.cc
/gem5/src/base/output.hh
/gem5/src/base/pollevent.cc
/gem5/src/base/pollevent.hh
/gem5/src/base/predictor.hh
/gem5/src/base/random.cc
/gem5/src/base/random.hh
/gem5/src/base/range.cc
/gem5/src/base/range.hh
/gem5/src/base/refcnt.hh
/gem5/src/base/remote_gdb.cc
/gem5/src/base/remote_gdb.hh
/gem5/src/base/res_list.hh
/gem5/src/base/sat_counter.cc
/gem5/src/base/sat_counter.hh
/gem5/src/base/sched_list.hh
/gem5/src/base/socket.cc
/gem5/src/base/socket.hh
/gem5/src/base/statistics.cc
/gem5/src/base/statistics.hh
/gem5/src/base/stats/events.cc
/gem5/src/base/stats/events.hh
/gem5/src/base/stats/flags.hh
/gem5/src/base/stats/mysql.cc
/gem5/src/base/stats/mysql.hh
/gem5/src/base/stats/mysql_run.hh
/gem5/src/base/stats/output.hh
/gem5/src/base/stats/statdb.cc
/gem5/src/base/stats/statdb.hh
/gem5/src/base/stats/text.cc
/gem5/src/base/stats/text.hh
/gem5/src/base/stats/types.hh
/gem5/src/base/stats/visit.cc
/gem5/src/base/stats/visit.hh
/gem5/src/base/str.cc
/gem5/src/base/str.hh
/gem5/src/base/time.cc
/gem5/src/base/time.hh
/gem5/src/base/timebuf.hh
/gem5/src/base/trace.cc
/gem5/src/base/trace.hh
/gem5/src/base/traceflags.py
/gem5/src/base/userinfo.cc
/gem5/src/base/userinfo.hh
/gem5/src/cpu/SConscript
/gem5/src/cpu/base.cc
/gem5/src/cpu/base.hh
/gem5/src/cpu/base_dyn_inst.cc
/gem5/src/cpu/base_dyn_inst.hh
/gem5/src/cpu/cpu_exec_context.cc
/gem5/src/cpu/cpu_exec_context.hh
/gem5/src/cpu/cpu_models.py
/gem5/src/cpu/exec_context.hh
/gem5/src/cpu/exetrace.cc
/gem5/src/cpu/exetrace.hh
/gem5/src/cpu/inst_seq.hh
/gem5/src/cpu/intr_control.cc
/gem5/src/cpu/intr_control.hh
/gem5/src/cpu/memtest/memtest.cc
/gem5/src/cpu/memtest/memtest.hh
/gem5/src/cpu/o3/2bit_local_pred.cc
/gem5/src/cpu/o3/2bit_local_pred.hh
/gem5/src/cpu/o3/alpha_cpu.cc
/gem5/src/cpu/o3/alpha_cpu.hh
/gem5/src/cpu/o3/alpha_cpu_builder.cc
/gem5/src/cpu/o3/alpha_cpu_impl.hh
/gem5/src/cpu/o3/alpha_dyn_inst.cc
/gem5/src/cpu/o3/alpha_dyn_inst.hh
/gem5/src/cpu/o3/alpha_dyn_inst_impl.hh
/gem5/src/cpu/o3/alpha_impl.hh
/gem5/src/cpu/o3/alpha_params.hh
/gem5/src/cpu/o3/bpred_unit.cc
/gem5/src/cpu/o3/bpred_unit.hh
/gem5/src/cpu/o3/bpred_unit_impl.hh
/gem5/src/cpu/o3/btb.cc
/gem5/src/cpu/o3/btb.hh
/gem5/src/cpu/o3/comm.hh
/gem5/src/cpu/o3/commit.cc
/gem5/src/cpu/o3/commit.hh
/gem5/src/cpu/o3/commit_impl.hh
/gem5/src/cpu/o3/cpu.cc
/gem5/src/cpu/o3/cpu.hh
/gem5/src/cpu/o3/cpu_policy.hh
/gem5/src/cpu/o3/decode.cc
/gem5/src/cpu/o3/decode.hh
/gem5/src/cpu/o3/decode_impl.hh
/gem5/src/cpu/o3/fetch.cc
/gem5/src/cpu/o3/fetch.hh
/gem5/src/cpu/o3/fetch_impl.hh
/gem5/src/cpu/o3/free_list.cc
/gem5/src/cpu/o3/free_list.hh
/gem5/src/cpu/o3/iew.cc
/gem5/src/cpu/o3/iew.hh
/gem5/src/cpu/o3/iew_impl.hh
/gem5/src/cpu/o3/inst_queue.cc
/gem5/src/cpu/o3/inst_queue.hh
/gem5/src/cpu/o3/inst_queue_impl.hh
/gem5/src/cpu/o3/mem_dep_unit.cc
/gem5/src/cpu/o3/mem_dep_unit.hh
/gem5/src/cpu/o3/mem_dep_unit_impl.hh
/gem5/src/cpu/o3/ras.cc
/gem5/src/cpu/o3/ras.hh
/gem5/src/cpu/o3/regfile.hh
/gem5/src/cpu/o3/rename.cc
/gem5/src/cpu/o3/rename.hh
/gem5/src/cpu/o3/rename_impl.hh
/gem5/src/cpu/o3/rename_map.cc
/gem5/src/cpu/o3/rename_map.hh
/gem5/src/cpu/o3/rob.cc
/gem5/src/cpu/o3/rob.hh
/gem5/src/cpu/o3/rob_impl.hh
/gem5/src/cpu/o3/sat_counter.cc
/gem5/src/cpu/o3/sat_counter.hh
/gem5/src/cpu/o3/store_set.cc
/gem5/src/cpu/o3/store_set.hh
/gem5/src/cpu/o3/tournament_pred.cc
/gem5/src/cpu/o3/tournament_pred.hh
/gem5/src/cpu/op_class.cc
/gem5/src/cpu/op_class.hh
/gem5/src/cpu/ozone/cpu.cc
/gem5/src/cpu/ozone/cpu.hh
/gem5/src/cpu/ozone/cpu_impl.hh
/gem5/src/cpu/ozone/ea_list.cc
/gem5/src/cpu/ozone/ea_list.hh
/gem5/src/cpu/pc_event.cc
/gem5/src/cpu/pc_event.hh
/gem5/src/cpu/profile.cc
/gem5/src/cpu/profile.hh
/gem5/src/cpu/simple/atomic.cc
/gem5/src/cpu/simple/atomic.hh
/gem5/src/cpu/simple/base.cc
/gem5/src/cpu/simple/base.hh
/gem5/src/cpu/simple/timing.cc
/gem5/src/cpu/simple/timing.hh
/gem5/src/cpu/smt.hh
/gem5/src/cpu/static_inst.cc
/gem5/src/cpu/static_inst.hh
/gem5/src/cpu/trace/opt_cpu.cc
/gem5/src/cpu/trace/opt_cpu.hh
/gem5/src/cpu/trace/reader/ibm_reader.cc
/gem5/src/cpu/trace/reader/ibm_reader.hh
/gem5/src/cpu/trace/reader/itx_reader.cc
/gem5/src/cpu/trace/reader/itx_reader.hh
/gem5/src/cpu/trace/reader/m5_reader.cc
/gem5/src/cpu/trace/reader/m5_reader.hh
/gem5/src/cpu/trace/reader/mem_trace_reader.cc
/gem5/src/cpu/trace/reader/mem_trace_reader.hh
/gem5/src/cpu/trace/trace_cpu.cc
/gem5/src/cpu/trace/trace_cpu.hh
/gem5/src/dev/alpha_access.h
/gem5/src/dev/alpha_console.cc
/gem5/src/dev/alpha_console.hh
/gem5/src/dev/baddev.cc
/gem5/src/dev/baddev.hh
/gem5/src/dev/disk_image.cc
/gem5/src/dev/disk_image.hh
/gem5/src/dev/etherbus.cc
/gem5/src/dev/etherbus.hh
/gem5/src/dev/etherdump.cc
/gem5/src/dev/etherdump.hh
/gem5/src/dev/etherint.cc
/gem5/src/dev/etherint.hh
/gem5/src/dev/etherlink.cc
/gem5/src/dev/etherlink.hh
/gem5/src/dev/etherpkt.cc
/gem5/src/dev/etherpkt.hh
/gem5/src/dev/ethertap.cc
/gem5/src/dev/ethertap.hh
/gem5/src/dev/ide_ctrl.cc
/gem5/src/dev/ide_ctrl.hh
/gem5/src/dev/ide_disk.cc
/gem5/src/dev/ide_disk.hh
/gem5/src/dev/io_device.cc
/gem5/src/dev/io_device.hh
/gem5/src/dev/isa_fake.cc
/gem5/src/dev/isa_fake.hh
/gem5/src/dev/ns_gige.cc
/gem5/src/dev/ns_gige.hh
/gem5/src/dev/ns_gige_reg.h
/gem5/src/dev/pciconfigall.cc
/gem5/src/dev/pciconfigall.hh
/gem5/src/dev/pcidev.cc
/gem5/src/dev/pcidev.hh
/gem5/src/dev/pcireg.h
/gem5/src/dev/pitreg.h
/gem5/src/dev/pktfifo.cc
/gem5/src/dev/pktfifo.hh
/gem5/src/dev/platform.cc
/gem5/src/dev/platform.hh
/gem5/src/dev/rtcreg.h
/gem5/src/dev/simconsole.cc
/gem5/src/dev/simconsole.hh
/gem5/src/dev/simple_disk.cc
/gem5/src/dev/simple_disk.hh
/gem5/src/dev/sinic.cc
/gem5/src/dev/sinic.hh
/gem5/src/dev/sinicreg.hh
/gem5/src/dev/tsunami.cc
/gem5/src/dev/tsunami.hh
/gem5/src/dev/tsunami_cchip.cc
/gem5/src/dev/tsunami_cchip.hh
/gem5/src/dev/tsunami_io.cc
/gem5/src/dev/tsunami_io.hh
/gem5/src/dev/tsunami_pchip.cc
/gem5/src/dev/tsunami_pchip.hh
/gem5/src/dev/tsunamireg.h
/gem5/src/dev/uart.cc
/gem5/src/dev/uart.hh
/gem5/src/dev/uart8250.cc
/gem5/src/dev/uart8250.hh
/gem5/src/kern/kernel_stats.cc
/gem5/src/kern/kernel_stats.hh
/gem5/src/kern/linux/events.cc
/gem5/src/kern/linux/events.hh
/gem5/src/kern/linux/linux.hh
/gem5/src/kern/linux/linux_syscalls.cc
/gem5/src/kern/linux/linux_syscalls.hh
/gem5/src/kern/linux/printk.cc
/gem5/src/kern/linux/printk.hh
/gem5/src/kern/linux/sched.hh
/gem5/src/kern/solaris/solaris.hh
/gem5/src/kern/system_events.cc
/gem5/src/kern/system_events.hh
/gem5/src/kern/tru64/dump_mbuf.cc
/gem5/src/kern/tru64/dump_mbuf.hh
/gem5/src/kern/tru64/mbuf.hh
/gem5/src/kern/tru64/printf.cc
/gem5/src/kern/tru64/printf.hh
/gem5/src/kern/tru64/tru64.hh
/gem5/src/kern/tru64/tru64_events.cc
/gem5/src/kern/tru64/tru64_events.hh
/gem5/src/kern/tru64/tru64_syscalls.cc
/gem5/src/kern/tru64/tru64_syscalls.hh
/gem5/src/mem/bridge.cc
/gem5/src/mem/bridge.hh
/gem5/src/mem/bus.cc
/gem5/src/mem/bus.hh
/gem5/src/mem/cache/prefetch/tagged_prefetcher_impl.hh
/gem5/src/mem/config/prefetch.hh
/gem5/src/mem/mem_object.cc
/gem5/src/mem/mem_object.hh
/gem5/src/mem/packet.cc
/gem5/src/mem/packet.hh
/gem5/src/mem/page_table.cc
/gem5/src/mem/page_table.hh
/gem5/src/mem/physical.cc
/gem5/src/mem/physical.hh
/gem5/src/mem/port.cc
/gem5/src/mem/port.hh
/gem5/src/mem/request.hh
/gem5/src/mem/translating_port.cc
/gem5/src/mem/translating_port.hh
/gem5/src/mem/vport.cc
/gem5/src/mem/vport.hh
/gem5/src/python/SConscript
/gem5/src/python/m5/__init__.py
/gem5/src/python/m5/config.py
/gem5/src/python/m5/convert.py
/gem5/src/python/m5/multidict.py
/gem5/src/python/m5/smartdict.py
/gem5/src/sim/async.hh
/gem5/src/sim/builder.cc
/gem5/src/sim/builder.hh
/gem5/src/sim/byteswap.hh
/gem5/src/sim/debug.cc
/gem5/src/sim/debug.hh
/gem5/src/sim/eventq.cc
/gem5/src/sim/eventq.hh
/gem5/src/sim/faults.cc
/gem5/src/sim/faults.hh
/gem5/src/sim/host.hh
/gem5/src/sim/main.cc
/gem5/src/sim/param.cc
/gem5/src/sim/param.hh
/gem5/src/sim/process.cc
/gem5/src/sim/process.hh
/gem5/src/sim/pseudo_inst.cc
/gem5/src/sim/pseudo_inst.hh
/gem5/src/sim/root.cc
/gem5/src/sim/serialize.cc
/gem5/src/sim/serialize.hh
/gem5/src/sim/sim_events.cc
/gem5/src/sim/sim_events.hh
/gem5/src/sim/sim_exit.hh
/gem5/src/sim/sim_object.cc
/gem5/src/sim/sim_object.hh
/gem5/src/sim/startup.cc
/gem5/src/sim/startup.hh
/gem5/src/sim/stat_control.cc
/gem5/src/sim/stat_control.hh
/gem5/src/sim/stats.hh
/gem5/src/sim/syscall_emul.cc
/gem5/src/sim/syscall_emul.hh
/gem5/src/sim/system.hh
/gem5/src/sim/vptr.hh
/gem5/src/unittest/bitvectest.cc
/gem5/src/unittest/circletest.cc
/gem5/src/unittest/cprintftest.cc
/gem5/src/unittest/genini.py
/gem5/src/unittest/initest.cc
/gem5/src/unittest/lru_test.cc
/gem5/src/unittest/nmtest.cc
/gem5/src/unittest/offtest.cc
/gem5/src/unittest/paramtest.cc
/gem5/src/unittest/rangetest.cc
/gem5/src/unittest/sized_test.cc
/gem5/src/unittest/stattest.cc
/gem5/src/unittest/strnumtest.cc
/gem5/src/unittest/symtest.cc
/gem5/src/unittest/tokentest.cc
/gem5/src/unittest/tracetest.cc
ccdrv/devtime.c
m5/Makefile
m5/m5.c
m5/m5op.S
m5/m5op.h
oprofile-top.py
qdo
rundiff
stats/db.py
stats/dbinit.py
stats/display.py
stats/info.py
stats/orderdict.py
stats/print.py
stats/profile.py
stats/stats.py
tap/tap.cc
2441:6d9097edd4aa 11-Mar-2006 Steve Reinhardt <stever@eecs.umich.edu>

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.

2422:6ba1e45f8946 09-Mar-2006 Gabe Black <gblack@eecs.umich.edu>

Hand merge. Stuff probably doesn't compile.


/gem5/SConscript
/gem5/arch/alpha/alpha_linux_process.cc
/gem5/arch/alpha/alpha_linux_process.hh
/gem5/arch/alpha/alpha_memory.cc
/gem5/arch/alpha/alpha_memory.hh
/gem5/arch/alpha/alpha_tru64_process.cc
/gem5/arch/alpha/alpha_tru64_process.hh
/gem5/arch/alpha/isa/main.isa
/gem5/arch/alpha/isa_desc
/gem5/arch/alpha/linux/process.cc
/gem5/arch/alpha/linux/process.hh
/gem5/arch/alpha/pseudo_inst.cc
/gem5/arch/alpha/pseudo_inst.hh
/gem5/arch/alpha/tru64/process.cc
/gem5/arch/alpha/tru64/process.hh
/gem5/arch/alpha/vptr.hh
/gem5/arch/isa_parser.py
/gem5/base/intmath.hh
/gem5/base/loader/elf_object.cc
/gem5/base/loader/object_file.hh
/gem5/build/build_options/default/ALPHA_FS
/gem5/build/build_options/default/ALPHA_FS_TL
/gem5/build/build_options/default/ALPHA_SE
/gem5/cpu/base.cc
/gem5/cpu/base.hh
/gem5/cpu/cpu_exec_context.cc
/gem5/cpu/cpu_exec_context.hh
/gem5/cpu/exec_context.cc
/gem5/cpu/exec_context.hh
/gem5/cpu/exetrace.cc
/gem5/cpu/pc_event.hh
/gem5/cpu/simple/cpu.cc
/gem5/cpu/simple/cpu.hh
/gem5/cpu/static_inst.hh
/gem5/dev/platform.hh
/gem5/kern/freebsd/freebsd_system.cc
/gem5/kern/freebsd/freebsd_system.hh
/gem5/kern/linux/aligned.hh
/gem5/kern/linux/hwrpb.hh
/gem5/kern/linux/linux_system.cc
/gem5/kern/linux/linux_system.hh
/gem5/kern/linux/linux_threadinfo.hh
/gem5/kern/linux/thread_info.hh
/gem5/kern/tru64/tru64_system.cc
/gem5/kern/tru64/tru64_system.hh
/gem5/python/m5/objects/Ethernet.py
/gem5/python/m5/objects/System.py
/gem5/sim/process.cc
/gem5/sim/process.hh
/gem5/sim/syscall_emul.cc
/gem5/sim/syscall_emul.hh
/gem5/sim/system.cc
/gem5/sim/system.hh
m5/m5op.s
2358:4194f6d8eb87 23-Aug-2006 Kevin Lim <ktlim@umich.edu>

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).

2357:add41108b549 11-Aug-2006 Kevin Lim <ktlim@umich.edu>

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.

2343:a2b4a6ccee56 10-Jun-2006 Nathan Binkert <binkertn@umich.edu>

Remove all binning stuff

2283:00de5774067b 02-May-2006 Nathan Binkert <binkertn@umich.edu>

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

2206:b84a1f4ee725 02-Mar-2006 Gabe Black <gblack@eecs.umich.edu>

Merge gblack@m5.eecs.umich.edu:/bk/multiarch
into ewok.(none):/home/gblack/m5/multiarch

2204:64698895c22e 01-Mar-2006 Ali Saidi <saidi@eecs.umich.edu>

Merge zizzer:/bk/m5
into zeep.eecs.umich.edu:/z/saidi/work/m5.q

2188:63871985840f 28-Feb-2006 Ali Saidi <saidi@eecs.umich.edu>

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

2187:494da52c4eac 26-Feb-2006 Nathan Binkert <binkertn@umich.edu>

fix some minor stats stuff

util/stats/stats.py:
fix up a few of the stats.

2185:1ae0d79e352c 26-Feb-2006 Nathan Binkert <binkertn@umich.edu>

Allow graph_group to not be selected so we can have a
normal ungrouped barchart

2184:72d783509598 26-Feb-2006 Nathan Binkert <binkertn@umich.edu>

better function categorization

util/stats/categories.py:
bit more stuff for categorizing functions

2183:4420c8fadbf5 26-Feb-2006 Nathan Binkert <binkertn@umich.edu>

fix small python bug in database processing code

util/stats/db.py:
fix usage of hasattr

2182:cd8095e0f475 26-Feb-2006 Nathan Binkert <binkertn@umich.edu>

code cleanup

util/stats/barchart.py:
clean up some of lisa's messy code
remove trailing whitespace while I'm at it.

2181:e22fa74669cd 26-Feb-2006 Nathan Binkert <binkertn@umich.edu>

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

2180:44599b79ef80 26-Feb-2006 Nathan Binkert <binkertn@umich.edu>

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.

2179:7e15ffdd03d8 25-Feb-2006 Nathan Binkert <binkertn@umich.edu>

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

2160:d851e177e4c6 24-Feb-2006 Lisa Hsu <hsul@eecs.umich.edu>

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

2142:80134e6b9c79 23-Feb-2006 Nathan Binkert <binkertn@umich.edu>

don't add an empty suboption description

2141:5616ed031d22 23-Feb-2006 Nathan Binkert <binkertn@umich.edu>

make it possible to add filters for job names so that
parts of the full crossproduct of jobs can be ignored.

2119:f0de10227ae5 18-Feb-2006 Lisa Hsu <hsul@eecs.umich.edu>

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)

2118:1fe7d0ddf765 18-Feb-2006 Lisa Hsu <hsul@eecs.umich.edu>

remove print statements

2117:cd2f6cff36df 18-Feb-2006 Lisa Hsu <hsul@eecs.umich.edu>

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.

2115:beeeb8bb7550 18-Feb-2006 Lisa Hsu <hsul@eecs.umich.edu>

Now you can have sublabels for every bar using the self.xsubticklabels parameter.

2033:b39f823d43c3 30-Jan-2006 Nathan Binkert <binkertn@umich.edu>

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

2015:fab23b1eb6f4 19-Dec-2005 Nathan Binkert <binkertn@umich.edu>

Create the ProxyError Exception. Raise it when an unproxy
operation fails because information is wrong or not available.

2014:7df693ff6fa4 19-Dec-2005 Nathan Binkert <binkertn@umich.edu>

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.

2006:3ca085495c69 22-Nov-2005 Nathan Binkert <binkertn@umich.edu>

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

2005:5d2963051cc7 22-Nov-2005 Nathan Binkert <binkertn@umich.edu>

Change the set of statistics that are generated when specifying "all"

2004:cdf8e86d1983 22-Nov-2005 Nathan Binkert <binkertn@umich.edu>

More changes from cpus named fullX to runX

2002:7167e8c3ef31 22-Nov-2005 Nathan Binkert <binkertn@umich.edu>

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

1987:256b113e2c2e 20-Nov-2005 Nathan Binkert <binkertn@umich.edu>

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

1986:b7d11bab72eb 20-Nov-2005 Nathan Binkert <binkertn@umich.edu>

implement __str__ for all of the proxy stuff so we can
actually print out a statistic.

1972:be813159a758 11-Nov-2005 Ali Saidi <saidi@eecs.umich.edu>

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.

1964:fca3bb8babaf 03-Nov-2005 Steve Reinhardt <stever@eecs.umich.edu>

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.

1958:144ef1d5315f 02-Nov-2005 Ali Saidi <saidi@eecs.umich.edu>

Merge zizzer:/bk/m5
into zeep.eecs.umich.edu:/z/saidi/work/m5

1957:895f4795130f 02-Nov-2005 Ali Saidi <saidi@eecs.umich.edu>

Change the output of stability info a little bit

1956:e9447a75c009 02-Nov-2005 Ali Saidi <saidi@eecs.umich.edu>

add a few more options to the help menu

1948:04aebfd9acf3 02-Nov-2005 Nathan Binkert <binkertn@umich.edu>

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

1940:6f54e570db58 23-Oct-2005 Steve Reinhardt <stever@eecs.umich.edu>

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.

1934:84c12fdd57f9 21-Oct-2005 Nathan Binkert <binkertn@umich.edu>

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

1933:83716112740d 21-Oct-2005 Nathan Binkert <binkertn@umich.edu>

Minor updates to the profile code.

util/stats/profile.py:
Pass around the number of symbols limit
deal with categorization a bit better.

1930:d7836f59a02c 20-Oct-2005 Steve Reinhardt <stever@eecs.umich.edu>

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.

1929:fb189519cb06 21-Oct-2005 Nathan Binkert <binkertn@umich.edu>

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

1928:b75ae11a5e8f 19-Oct-2005 Nathan Binkert <binkertn@umich.edu>

fix pbs dependency stuff

util/pbs/pbs.py:
after -> afterok

1918:0c4f083eccc8 18-Oct-2005 Nathan Binkert <binkertn@umich.edu>

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

1917:2d0b0bd256ab 18-Oct-2005 Nathan Binkert <binkertn@umich.edu>

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.

1916:fe8d4e92c0a7 18-Oct-2005 Nathan Binkert <binkertn@umich.edu>

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

1915:53799fe15b83 18-Oct-2005 Nathan Binkert <binkertn@umich.edu>

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

1908:73342b7d6f83 12-Oct-2005 Nathan Binkert <binkertn@umich.edu>

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

1897:d08e4761b554 01-Oct-2005 Steve Reinhardt <stever@eecs.umich.edu>

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.

1891:6d62abcc7456 29-Sep-2005 Steve Reinhardt <stever@eecs.umich.edu>

Fix for qdo & new pool node build.

util/qdo:
unset PROMPT_COMMAND in shell in case system sets
it for us.

1884:e543e25a5d27 22-Sep-2005 Steve Reinhardt <stever@eecs.umich.edu>

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.

1881:fc205a7edd58 17-Sep-2005 Nathan Binkert <binkertn@umich.edu>

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

1816:ecb6cb1337e8 16-Aug-2005 Nathan Binkert <binkertn@umich.edu>

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.

1803:9ddfa35ac314 27-Jun-2005 Nathan Binkert <binkertn@umich.edu>

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.

1772:a3a83e812a5e 05-Jun-2005 Nathan Binkert <binkertn@umich.edu>

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

1762:6bf5cf6d9903 05-Jun-2005 Steve Reinhardt <stever@eecs.umich.edu>

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


/gem5/SConscript
/gem5/arch/alpha/alpha_linux_process.hh
/gem5/arch/alpha/alpha_memory.cc
/gem5/arch/alpha/alpha_memory.hh
/gem5/arch/alpha/alpha_tru64_process.hh
/gem5/arch/alpha/aout_machdep.h
/gem5/arch/alpha/arguments.cc
/gem5/arch/alpha/arguments.hh
/gem5/arch/alpha/ev5.cc
/gem5/arch/alpha/ev5.hh
/gem5/arch/alpha/faults.cc
/gem5/arch/alpha/faults.hh
/gem5/arch/alpha/isa_desc
/gem5/arch/alpha/osfpal.cc
/gem5/arch/alpha/osfpal.hh
/gem5/arch/alpha/pseudo_inst.cc
/gem5/arch/alpha/pseudo_inst.hh
/gem5/arch/alpha/vptr.hh
/gem5/arch/alpha/vtophys.cc
/gem5/arch/alpha/vtophys.hh
/gem5/base/bitfield.hh
/gem5/base/callback.hh
/gem5/base/circlebuf.cc
/gem5/base/circlebuf.hh
/gem5/base/compression/lzss_compression.cc
/gem5/base/compression/lzss_compression.hh
/gem5/base/compression/null_compression.hh
/gem5/base/cprintf.cc
/gem5/base/cprintf.hh
/gem5/base/cprintf_formats.hh
/gem5/base/crc.hh
/gem5/base/date.cc
/gem5/base/dbl_list.hh
/gem5/base/endian.hh
/gem5/base/fast_alloc.cc
/gem5/base/fast_alloc.hh
/gem5/base/fifo_buffer.cc
/gem5/base/fifo_buffer.hh
/gem5/base/hashmap.hh
/gem5/base/hostinfo.cc
/gem5/base/hostinfo.hh
/gem5/base/hybrid_pred.cc
/gem5/base/hybrid_pred.hh
/gem5/base/inet.cc
/gem5/base/inet.hh
/gem5/base/inifile.cc
/gem5/base/inifile.hh
/gem5/base/intmath.cc
/gem5/base/intmath.hh
/gem5/base/loader/aout_object.cc
/gem5/base/loader/aout_object.hh
/gem5/base/loader/ecoff_object.cc
/gem5/base/loader/ecoff_object.hh
/gem5/base/loader/elf_object.cc
/gem5/base/loader/elf_object.hh
/gem5/base/loader/object_file.cc
/gem5/base/loader/object_file.hh
/gem5/base/loader/symtab.cc
/gem5/base/loader/symtab.hh
/gem5/base/match.cc
/gem5/base/match.hh
/gem5/base/misc.cc
/gem5/base/misc.hh
/gem5/base/mod_num.hh
/gem5/base/mysql.cc
/gem5/base/mysql.hh
/gem5/base/pollevent.cc
/gem5/base/pollevent.hh
/gem5/base/predictor.hh
/gem5/base/random.cc
/gem5/base/random.hh
/gem5/base/range.cc
/gem5/base/range.hh
/gem5/base/refcnt.hh
/gem5/base/remote_gdb.cc
/gem5/base/remote_gdb.hh
/gem5/base/res_list.hh
/gem5/base/sat_counter.cc
/gem5/base/sat_counter.hh
/gem5/base/sched_list.hh
/gem5/base/socket.cc
/gem5/base/socket.hh
/gem5/base/statistics.cc
/gem5/base/statistics.hh
/gem5/base/stats/events.cc
/gem5/base/stats/events.hh
/gem5/base/stats/flags.hh
/gem5/base/stats/mysql.cc
/gem5/base/stats/mysql.hh
/gem5/base/stats/mysql_run.hh
/gem5/base/stats/output.hh
/gem5/base/stats/statdb.cc
/gem5/base/stats/statdb.hh
/gem5/base/stats/text.cc
/gem5/base/stats/text.hh
/gem5/base/stats/types.hh
/gem5/base/stats/visit.cc
/gem5/base/stats/visit.hh
/gem5/base/str.cc
/gem5/base/str.hh
/gem5/base/time.cc
/gem5/base/time.hh
/gem5/base/timebuf.hh
/gem5/base/trace.cc
/gem5/base/trace.hh
/gem5/base/userinfo.cc
/gem5/base/userinfo.hh
/gem5/build/SConstruct
/gem5/cpu/base.cc
/gem5/cpu/base.hh
/gem5/cpu/base_dyn_inst.cc
/gem5/cpu/base_dyn_inst.hh
/gem5/cpu/exec_context.cc
/gem5/cpu/exec_context.hh
/gem5/cpu/exetrace.cc
/gem5/cpu/exetrace.hh
/gem5/cpu/inst_seq.hh
/gem5/cpu/intr_control.cc
/gem5/cpu/intr_control.hh
/gem5/cpu/memtest/memtest.cc
/gem5/cpu/memtest/memtest.hh
/gem5/cpu/o3/sat_counter.cc
/gem5/cpu/o3/sat_counter.hh
/gem5/cpu/ozone/cpu.hh
/gem5/cpu/pc_event.cc
/gem5/cpu/pc_event.hh
/gem5/cpu/simple/cpu.cc
/gem5/cpu/simple/cpu.hh
/gem5/cpu/smt.hh
/gem5/cpu/static_inst.cc
/gem5/cpu/static_inst.hh
/gem5/cpu/trace/opt_cpu.cc
/gem5/cpu/trace/opt_cpu.hh
/gem5/cpu/trace/reader/ibm_reader.cc
/gem5/cpu/trace/reader/ibm_reader.hh
/gem5/cpu/trace/reader/itx_reader.cc
/gem5/cpu/trace/reader/itx_reader.hh
/gem5/cpu/trace/reader/m5_reader.cc
/gem5/cpu/trace/reader/m5_reader.hh
/gem5/cpu/trace/reader/mem_trace_reader.cc
/gem5/cpu/trace/reader/mem_trace_reader.hh
/gem5/cpu/trace/trace_cpu.cc
/gem5/cpu/trace/trace_cpu.hh
/gem5/dev/alpha_access.h
/gem5/dev/alpha_console.cc
/gem5/dev/alpha_console.hh
/gem5/dev/baddev.cc
/gem5/dev/baddev.hh
/gem5/dev/disk_image.cc
/gem5/dev/disk_image.hh
/gem5/dev/etherbus.cc
/gem5/dev/etherbus.hh
/gem5/dev/etherdump.cc
/gem5/dev/etherdump.hh
/gem5/dev/etherint.cc
/gem5/dev/etherint.hh
/gem5/dev/etherlink.cc
/gem5/dev/etherlink.hh
/gem5/dev/etherpkt.cc
/gem5/dev/etherpkt.hh
/gem5/dev/ethertap.cc
/gem5/dev/ethertap.hh
/gem5/dev/ide_ctrl.cc
/gem5/dev/ide_ctrl.hh
/gem5/dev/ide_disk.cc
/gem5/dev/ide_disk.hh
/gem5/dev/io_device.cc
/gem5/dev/io_device.hh
/gem5/dev/ns_gige.cc
/gem5/dev/ns_gige.hh
/gem5/dev/ns_gige_reg.h
/gem5/dev/pciconfigall.cc
/gem5/dev/pciconfigall.hh
/gem5/dev/pcidev.cc
/gem5/dev/pcidev.hh
/gem5/dev/pcireg.h
/gem5/dev/pktfifo.cc
/gem5/dev/pktfifo.hh
/gem5/dev/platform.cc
/gem5/dev/platform.hh
/gem5/dev/simconsole.cc
/gem5/dev/simconsole.hh
/gem5/dev/simple_disk.cc
/gem5/dev/simple_disk.hh
/gem5/dev/sinic.cc
/gem5/dev/sinic.hh
/gem5/dev/sinicreg.hh
/gem5/dev/tsunami.cc
/gem5/dev/tsunami.hh
/gem5/dev/tsunami_cchip.cc
/gem5/dev/tsunami_cchip.hh
/gem5/dev/tsunami_io.hh
/gem5/dev/tsunami_pchip.cc
/gem5/dev/tsunami_pchip.hh
/gem5/dev/tsunamireg.h
/gem5/dev/uart.cc
/gem5/dev/uart.hh
/gem5/dev/uart8250.cc
/gem5/dev/uart8250.hh
/gem5/docs/stl.hh
/gem5/encumbered/cpu/full/op_class.hh
/gem5/kern/kernel_stats.cc
/gem5/kern/kernel_stats.hh
/gem5/kern/linux/linux.hh
/gem5/kern/linux/linux_syscalls.cc
/gem5/kern/linux/linux_syscalls.hh
/gem5/kern/linux/linux_system.cc
/gem5/kern/linux/linux_system.hh
/gem5/kern/linux/printk.cc
/gem5/kern/linux/printk.hh
/gem5/kern/system_events.cc
/gem5/kern/system_events.hh
/gem5/kern/tru64/dump_mbuf.cc
/gem5/kern/tru64/dump_mbuf.hh
/gem5/kern/tru64/mbuf.hh
/gem5/kern/tru64/printf.cc
/gem5/kern/tru64/printf.hh
/gem5/kern/tru64/tru64.hh
/gem5/kern/tru64/tru64_events.cc
/gem5/kern/tru64/tru64_events.hh
/gem5/kern/tru64/tru64_syscalls.cc
/gem5/kern/tru64/tru64_syscalls.hh
/gem5/kern/tru64/tru64_system.cc
/gem5/kern/tru64/tru64_system.hh
/gem5/python/SConscript
/gem5/sim/async.hh
/gem5/sim/builder.cc
/gem5/sim/builder.hh
/gem5/sim/debug.cc
/gem5/sim/debug.hh
/gem5/sim/eventq.cc
/gem5/sim/eventq.hh
/gem5/sim/host.hh
/gem5/sim/main.cc
/gem5/sim/param.cc
/gem5/sim/param.hh
/gem5/sim/process.cc
/gem5/sim/process.hh
/gem5/sim/root.cc
/gem5/sim/serialize.cc
/gem5/sim/serialize.hh
/gem5/sim/sim_events.cc
/gem5/sim/sim_events.hh
/gem5/sim/sim_exit.hh
/gem5/sim/sim_object.cc
/gem5/sim/sim_object.hh
/gem5/sim/startup.cc
/gem5/sim/startup.hh
/gem5/sim/stat_control.cc
/gem5/sim/stat_control.hh
/gem5/sim/stats.hh
/gem5/sim/system.cc
/gem5/sim/system.hh
/gem5/test/bitvectest.cc
/gem5/test/circletest.cc
/gem5/test/cprintftest.cc
/gem5/test/initest.cc
/gem5/test/lru_test.cc
/gem5/test/nmtest.cc
/gem5/test/offtest.cc
/gem5/test/paramtest.cc
/gem5/test/rangetest.cc
/gem5/test/sized_test.cc
/gem5/test/stattest.cc
/gem5/test/strnumtest.cc
/gem5/test/symtest.cc
/gem5/test/tokentest.cc
/gem5/test/tracetest.cc
m5/m5.c
m5/m5op.h
m5/m5op.s
tap/tap.cc
1760:48ebe25cedc8 05-Jun-2005 Steve Reinhardt <stever@eecs.umich.edu>

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

1758:74acd5b23964 05-Jun-2005 Ali Saidi <saidi@eecs.umich.edu>

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

1746:5222df37cff2 05-Jun-2005 Lisa Hsu <hsul@eecs.umich.edu>

just make a minor commenting change reflecting the new way to set up command line arguments.

1712:3bb2f82d705c 04-Jun-2005 Steve Reinhardt <stever@eecs.umich.edu>

Get rid of vestiges of .mpy file handling.

1621:33fdc8ebda51 06-Apr-2005 Nathan Binkert <binkertn@umich.edu>

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

1604:c986abdfc71f 24-Mar-2005 Ron Dreslinski <rdreslin@umich.edu>

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)

1602:0fad8b5c6d2f 24-Mar-2005 Nathan Binkert <binkertn@umich.edu>

Improvements to send.py to allow the user to specify the jobfile

util/pbs/send.py:
Allow the user to specify the jobfile

1596:d11171f51a63 23-Mar-2005 Ali Saidi <saidi@eecs.umich.edu>

update profile code to use shared categories file

util/stats/stats.py:
add database command to help

1547:1f0c266940d4 15-Mar-2005 Nathan Binkert <binkertn@umich.edu>

get rid of issequence and just use the isinstance builtin

1442:345618f20558 09-Mar-2005 Steve Reinhardt <stever@eecs.umich.edu>

Fix tracediff to work with new parameter and output directory structure.

util/tracediff:
Fix to work with new parameter and output directory structure.

1428:9d1d5c8754fd 07-Mar-2005 Nathan Binkert <binkertn@umich.edu>

Make it easier to find a jobfile.

util/pbs/jobfile.py:
Search for the jobfile in sys.path

1393:5c13e11b3df1 14-Feb-2005 Nathan Binkert <binkertn@umich.edu>

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

1392:aabce7923b3b 14-Feb-2005 Ali Saidi <saidi@eecs.umich.edu>

undoing change per nates request

1391:2ec715129707 14-Feb-2005 Ali Saidi <saidi@eecs.umich.edu>

output dir changes to python files

util/pbs/job.py:
pass output dir to m5 directly

1386:793290a922ee 10-Feb-2005 Nathan Binkert <binkertn@umich.edu>

Some cosmetic changes to MyPOpen

util/pbs/pbs.py:
More tweaks that I forgot

1385:a80f052561fd 09-Feb-2005 Nathan Binkert <binkertn@umich.edu>

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.

1383:e6881c83438c 09-Feb-2005 Nathan Binkert <binkertn@umich.edu>

More fixes for running from anywhere.

util/pbs/send.py:
always access the job directory via full path

1381:6ede00091fa9 09-Feb-2005 Nathan Binkert <binkertn@umich.edu>

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.

1376:190de61fed5a 05-Feb-2005 Nathan Binkert <binkertn@umich.edu>

Make pbs submission scripts available to all.
Fix up configuration scrupts to have better support for
running on the simulation pool.

1372:61ab4c4fe309 03-Feb-2005 Steve Reinhardt <stever@eecs.umich.edu>

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/).

1369:40c6c8864896 03-Feb-2005 Nathan Binkert <binkertn@umich.edu>

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

1331:a0b8619e0e72 19-Jan-2005 Ali Saidi <saidi@eecs.umich.edu>

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

1329:1e7bd1684f64 18-Jan-2005 Ali Saidi <saidi@eecs.umich.edu>

Ability to check formulas

1318:57d49cdb92a5 18-Jan-2005 Ali Saidi <saidi@eecs.umich.edu>

now really done with stability stats stuff

1317:0b6026d3000b 18-Jan-2005 Ali Saidi <saidi@eecs.umich.edu>

finished stability stats option

1309:7daf185ddae8 14-Jan-2005 Ali Saidi <saidi@eecs.umich.edu>

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.

1308:2078b53d65d9 14-Jan-2005 Ali Saidi <saidi@eecs.umich.edu>

automerged had issues with the options.XXXXX in stats.py

1307:e6b9976895c6 12-Jan-2005 Nathan Binkert <binkertn@umich.edu>

More graph output junk

util/stats/stats.py:
Add the graphing output for 6GHz and 8GHz runs

1306:7908551ae2a8 12-Jan-2005 Nathan Binkert <binkertn@umich.edu>

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

1301:f85f6fb43474 13-Jan-2005 Ali Saidi <saidi@eecs.umich.edu>

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

1269:419b73347a1e 18-Nov-2004 Nathan Binkert <binkertn@umich.edu>

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

1209:7eb1f18fcaa6 17-Nov-2004 Nathan Binkert <binkertn@umich.edu>

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.

1165:234f3cdd541a 15-Nov-2004 Nathan Binkert <binkertn@umich.edu>

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

1162:a45bd001ac39 14-Nov-2004 Nathan Binkert <binkertn@umich.edu>

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

1123:6c1d34265571 27-Oct-2004 Steve Reinhardt <stever@eecs.umich.edu>

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.

1076:0e05a8c0c598 10-Sep-2004 Nathan Binkert <binkertn@umich.edu>

fix the options stuff

util/stats/stats.py:
get the options from the options struct now
gratuitously change the output directory for graphs.

1068:6330fe678283 18-Aug-2004 Ali Saidi <saidi@eecs.umich.edu>

added nate's memtest code to devtime

util/ccdrv/devtime.c:
incorperated nate's changes for memory testing.

1055:2a9f0039e579 10-Aug-2004 Ali Saidi <saidi@eecs.umich.edu>

Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/z/saidi/work/m5

1053:2c6d9e60541b 02-Aug-2004 Ali Saidi <saidi@eecs.umich.edu>

merged full_cpu.ini, system.ini and devtime.c

util/ccdrv/devtime.c:
coding style

1051:d71e55bdc654 12-Jul-2004 Ali Saidi <saidi@eecs.umich.edu>

modified ccdrv to print out raw data.

util/ccdrv/devtime.c:
modified to print out raw data.

1049:b175a798c8d4 09-Aug-2004 Nathan Binkert <binkertn@umich.edu>

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

1046:808492005d8c 05-Aug-2004 Steve Reinhardt <stever@eecs.umich.edu>

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?)

996:439a9c897004 12-Jul-2004 Nathan Binkert <binkertn@umich.edu>

put the formatting fixes back into devtime

util/ccdrv/devtime.c:
put the formatting fixes back. no tabs.

994:42291e750752 12-Jul-2004 Ali Saidi <saidi@eecs.umich.edu>

modified devtime to print out raw data

993:bc33dc3beeea 12-Jul-2004 Nathan Binkert <binkertn@umich.edu>

formatting

964:306b6856a5a0 05-Jul-2004 Ali Saidi <saidi@eecs.umich.edu>

updated to work on all platforms (actually map sure that the physical
address we are trying to access is mapped before accessing it.)

963:9b3ac57fa611 05-Jul-2004 Ali Saidi <saidi@eecs.umich.edu>

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.

930:2ed7c66c1e10 23-Jun-2004 Ali Saidi <saidi@eecs.umich.edu>

Merge zizzer:/bk/linux into zeep.eecs.umich.edu:/z/saidi/work/m5-endian

928:08ae65734c4b 22-Jun-2004 Ali Saidi <saidi@eecs.umich.edu>

Merge zizzer:/bk/linux into zeep.eecs.umich.edu:/z/saidi/work/m5-linux

922:78b1a7063cd2 22-Jun-2004 Ali Saidi <saidi@eecs.umich.edu>

pull from head before pushing linux tree

751:f2158e9e7546 09-Jun-2004 Steve Reinhardt <stever@eecs.umich.edu>

Merge zizzer:/bk/m5 into isabel.reinhardt.house:/z/stever/bk/m5

750:20b8e5623cf6 09-Jun-2004 Steve Reinhardt <stever@eecs.umich.edu>

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.

704:545eb5fb5454 09-May-2004 Steve Reinhardt <stever@eecs.umich.edu>

Very minor fixes.

util/tracediff:
stats:file option is now stats:text_file

702:53219b2f810b 28-Apr-2004 Steve Reinhardt <stever@eecs.umich.edu>

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.

679:6846139f8e3f 06-Apr-2004 Steve Reinhardt <stever@eecs.umich.edu>

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.

664:8f0ea6011b74 24-Mar-2004 Nathan Binkert <binkertn@umich.edu>

Don't indent namespaces because it just wastes space

579:89d00699f484 23-Feb-2004 Steve Reinhardt <stever@eecs.umich.edu>

Quote args properly in tracediff.

util/tracediff:
Quote simulator args so args with spaces get handled correctly.

408:d4c111599758 17-Dec-2003 Steve Reinhardt <stever@eecs.umich.edu>

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.

404:9d95995db57c 15-Dec-2003 Steve Reinhardt <stever@eecs.umich.edu>

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.

354:fbfbff4f09c3 09-Nov-2003 Steve Reinhardt <stever@eecs.umich.edu>

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

338:6cf264d111b4 06-Nov-2003 Erik Hallnor <ehallnor@umich.edu>

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.

291:ba3bdac49128 02-Nov-2003 Nathan Binkert <binkertn@umich.edu>

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.

287:afb495378ac2 02-Nov-2003 Nathan Binkert <binkertn@umich.edu>

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

278:d70cd1f79d06 01-Nov-2003 Nathan Binkert <binkertn@umich.edu>

Licenses

275:df845558a024 01-Nov-2003 Nathan Binkert <binkertn@umich.edu>

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.

247:b6d59dff0294 30-Oct-2003 Steve Reinhardt <stever@eecs.umich.edu>

New tracediff script for invoking rundiff on two copies of the simulator.

202:aa3db11c4e84 26-Oct-2003 Nathan Binkert <binkertn@umich.edu>

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

196:fd06d955c1c5 25-Oct-2003 Steve Reinhardt <stever@eecs.umich.edu>

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.

139:4cb7c04da742 19-Oct-2003 Steve Reinhardt <stever@eecs.umich.edu>

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!

105:5440d7a4f376 15-Oct-2003 Nathan Binkert <binkertn@umich.edu>

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

81:6e7e20c22966 13-Oct-2003 Steve Reinhardt <stever@eecs.umich.edu>

Add m5 emacs style file.

56:5b096933002b 10-Oct-2003 Steve Reinhardt <stever@eecs.umich.edu>

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.


/gem5/arch/alpha/alpha_memory.cc
/gem5/arch/alpha/alpha_memory.hh
/gem5/arch/alpha/arguments.cc
/gem5/arch/alpha/arguments.hh
/gem5/arch/alpha/ev5.cc
/gem5/arch/alpha/ev5.hh
/gem5/arch/alpha/fake_syscall.cc
/gem5/arch/alpha/faults.cc
/gem5/arch/alpha/isa_desc
/gem5/arch/alpha/isa_traits.hh
/gem5/arch/alpha/osfpal.cc
/gem5/arch/alpha/vtophys.cc
/gem5/arch/alpha/vtophys.hh
/gem5/base/circlebuf.cc
/gem5/base/compression/lzss_compression.cc
/gem5/base/compression/lzss_compression.hh
/gem5/base/cprintf.cc
/gem5/base/cprintf.hh
/gem5/base/fast_alloc.cc
/gem5/base/fifo_buffer.cc
/gem5/base/fifo_buffer.hh
/gem5/base/hashmap.hh
/gem5/base/hostinfo.cc
/gem5/base/hostinfo.hh
/gem5/base/hybrid_pred.cc
/gem5/base/hybrid_pred.hh
/gem5/base/inet.cc
/gem5/base/inet.hh
/gem5/base/inifile.cc
/gem5/base/inifile.hh
/gem5/base/intmath.cc
/gem5/base/loader/aout_object.cc
/gem5/base/loader/aout_object.hh
/gem5/base/loader/ecoff_object.cc
/gem5/base/loader/ecoff_object.hh
/gem5/base/loader/elf_object.cc
/gem5/base/loader/elf_object.hh
/gem5/base/loader/exec_aout.h
/gem5/base/loader/exec_ecoff.h
/gem5/base/loader/object_file.cc
/gem5/base/loader/object_file.hh
/gem5/base/loader/symtab.cc
/gem5/base/loader/symtab.hh
/gem5/base/misc.cc
/gem5/base/misc.hh
/gem5/base/pollevent.cc
/gem5/base/pollevent.hh
/gem5/base/random.cc
/gem5/base/random.hh
/gem5/base/range.hh
/gem5/base/remote_gdb.cc
/gem5/base/remote_gdb.hh
/gem5/base/res_list.hh
/gem5/base/sat_counter.cc
/gem5/base/sat_counter.hh
/gem5/base/sched_list.hh
/gem5/base/socket.cc
/gem5/base/statistics.cc
/gem5/base/statistics.hh
/gem5/base/str.cc
/gem5/base/trace.cc
/gem5/base/trace.hh
/gem5/cpu/base_cpu.cc
/gem5/cpu/base_cpu.hh
/gem5/cpu/exec_context.cc
/gem5/cpu/exec_context.hh
/gem5/cpu/exetrace.cc
/gem5/cpu/exetrace.hh
/gem5/cpu/intr_control.cc
/gem5/cpu/intr_control.hh
/gem5/cpu/memtest/memtest.cc
/gem5/cpu/memtest/memtest.hh
/gem5/cpu/pc_event.cc
/gem5/cpu/pc_event.hh
/gem5/cpu/simple_cpu/simple_cpu.cc
/gem5/cpu/simple_cpu/simple_cpu.hh
/gem5/cpu/static_inst.cc
/gem5/cpu/static_inst.hh
/gem5/dev/alpha_console.cc
/gem5/dev/alpha_console.hh
/gem5/dev/console.cc
/gem5/dev/console.hh
/gem5/dev/disk_image.cc
/gem5/dev/disk_image.hh
/gem5/dev/etherbus.cc
/gem5/dev/etherbus.hh
/gem5/dev/etherdump.cc
/gem5/dev/etherdump.hh
/gem5/dev/etherint.cc
/gem5/dev/etherint.hh
/gem5/dev/etherlink.cc
/gem5/dev/etherlink.hh
/gem5/dev/etherpkt.hh
/gem5/dev/ethertap.cc
/gem5/dev/ethertap.hh
/gem5/dev/simple_disk.cc
/gem5/dev/simple_disk.hh
/gem5/kern/tru64/tru64_syscalls.cc
/gem5/kern/tru64/tru64_syscalls.hh
/gem5/sim/debug.cc
/gem5/sim/eventq.cc
/gem5/sim/eventq.hh
/gem5/sim/main.cc
/gem5/sim/param.cc
/gem5/sim/param.hh
/gem5/sim/prog.cc
/gem5/sim/prog.hh
/gem5/sim/serialize.cc
/gem5/sim/serialize.hh
/gem5/sim/sim_events.cc
/gem5/sim/sim_events.hh
/gem5/sim/sim_object.cc
/gem5/sim/sim_object.hh
/gem5/sim/sim_time.cc
/gem5/sim/system.cc
/gem5/sim/system.hh
/gem5/sim/universe.cc
/gem5/test/circletest.cc
/gem5/test/cprintftest.cc
/gem5/test/initest.cc
/gem5/test/nmtest.cc
/gem5/test/offtest.cc
/gem5/test/paramtest.cc
/gem5/test/rangetest.cc
/gem5/test/stattest.cc
/gem5/test/strnumtest.cc
/gem5/test/symtest.cc
/gem5/test/tokentest.cc
/gem5/test/tracetest.cc
tap/tap.cc
4:7805f2ade389 07-Oct-2003 Steve Raasch <sraasch@umich.edu>

fixing CVS permissions oops

2:7ab458527c41 07-Oct-2003 Steve Raasch <sraasch@umich.edu>

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


/gem5/Doxyfile
/gem5/LICENSE
/gem5/arch/alpha/alpha_memory.cc
/gem5/arch/alpha/alpha_memory.hh
/gem5/arch/alpha/arguments.cc
/gem5/arch/alpha/arguments.hh
/gem5/arch/alpha/ev5.cc
/gem5/arch/alpha/ev5.hh
/gem5/arch/alpha/fake_syscall.cc
/gem5/arch/alpha/faults.cc
/gem5/arch/alpha/faults.hh
/gem5/arch/alpha/isa_desc
/gem5/arch/alpha/isa_traits.hh
/gem5/arch/alpha/osfpal.cc
/gem5/arch/alpha/osfpal.hh
/gem5/arch/alpha/vtophys.cc
/gem5/arch/alpha/vtophys.hh
/gem5/arch/isa_parser.py
/gem5/base/bitfield.hh
/gem5/base/callback.hh
/gem5/base/circlebuf.cc
/gem5/base/circlebuf.hh
/gem5/base/cprintf.cc
/gem5/base/cprintf.hh
/gem5/base/cprintf_formats.hh
/gem5/base/date.cc
/gem5/base/dbl_list.hh
/gem5/base/endian.hh
/gem5/base/fast_alloc.cc
/gem5/base/fast_alloc.hh
/gem5/base/fifo_buffer.cc
/gem5/base/fifo_buffer.hh
/gem5/base/hashmap.hh
/gem5/base/inet.cc
/gem5/base/inet.hh
/gem5/base/inifile.cc
/gem5/base/inifile.hh
/gem5/base/intmath.cc
/gem5/base/intmath.h
/gem5/base/kgdb.h
/gem5/base/misc.cc
/gem5/base/misc.hh
/gem5/base/mod_num.hh
/gem5/base/object_file.cc
/gem5/base/object_file.hh
/gem5/base/pollevent.cc
/gem5/base/pollevent.hh
/gem5/base/random.cc
/gem5/base/random.hh
/gem5/base/range.hh
/gem5/base/refcnt.hh
/gem5/base/remote_gdb.cc
/gem5/base/remote_gdb.hh
/gem5/base/res_list.hh
/gem5/base/sched_list.hh
/gem5/base/socket.cc
/gem5/base/socket.hh
/gem5/base/statistics.cc
/gem5/base/statistics.hh
/gem5/base/str.cc
/gem5/base/str.hh
/gem5/base/symtab.cc
/gem5/base/symtab.hh
/gem5/base/trace.cc
/gem5/base/trace.hh
/gem5/dev/alpha_access.h
/gem5/dev/alpha_console.cc
/gem5/dev/alpha_console.hh
/gem5/dev/console.cc
/gem5/dev/console.hh
/gem5/dev/disk_image.cc
/gem5/dev/disk_image.hh
/gem5/dev/etherbus.cc
/gem5/dev/etherbus.hh
/gem5/dev/etherdump.cc
/gem5/dev/etherdump.hh
/gem5/dev/etherint.cc
/gem5/dev/etherint.hh
/gem5/dev/etherlink.cc
/gem5/dev/etherlink.hh
/gem5/dev/etherpkt.hh
/gem5/dev/ethertap.cc
/gem5/dev/ethertap.hh
/gem5/dev/pcireg.h
/gem5/dev/simple_disk.cc
/gem5/dev/simple_disk.hh
/gem5/kern/tru64/tru64.hh
/gem5/kern/tru64/tru64_syscalls.cc
/gem5/kern/tru64/tru64_syscalls.hh
/gem5/sim/async.hh
/gem5/sim/base_cpu.cc
/gem5/sim/base_cpu.hh
/gem5/sim/cache/lzss_compression.cc
/gem5/sim/cache/lzss_compression.hh
/gem5/sim/cache/null_compression.hh
/gem5/sim/debug.cc
/gem5/sim/debug.hh
/gem5/sim/eventq.cc
/gem5/sim/eventq.hh
/gem5/sim/exec_context.cc
/gem5/sim/exec_context.hh
/gem5/sim/exetrace.cc
/gem5/sim/exetrace.hh
/gem5/sim/host.hh
/gem5/sim/hybrid_pred.cc
/gem5/sim/hybrid_pred.hh
/gem5/sim/intr_control.cc
/gem5/sim/intr_control.hh
/gem5/sim/main.cc
/gem5/sim/memtest.cc
/gem5/sim/memtest.hh
/gem5/sim/op_class.hh
/gem5/sim/param.cc
/gem5/sim/param.hh
/gem5/sim/pc_event.cc
/gem5/sim/pc_event.hh
/gem5/sim/predictor.hh
/gem5/sim/prog.cc
/gem5/sim/prog.hh
/gem5/sim/sat_counter.cc
/gem5/sim/sat_counter.hh
/gem5/sim/serialize.cc
/gem5/sim/serialize.hh
/gem5/sim/sim_events.cc
/gem5/sim/sim_events.hh
/gem5/sim/sim_exit.hh
/gem5/sim/sim_object.cc
/gem5/sim/sim_object.hh
/gem5/sim/sim_time.cc
/gem5/sim/sim_time.hh
/gem5/sim/simple_cpu.cc
/gem5/sim/simple_cpu.hh
/gem5/sim/smt.hh
/gem5/sim/static_inst.cc
/gem5/sim/static_inst.hh
/gem5/sim/std_types.hh
/gem5/sim/system.cc
/gem5/sim/system.hh
/gem5/sim/universe.cc
/gem5/test/Makefile
/gem5/test/bitvectest.cc
/gem5/test/circletest.cc
/gem5/test/cprintftest.cc
/gem5/test/foo.ini
/gem5/test/initest.cc
/gem5/test/initest.ini
/gem5/test/lru_test.cc
/gem5/test/nmtest.cc
/gem5/test/offtest.cc
/gem5/test/paramtest.cc
/gem5/test/rangetest.cc
/gem5/test/sized_test.cc
/gem5/test/stattest.cc
/gem5/test/strnumtest.cc
/gem5/test/symtest.cc
/gem5/test/tokentest.cc
/gem5/test/tracetest.cc
rundiff
tap/Makefile
tap/tap.cc
term/Makefile
term/term.c