a1b4ce84f7f938c35072f47a417a8debf3320a25
These were a weird holdover from when register indices were all squished into a single scalar value, offset based on the register type. When that change happened, the person who made it misunderstood what the InstRegIndex type was for, and decided to build RegId into it for some reason. The only purpose of InstRegIndex is to make sure everybody agrees that the value being passed around is going to be used as a register index and not a literal value, or vice versa. There is no type associated with it as far as floating point, integer, or misc registers. That gets applied at a different step, and actually can't be part of InstRegIndex since the same base class may need to hold register indices that are going to be treated as integer or floating point depending on the subclass using them. Also, since the values of the various constants in the DepdenceTags enum where never actually added into register indices in the first place, the code in the InstRegIndex constructor would never do anything. All registers would be arbitrarily sorted into Int, FP, etc, and then when they actually went to be used the category would be thrown away. Change-Id: I8c4e8d6e9cdb53e298c00ad2f56e8c7304e51e96 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/40339 Reviewed-by: Gabe Black <gabe.black@gmail.com> Maintainer: Gabe Black <gabe.black@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This is the gem5 simulator. The main website can be found at http://www.gem5.org A good starting point is http://www.gem5.org/about, and for more information about building the simulator and getting started please see http://www.gem5.org/documentation and http://www.gem5.org/documentation/learning_gem5/introduction. To build gem5, you will need the following software: g++ or clang, Python (gem5 links in the Python interpreter), SCons, SWIG, zlib, m4, and lastly protobuf if you want trace capture and playback support. Please see http://www.gem5.org/documentation/general_docs/building for more details concerning the minimum versions of the aforementioned tools. Once you have all dependencies resolved, type 'scons build/<ARCH>/gem5.opt' where ARCH is one of ARM, NULL, MIPS, POWER, SPARC, or X86. This will build an optimized version of the gem5 binary (gem5.opt) for the the specified architecture. See http://www.gem5.org/documentation/general_docs/building for more details and options. The basic source release includes these subdirectories: - configs: example simulation configuration scripts - ext: less-common external packages needed to build gem5 - src: source code of the gem5 simulator - system: source for some optional system software for simulated systems - tests: regression tests - util: useful utility programs and files To run full-system simulations, you will need compiled system firmware (console and PALcode for Alpha), kernel binaries and one or more disk images. If you have questions, please send mail to gem5-users@gem5.org Enjoy using gem5 and please share your modifications and extensions.
Description