#
12386:2bf5fb25a5f1 |
|
13-Dec-2017 |
Gabe Black <gabeblack@google.com> |
arm,sparc,x86,base,cpu,sim: Replace the Twin(32|64)_t types with.
Replace them with std::array<>s.
Change-Id: I76624c87a1cd9b21c386a96147a18de92b8a8a34 Reviewed-on: https://gem5-review.googlesource.com/6602 Maintainer: Gabe Black <gabeblack@google.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.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>
|
#
11328:9512d2e25f14 |
|
06-Feb-2016 |
Steve Reinhardt <steve.reinhardt@amd.com> |
arch, x86: add support for arrays as memory operands
Although the cache models support wider accesses, the ISA descriptions assume that (for the most part) memory operands are integer types, which makes it difficult to define instructions that do memory accesses larger than 64 bits.
This patch adds some generic support for memory operands that are arrays of uint64_t, and specifically a 'u2qw' operand type for x86 that is an array of 2 uint64_ts (128 bits). This support is unused at this point, but will be needed shortly for cmpxchg16b. Ideally the 128-bit SSE memory accesses will also be rewritten to use this support.
Support for 128-bit accesses could also have been added using the gcc __int128_t extension, which would have been less disruptive. However, although clang also supports __int128_t, it's still non-standard. Also, more importantly, this approach creates a path to defining 256- and 512-byte operands as well, which will be useful for eventual AVX support.
|
#
9764:7e744dcb1904 |
|
18-Jun-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
x86: Fix loading of floating point constants
This changeset actually fixes two issues:
* The lfpimm instruction didn't work correctly when applied to a floating point constant (it did work for integers containing the bit string representation of a constant) since it used reinterpret_cast to convert a double to a uint64_t. This caused a compilation error, at least, in gcc 4.6.3.
* The instructions loading floating point constants in the x87 processor didn't work correctly since they just stored a truncated integer instead of a double in the floating point register. This changeset fixes the old microcode by using lfpimm instruction instead of the limm instructions.
|
#
9022:bb25e7646c41 |
|
25-May-2012 |
Gabe Black <gblack@eecs.umich.edu> |
ISA: Make the decode function part of the ISA's decoder.
|
#
8857:120adc5a4345 |
|
26-Feb-2012 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Use the M5PanicFault fault in execute methods instead of calling panic.
If an instruction is executed speculatively and hits a situation where it wants to panic, it should return a fault instead. If the instruction was misspeculated, the fault can be thrown away. If the instruction wasn't misspeculated, the fault will be invoked and the panic will still happen.
|
#
8738:66bf413b0d5b |
|
30-Sep-2011 |
Gabe Black <gblack@eecs.umich.edu> |
SE/FS: Use the new FullSystem constant where possible.
|
#
8556:2afd82e84d95 |
|
19-Sep-2011 |
Gabe Black <gblack@eecs.umich.edu> |
PseudoInst: Remove the now unnecessary #if FULL_SYSTEMs around pseudoinsts.
|
#
8442:b1f3dfae06f1 |
|
03-Jul-2011 |
Gabe Black <gblack@eecs.umich.edu> |
ISA: Use readBytes/writeBytes for all instruction level memory operations.
|
#
8232:b28d06a175be |
|
15-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
trace: reimplement the DTRACE function so it doesn't use a vector At the same time, rename the trace flags to debug flags since they have broader usage than simply tracing. This means that --trace-flags is now --debug-flags and --trace-help is now --debug-help
|
#
8229:78bf55f23338 |
|
15-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
includes: sort all includes
|
#
7969:068f061e57a8 |
|
13-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Put the result used for flags in an intermediate variable.
Using the destination register directly causes the ISA parser to treat it as a source even if none of the original bits are used.
|
#
7965:f4c89fe1246b |
|
13-Feb-2011 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Define fault objects to carry debug messages.
These faults can panic/warn/warn_once, etc., instead of instructions doing that themselves directly. That way, instructions can be speculatively executed, and only if they're actually going to commit will their fault be invoked and the panic, etc., happen.
|
#
7629:0f0c231e3e97 |
|
23-Aug-2010 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Create a directory for files that define register indexes.
This is to help tidy up arch/x86. These files should not be used external to the ISA.
|
#
7087:fb8d5786ff30 |
|
24-May-2010 |
Nathan Binkert <nate@binkert.org> |
copyright: Change HP copyright on x86 code to be more friendly
|
#
6570:d7907eaf7419 |
|
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement an integer media addition microop with optional saturation.
|
#
6516:b5b420d15a20 |
|
17-Aug-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Set up a media microop framework and create mov2int and mov2fp microops.
|
#
6345:f9ae7c3a036c |
|
16-Jul-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Take limitted advantage of the compilers type checking for microop operands.
|
#
6336:25635830e33c |
|
09-Jul-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Fold the MiscRegFile all the way into the ISA object.
|
#
6329:5d8b91875859 |
|
09-Jul-2009 |
Gabe Black <gblack@eecs.umich.edu> |
Registers: Add a registers.hh file as an ISA switched header. This file is for register indices, Num* constants, and register types. copyRegs and copyMiscRegs were moved to utility.hh and utility.cc.
|
#
5920:5a9c976270d6 |
|
25-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement a basic prefetch instruction.
|
#
5912:d113f6def227 |
|
25-Feb-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add a flag to force memory accesses to happen at CPL 0.
|
#
5789:46c548dbe620 |
|
07-Jan-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Hook in the M5 pseudo insts.
|
#
5786:07f635cab026 |
|
07-Jan-2009 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Move the macroop class out of the isa description into C++.
|
#
5666:e7925fa8f0d6 |
|
12-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Make X86's microcode ROM actually do something.
|
#
5659:f4b9c344d1ca |
|
12-Oct-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement CPUID with a magical function instead of microcode.
|
#
5425:4226f6c2d03c |
|
12-Jun-2008 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add microops which panic, fatal, warn, and warn_once.
|
#
5118:f1b1cb6d0fbe |
|
03-Oct-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Implement the ldst microop and put it in existing microcode where appropriate.
|
#
5083:49559a8060e8 |
|
19-Sep-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Move the fp microops to their own file with their own base classes in C++ and python.
|
#
5058:be23162b7370 |
|
06-Sep-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add SSE comparison instructions and microops and move some FP microops to be with the other ones.
|
#
5026:46dd8d55f6c9 |
|
29-Aug-2007 |
Gabe Black <gblack@eecs.umich.edu> |
X86: Add operands to handle floating point registers.
|
#
4685:e38f50632338 |
|
17-Jul-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Actually include miscregs.hh
|
#
4679:0b39fa8f5eb8 |
|
14-Jul-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Pull some hard coded base classes out of the isa description.
|
#
4619:b914b33406b8 |
|
21-Jun-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Get rid of an unnecessary include file.
|
#
4616:99c9f2cbc4a8 |
|
21-Jun-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Needed for last change set to work :P
|
#
4601:38c989d15fef |
|
20-Jun-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Make memory instructions work better, add more macroop implementations, add an lea microop, move EmulEnv into it's own .cc and .hh.
|
#
4543:4cbcab038791 |
|
12-Jun-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Get rid of unnecessary namespace prototype.
|
#
4528:f0b19ee67a7b |
|
08-Jun-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Big changes to use the new microcode assembler.
|
#
4323:13ca4002d2ac |
|
03-Apr-2007 |
Gabe Black <gblack@eecs.umich.edu> |
A batch of changes and fixes. Macroops are now generated automatically, multiops do alot more of what they're supposed to (excluding memory operands), and microops are slightly more implemented.
|
#
4158:a3fb9e29c6ce |
|
05-Mar-2007 |
Gabe Black <gblack@eecs.umich.edu> |
Stub decoder. This is probably even farther from finished than it looks...
|