b60b2800cedde38438e4a1f19dca1de6c6a6f810
Don't use the "E" tag when there is only a register or memory based version of the instruction, since that decodes to both. Don't special case the "st(1)" version of an instruction if it's just a matter of the assembly syntax and not the instruction encoding. Don't decode based on Mod, and then use the tag type "E" which will again decode on Mod, use "E" for both the memory and register versions at the same time. Set the default instruction to Inst::UD2 so that we don't have to specify it as the default locally in each decode block. Let the "M" tag handle the Mod = 3 case, which is built into that operand type. That's slightly inconsistent with the "R" type which does not handle the "not 3" case, but we can take advantage of it none the less. There are instructions which, when decoded as the Inst format, will take the "M" type tag and be able to drop their decoding of the Mod = 3 case, but since they aren't Inst right now and can't sub-decode Mod on their own, the 3 case needs to stay for now. In most cases when dealing with x87 registers, the "dataSize" argument to microops doesn't matter since the size doesn't change. There may be an opportunity to consolidate the various FP microops and use dataSize = 10 for x87 registers, although there are some nuances there that may make that not work out. Change-Id: Ia3ff6176796af66f6a3c463b538e750e65893a84 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/42904 Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Gabe Black <gabe.black@gmail.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