Gabe Black [Fri, 17 Jul 2009 07:29:42 +0000 (00:29 -0700)]
X86: Shift some register flattening work into the decoder.
Polina Dudnik [Thu, 16 Jul 2009 20:40:48 +0000 (15:40 -0500)]
merge
Gabe Black [Thu, 16 Jul 2009 16:30:14 +0000 (09:30 -0700)]
X86: Add range checks for miscreg indexing utility functions.
Gabe Black [Thu, 16 Jul 2009 16:29:29 +0000 (09:29 -0700)]
X86: Take limitted advantage of the compilers type checking for microop operands.
Gabe Black [Thu, 16 Jul 2009 16:27:56 +0000 (09:27 -0700)]
X86: Fix a number of places where the wrong form of a microop was used.
Gabe Black [Thu, 16 Jul 2009 16:26:38 +0000 (09:26 -0700)]
X86: Fix x87 stack register indexing.
Polina Dudnik [Wed, 15 Jul 2009 15:46:22 +0000 (10:46 -0500)]
Tester update
Gabe Black [Wed, 15 Jul 2009 01:06:30 +0000 (18:06 -0700)]
Merge with head.
Jack Whitham [Wed, 15 Jul 2009 04:03:33 +0000 (21:03 -0700)]
ARM: Fix the "open" flag constants.
Polina Dudnik [Mon, 13 Jul 2009 23:39:32 +0000 (18:39 -0500)]
Changed the state machine to generate code such that multiple processors can make atomic requests at once
Polina Dudnik [Mon, 13 Jul 2009 22:22:29 +0000 (17:22 -0500)]
1. Got rid of unused functions in DirectoryMemory
2. Reintroduced RMW_Read and RMW_Write
3. Defined -2 in the Sequencer as well as made a note about mandatory queue
Did not address the issues in the slicc because remaking the atomics altogether to allow
multiple processors to issue atomic requests at once
Derek Hower [Mon, 13 Jul 2009 19:49:51 +0000 (14:49 -0500)]
merge
Derek Hower [Mon, 13 Jul 2009 19:45:15 +0000 (14:45 -0500)]
regression: updated memtest-ruby stats
This also includes a change to the default Ruby random seed, which was
previously set using the wall clock. It is now set to 1234 so that
the stat files don't change for the regression tester.
Polina Dudnik [Mon, 13 Jul 2009 17:50:10 +0000 (12:50 -0500)]
Changes to add tracing and replaying command-line options
Trace is automatically ended upon a manual checkpoint
Polina Dudnik [Mon, 13 Jul 2009 17:11:17 +0000 (12:11 -0500)]
Locked requests should actually be converted to ST rather than ATOMIC, because ATOMIC is for RMW.
Polina Dudnik [Mon, 13 Jul 2009 17:06:23 +0000 (12:06 -0500)]
Added atomics implementation which would work for MI_example
Polina Dudnik [Mon, 13 Jul 2009 16:59:13 +0000 (11:59 -0500)]
Minor fixes for compiling
Polina Dudnik [Mon, 13 Jul 2009 16:37:56 +0000 (11:37 -0500)]
Replaced RMW with Locked. RMW will be used for the coherence-aided atomics other than LLSC
Polina Dudnik [Mon, 13 Jul 2009 16:34:38 +0000 (11:34 -0500)]
Moved the lock check and clearing the lock into makeRequest
Polina Dudnik [Mon, 13 Jul 2009 16:25:23 +0000 (11:25 -0500)]
Forgot to replace one of the RubyRequest_RMW
Polina Dudnik [Mon, 13 Jul 2009 16:13:29 +0000 (11:13 -0500)]
Reintegrated Derek's functional implementation of atomics with a minor change: don't clear lock on failure
Gabe Black [Fri, 10 Jul 2009 08:21:04 +0000 (01:21 -0700)]
ISAs: Get rid of the IControl operand type.
A separate operand type is not necessary to use two bitfields to generate the
index.
Gabe Black [Fri, 10 Jul 2009 08:01:47 +0000 (01:01 -0700)]
SPARC: Set up a lookup table for integer register flattening.
Using a look up table changed the run time of the SPARC_FS solaris boot
regression from:
real 14m45.951s
user 13m57.528s
sys 0m3.452s
to:
real 12m19.777s
user 12m2.685s
sys 0m2.420s
Gabe Black [Fri, 10 Jul 2009 03:29:02 +0000 (20:29 -0700)]
X86: Fold the MiscRegFile all the way into the ISA object.
Gabe Black [Fri, 10 Jul 2009 03:28:50 +0000 (20:28 -0700)]
SPARC: Fold the MiscRegFile all the way into the ISA object.
Gabe Black [Fri, 10 Jul 2009 03:28:39 +0000 (20:28 -0700)]
MIPS: Fold the MiscRegFile all the way into the ISA object.
Gabe Black [Fri, 10 Jul 2009 03:28:27 +0000 (20:28 -0700)]
ARM: Fold the MiscRegFile all the way into the ISA object.
Gabe Black [Thu, 9 Jul 2009 07:20:41 +0000 (00:20 -0700)]
Alpha: Missed a file in an earlier changeset.
Gabe Black [Thu, 9 Jul 2009 06:02:22 +0000 (23:02 -0700)]
Get rid of the unused get(Data|Inst)Asid and (inst|data)Asid functions.
Gabe Black [Thu, 9 Jul 2009 06:02:22 +0000 (23:02 -0700)]
Alpha: Pull the MiscRegFile fully into the ISA object.
Gabe Black [Thu, 9 Jul 2009 06:02:21 +0000 (23:02 -0700)]
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.
--HG--
rename : src/arch/alpha/regfile.hh => src/arch/alpha/registers.hh
rename : src/arch/arm/regfile.hh => src/arch/arm/registers.hh
rename : src/arch/mips/regfile.hh => src/arch/mips/registers.hh
rename : src/arch/sparc/regfile.hh => src/arch/sparc/registers.hh
rename : src/arch/x86/regfile.hh => src/arch/x86/registers.hh
Gabe Black [Thu, 9 Jul 2009 06:02:21 +0000 (23:02 -0700)]
Registers: Collapse ARM and MIPS regfile directories.
--HG--
rename : src/arch/arm/regfile/misc_regfile.hh => src/arch/arm/misc_regfile.hh
rename : src/arch/arm/regfile/regfile.cc => src/arch/arm/regfile.cc
rename : src/arch/mips/regfile/misc_regfile.cc => src/arch/mips/misc_regfile.cc
rename : src/arch/mips/regfile/misc_regfile.hh => src/arch/mips/misc_regfile.hh
Gabe Black [Thu, 9 Jul 2009 06:02:21 +0000 (23:02 -0700)]
Alpha: Move reg_redir into its own files, and move some constants into regfile.hh.
Gabe Black [Thu, 9 Jul 2009 06:02:21 +0000 (23:02 -0700)]
Registers: Eliminate the ISA defined RegFile class.
Gabe Black [Thu, 9 Jul 2009 06:02:21 +0000 (23:02 -0700)]
Alpha: Get rid of function prototypes with no implementations.
Gabe Black [Thu, 9 Jul 2009 06:02:21 +0000 (23:02 -0700)]
Registers: Move the PCs out of the ISAs and into the CPUs.
Gabe Black [Thu, 9 Jul 2009 06:02:21 +0000 (23:02 -0700)]
ARM, Simple CPU: Fix an index and add assert checks.
Gabe Black [Thu, 9 Jul 2009 06:02:21 +0000 (23:02 -0700)]
MIPS: Get rid of an orphaned MIPS .cc file.
Gabe Black [Thu, 9 Jul 2009 06:02:21 +0000 (23:02 -0700)]
Alpha: Phase out Alpha's intregfile.hh and intregfile.cc.
Gabe Black [Thu, 9 Jul 2009 06:02:20 +0000 (23:02 -0700)]
SPARC: Phase out SPARC's intregfile.hh.
Gabe Black [Thu, 9 Jul 2009 06:02:20 +0000 (23:02 -0700)]
X86: Phase out x86's intregfile.hh.
Gabe Black [Thu, 9 Jul 2009 06:02:20 +0000 (23:02 -0700)]
MIPS: Phase out MIPS's int_regfile.hh.
Gabe Black [Thu, 9 Jul 2009 06:02:20 +0000 (23:02 -0700)]
ARM: Flush out the ARM's int_regfile.hh.
Gabe Black [Thu, 9 Jul 2009 06:02:20 +0000 (23:02 -0700)]
Registers: Eliminate the ISA defined integer register file.
Gabe Black [Thu, 9 Jul 2009 06:02:20 +0000 (23:02 -0700)]
Registers: Eliminate the ISA defined floating point register file.
Gabe Black [Thu, 9 Jul 2009 06:02:20 +0000 (23:02 -0700)]
Registers: Get rid of the float register width parameter.
Gabe Black [Thu, 9 Jul 2009 06:02:20 +0000 (23:02 -0700)]
Registers: Add an ISA object which replaces the MiscRegFile.
This object encapsulates (or will eventually) the identity and characteristics
of the ISA in the CPU.
Gabe Black [Thu, 9 Jul 2009 06:02:20 +0000 (23:02 -0700)]
ARM: Use custom read/write code to alias R15 with the PC.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ISA parser: Allow alternative read/write code for operands.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Move the remaining microops out of the decoder and into the ISA desc.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Move the memory microops out of the decoder and into the ISA desc.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Move the integer microops out of the decoder and into the ISA desc.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Improve memory instruction disassembly.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Tune up predicated instruction decoding.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Get rid of the MemAcc and EAComp static insts.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Get rid of end_addr in the ArmMacroStore constructor.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Add an AddrMode2 format for memory instructions that use address mode 2.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Don't always update CPSR.
Gabe Black [Thu, 9 Jul 2009 06:02:19 +0000 (23:02 -0700)]
ARM: Add an AddrMode3 format for memory instructions that use address mode 3.
Gabe Black [Thu, 9 Jul 2009 06:02:10 +0000 (23:02 -0700)]
ARM: Add load/store double instructions.
Gabe Black [Thu, 9 Jul 2009 06:02:01 +0000 (23:02 -0700)]
ARM: Add operands for the load/store double instructions.
Gabe Black [Thu, 9 Jul 2009 06:01:54 +0000 (23:01 -0700)]
X86: Fix a bug in IRET_PROT's microcode. The immediate form of sra was intended.
Derek Hower [Wed, 8 Jul 2009 13:40:32 +0000 (08:40 -0500)]
slicc: fixed MI_example bug. The directory wasn't deallocating the TBE, leading to a leak. Also increased the default max TBE size to 256 to allow memtest to pass the regression.
Derek Hower [Wed, 8 Jul 2009 05:34:40 +0000 (00:34 -0500)]
ruby: set the default values of the debug object so that nothing is printed
Derek Hower [Wed, 8 Jul 2009 05:31:33 +0000 (00:31 -0500)]
slicc: Fixed MI_example bug. The directory was not writing data to DRAM after a PUTX.
Derek Hower [Wed, 8 Jul 2009 04:01:35 +0000 (23:01 -0500)]
removed stray debug print
Steve Reinhardt [Tue, 7 Jul 2009 05:45:58 +0000 (22:45 -0700)]
Add ability to skip tests by adding 'skip' file to test dir,
and skip simple-timing-mp-ruby test for now (until we fix ruby atomics).
Nathan Binkert [Mon, 6 Jul 2009 22:54:18 +0000 (15:54 -0700)]
automerge
Nathan Binkert [Mon, 6 Jul 2009 22:49:48 +0000 (15:49 -0700)]
tests: stats outputs now include CDFs, update tests that use those so they're easier to diff
Nathan Binkert [Mon, 6 Jul 2009 22:49:48 +0000 (15:49 -0700)]
tests: update regression tests for changes in stats output and changes in ruby.
Nathan Binkert [Mon, 6 Jul 2009 22:49:47 +0000 (15:49 -0700)]
ruby: Fix RubyMemory to work with the newer ruby.
Nathan Binkert [Mon, 6 Jul 2009 22:49:47 +0000 (15:49 -0700)]
ruby: apply some fixes that were overwritten by the recent ruby import.
Nathan Binkert [Mon, 6 Jul 2009 22:49:47 +0000 (15:49 -0700)]
slicc: update parser.py for changes in slicc language.
Nathan Binkert [Mon, 6 Jul 2009 22:49:47 +0000 (15:49 -0700)]
scons: update SCons files for changes in ruby.
Nathan Binkert [Mon, 6 Jul 2009 22:49:47 +0000 (15:49 -0700)]
ruby: Import the latest ruby changes from gems.
This was done with an automated process, so there could be things that were
done in this tree in the past that didn't make it. One known regression
is that atomic memory operations do not seem to work properly anymore.
Nathan Binkert [Mon, 6 Jul 2009 22:49:47 +0000 (15:49 -0700)]
ruby: replace strings that were missed in original ruby import.
Gabe Black [Sun, 5 Jul 2009 23:07:09 +0000 (16:07 -0700)]
SPARC: Fix the parenthesis in inUserMode.
Gabe Black [Sun, 5 Jul 2009 04:46:23 +0000 (21:46 -0700)]
inorder: Fix up some reference stats.
Jack Whitham [Fri, 3 Jul 2009 06:23:06 +0000 (23:23 -0700)]
ARM: Fix how address mode bits are handled.
Jack Whitham [Fri, 3 Jul 2009 06:22:58 +0000 (23:22 -0700)]
ARM: Fix the code snippet for mla.
Nathan Binkert [Thu, 2 Jul 2009 23:48:22 +0000 (16:48 -0700)]
typo: correct spelling
Nathan Binkert [Thu, 2 Jul 2009 23:48:22 +0000 (16:48 -0700)]
attrdict: correct delattr
Nathan Binkert [Thu, 2 Jul 2009 23:48:21 +0000 (16:48 -0700)]
stats: fix usage of jobfile
Gabe Black [Thu, 2 Jul 2009 05:17:06 +0000 (22:17 -0700)]
ARM: Make DataOps select from a set of ways to set the c and v flags.
Gabe Black [Thu, 2 Jul 2009 05:16:51 +0000 (22:16 -0700)]
ARM: Get rid of some bitfields that aren't used. A few may need to be readded.
Gabe Black [Thu, 2 Jul 2009 05:16:36 +0000 (22:16 -0700)]
ARM: Add a findLsbSet function and use it to implement clz.
Gabe Black [Thu, 2 Jul 2009 05:16:19 +0000 (22:16 -0700)]
ARM: Add defaults for DataOp flag code.
Gabe Black [Thu, 2 Jul 2009 05:16:05 +0000 (22:16 -0700)]
ARM: Get rid of the val2 variable.
Gabe Black [Thu, 2 Jul 2009 05:15:39 +0000 (22:15 -0700)]
ARM: Centralize the declaration of resTemp.
Gabe Black [Thu, 2 Jul 2009 05:12:10 +0000 (22:12 -0700)]
ARM: Add a DataImmOp format similar to DataOp.
Gabe Black [Thu, 2 Jul 2009 05:11:54 +0000 (22:11 -0700)]
ARM: Decode some media instructions. These are untested.
Gabe Black [Thu, 2 Jul 2009 05:11:39 +0000 (22:11 -0700)]
ARM: Use the new DataOp format to simplify the decoder.
Gabe Black [Thu, 2 Jul 2009 05:11:27 +0000 (22:11 -0700)]
ARM: Add in some new artificial fields that make decoding a little easier.
Gabe Black [Thu, 2 Jul 2009 05:11:12 +0000 (22:11 -0700)]
ARM: Recognize the IntRegs trace flag.
Gabe Black [Thu, 2 Jul 2009 05:10:58 +0000 (22:10 -0700)]
ARM: Add a DataOp format so data op definitions can be aggregated.
Gabe Black [Sat, 27 Jun 2009 07:30:23 +0000 (00:30 -0700)]
ARM: Show more information when disassembling data processing intstructions.
This will need more work, but it should be a lot closer.
Gabe Black [Sat, 27 Jun 2009 07:29:30 +0000 (00:29 -0700)]
ARM: Show branch targets relative to the nearest symbol.
Gabe Black [Sat, 27 Jun 2009 07:29:12 +0000 (00:29 -0700)]
ARM: Write a function for printing mnemonics and predicates.
Gabe Black [Sat, 27 Jun 2009 05:01:34 +0000 (22:01 -0700)]
ARM: Fill out the printReg function.
Jack Whitman [Thu, 25 Jun 2009 04:22:52 +0000 (21:22 -0700)]
ARM: Fix signed multiply long and add some unimplemented loads.