Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Flesh out the 32 bit thumb store single instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Implement the 32 bit thumb load word instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add an operand for accessing the current PC.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Flesh out 32 bit thumb load word decoding.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Implement some 32 bit thumb data processing immediate instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Replace the "never" condition with the "unconditional" condition.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a base class for 32 bit thumb data processing immediate instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a function to decode 32 bit thumb immediate values.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Expand the decoding for 32 bit thumb data processing immediate instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Stub out the 32 bit Thumb portion of the decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add bitfields for 32 bit thumb.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Decode VFP instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Stub out the 16 bit thumb decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add thumb bitfields to the ExtMachInst and the isa definition.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Make the decoder handle thumb instructions separately.
--HG--
rename : src/arch/arm/isa/decoder.isa => src/arch/arm/isa/armdecode.isa
rename : src/arch/arm/isa/decoder.isa => src/arch/arm/isa/thumbdecode.isa
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a thumb bit bitfield.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Make the predecoder handle Thumb instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Make sure ExtMachInst is used consistently instead of regular MachInst.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a bitfield for setting the regular, inst bits of an ExtMachInst.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a bit to the ExtMachInst to select thumb mode.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Allow ARM processes to start in Thumb mode.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Detect thumb mode elf images.
Gabe Black [Wed, 2 Jun 2010 17:57:59 +0000 (12:57 -0500)]
ARM: Add a new base class for instructions that can do an interworking branch.
Gabe Black [Wed, 2 Jun 2010 17:57:59 +0000 (12:57 -0500)]
ARM: Track the current ISA mode using the PC.
Gabe Black [Wed, 2 Jun 2010 17:57:59 +0000 (12:57 -0500)]
ARM: Fix custom writer/reader code for non indexed operands.
Gabe Black [Wed, 2 Jun 2010 17:57:59 +0000 (12:57 -0500)]
ARM: Remove IsControl from operands that don't imply control transfers.
Also remove IsInteger from CondCodes.
Ali Saidi [Wed, 2 Jun 2010 17:57:59 +0000 (12:57 -0500)]
ARM: Adjust some copyrights
Nathan Binkert [Tue, 1 Jun 2010 18:38:56 +0000 (11:38 -0700)]
style: clean up ruby's Set class
Further cleanup should probably be done to make this class be non-Ruby
specific and put it in src/base.
There are probably several cases where this class is used, std::bitset
could be used instead.
Nathan Binkert [Wed, 26 May 2010 03:15:44 +0000 (20:15 -0700)]
x86: put back code that I accidentally deleted
Nathan Binkert [Mon, 24 May 2010 05:44:15 +0000 (22:44 -0700)]
copyright: Change HP copyright on x86 code to be more friendly
Ali Saidi [Wed, 19 May 2010 04:36:05 +0000 (00:36 -0400)]
BPRED: Update one missing regression
Gabe Black [Fri, 14 May 2010 21:22:51 +0000 (14:22 -0700)]
SPARC: Implement the version of movcc that uses the fp condition codes.
Ali Saidi [Fri, 14 May 2010 03:48:06 +0000 (23:48 -0400)]
Automated merge with ssh://m5sim.org//repo/m5
Ali Saidi [Fri, 14 May 2010 03:45:59 +0000 (23:45 -0400)]
BPRED: Update regressions for tournament predictor fix.
Maximilien Breughe [Fri, 14 May 2010 03:45:57 +0000 (23:45 -0400)]
BPRED: Fixed the treshold-bug in the tournament predictor.
Suppose the saturating counters of a branch predictor contain n bits. When the
counter is between 0 and (2^(n-1) - 1), boundaries included, the branch is
predicted as not taken. When the counter is between 2^(n-1) and (2^n - 1),
boundaries included, the branch is predicted as taken.
Gabe Black [Wed, 12 May 2010 07:51:35 +0000 (00:51 -0700)]
X86: Make the cvti2f microop sign extend its integer source correctly.
The code was using the wrong bit as the sign bit. Other similar bits of code
seem to be correct.
Gabe Black [Wed, 12 May 2010 07:49:12 +0000 (00:49 -0700)]
X86: Actual change that fixes div. How did that happen?
Gabe Black [Wed, 12 May 2010 07:37:29 +0000 (00:37 -0700)]
X86: The logic that handled the recently fixed corner case for div wasn't quite right.
Gabe Black [Thu, 6 May 2010 20:41:33 +0000 (13:41 -0700)]
Merge.
Gabe Black [Thu, 6 May 2010 20:41:08 +0000 (13:41 -0700)]
X86: Update the stats for the new aux vectors in the ruby regression.
I forgot to turn on ruby when updating the stats before.
Nathan Binkert [Thu, 6 May 2010 15:42:21 +0000 (08:42 -0700)]
macos: MacOS has deprecated getdirentries, so just disable the code.
Hopefully it isn't used much
Nathan Binkert [Thu, 6 May 2010 15:42:18 +0000 (08:42 -0700)]
compile: don't #include unnecessary stuff
Time from base/time.hh has a name clash with Time from Ruby's
TypeDefines.hh. Eventually Ruby's Time should go away, so instead of
fixing this properly just try to avoid the clash.
Gabe Black [Mon, 3 May 2010 07:45:01 +0000 (00:45 -0700)]
X86: Update stats for the updated auxilliary vectors.
Gabe Black [Mon, 3 May 2010 07:44:08 +0000 (00:44 -0700)]
X86: Update the base aux vector X86 processes install.
Gabe Black [Sun, 2 May 2010 07:40:17 +0000 (00:40 -0700)]
X86: Sometimes CPUID depends on ecx, so pass that in.
Gabe Black [Sun, 2 May 2010 07:39:46 +0000 (00:39 -0700)]
Statetrace: Fix compile problems with the AMD64 version of statetrace.
Gabe Black [Sun, 2 May 2010 07:39:29 +0000 (00:39 -0700)]
X86: Finally fix a division corner case.
When doing an unsigned 64 bit division with a divisor that has its most
significant bit set, the division code would spill a bit off of the end of a
uint64_t trying to shift the dividend into position. This change adds code
that handles that case specially by purposefully letting it spill and then
going ahead assuming there was a 65th one bit.
Nathan Binkert [Mon, 19 Apr 2010 04:33:59 +0000 (21:33 -0700)]
config: fix assertion for x86 in FSConfig.py
Nathan Binkert [Sun, 18 Apr 2010 20:23:25 +0000 (13:23 -0700)]
stats: make simTicks and simFreq accessible from stats.hh
Nathan Binkert [Sun, 18 Apr 2010 20:23:25 +0000 (13:23 -0700)]
callback: Make helper functions that create callback objects for you
clean up callback stuff a little bit while we're at it.
Nathan Binkert [Sun, 18 Apr 2010 20:23:24 +0000 (13:23 -0700)]
event: Allow EventWrapper to take an object reference
Nathan Binkert [Thu, 15 Apr 2010 23:25:14 +0000 (16:25 -0700)]
scons: don't maintain files in sorted order
This causes builds to happen in sorted order rather than in
declaration order. This gets annoying when you make a global change
and then you notice that the files that are being compiled are jumping
around the directory hierarchy.
Nathan Binkert [Thu, 15 Apr 2010 23:24:12 +0000 (16:24 -0700)]
tick: rename Clock namespace to SimClock
Nathan Binkert [Thu, 15 Apr 2010 23:24:10 +0000 (16:24 -0700)]
eventq: move EventQueue constructor to cc file
Also make copy constructor and assignment operator private.
Korey Sewell [Sun, 11 Apr 2010 04:21:49 +0000 (00:21 -0400)]
inorder: update regressions for fwd-ing patch
Korey Sewell [Sun, 11 Apr 2010 03:31:36 +0000 (23:31 -0400)]
inorder: timing for inst forwarding
when insts execute, they mark the time they finish to be used for subsequent isnts
they may need forwarding of data. However, the regdepmap was using the wrong
value to index into the destination operands of the instruction to be forwarded.
Thus, in some cases, we are checking to see if the 3rd destination register
for an instruction is executed at a certain time, when there is only 1 dest. register
valid. Thus, we get a bad, uninitialized time value that will stall forwarding
causing performance loss but still the correct execution.
Nathan Binkert [Fri, 2 Apr 2010 22:28:22 +0000 (15:28 -0700)]
eventq: allow an implicit cast from an EventManager to an EventQueue *
Nathan Binkert [Fri, 2 Apr 2010 22:28:22 +0000 (15:28 -0700)]
eventq: Clean up some flags
- Make the initialized flag always available, not just in debug mode.
- Make the Initialized flag actually use several bits so it is very
unlikely that something that's uninitialized accidentally looks
initialized.
- Add an initialized() function that tells you if the current event is
indeed initialized.
- Clear the flags on delete so it can't be accidentally thought of as
initialized.
- Fix getFlags assert statement. "How did this ever work?"
Nathan Binkert [Fri, 2 Apr 2010 22:28:21 +0000 (15:28 -0700)]
eventq: Make priorities just an integer instead of an enum.
Symbolic names should still be used, but this makes it easier to do
things like:
Event::Priority MyObject_Pri = Event::Default_Pri + 1
Remember that higher numbers are lower priority (should we fix this?)
Nathan Binkert [Fri, 2 Apr 2010 18:20:32 +0000 (11:20 -0700)]
refcnt: no default copy contructor or copy operator
We shouldn't allow these because the default versions will copy
the reference count which is definitely not what we want.
Nathan Binkert [Fri, 2 Apr 2010 18:20:32 +0000 (11:20 -0700)]
ruby: get rid of gems_common/util.hh and .cc and use stuff in src/base
Nathan Binkert [Fri, 2 Apr 2010 18:20:32 +0000 (11:20 -0700)]
ruby: get "using namespace" out of headers
In addition to obvious changes, this required a slight change to the slicc
grammar to allow types with :: in them. Otherwise slicc barfs on std::string
which we need for the headers that slicc generates.
Nathan Binkert [Wed, 31 Mar 2010 23:56:45 +0000 (16:56 -0700)]
style: another ruby style pass
Nathan Binkert [Tue, 30 Mar 2010 00:39:02 +0000 (20:39 -0400)]
style: cleanup the Ruby Tester
Korey Sewell [Sat, 27 Mar 2010 06:23:00 +0000 (02:23 -0400)]
m5: merge inorder updates
Korey Sewell [Sat, 27 Mar 2010 06:21:22 +0000 (02:21 -0400)]
inorder: update twolf/vortex regressions
Korey Sewell [Sat, 27 Mar 2010 05:40:05 +0000 (01:40 -0400)]
inorder: write-hints bug fix
make sure to only read 1 src reg. for write-hint and any other similar
'store' instruction. Reading the source reg when its not necessary
can cause the simulator to read from uninitialized values
Timothy M. Jones [Thu, 25 Mar 2010 12:43:52 +0000 (12:43 +0000)]
CPU: Added comments to address translation classes.
Nathan Binkert [Wed, 24 Mar 2010 05:49:43 +0000 (22:49 -0700)]
ruby: continue style pass
Nathan Binkert [Tue, 23 Mar 2010 23:31:47 +0000 (16:31 -0700)]
regress: add some new options
add -n/--no-exec which doesn't execute scons, but just prints the command line
add -j0 which tries to calculate how many cpus you have
add -D/--build-dir to specify a build directory other than ./build
Steve Reinhardt [Tue, 23 Mar 2010 15:50:59 +0000 (08:50 -0700)]
cpu: get rid of uncached access "events"
These recordEvent() calls could cause crashes since they
access the req pointer after it's potentially been
deleted during a failed translation call. (Similar
problem to the traceData bug fixed in the previous cset.)
Moving them above the translation call (as was done
recentlyi in cset
8b2b8e5e7d35) avoids the crash
but doesn't work, since at that point we don't know if
the access is uncached or not.
It's not clear why these calls are there, and no one
seems to use them, so we'll just delete them. If they
are needed, they should be moved to somewhere that's
guaranteed to be after the translation completes but
before the request is possibly deleted, e.g., in
finishTranslation().
Steve Reinhardt [Tue, 23 Mar 2010 15:50:57 +0000 (08:50 -0700)]
cpu: fix exec tracing memory corruption bug
Accessing traceData (to call setAddress() and/or setData())
after initiating a timing translation was causing crashes,
since a failed translation could delete the traceData
object before returning.
It turns out that there was never a need to access traceData
after initiating the translation, as the traced data was
always available earlier; this ordering was merely
historical. Furthermore, traceData->setAddress() and
traceData->setData() were being called both from the CPU
model and the ISA definition, often redundantly.
This patch standardizes all setAddress and setData calls
for memory instructions to be in the CPU models and not
in the ISA definition. It also moves those calls above
the translation calls to eliminate the crashes.
Korey Sewell [Tue, 23 Mar 2010 04:29:10 +0000 (00:29 -0400)]
m5merge(2): another merge of regression stats
Korey Sewell [Tue, 23 Mar 2010 04:26:53 +0000 (00:26 -0400)]
inorder: update hello world for alpha and mips
Korey Sewell [Tue, 23 Mar 2010 04:21:19 +0000 (00:21 -0400)]
m5merge: ruby + inorder
automerge of updated inorder regressions and ruby style pass
Korey Sewell [Tue, 23 Mar 2010 04:14:52 +0000 (00:14 -0400)]
inorder: update twolf regression
Korey Sewell [Tue, 23 Mar 2010 03:39:23 +0000 (23:39 -0400)]
inorder: update vortex regression
Nathan Binkert [Tue, 23 Mar 2010 01:43:53 +0000 (18:43 -0700)]
ruby: style pass
Korey Sewell [Mon, 22 Mar 2010 21:19:48 +0000 (17:19 -0400)]
inorder: import name for addtl. bpred stats
Maximilien Breughe [Mon, 22 Mar 2010 20:59:12 +0000 (16:59 -0400)]
inorder: fix squash bug in branch predictor
Korey Sewell [Mon, 22 Mar 2010 19:38:28 +0000 (15:38 -0400)]
inorder: fix address list bug
Brad Beckmann [Mon, 22 Mar 2010 18:19:17 +0000 (11:19 -0700)]
ruby: improved isReadWrite fix me comment
Brad Beckmann [Mon, 22 Mar 2010 04:22:22 +0000 (21:22 -0700)]
ruby: Regression updates for new ruby config locations
Brad Beckmann [Mon, 22 Mar 2010 04:22:22 +0000 (21:22 -0700)]
ruby: Removed the unnecessary MachineType message fields
Brad Beckmann [Mon, 22 Mar 2010 04:22:22 +0000 (21:22 -0700)]
ruby: Reorganized Ruby topology and protocol files
--HG--
rename : configs/ruby/MESI_CMP_directory.py => configs/ruby/protocols/MESI_CMP_directory.py
rename : configs/ruby/MI_example.py => configs/ruby/protocols/MI_example.py
rename : configs/ruby/MOESI_CMP_directory.py => configs/ruby/protocols/MOESI_CMP_directory.py
rename : configs/ruby/MOESI_CMP_token.py => configs/ruby/protocols/MOESI_CMP_token.py
rename : configs/ruby/MOESI_hammer.py => configs/ruby/protocols/MOESI_hammer.py
rename : configs/ruby/networks/MeshDirCorners.py => src/mem/ruby/network/topologies/MeshDirCorners.py
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
added sparse memory support to hammer
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Disable adaptive routing by for faster simulation perf.
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Changed the default set size to 1
Previously, the set size was set to 4. This was mostly do to the fact that a
crazy graduate student use to create networks with 256 l2 cache banks. Now it
is far more likely that users will create systems with less than 64 of any
particular controller type. Therefore Ruby should be optimized for a set size
of 1.
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Reordered protocol buffers
Reordered vnet priorities to agree with PerfectSwitch for protocols MI_example,
MOESI_CMP_token, and MOESI_hammer
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Adds configurable bit selection for numa mapping
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Added flag to disable mem_vec allocation
The RubySystem flag no_mem_vec will disable Ruby from allocating it's memory
data array.
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Ruby support for sparse memory
The patch includes direct support for the MI example protocol.
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Finally removed bash code cira. 2001ish!
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Ruby support for LLSC
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Minor dma latency initialization fix
Tushar Krishna [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Fix multiple wakeups in Ruby Eventqueue
Fix bug in Ruby Event queue to avoid multiple wakeups of same consumer in
same cycle
Brad Beckmann [Mon, 22 Mar 2010 04:22:21 +0000 (21:22 -0700)]
ruby: Removed the obsolete file specified network files
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: Added copyright to many Ruby *.py files
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: removed ruby.config from configs/example
Brad Beckmann [Mon, 22 Mar 2010 04:22:20 +0000 (21:22 -0700)]
ruby: Fixed small data msg bug in MOESI_hammer-dir