55864843449b96af822c817214f91c992fbcc14d
AddrRange::addIntlvBits(Addr) and new test.
The methods `AddrRange::removeIntlvBits(Addr)` and `AddrRange::addIntlvBits(Addr)` should be the inverse of one another, but the latter did not insert the blanks for filling the removed bits in the correct positions. Since the masks are ordered increasingly by the position of the least significant bit of each mask, the lowest bit that has to be inserted at each iteration is always `intlv_bit`, not needing to be shifted to the left or right. The bits that need to be copied from the input address are `intlv_bit-1..0` at each iteration. The test `AddrRangeTest.AddRemoveInterleavBitsAcrossRange` has been updated have masks below bit 12, making the old code not pass the test. A new `AddrRangeTest.AddRemoveInterleavBitsAcrossContiguousRange` test has been added to include a case in which the previous code fails. The corrected code passes both tests. This function is not used anywhere other than the tests and the class `ChannelAddr`. However, it is needed to efficiently implement interleaved caches in the classic mode. Change-Id: I7d626a1f6ecf09a230fc18810d2dad2104d1a865 Signed-off-by: Isaac Sánchez Barrera <isaac.sanchez@bsc.es> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/37175 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
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