gem5.git
14 years ago[mq]: first_patch
Polina Dudnik [Fri, 21 Aug 2009 20:52:46 +0000 (15:52 -0500)]
[mq]: first_patch

14 years agoBranch Merge
Polina Dudnik [Mon, 17 Aug 2009 16:33:32 +0000 (11:33 -0500)]
Branch Merge

14 years agoMerge with head.
Gabe Black [Mon, 17 Aug 2009 07:21:57 +0000 (00:21 -0700)]
Merge with head.

14 years agoX86: Fix a bug introduced to IDIV in a recent attempt to fix another bug.
Gabe Black [Mon, 17 Aug 2009 07:20:03 +0000 (00:20 -0700)]
X86: Fix a bug introduced to IDIV in a recent attempt to fix another bug.

14 years agocode_formatter: Add a python class for writing code generator templates
Nathan Binkert [Sun, 16 Aug 2009 20:40:03 +0000 (13:40 -0700)]
code_formatter: Add a python class for writing code generator templates

14 years agoply: add a base class called Grammar that encapsulates a ply grammar
Nathan Binkert [Sun, 16 Aug 2009 20:40:01 +0000 (13:40 -0700)]
ply: add a base class called Grammar that encapsulates a ply grammar

14 years agoorderdict: Use DictMixin and add orderdict to m5.util
Nathan Binkert [Sun, 16 Aug 2009 20:40:00 +0000 (13:40 -0700)]
orderdict: Use DictMixin and add orderdict to m5.util

14 years agopython: Make it possible to import the parts of m5 that are pure python
Nathan Binkert [Sun, 16 Aug 2009 20:39:59 +0000 (13:39 -0700)]
python: Make it possible to import the parts of m5 that are pure python

14 years agoply: update PLY to version 3.2
Nathan Binkert [Sun, 16 Aug 2009 20:39:58 +0000 (13:39 -0700)]
ply: update PLY to version 3.2

14 years agoMade servicing_atomic a counter and added started writes:
Polina Dudnik [Sat, 15 Aug 2009 17:45:11 +0000 (12:45 -0500)]
Made servicing_atomic a counter and added started writes:
a function for setting the flag to indicate that
the rmw_writes started issuing

14 years agoBug fix: indicate when writes started coming in
Polina Dudnik [Fri, 14 Aug 2009 22:57:54 +0000 (17:57 -0500)]
Bug fix: indicate when writes started coming in

14 years agoMerge with current branch
Polina Dudnik [Fri, 14 Aug 2009 20:30:25 +0000 (15:30 -0500)]
Merge with current branch

14 years agoAdded proc_id to CacheMsg for SMT.
Polina Dudnik [Fri, 14 Aug 2009 20:30:07 +0000 (15:30 -0500)]
Added proc_id to CacheMsg for SMT.

Not yet necessary, but in case each of the threads
is allowed to initiate an atomic, will come in handy

14 years agoMulti-line RMW handling
Polina Dudnik [Fri, 14 Aug 2009 19:24:15 +0000 (14:24 -0500)]
Multi-line RMW handling

14 years agoSMT atomics modifications:
Polina Dudnik [Fri, 14 Aug 2009 19:06:14 +0000 (14:06 -0500)]
SMT atomics modifications:
  don't allow enquing from other threads if servicing and atomic for a thread

14 years agoAutomated merge with ssh://hg@m5sim.org/m5
Derek Hower [Thu, 13 Aug 2009 15:37:37 +0000 (10:37 -0500)]
Automated merge with ssh://hg@m5sim.org/m5

14 years agoruby: config bugfix
Derek Hower [Thu, 13 Aug 2009 15:37:09 +0000 (10:37 -0500)]
ruby: config bugfix

14 years agoruby/network data_msg_size bug fix with updated stats
Tushar Krishna [Tue, 11 Aug 2009 22:19:04 +0000 (15:19 -0700)]
ruby/network data_msg_size bug fix with updated stats

14 years agomerged Tushar's bug fix with public repository changes
Brad Beckmann [Tue, 11 Aug 2009 19:22:41 +0000 (12:22 -0700)]
merged Tushar's bug fix with public repository changes

14 years agoAutomated merge with ssh://hg@m5sim.org/m5
Derek Hower [Sun, 9 Aug 2009 18:59:14 +0000 (13:59 -0500)]
Automated merge with ssh://hg@m5sim.org/m5

14 years agoprotocol: added recycle actions to MOESI DMA events
Derek Hower [Sun, 9 Aug 2009 18:58:40 +0000 (13:58 -0500)]
protocol: added recycle actions to MOESI DMA events

14 years agoX86: Update the stats on the ruby x86 regressions for the new CMOVcc implementation.
Gabe Black [Sun, 9 Aug 2009 11:01:56 +0000 (04:01 -0700)]
X86: Update the stats on the ruby x86 regressions for the new CMOVcc implementation.

14 years agoX86: Implement the CMPXCHG8B/CMPXCHG16B instruction.
Gabe Black [Sun, 9 Aug 2009 08:01:41 +0000 (01:01 -0700)]
X86: Implement the CMPXCHG8B/CMPXCHG16B instruction.

14 years agoX86: Don't clobber the original dividend when doing signed divide.
Gabe Black [Sun, 9 Aug 2009 08:01:18 +0000 (01:01 -0700)]
X86: Don't clobber the original dividend when doing signed divide.

14 years agoX86: Decode byte sized singed divide as byte sized.
Gabe Black [Sun, 9 Aug 2009 08:00:47 +0000 (01:00 -0700)]
X86: Decode byte sized singed divide as byte sized.

14 years agoX86: Update the stats for the slightly lengthened cmov.
Gabe Black [Sun, 9 Aug 2009 00:23:25 +0000 (17:23 -0700)]
X86: Update the stats for the slightly lengthened cmov.

14 years agoX86: Make not taken conditional moves leave the destination alone. Adjust CMOVcc.
Gabe Black [Sun, 9 Aug 2009 00:23:19 +0000 (17:23 -0700)]
X86: Make not taken conditional moves leave the destination alone. Adjust CMOVcc.
The manuals from both AMD and Intel say that when writing to a 32 bit
destination in 64 bit mode, the upper 32 bits of the register are filled with
zeros. They also both say that the CMOV instructions leave their destination
alone when their condition fails. Unfortunately, it seems that CMOV will zero
extend its destination register whether or not it was supposed to actually do
a move on both platforms. This seems to be the only case where this happens,
but it would be hard to say for sure.

14 years agobug fix for data_msg_size in network/Network.cc
Tushar Krishna [Fri, 7 Aug 2009 20:59:40 +0000 (13:59 -0700)]
bug fix for data_msg_size in network/Network.cc

14 years agoX86: (Re)Implemented SHRD.
Gabe Black [Fri, 7 Aug 2009 17:13:33 +0000 (10:13 -0700)]
X86: (Re)Implemented SHRD.

14 years agoX86: Implement SHLD.
Gabe Black [Fri, 7 Aug 2009 17:13:24 +0000 (10:13 -0700)]
X86: Implement SHLD.

14 years agoX86: Implement shift right/left double microops.
Gabe Black [Fri, 7 Aug 2009 17:13:20 +0000 (10:13 -0700)]
X86: Implement shift right/left double microops.
This is my best guess as far as what these should do. Other existing microops
use implicit registers, mul1s and mul1u for instance, so this should be ok.
The microop that loads the implicit DoubleBits register would fall into one
of the microop slots for moving to/from special registers.

14 years agoX86: Make the qaud width bswap instruction handle the fact that 32 bit operations...
Gabe Black [Fri, 7 Aug 2009 17:12:58 +0000 (10:12 -0700)]
X86: Make the qaud width bswap instruction handle the fact that 32 bit operations zero extend.

14 years agoX86: Use the right field when using legacy prefixes to distinguish instructions.
Gabe Black [Fri, 7 Aug 2009 17:12:52 +0000 (10:12 -0700)]
X86: Use the right field when using legacy prefixes to distinguish instructions.

14 years agoX86: Don't truncate the immediate parameter for the ENTER instruction.
Gabe Black [Fri, 7 Aug 2009 17:12:29 +0000 (10:12 -0700)]
X86: Don't truncate the immediate parameter for the ENTER instruction.

14 years agoX86: Adjust the various sizes used for the enter and leave instructions.
Gabe Black [Fri, 7 Aug 2009 04:44:42 +0000 (21:44 -0700)]
X86: Adjust the various sizes used for the enter and leave instructions.

14 years agoX86: Make scas compare its operands in the right order.
Gabe Black [Fri, 7 Aug 2009 04:44:41 +0000 (21:44 -0700)]
X86: Make scas compare its operands in the right order.

14 years agoX86: Fix a copy/paste error for cmovnp.
Gabe Black [Fri, 7 Aug 2009 04:44:40 +0000 (21:44 -0700)]
X86: Fix a copy/paste error for cmovnp.

14 years agofixed MOESI_CMP_directory bug
Derek Hower [Thu, 6 Aug 2009 08:41:28 +0000 (03:41 -0500)]
fixed MOESI_CMP_directory bug

14 years agoprotocol: fixed MOESI_CMP_directory bug
Derek Hower [Thu, 6 Aug 2009 06:15:55 +0000 (01:15 -0500)]
protocol: fixed MOESI_CMP_directory bug

14 years agoruby: better configuration assert message
Derek Hower [Thu, 6 Aug 2009 06:15:23 +0000 (01:15 -0500)]
ruby: better configuration assert message

14 years agomerge
Derek Hower [Wed, 5 Aug 2009 19:23:32 +0000 (14:23 -0500)]
merge

14 years agoregression: updated stats
Derek Hower [Wed, 5 Aug 2009 19:20:53 +0000 (14:20 -0500)]
regression: updated stats

14 years agoruby: configuration supports multiple runs in same session
Derek Hower [Wed, 5 Aug 2009 19:20:32 +0000 (14:20 -0500)]
ruby: configuration supports multiple runs in same session

These changes allow to run Ruby-gems multiple times from the same
ruby-lang script with different configurations

14 years agoprotocol: made MI_example dma mapping generic
Derek Hower [Wed, 5 Aug 2009 19:17:23 +0000 (14:17 -0500)]
protocol: made MI_example dma mapping generic

14 years agoMerge with head.
Gabe Black [Wed, 5 Aug 2009 10:12:39 +0000 (03:12 -0700)]
Merge with head.

14 years agoX86: Make conditional moves zero extend their 32 bit destinations always.
Gabe Black [Wed, 5 Aug 2009 10:07:55 +0000 (03:07 -0700)]
X86: Make conditional moves zero extend their 32 bit destinations always.

14 years agoX86: Fix condition code setting for signed multiplies with negative results.
Gabe Black [Wed, 5 Aug 2009 10:07:01 +0000 (03:07 -0700)]
X86: Fix condition code setting for signed multiplies with negative results.

14 years agoX86: Make the check for negative operands for sign multiply more direct.
Gabe Black [Wed, 5 Aug 2009 10:06:37 +0000 (03:06 -0700)]
X86: Make the check for negative operands for sign multiply more direct.

14 years agoX86: Make sure immediate values are truncated properly.
Gabe Black [Wed, 5 Aug 2009 10:06:01 +0000 (03:06 -0700)]
X86: Make sure immediate values are truncated properly.
Register values will be "picked" which will assure they don't have junk beyond
the part we're using. Immediate values don't go through a similar process, so
we should truncate them explicitly.

14 years agoX86: Use the new forced folding mechanism for the SAHF and LAHF instructions.
Gabe Black [Wed, 5 Aug 2009 10:04:17 +0000 (03:04 -0700)]
X86: Use the new forced folding mechanism for the SAHF and LAHF instructions.

14 years agoX86: Fix the indexing for ah in byte division instructions.
Gabe Black [Wed, 5 Aug 2009 10:03:41 +0000 (03:03 -0700)]
X86: Fix the indexing for ah in byte division instructions.

14 years agoX86: Fix the indexing for ah in byte multiply instructions.
Gabe Black [Wed, 5 Aug 2009 10:03:28 +0000 (03:03 -0700)]
X86: Fix the indexing for ah in byte multiply instructions.

14 years agoX86: Let microops force folding an index into the high byte of a register.
Gabe Black [Wed, 5 Aug 2009 10:03:07 +0000 (03:03 -0700)]
X86: Let microops force folding an index into the high byte of a register.

14 years agoX86: Handle rotate left with carry instructions that go all the way around or more.
Gabe Black [Wed, 5 Aug 2009 10:02:28 +0000 (03:02 -0700)]
X86: Handle rotate left with carry instructions that go all the way around or more.

14 years agoX86: Set the flags on rotate left with carry instructions.
Gabe Black [Wed, 5 Aug 2009 10:02:05 +0000 (03:02 -0700)]
X86: Set the flags on rotate left with carry instructions.

14 years agoX86: Handle rotate right with carry instructions that go all the way around or more.
Gabe Black [Wed, 5 Aug 2009 10:01:49 +0000 (03:01 -0700)]
X86: Handle rotate right with carry instructions that go all the way around or more.

14 years agoX86: Fix the overflow bit for rotate right with carry.
Gabe Black [Wed, 5 Aug 2009 10:01:23 +0000 (03:01 -0700)]
X86: Fix the overflow bit for rotate right with carry.

14 years agoX86: Fix the computation of the bottom part of rotate right with carry.
Gabe Black [Wed, 5 Aug 2009 10:01:07 +0000 (03:01 -0700)]
X86: Fix the computation of the bottom part of rotate right with carry.

14 years agoX86: Fix the computation of the upper part of rotate right with carry.
Gabe Black [Wed, 5 Aug 2009 10:00:43 +0000 (03:00 -0700)]
X86: Fix the computation of the upper part of rotate right with carry.

14 years agoX86: Set the flags for rotate right with carry instructions.
Gabe Black [Wed, 5 Aug 2009 10:00:23 +0000 (03:00 -0700)]
X86: Set the flags for rotate right with carry instructions.

14 years agoX86: Handle rotating right all the way around or more.
Gabe Black [Wed, 5 Aug 2009 10:00:03 +0000 (03:00 -0700)]
X86: Handle rotating right all the way around or more.

14 years agoX86: Set the flags on a rotate right instruction.
Gabe Black [Wed, 5 Aug 2009 09:59:39 +0000 (02:59 -0700)]
X86: Set the flags on a rotate right instruction.

14 years agoX86: Make shifts/rotations that write to 32 bits of a register zero extend.
Gabe Black [Wed, 5 Aug 2009 09:59:25 +0000 (02:59 -0700)]
X86: Make shifts/rotations that write to 32 bits of a register zero extend.

14 years agoX86: Handle left rotations that go all the way around or more.
Gabe Black [Wed, 5 Aug 2009 09:58:54 +0000 (02:58 -0700)]
X86: Handle left rotations that go all the way around or more.

14 years agoX86: Actually set the flags on a rotate left instruction.
Gabe Black [Wed, 5 Aug 2009 09:58:20 +0000 (02:58 -0700)]
X86: Actually set the flags on a rotate left instruction.

14 years agoX86: Fix the sar carry flag.
Gabe Black [Wed, 5 Aug 2009 09:58:03 +0000 (02:58 -0700)]
X86: Fix the sar carry flag.

14 years agoX86: Fix sign extension when doing an arithmetic shift right by 0.
Gabe Black [Wed, 5 Aug 2009 09:57:47 +0000 (02:57 -0700)]
X86: Fix sign extension when doing an arithmetic shift right by 0.

14 years agoX86: Fix the carry flag for shr.
Gabe Black [Wed, 5 Aug 2009 09:56:49 +0000 (02:56 -0700)]
X86: Fix the carry flag for shr.

14 years agoX86: Fix the carry flag for shl.
Gabe Black [Wed, 5 Aug 2009 09:56:38 +0000 (02:56 -0700)]
X86: Fix the carry flag for shl.

14 years agoX86: Fix how the parity flag is computed.
Gabe Black [Wed, 5 Aug 2009 09:56:12 +0000 (02:56 -0700)]
X86: Fix how the parity flag is computed.
It's only for the lowest order byte, and I had the polarity wrong.

14 years agoruby: made mapAddressToRange based off a bit count
Derek Hower [Wed, 5 Aug 2009 04:05:37 +0000 (23:05 -0500)]
ruby: made mapAddressToRange based off a bit count

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

14 years agoslicc: better error messages when the python parser fails
Nathan Binkert [Tue, 4 Aug 2009 16:37:27 +0000 (09:37 -0700)]
slicc: better error messages when the python parser fails

14 years agoMerged with head.
Gabe Black [Mon, 3 Aug 2009 18:06:19 +0000 (11:06 -0700)]
Merged with head.

14 years agoX86: Fix segment override prefixes on instructions that use rbp/rsp and a displacement.
Gabe Black [Mon, 3 Aug 2009 18:01:40 +0000 (11:01 -0700)]
X86: Fix segment override prefixes on instructions that use rbp/rsp and a displacement.

14 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

14 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.

14 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.

14 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.

14 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.

14 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.

14 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().

14 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

14 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

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

14 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 =

14 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.

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

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

14 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.

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

14 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

14 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.

14 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.