gem5.git
14 years agoslicc: added MOESI_CMP_directory, DMA SequencerMsg, parameterized controllers
Derek Hower [Tue, 4 Aug 2009 17:52:52 +0000 (12:52 -0500)]
slicc: added MOESI_CMP_directory, DMA SequencerMsg, parameterized controllers

This changeset contains a lot of different changes that are too
mingled to separate.  They are:

1.  Added MOESI_CMP_directory

I made the changes necessary to bring back MOESI_CMP_directory,
including adding a DMA controller.  I got rid of MOESI_CMP_directory_m
and made MOESI_CMP_directory use a memory controller. Added a new
configuration for two level protocols in general, and
MOESI_CMP_directory in particular.

2.  DMA Sequencer uses a generic SequencerMsg

I will eventually make the cache Sequencer use this type as well.  It
doesn't contain an offset field, just a physical address and a length.
MI_example has been updated to deal with this.

3. Parameterized Controllers

SLICC controllers can now take custom parameters to use for mapping,
latencies, etc.  Currently, only int parameters are supported.

14 years agoslicc: generate html by default
Derek Hower [Tue, 4 Aug 2009 17:42:45 +0000 (12:42 -0500)]
slicc: generate html by default

15 years agoAutomated merge with ssh://hg@m5sim.org/m5
Derek Hower [Mon, 3 Aug 2009 16:39:08 +0000 (11:39 -0500)]
Automated merge with ssh://hg@m5sim.org/m5

15 years agoX86: Set up the IDE device correctly, ie. with and using legacy ports.
Gabe Black [Mon, 3 Aug 2009 01:01:13 +0000 (18:01 -0700)]
X86: Set up the IDE device correctly, ie. with and using legacy ports.

15 years agoIDE: Configure the IDE control to reflect the initial value of the command register.
Gabe Black [Mon, 3 Aug 2009 01:01:09 +0000 (18:01 -0700)]
IDE: Configure the IDE control to reflect the initial value of the command register.

15 years agoX86: Fix the high result of mul1s, and removed undefined shifts from the mult microops.
Gabe Black [Sun, 2 Aug 2009 15:39:29 +0000 (08:39 -0700)]
X86: Fix the high result of mul1s, and removed undefined shifts from the mult microops.

15 years agoFix setting of INST_FETCH flag for O3 CPU.
Steve Reinhardt [Sun, 2 Aug 2009 05:50:14 +0000 (22:50 -0700)]
Fix setting of INST_FETCH flag for O3 CPU.
It's still broken in inorder.
Also enhance DPRINTFs in cache and physical memory so we
can see more easily whether it's getting set or not.

15 years agoClean up some inconsistencies with Request flags.
Steve Reinhardt [Sun, 2 Aug 2009 05:50:13 +0000 (22:50 -0700)]
Clean up some inconsistencies with Request flags.

15 years agoRename internal Request fields to start with '_'.
Steve Reinhardt [Sun, 2 Aug 2009 05:50:10 +0000 (22:50 -0700)]
Rename internal Request fields to start with '_'.
The inconsistency was causing a subtle bug with some of the
constructors where the params had the same name as the fields.
This is also a first step to switching the accessors over to
our new "standard", e.g., getVaddr() -> vaddr().

15 years agomerge mips fix and statetrace changes
Korey Sewell [Fri, 31 Jul 2009 14:40:42 +0000 (10:40 -0400)]
merge mips fix and statetrace changes

15 years agomips: fix ll/sc pairs working incorrectly because of accidental clobber of LLFLAG
Korey Sewell [Fri, 31 Jul 2009 13:34:29 +0000 (09:34 -0400)]
mips: fix ll/sc pairs working incorrectly because of accidental clobber of LLFLAG

15 years agoregression: updated stats
Derek Hower [Fri, 31 Jul 2009 05:43:09 +0000 (00:43 -0500)]
regression: updated stats

15 years agocompile: fix accidental conversion of == into =
Nathan Binkert [Fri, 31 Jul 2009 00:42:57 +0000 (17:42 -0700)]
compile: fix accidental conversion of == into =

15 years agoARM: Mul and mla ignore the c and v flags, but we were setting them to 1.
Gabe Black [Thu, 30 Jul 2009 05:24:00 +0000 (22:24 -0700)]
ARM: Mul and mla ignore the c and v flags, but we were setting them to 1.

15 years agoruby: fixed clearStats
Derek Hower [Wed, 29 Jul 2009 18:46:58 +0000 (13:46 -0500)]
ruby: fixed clearStats

15 years agoStatetrace: Make sure the current state is loaded to print the initial stack frame.
Gabe Black [Wed, 29 Jul 2009 07:35:49 +0000 (00:35 -0700)]
Statetrace: Make sure the current state is loaded to print the initial stack frame.
The early call to child->step() was removed earlier because it confused the
new differences-only protocol ARM sendState() was using. It's necessary that
that gets called at least once before attempting to print the initial stack
frame, though, because otherwise statetrace doesn't know what the stack
pointer is. By putting the first call to child->step() in a common spot, both
needs are met.

15 years agoARM: Fix an instruction in the cmpxchg kernel provided routine.
Gabe Black [Wed, 29 Jul 2009 07:18:26 +0000 (00:18 -0700)]
ARM: Fix an instruction in the cmpxchg kernel provided routine.
The instruction was encoded as a load instead of the intended store.

15 years agoARM: Get rid of a stray line in the set_tls handler.
Gabe Black [Wed, 29 Jul 2009 07:17:20 +0000 (00:17 -0700)]
ARM: Get rid of a stray line in the set_tls handler.

15 years agoARM: Make the ARM native tracer stop M5 if control diverges.
Gabe Black [Wed, 29 Jul 2009 07:17:11 +0000 (00:17 -0700)]
ARM: Make the ARM native tracer stop M5 if control diverges.
If the control flow of M5's executable and statetrace's target process get out
of sync even a little, there will be a LOT of output, very little of which
will be useful. There's also almost no hope for recovery. In those cases, we
might as well give up and not generate a huge, mostly worthless trace file.

15 years agoSimple CPU: Make the simple CPU handle the IntRegs trace flag.
Gabe Black [Wed, 29 Jul 2009 07:15:26 +0000 (00:15 -0700)]
Simple CPU: Make the simple CPU handle the IntRegs trace flag.

15 years agoARM: Make sure the target process doesn't run away from statetrace.
Gabe Black [Wed, 29 Jul 2009 07:14:43 +0000 (00:14 -0700)]
ARM: Make sure the target process doesn't run away from statetrace.

15 years agoARM: Ignore the "times" system call.
Ali Saidi [Wed, 29 Jul 2009 07:09:46 +0000 (00:09 -0700)]
ARM: Ignore the "times" system call.

15 years agoARM: Fix an ioctl constant.
Ali Saidi [Wed, 29 Jul 2009 07:09:44 +0000 (00:09 -0700)]
ARM: Fix an ioctl constant.

15 years agoruby: removed unused/incorrect profiler state
Derek Hower [Tue, 28 Jul 2009 02:43:43 +0000 (21:43 -0500)]
ruby: removed unused/incorrect profiler state

15 years agoARM: Update the stats for the EABI version of hello world.
Gabe Black [Mon, 27 Jul 2009 07:55:14 +0000 (00:55 -0700)]
ARM: Update the stats for the EABI version of hello world.

15 years agoARM: Update some syscall constants and delete others that are Alpha only.
Ali Saidi [Mon, 27 Jul 2009 07:54:55 +0000 (00:54 -0700)]
ARM: Update some syscall constants and delete others that are Alpha only.

15 years agoARM: Decode fstmx and fldmx instructions. We can ignore them for now.
Gabe Black [Mon, 27 Jul 2009 07:54:50 +0000 (00:54 -0700)]
ARM: Decode fstmx and fldmx instructions. We can ignore them for now.

15 years agoARM: Only send information that changed between statetrace and M5.
Gabe Black [Mon, 27 Jul 2009 07:54:30 +0000 (00:54 -0700)]
ARM: Only send information that changed between statetrace and M5.

15 years agoimported patch nativetracestreamline.patch
Gabe Black [Mon, 27 Jul 2009 07:54:24 +0000 (00:54 -0700)]
imported patch nativetracestreamline.patch

15 years agoARM: Make native trace print out what instruction caused an error.
Gabe Black [Mon, 27 Jul 2009 07:54:09 +0000 (00:54 -0700)]
ARM: Make native trace print out what instruction caused an error.

15 years agoimported patch statetracehost.patch
Gabe Black [Mon, 27 Jul 2009 07:54:04 +0000 (00:54 -0700)]
imported patch statetracehost.patch

15 years agoARM: Add ARM support to statetrace.
Ali Saidi [Mon, 27 Jul 2009 07:53:39 +0000 (00:53 -0700)]
ARM: Add ARM support to statetrace.

15 years agoStatetrace: Fix up headers.
Gabe Black [Mon, 27 Jul 2009 07:53:32 +0000 (00:53 -0700)]
Statetrace: Fix up headers.

15 years agoARM: Implement a basic version of the fmxr instruction.
Gabe Black [Mon, 27 Jul 2009 07:53:29 +0000 (00:53 -0700)]
ARM: Implement a basic version of the fmxr instruction.

15 years agoARM: Implement a basic version of the fmrx instruction.
Gabe Black [Mon, 27 Jul 2009 07:53:24 +0000 (00:53 -0700)]
ARM: Implement a basic version of the fmrx instruction.

15 years agoARM: Add in spots for the VFP control registers.
Gabe Black [Mon, 27 Jul 2009 07:53:10 +0000 (00:53 -0700)]
ARM: Add in spots for the VFP control registers.

15 years agoARM: Fix the CLZ instruction.
Gabe Black [Mon, 27 Jul 2009 07:52:59 +0000 (00:52 -0700)]
ARM: Fix the CLZ instruction.

15 years agoARM: Initialize the CPSR so that we're in user mode.
Gabe Black [Mon, 27 Jul 2009 07:52:48 +0000 (00:52 -0700)]
ARM: Initialize the CPSR so that we're in user mode.

15 years agoARM: Set up the initial stack frame to match a recent Linux.
Gabe Black [Mon, 27 Jul 2009 07:52:31 +0000 (00:52 -0700)]
ARM: Set up the initial stack frame to match a recent Linux.

15 years agoElf: Add in some new aux vector type constants.
Gabe Black [Mon, 27 Jul 2009 07:52:19 +0000 (00:52 -0700)]
Elf: Add in some new aux vector type constants.

15 years agoARM: Make native trace only print when registers are changing value.
Gabe Black [Mon, 27 Jul 2009 07:52:01 +0000 (00:52 -0700)]
ARM: Make native trace only print when registers are changing value.
When registers have incorrect values but aren't actively changing, it's likely
they're not being modified at all. The fact that they're still wrong isn't
very important.

15 years agoARM: Add a native tracer.
Gabe Black [Mon, 27 Jul 2009 07:51:35 +0000 (00:51 -0700)]
ARM: Add a native tracer.

--HG--
rename : src/arch/sparc/SparcNativeTrace.py => src/arch/arm/ArmNativeTrace.py
rename : src/arch/sparc/nativetrace.cc => src/arch/arm/nativetrace.cc
rename : src/arch/sparc/nativetrace.hh => src/arch/arm/nativetrace.hh

15 years agoARM: Update the reference outputs for the new binary and fstat64 struct.
Gabe Black [Mon, 27 Jul 2009 07:51:27 +0000 (00:51 -0700)]
ARM: Update the reference outputs for the new binary and fstat64 struct.

15 years agoARM: Fix fstat/fstat64 structs to match EABI definitions.
Ali Saidi [Mon, 27 Jul 2009 07:51:20 +0000 (00:51 -0700)]
ARM: Fix fstat/fstat64 structs to match EABI definitions.

15 years agoARM: Replace hello world with an EABI version.
Gabe Black [Mon, 27 Jul 2009 07:51:15 +0000 (00:51 -0700)]
ARM: Replace hello world with an EABI version.

15 years agoARM: Handle register indexed system calls.
Ali Saidi [Mon, 27 Jul 2009 07:51:01 +0000 (00:51 -0700)]
ARM: Handle register indexed system calls.

15 years agoARM: Detect OABI binaries and complain that they're no-longer supported.
Ali Saidi [Mon, 27 Jul 2009 07:50:55 +0000 (00:50 -0700)]
ARM: Detect OABI binaries and complain that they're no-longer supported.

15 years agose-configs: edit se.py to account for non-O3CPU workloads
Korey Sewell [Sun, 26 Jul 2009 04:13:35 +0000 (00:13 -0400)]
se-configs: edit se.py to account for non-O3CPU workloads

15 years agomerge sparc fix w/2t regress fix
Korey Sewell [Sun, 26 Jul 2009 02:24:45 +0000 (22:24 -0400)]
merge sparc fix w/2t regress fix

15 years agoregress: edit 2t hello smt file to specify numThreads
Korey Sewell [Sun, 26 Jul 2009 02:22:13 +0000 (22:22 -0400)]
regress: edit 2t hello smt file to specify numThreads

15 years agoSPARC: Fix a minor compile bug in native trace on gcc > 4.1.
Gabe Black [Sat, 25 Jul 2009 22:14:00 +0000 (15:14 -0700)]
SPARC: Fix a minor compile bug in native trace on gcc > 4.1.

15 years agoo3-smt: enforce numThreads parameter for SMT SE mode
Korey Sewell [Sat, 25 Jul 2009 04:50:27 +0000 (00:50 -0400)]
o3-smt: enforce numThreads parameter for SMT SE mode

15 years agoFixed the licences plus minor fixes for compilation
Polina Dudnik [Thu, 23 Jul 2009 01:28:32 +0000 (20:28 -0500)]
Fixed the licences plus minor fixes for compilation

15 years agoMIPS: Small fix I forgot to qrefresh into my last change.
Gabe Black [Wed, 22 Jul 2009 08:57:55 +0000 (01:57 -0700)]
MIPS: Small fix I forgot to qrefresh into my last change.

15 years agoMIPS: Style/formatting sweep of the decoder itself.
Gabe Black [Wed, 22 Jul 2009 08:51:10 +0000 (01:51 -0700)]
MIPS: Style/formatting sweep of the decoder itself.

15 years agoMIPS: Format the register index constants like the other ISAs.
Gabe Black [Wed, 22 Jul 2009 06:38:26 +0000 (23:38 -0700)]
MIPS: Format the register index constants like the other ISAs.
Also a few more style fixes.

15 years agoAutomated merge with ssh://m5sim.org//repo/m5
Derek Hower [Wed, 22 Jul 2009 02:27:54 +0000 (21:27 -0500)]
Automated merge with ssh://m5sim.org//repo/m5

15 years agoruby: fixed sequencer RMW data bug
Derek Hower [Wed, 22 Jul 2009 00:42:09 +0000 (19:42 -0500)]
ruby: fixed sequencer RMW data bug

15 years agoruby: libruby_init now takes parsed Ruby-lang config text
Derek Hower [Tue, 21 Jul 2009 23:33:05 +0000 (18:33 -0500)]
ruby: libruby_init now takes parsed Ruby-lang config text

libruby_init now expects to get a file that contains the output of
running a ruby-lang configuration, opposed to the ruby-lang
configuration itself.

15 years agoMIPS: Get MIPS_FS to compile, more style fixes.
Gabe Black [Tue, 21 Jul 2009 08:09:05 +0000 (01:09 -0700)]
MIPS: Get MIPS_FS to compile, more style fixes.
Some breakage was from my BitUnion change, some was much older.

15 years agoMIPS: Many style fixes.
Gabe Black [Tue, 21 Jul 2009 08:08:53 +0000 (01:08 -0700)]
MIPS: Many style fixes.
White space, commented out code, some other minor fixes.

15 years agoisa_parser: Get rid of the now unused ControlBitfieldOperand.
Gabe Black [Tue, 21 Jul 2009 03:20:17 +0000 (20:20 -0700)]
isa_parser: Get rid of the now unused ControlBitfieldOperand.

15 years agoMIPS: Use BitUnions instead of bits() functions and constants.
Gabe Black [Tue, 21 Jul 2009 03:14:15 +0000 (20:14 -0700)]
MIPS: Use BitUnions instead of bits() functions and constants.
Also fix style issues in regions around these changes.

15 years agomerge
Derek Hower [Mon, 20 Jul 2009 14:41:28 +0000 (09:41 -0500)]
merge

15 years agoruby: moved cache stats from Profiler to CacheMemory
Derek Hower [Mon, 20 Jul 2009 14:40:43 +0000 (09:40 -0500)]
ruby: moved cache stats from Profiler to CacheMemory

Caches are now responsible for their own statistic gathering.  This
requires a direct callback from the protocol on misses, and so all
future protocols need to take this into account.

15 years agoCPU: Separate out native trace into ISA (in)dependent code and SimObjects.
Gabe Black [Mon, 20 Jul 2009 06:54:56 +0000 (23:54 -0700)]
CPU: Separate out native trace into ISA (in)dependent code and SimObjects.

--HG--
rename : src/cpu/nativetrace.cc => src/arch/sparc/nativetrace.cc
rename : src/cpu/nativetrace.hh => src/arch/sparc/nativetrace.hh
rename : src/cpu/NativeTrace.py => src/arch/x86/X86NativeTrace.py

15 years agoTracing: Add accessors so tracers can get at data in trace records.
Gabe Black [Mon, 20 Jul 2009 06:54:31 +0000 (23:54 -0700)]
Tracing: Add accessors so tracers can get at data in trace records.

15 years agoX86: Move a displaced comment back to where it goes.
Gabe Black [Mon, 20 Jul 2009 06:51:47 +0000 (23:51 -0700)]
X86: Move a displaced comment back to where it goes.

15 years agoX86: Add some misc registers for FP control state.
Gabe Black [Mon, 20 Jul 2009 06:51:41 +0000 (23:51 -0700)]
X86: Add some misc registers for FP control state.

15 years agoscons: removed RubyConfig from scons
Derek Hower [Sun, 19 Jul 2009 17:34:11 +0000 (12:34 -0500)]
scons: removed RubyConfig from scons

15 years agoruby: removed all refs to old RubyConfig
Derek Hower [Sat, 18 Jul 2009 23:20:03 +0000 (18:20 -0500)]
ruby: removed all refs to old RubyConfig

15 years agoruby: removed dead files
Derek Hower [Sat, 18 Jul 2009 23:18:37 +0000 (18:18 -0500)]
ruby: removed dead files

15 years agoruby: removed dead files
Derek Hower [Sat, 18 Jul 2009 23:17:48 +0000 (18:17 -0500)]
ruby: removed dead files

15 years agomerge
Derek Hower [Sat, 18 Jul 2009 22:40:20 +0000 (17:40 -0500)]
merge

15 years agoruby: fixed dma sequencer bug
Derek Hower [Sat, 18 Jul 2009 22:03:51 +0000 (17:03 -0500)]
ruby: fixed dma sequencer bug

The DMASequencer was still using a parameter from the old RubyConfig,
causing an offset error when the requested data wasn't block aligned.
This changeset also includes a fix to MI_example for a similar bug.

15 years agoruby: better debug print for DataBlock
Derek Hower [Sat, 18 Jul 2009 21:58:33 +0000 (16:58 -0500)]
ruby: better debug print for DataBlock

15 years agoslicc: made coherence profilers per-controller
Derek Hower [Sat, 18 Jul 2009 21:54:45 +0000 (16:54 -0500)]
slicc: made coherence profilers per-controller

15 years agoX86: Set up a named constant for the "fold bit" for int register indices.
Gabe Black [Sat, 18 Jul 2009 01:49:22 +0000 (18:49 -0700)]
X86: Set up a named constant for the "fold bit" for int register indices.

15 years agoX86: Tame the wilds of def operands.
Gabe Black [Fri, 17 Jul 2009 07:29:56 +0000 (00:29 -0700)]
X86: Tame the wilds of def operands.

15 years agoX86: Shift some register flattening work into the decoder.
Gabe Black [Fri, 17 Jul 2009 07:29:42 +0000 (00:29 -0700)]
X86: Shift some register flattening work into the decoder.

15 years agomerge
Polina Dudnik [Thu, 16 Jul 2009 20:40:48 +0000 (15:40 -0500)]
merge

15 years agoX86: Add range checks for miscreg indexing utility functions.
Gabe Black [Thu, 16 Jul 2009 16:30:14 +0000 (09:30 -0700)]
X86: Add range checks for miscreg indexing utility functions.

15 years agoX86: Take limitted advantage of the compilers type checking for microop operands.
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.

15 years agoX86: Fix a number of places where the wrong form of a microop was used.
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.

15 years agoX86: Fix x87 stack register indexing.
Gabe Black [Thu, 16 Jul 2009 16:26:38 +0000 (09:26 -0700)]
X86: Fix x87 stack register indexing.

15 years agoTester update
Polina Dudnik [Wed, 15 Jul 2009 15:46:22 +0000 (10:46 -0500)]
Tester update

15 years agoMerge with head.
Gabe Black [Wed, 15 Jul 2009 01:06:30 +0000 (18:06 -0700)]
Merge with head.

15 years agoARM: Fix the "open" flag constants.
Jack Whitham [Wed, 15 Jul 2009 04:03:33 +0000 (21:03 -0700)]
ARM: Fix the "open" flag constants.

15 years agoChanged the state machine to generate code such that multiple processors can make...
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

15 years ago1. Got rid of unused functions in DirectoryMemory
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

15 years agomerge
Derek Hower [Mon, 13 Jul 2009 19:49:51 +0000 (14:49 -0500)]
merge

15 years agoregression: updated memtest-ruby stats
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.

15 years agoChanges to add tracing and replaying command-line options
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

15 years agoLocked requests should actually be converted to ST rather than ATOMIC, because ATOMIC...
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.

15 years agoAdded atomics implementation which would work for MI_example
Polina Dudnik [Mon, 13 Jul 2009 17:06:23 +0000 (12:06 -0500)]
Added atomics implementation which would work for MI_example

15 years agoMinor fixes for compiling
Polina Dudnik [Mon, 13 Jul 2009 16:59:13 +0000 (11:59 -0500)]
Minor fixes for compiling

15 years agoReplaced RMW with Locked. RMW will be used for the coherence-aided atomics other...
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

15 years agoMoved the lock check and clearing the lock into makeRequest
Polina Dudnik [Mon, 13 Jul 2009 16:34:38 +0000 (11:34 -0500)]
Moved the lock check and clearing the lock into makeRequest

15 years agoForgot to replace one of the RubyRequest_RMW
Polina Dudnik [Mon, 13 Jul 2009 16:25:23 +0000 (11:25 -0500)]
Forgot to replace one of the RubyRequest_RMW

15 years agoReintegrated Derek's functional implementation of atomics with a minor change: don...
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