Gabe Black [Fri, 7 Aug 2009 04:44:41 +0000 (21:44 -0700)]
X86: Make scas compare its operands in the right order.
Gabe Black [Fri, 7 Aug 2009 04:44:40 +0000 (21:44 -0700)]
X86: Fix a copy/paste error for cmovnp.
Derek Hower [Wed, 5 Aug 2009 19:23:32 +0000 (14:23 -0500)]
merge
Derek Hower [Wed, 5 Aug 2009 19:20:53 +0000 (14:20 -0500)]
regression: updated stats
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
Derek Hower [Wed, 5 Aug 2009 19:17:23 +0000 (14:17 -0500)]
protocol: made MI_example dma mapping generic
Gabe Black [Wed, 5 Aug 2009 10:12:39 +0000 (03:12 -0700)]
Merge with head.
Gabe Black [Wed, 5 Aug 2009 10:07:55 +0000 (03:07 -0700)]
X86: Make conditional moves zero extend their 32 bit destinations always.
Gabe Black [Wed, 5 Aug 2009 10:07:01 +0000 (03:07 -0700)]
X86: Fix condition code setting for signed multiplies with negative results.
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.
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.
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.
Gabe Black [Wed, 5 Aug 2009 10:03:41 +0000 (03:03 -0700)]
X86: Fix the indexing for ah in byte division instructions.
Gabe Black [Wed, 5 Aug 2009 10:03:28 +0000 (03:03 -0700)]
X86: Fix the indexing for ah in byte multiply instructions.
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.
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.
Gabe Black [Wed, 5 Aug 2009 10:02:05 +0000 (03:02 -0700)]
X86: Set the flags on rotate left with carry instructions.
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.
Gabe Black [Wed, 5 Aug 2009 10:01:23 +0000 (03:01 -0700)]
X86: Fix the overflow bit for 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.
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.
Gabe Black [Wed, 5 Aug 2009 10:00:23 +0000 (03:00 -0700)]
X86: Set the flags for rotate right with carry instructions.
Gabe Black [Wed, 5 Aug 2009 10:00:03 +0000 (03:00 -0700)]
X86: Handle rotating right all the way around or more.
Gabe Black [Wed, 5 Aug 2009 09:59:39 +0000 (02:59 -0700)]
X86: Set the flags on a rotate right instruction.
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.
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.
Gabe Black [Wed, 5 Aug 2009 09:58:20 +0000 (02:58 -0700)]
X86: Actually set the flags on a rotate left instruction.
Gabe Black [Wed, 5 Aug 2009 09:58:03 +0000 (02:58 -0700)]
X86: Fix the sar carry flag.
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.
Gabe Black [Wed, 5 Aug 2009 09:56:49 +0000 (02:56 -0700)]
X86: Fix the carry flag for shr.
Gabe Black [Wed, 5 Aug 2009 09:56:38 +0000 (02:56 -0700)]
X86: Fix the carry flag for shl.
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.
Derek Hower [Wed, 5 Aug 2009 04:05:37 +0000 (23:05 -0500)]
ruby: made mapAddressToRange based off a bit count
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.
Derek Hower [Tue, 4 Aug 2009 17:42:45 +0000 (12:42 -0500)]
slicc: generate html by default
Nathan Binkert [Tue, 4 Aug 2009 16:37:27 +0000 (09:37 -0700)]
slicc: better error messages when the python parser fails
Gabe Black [Mon, 3 Aug 2009 18:06:19 +0000 (11:06 -0700)]
Merged with head.
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.
Derek Hower [Mon, 3 Aug 2009 16:39:08 +0000 (11:39 -0500)]
Automated merge with ssh://hg@m5sim.org/m5
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.
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.
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.
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.
Steve Reinhardt [Sun, 2 Aug 2009 05:50:13 +0000 (22:50 -0700)]
Clean up some inconsistencies with Request flags.
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().
Korey Sewell [Fri, 31 Jul 2009 14:40:42 +0000 (10:40 -0400)]
merge mips fix and statetrace changes
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
Derek Hower [Fri, 31 Jul 2009 05:43:09 +0000 (00:43 -0500)]
regression: updated stats
Nathan Binkert [Fri, 31 Jul 2009 00:42:57 +0000 (17:42 -0700)]
compile: fix accidental conversion of == into =
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.
Derek Hower [Wed, 29 Jul 2009 18:46:58 +0000 (13:46 -0500)]
ruby: fixed clearStats
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.
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.
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.
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.
Gabe Black [Wed, 29 Jul 2009 07:15:26 +0000 (00:15 -0700)]
Simple CPU: Make the simple CPU handle the IntRegs trace flag.
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.
Ali Saidi [Wed, 29 Jul 2009 07:09:46 +0000 (00:09 -0700)]
ARM: Ignore the "times" system call.
Ali Saidi [Wed, 29 Jul 2009 07:09:44 +0000 (00:09 -0700)]
ARM: Fix an ioctl constant.
Derek Hower [Tue, 28 Jul 2009 02:43:43 +0000 (21:43 -0500)]
ruby: removed unused/incorrect profiler state
Gabe Black [Mon, 27 Jul 2009 07:55:14 +0000 (00:55 -0700)]
ARM: Update the stats for the EABI version of hello world.
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.
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.
Gabe Black [Mon, 27 Jul 2009 07:54:30 +0000 (00:54 -0700)]
ARM: Only send information that changed between statetrace and M5.
Gabe Black [Mon, 27 Jul 2009 07:54:24 +0000 (00:54 -0700)]
imported patch nativetracestreamline.patch
Gabe Black [Mon, 27 Jul 2009 07:54:09 +0000 (00:54 -0700)]
ARM: Make native trace print out what instruction caused an error.
Gabe Black [Mon, 27 Jul 2009 07:54:04 +0000 (00:54 -0700)]
imported patch statetracehost.patch
Ali Saidi [Mon, 27 Jul 2009 07:53:39 +0000 (00:53 -0700)]
ARM: Add ARM support to statetrace.
Gabe Black [Mon, 27 Jul 2009 07:53:32 +0000 (00:53 -0700)]
Statetrace: Fix up headers.
Gabe Black [Mon, 27 Jul 2009 07:53:29 +0000 (00:53 -0700)]
ARM: Implement a basic version of the fmxr instruction.
Gabe Black [Mon, 27 Jul 2009 07:53:24 +0000 (00:53 -0700)]
ARM: Implement a basic version of the fmrx instruction.
Gabe Black [Mon, 27 Jul 2009 07:53:10 +0000 (00:53 -0700)]
ARM: Add in spots for the VFP control registers.
Gabe Black [Mon, 27 Jul 2009 07:52:59 +0000 (00:52 -0700)]
ARM: Fix the CLZ instruction.
Gabe Black [Mon, 27 Jul 2009 07:52:48 +0000 (00:52 -0700)]
ARM: Initialize the CPSR so that we're in user mode.
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.
Gabe Black [Mon, 27 Jul 2009 07:52:19 +0000 (00:52 -0700)]
Elf: Add in some new aux vector type constants.
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.
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
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.
Ali Saidi [Mon, 27 Jul 2009 07:51:20 +0000 (00:51 -0700)]
ARM: Fix fstat/fstat64 structs to match EABI definitions.
Gabe Black [Mon, 27 Jul 2009 07:51:15 +0000 (00:51 -0700)]
ARM: Replace hello world with an EABI version.
Ali Saidi [Mon, 27 Jul 2009 07:51:01 +0000 (00:51 -0700)]
ARM: Handle register indexed system calls.
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.
Korey Sewell [Sun, 26 Jul 2009 04:13:35 +0000 (00:13 -0400)]
se-configs: edit se.py to account for non-O3CPU workloads
Korey Sewell [Sun, 26 Jul 2009 02:24:45 +0000 (22:24 -0400)]
merge sparc fix w/2t regress fix
Korey Sewell [Sun, 26 Jul 2009 02:22:13 +0000 (22:22 -0400)]
regress: edit 2t hello smt file to specify numThreads
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.
Korey Sewell [Sat, 25 Jul 2009 04:50:27 +0000 (00:50 -0400)]
o3-smt: enforce numThreads parameter for SMT SE mode
Polina Dudnik [Thu, 23 Jul 2009 01:28:32 +0000 (20:28 -0500)]
Fixed the licences plus minor fixes for compilation
Gabe Black [Wed, 22 Jul 2009 08:57:55 +0000 (01:57 -0700)]
MIPS: Small fix I forgot to qrefresh into my last change.
Gabe Black [Wed, 22 Jul 2009 08:51:10 +0000 (01:51 -0700)]
MIPS: Style/formatting sweep of the decoder itself.
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.
Derek Hower [Wed, 22 Jul 2009 02:27:54 +0000 (21:27 -0500)]
Automated merge with ssh://m5sim.org//repo/m5
Derek Hower [Wed, 22 Jul 2009 00:42:09 +0000 (19:42 -0500)]
ruby: fixed sequencer RMW data bug
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.
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.
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.
Gabe Black [Tue, 21 Jul 2009 03:20:17 +0000 (20:20 -0700)]
isa_parser: Get rid of the now unused ControlBitfieldOperand.
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.
Derek Hower [Mon, 20 Jul 2009 14:41:28 +0000 (09:41 -0500)]
merge