gem5.git
15 years agoARM: Fix up the implmentation of the msr instruction.
Gabe Black [Sun, 15 Nov 2009 03:22:30 +0000 (19:22 -0800)]
ARM: Fix up the implmentation of the msr instruction.

15 years agoARM: Define a mask to differentiate purely CPSR bits from CondCodes bits.
Gabe Black [Sun, 15 Nov 2009 03:22:30 +0000 (19:22 -0800)]
ARM: Define a mask to differentiate purely CPSR bits from CondCodes bits.

15 years agoARM: Add a bitfield to indicate if an immediate should be used.
Gabe Black [Sun, 15 Nov 2009 03:22:30 +0000 (19:22 -0800)]
ARM: Add a bitfield to indicate if an immediate should be used.

15 years agoARM: Write some functions to write to the CPSR and SPSR for instructions.
Gabe Black [Sun, 15 Nov 2009 03:22:30 +0000 (19:22 -0800)]
ARM: Write some functions to write to the CPSR and SPSR for instructions.

15 years agoARM: Fix up the implmentation of the mrs instruction.
Gabe Black [Sun, 15 Nov 2009 03:22:29 +0000 (19:22 -0800)]
ARM: Fix up the implmentation of the mrs instruction.

15 years agoARM: More accurately describe the effects of using the control operands.
Gabe Black [Sun, 15 Nov 2009 03:22:29 +0000 (19:22 -0800)]
ARM: More accurately describe the effects of using the control operands.

15 years agoARM: Hook up the moded versions of the SPSR.
Gabe Black [Sun, 15 Nov 2009 03:22:29 +0000 (19:22 -0800)]
ARM: Hook up the moded versions of the SPSR.

These registers can be accessed directly, or through MISCREG_SPSR which will
act as whichever SPSR is appropriate for the current mode.

15 years agoSE: Fix SE mode OS X compilation.
Ali Saidi [Sat, 14 Nov 2009 17:49:01 +0000 (11:49 -0600)]
SE: Fix SE mode OS X compilation.

15 years agoARM: Move around decoder to properly decode CP15
Ali Saidi [Sat, 14 Nov 2009 17:25:00 +0000 (11:25 -0600)]
ARM: Move around decoder to properly decode CP15

15 years agoX86: add ULL to 1's being shifted in 64-bit values
Vince Weaver [Wed, 11 Nov 2009 22:49:09 +0000 (17:49 -0500)]
X86: add ULL to 1's being shifted in 64-bit values

Some of the micro-ops weren't casting 1 to ULL before shifting,
which can cause problems.  On the perl makerand input this
caused some values to be negative that shouldn't have been.

The casts are done as ULL(1) instead of 1ULL to match others
in the m5 code base.

15 years agoARM: Fix some bugs in the ISA desc and fill out some instructions.
Gabe Black [Wed, 11 Nov 2009 07:44:05 +0000 (23:44 -0800)]
ARM: Fix some bugs in the ISA desc and fill out some instructions.

15 years agoMerge with the head.
Gabe Black [Wed, 11 Nov 2009 05:12:53 +0000 (21:12 -0800)]
Merge with the head.

15 years agoMem: Eliminate the NO_FAULT request flag.
Gabe Black [Wed, 11 Nov 2009 05:10:18 +0000 (21:10 -0800)]
Mem: Eliminate the NO_FAULT request flag.

15 years agoARM: Implement fault classes.
Gabe Black [Wed, 11 Nov 2009 04:34:38 +0000 (20:34 -0800)]
ARM: Implement fault classes.

Implement some fault classes using the curriously recurring template pattern,
similar to SPARCs.

15 years agoARM: Fix the integer register indexes.
Gabe Black [Wed, 11 Nov 2009 04:19:55 +0000 (20:19 -0800)]
ARM: Fix the integer register indexes.

The PC indexes in the various register sets was defined in the section for
unaliased registers which was throwing off the indexing. This moves those
where they belong. Also, to make detecting accesses to the PC easier and
because it's in the same place in all modes, the intRegForceUser function
now passes it through as index 15.

15 years agoX86: Fix bugs in movd implementation.
Vince Weaver [Tue, 10 Nov 2009 16:29:30 +0000 (11:29 -0500)]
X86: Fix bugs in movd implementation.

Unfortunately my implementation of the movd instruction had two bugs.

In one case, when moving a 32-bit value into an xmm register, the
lower half of the xmm register was not zero extended.

The other case is that xmm was used instead of xmmlm as the source
for a register move.  My test case didn't notice this at first
as it moved xmm0 to eax, which both have the same register
number.

15 years agoX86: Remove double-cast in Cvtf2i micro-op
Vince Weaver [Tue, 10 Nov 2009 16:18:23 +0000 (11:18 -0500)]
X86: Remove double-cast in Cvtf2i micro-op

This double cast led to rounding errors which caused
some benchmarks to get the wrong values, most notably lucas
which failed spectacularly due to CVTTSD2SI returning an
off-by-one value.  equake was also broken.

15 years agosyscall: missing initializer in getcwd call
Vince Weaver [Mon, 9 Nov 2009 15:02:55 +0000 (10:02 -0500)]
syscall: missing initializer in getcwd call

This one case was missed during the update to stack-based arguments.
Without this fix, m5 will crash during a gwtcwd call, at least
with X86.

15 years agoX86: Don't panic on faults on prefetches in SE mode.
Gabe Black [Mon, 9 Nov 2009 06:49:58 +0000 (22:49 -0800)]
X86: Don't panic on faults on prefetches in SE mode.

15 years agoX86: Explain what really didn't work with unmapped addresses in SE mode.
Gabe Black [Mon, 9 Nov 2009 06:49:57 +0000 (22:49 -0800)]
X86: Explain what really didn't work with unmapped addresses in SE mode.

15 years agoX86: Make x86 use PREFETCH instead of PF_EXCLUSIVE.
Gabe Black [Mon, 9 Nov 2009 06:49:57 +0000 (22:49 -0800)]
X86: Make x86 use PREFETCH instead of PF_EXCLUSIVE.

15 years agoautomerge
Nathan Binkert [Mon, 9 Nov 2009 04:15:54 +0000 (20:15 -0800)]
automerge

15 years agotests: update statistics for change caused by vsyscall support in x86
Nathan Binkert [Mon, 9 Nov 2009 04:15:23 +0000 (20:15 -0800)]
tests: update statistics for change caused by vsyscall support in x86
Caused by a slight change in memory layout.

15 years agoscons: deal with generated .py files properly
Steve Reinhardt [Mon, 9 Nov 2009 01:35:49 +0000 (17:35 -0800)]
scons: deal with generated .py files properly

15 years agoARM: Support forcing load/store multiple to use user registers.
Gabe Black [Sun, 8 Nov 2009 23:49:03 +0000 (15:49 -0800)]
ARM: Support forcing load/store multiple to use user registers.

15 years agoARM: Simplify the load/store multiple generation code.
Gabe Black [Sun, 8 Nov 2009 23:16:59 +0000 (15:16 -0800)]
ARM: Simplify the load/store multiple generation code.

Specifically, get rid of the big switch statement so more cases can be
handled. Enumerating all the possible settings doesn't scale well. Also do
some minor style clean up.

15 years agocompile: wrap 64bit numbers with ULL() so 32bit compiles work
Nathan Binkert [Sun, 8 Nov 2009 21:31:59 +0000 (13:31 -0800)]
compile: wrap 64bit numbers with ULL() so 32bit compiles work
In the isa_parser, we need to check case statements.

15 years agoARM: Split the condition codes out of the CPSR.
Gabe Black [Sun, 8 Nov 2009 10:08:40 +0000 (02:08 -0800)]
ARM: Split the condition codes out of the CPSR.

This allows those bits to be renamed while allowing the other fields to
control the behavior of the processor.

15 years agoARM: Add in more bits for the mon mode.
Gabe Black [Sun, 8 Nov 2009 10:01:02 +0000 (02:01 -0800)]
ARM: Add in more bits for the mon mode.

15 years agoARM: Get rid of NumInternalProcRegs.
Gabe Black [Sun, 8 Nov 2009 10:00:55 +0000 (02:00 -0800)]
ARM: Get rid of NumInternalProcRegs.

That constant is a carry over from Alpha and doesn't do anything in ARM.

15 years agoARM: Add back in spots for Rhi and Rlo, and use a named constant for LR.
Gabe Black [Sun, 8 Nov 2009 09:59:20 +0000 (01:59 -0800)]
ARM: Add back in spots for Rhi and Rlo, and use a named constant for LR.

15 years agoARM: Get rid of the Raddr operand.
Gabe Black [Sun, 8 Nov 2009 09:57:34 +0000 (01:57 -0800)]
ARM: Get rid of the Raddr operand.

15 years agoARM: Initialize processes in user mode.
Gabe Black [Sun, 8 Nov 2009 08:54:32 +0000 (00:54 -0800)]
ARM: Initialize processes in user mode.

I accidentally left in a change to test using int registers in system mode.
This change reverts that.

15 years agoARM: Implement the shadow registers using register flattening.
Gabe Black [Sun, 8 Nov 2009 08:07:49 +0000 (00:07 -0800)]
ARM: Implement the shadow registers using register flattening.

15 years agoARM: Set up an intregs.hh for ARM.
Gabe Black [Sun, 8 Nov 2009 08:07:35 +0000 (00:07 -0800)]
ARM: Set up an intregs.hh for ARM.

Add constants for all the modes and registers, maps for aliasing, functions
that use the maps and range check, and use a named constant instead of a magic
number for the microcode register.

15 years agoARM: Get rid of some unneeded register indexes.
Gabe Black [Sun, 8 Nov 2009 06:34:33 +0000 (22:34 -0800)]
ARM: Get rid of some unneeded register indexes.

15 years agoX86: Fix problem with movhps instruction
Vince Weaver [Wed, 4 Nov 2009 18:22:15 +0000 (13:22 -0500)]
X86: Fix problem with movhps instruction

This problem is like the one fixed with movhpd a few weeks ago.
A +8 displacement is used to access memory when there should
be none.

This fix is needed for the perlbmk spec2k benchmark to run.

15 years agoslicc: tweak file enumeration for scons
Steve Reinhardt [Thu, 5 Nov 2009 19:11:06 +0000 (11:11 -0800)]
slicc: tweak file enumeration for scons
Right now .cc and .hh files are handled separately, but then
they're just munged together at the end by scons, so it
doesn't buy us anything.  Might as well munge from the start
since we'll eventually be adding generated Python files
to the list too.

15 years agoslicc: whack some of Nate's leftover debug code
Steve Reinhardt [Thu, 5 Nov 2009 19:11:05 +0000 (11:11 -0800)]
slicc: whack some of Nate's leftover debug code

15 years agobuild: fix compile problems pointed out by gcc 4.4
Nathan Binkert [Thu, 5 Nov 2009 00:57:01 +0000 (16:57 -0800)]
build: fix compile problems pointed out by gcc 4.4

15 years agoo3: get rid of unused physmem pointer
Steve Reinhardt [Wed, 4 Nov 2009 22:23:25 +0000 (14:23 -0800)]
o3: get rid of unused physmem pointer

15 years agostats: update memtest-ruby
Steve Reinhardt [Wed, 4 Nov 2009 22:23:24 +0000 (14:23 -0800)]
stats: update memtest-ruby
I don't know if the new stats are right or not, but we've
been too long with a useless regression so I'm just going
to update them.

15 years agoX86: Enable x86_64 vsyscall support
Vince Weaver [Wed, 4 Nov 2009 05:47:12 +0000 (00:47 -0500)]
X86: Enable x86_64 vsyscall support

64-bit vsyscall is different than 32-bit.
There are only two syscalls, time and gettimeofday.
On a real system, there is complicated code that implements these
without entering the kernel.  That would be complicated to implement in m5.
Instead we just place code that calls the regular syscalls (this is how
tools such as valgrind handle this case).

This is needed for the perlbmk spec2k benchmark.

15 years agoX86: Hook up time syscall on X86
Vince Weaver [Wed, 4 Nov 2009 05:19:15 +0000 (00:19 -0500)]
X86: Hook up time syscall on X86

This has been tested and verified that it works.

15 years agoX86: Add support for x86 psrldq and pslldq instructions
Vince Weaver [Fri, 30 Oct 2009 16:49:37 +0000 (12:49 -0400)]
X86: Add support for x86 psrldq and pslldq instructions

These are complicated instructions and the micro-code might be suboptimal.

This has been tested with some small sample programs (attached)

The psrldq instruction is needed by various spec2k programs.

15 years agoX86: Implement movd_Vo_Edp on X86
Vince Weaver [Fri, 30 Oct 2009 19:52:33 +0000 (15:52 -0400)]
X86: Implement movd_Vo_Edp on X86

This patch implements the movd_Vo_Edp series of instructions.

It addresses various concerns by Gabe Black about which file the
instruction belonged in, as well as supporting REX prefixed
instructions properly.

This instruction is needed for some of the spec2k benchmarks, most
notably bzip2.

15 years agoX86: Implement the X86 sse2 haddpd instruction
Vince Weaver [Fri, 30 Oct 2009 18:19:06 +0000 (14:19 -0400)]
X86: Implement the X86 sse2 haddpd instruction

This patch implements the haddpd instruction.

It fixes the problem in the previous version (pointed out by Gabe Black)
where an incorrect result would happen if you issue the instruction
with the same argument twice, i.e. "haddpd %xmm0,%xmm0"

This instruction is used by many spec2k benchmarks.

15 years agoX86: Hookup truncate/ftruncate syscalls on X86
Vince Weaver [Fri, 30 Oct 2009 16:51:13 +0000 (12:51 -0400)]
X86: Hookup truncate/ftruncate syscalls on X86

This patch hooks up the truncate, ftruncate, truncate64 and ftruncate64
system calls on 32-bit and 64-bit X86.

These have been tested on both architectures.

ftruncate/ftruncate64 is needed for the f90 spec2k benchmarks.

15 years agoSysCalls: Implement truncate64 system call
Vince Weaver [Fri, 30 Oct 2009 16:31:55 +0000 (12:31 -0400)]
SysCalls: Implement truncate64 system call

This uses the new stack-based argument infrastructure.

Tested on x86 and x86_64.

15 years agoSyscalls: Fix a warning turned error about an unused variable in m5.fast.
Gabe Black [Sat, 31 Oct 2009 20:20:22 +0000 (13:20 -0700)]
Syscalls: Fix a warning turned error about an unused variable in m5.fast.

15 years agoSyscalls: Make system calls access arguments like a stack, not an array.
Gabe Black [Fri, 30 Oct 2009 07:44:55 +0000 (00:44 -0700)]
Syscalls: Make system calls access arguments like a stack, not an array.

When accessing arguments for a syscall, the position of an argument depends on
the policies of the ISA, how much space preceding arguments took up, and the
"alignment" of the index for this particular argument into the number of
possible storate locations. This change adjusts getSyscallArg to take its
index parameter by reference instead of value and to adjust it to point to the
possible location of the next argument on the stack, basically just after the
current one. This way, the rules for the new argument can be applied locally
without knowing about other arguments since those have already been taken into
account implicitly.

All system calls have also been changed to reflect the new interface. In a
number of cases this made the implementation clearer since it encourages
arguments to be collected in one place in order and then used as necessary
later, as opposed to scattering them throughout the function or using them in
place in long expressions. It also discourages using getSyscallArg over and
over to retrieve the same value when a temporary would do the job.

15 years agolicense: Fix license on network model code
Nathan Binkert [Wed, 28 Oct 2009 18:56:56 +0000 (11:56 -0700)]
license: Fix license on network model code

This mostly was a matter of changing the license owner to Princeton
which is as it should have been.  The code was originally licensed
under the GPL but was relicensed as BSD by Li-Shiuan Peh on July 27,
2009.  This relicensing was in an explicit e-mail to Nathan Binkert,
Brad Beckmann, Mark Hill, David Wood, and Steve Reinhardt.

15 years agoregress: add POWER to regressions
Nathan Binkert [Wed, 28 Oct 2009 18:56:43 +0000 (11:56 -0700)]
regress: add POWER to regressions

15 years agoX86: Replace "DISPLACEMENT" with disp in movhpd.
Gabe Black [Wed, 28 Oct 2009 06:50:25 +0000 (23:50 -0700)]
X86: Replace "DISPLACEMENT" with disp in movhpd.

15 years agoFix problem with the x86 sse movhpd instruction.
Vince Weaver [Tue, 27 Oct 2009 18:11:06 +0000 (14:11 -0400)]
Fix problem with the x86 sse movhpd instruction.

The movhpd instruction was writing to the wrong memory offset.

15 years agoImplement X86 sse2 movdqu and movdqa instructions
Vince Weaver [Wed, 21 Oct 2009 17:40:43 +0000 (13:40 -0400)]
Implement X86 sse2 movdqu and movdqa instructions

The movdqa instruction should enforce 16-byte alignment.
This implementation does not do that.

These instructions are needed for most of x86_64 spec2k to run.

15 years agohook up stat syscall on 64-bit x86_SE
Vince Weaver [Tue, 20 Oct 2009 20:48:00 +0000 (16:48 -0400)]
hook up stat syscall on 64-bit x86_SE

15 years agohook up stat64 syscall on 32-bit X86_SE
Vince Weaver [Tue, 20 Oct 2009 18:44:51 +0000 (14:44 -0400)]
hook up stat64 syscall on 32-bit X86_SE

15 years agoFix stat64 structure on 32-bit X86_SE
Vince Weaver [Tue, 20 Oct 2009 19:15:37 +0000 (15:15 -0400)]
Fix stat64 structure on 32-bit X86_SE

The st_size entry was in the wrong place
 (see linux-2.6.29/arch/x86/include/asm/stat.h )

Also, the packed attribute is needed when compiling on a
64-bit machine, otherwise gcc adds extra padding that
break the layout of the structure.

15 years agotest: Hello world test program for Power
Timothy M. Jones [Tue, 27 Oct 2009 16:24:40 +0000 (09:24 -0700)]
test: Hello world test program for Power
includes reference outputs for the Hello World tests on simple-atomic
and o3-timing.

15 years agoPOWER: Add support for the Power ISA
Timothy M. Jones [Tue, 27 Oct 2009 16:24:39 +0000 (09:24 -0700)]
POWER: Add support for the Power ISA

This adds support for the 32-bit, big endian Power ISA. This supports both
integer and floating point instructions based on the Power ISA Book I v2.06.

15 years agofixed error message generation bug in SLICC ast files
Brad Beckmann [Tue, 27 Oct 2009 00:06:32 +0000 (17:06 -0700)]
fixed error message generation bug in SLICC ast files

15 years agosyscall: Addition of an ioctl command code for Power.
Timothy M. Jones [Sat, 24 Oct 2009 17:53:59 +0000 (10:53 -0700)]
syscall: Addition of an ioctl command code for Power.

15 years agotests: update test for slight change due to the change in brk.
Nathan Binkert [Sat, 24 Oct 2009 17:53:58 +0000 (10:53 -0700)]
tests: update test for slight change due to the change in brk.

15 years agosyscall: Zero out memory that already exists during the brk system call.
Timothy M. Jones [Sat, 24 Oct 2009 17:53:58 +0000 (10:53 -0700)]
syscall: Zero out memory that already exists during the brk system call.

Glibc often assumes that memory it receives from the kernel after a brk
system call will contain only zeros. This is important during a calloc,
because it won't clear the new memory itself. In the simulator, if the
new page exists, it will be cleared using this patch, to mimic the kernel's
functionality.

15 years agosyscall: Fix conversion of the stat64 buffer during system calls.
Timothy M. Jones [Sat, 24 Oct 2009 17:53:58 +0000 (10:53 -0700)]
syscall: Fix conversion of the stat64 buffer during system calls.

15 years agosyscall: Implementation of the ftruncate64 system call.
Timothy M. Jones [Sat, 24 Oct 2009 17:53:58 +0000 (10:53 -0700)]
syscall: Implementation of the ftruncate64 system call.

15 years agosyscall: Implementation of the time system call.
Timothy M. Jones [Sat, 24 Oct 2009 17:53:57 +0000 (10:53 -0700)]
syscall: Implementation of the time system call.

15 years agosyscall: Implementation of the times system call
Timothy M. Jones [Sat, 24 Oct 2009 17:53:57 +0000 (10:53 -0700)]
syscall: Implementation of the times system call

15 years agoEnable getuid and getgid related syscalls on X86_SE
Vince Weaver [Mon, 19 Oct 2009 21:29:34 +0000 (17:29 -0400)]
Enable getuid and getgid related syscalls on X86_SE

I've tested these on x86 and they work as expected.

In theory for 32-bit x86 we should have some sort of special
handling for the legacy 16-bit uid/gid syscalls, but in practice
modern toolchains don't use the 16-bit versions, and m5 sets the uid
and gid values to be less than 16-bits anyway.

This fix is needed for the perl spec2k benchmarks to run.

15 years agoIgnore rt_sigaction() syscalls on x86 and x86_64
Vince Weaver [Fri, 16 Oct 2009 17:54:20 +0000 (13:54 -0400)]
Ignore rt_sigaction() syscalls on x86 and x86_64

This is currently how alpha handles this syscall.

This is needed for the gcc spec2k benchmarks to run.

15 years agomerged with ISA event manager fix
Brad Beckmann [Sun, 18 Oct 2009 18:04:42 +0000 (11:04 -0700)]
merged with ISA event manager fix

15 years agoISA: Fix compilation.
Gabe Black [Sat, 17 Oct 2009 08:13:41 +0000 (01:13 -0700)]
ISA: Fix compilation.

15 years agoremoved libruby file reference from ruby_se.py
Brad Beckmann [Fri, 16 Oct 2009 15:15:53 +0000 (08:15 -0700)]
removed libruby file reference from ruby_se.py

15 years agofixed MC146818 checkpointing bug and added isa serialization calls to simple_thread
Brad Beckmann [Thu, 15 Oct 2009 22:15:24 +0000 (15:15 -0700)]
fixed MC146818 checkpointing bug and added isa serialization calls to simple_thread

15 years agoHook up the munmap() syscall for 32-bit x86.
Vince Weaver [Sun, 11 Oct 2009 05:31:56 +0000 (22:31 -0700)]
Hook up the munmap() syscall for 32-bit x86.

This is straightforward, as munmapFunc() doesn't do anything.
I've tested it with code running munmap() just in case.

15 years agomips: update hello-ruby stats
Korey Sewell [Wed, 7 Oct 2009 00:54:04 +0000 (20:54 -0400)]
mips: update hello-ruby stats

15 years agobus: add assertion to catch illegal retry
Steve Reinhardt [Sun, 4 Oct 2009 01:07:39 +0000 (18:07 -0700)]
bus: add assertion to catch illegal retry
on mem-inhibited transaction.

15 years agoX86: Make successive anonymous mmaps move down in 32 bit SE mode Linux.
Gabe Black [Fri, 2 Oct 2009 08:32:58 +0000 (01:32 -0700)]
X86: Make successive anonymous mmaps move down in 32 bit SE mode Linux.

15 years agoSE mode: Make the direction anonymous mmaps move through memory configurable.
Gabe Black [Fri, 2 Oct 2009 08:32:00 +0000 (01:32 -0700)]
SE mode: Make the direction anonymous mmaps move through memory configurable.

15 years agoinorder-debug: print out workload
Korey Sewell [Thu, 1 Oct 2009 13:35:06 +0000 (09:35 -0400)]
inorder-debug: print out workload

15 years agocommit Soumyaroop's bug catch about max_insts_all_threads
Lisa Hsu [Tue, 29 Sep 2009 22:03:10 +0000 (18:03 -0400)]
commit Soumyaroop's bug catch about max_insts_all_threads

15 years agopython: Fix m5.defines so grabbing flags works correctly
Nathan Binkert [Sat, 26 Sep 2009 19:51:37 +0000 (12:51 -0700)]
python: Fix m5.defines so grabbing flags works correctly

15 years agorundiff: Don't flush stdout until after postcontext is printed.
Steve Reinhardt [Sat, 26 Sep 2009 17:50:50 +0000 (10:50 -0700)]
rundiff: Don't flush stdout until after postcontext is printed.

15 years agoO3: Add flag to control whether faulting instructions are traced.
Steve Reinhardt [Sat, 26 Sep 2009 17:50:50 +0000 (10:50 -0700)]
O3: Add flag to control whether faulting instructions are traced.
When enabled, faulting instructions appear in the trace twice
(once when they fault and again when they're re-executed).
This flag is set by the Exec compound flag for backwards compatibility.

15 years agoMinor cleanup: Use the blockAlign() method where it applies in the cache.
Steve Reinhardt [Sat, 26 Sep 2009 17:50:50 +0000 (10:50 -0700)]
Minor cleanup: Use the blockAlign() method where it applies in the cache.

15 years agoForce prefetches to check cache and MSHRs immediately prior to issue.
Steve Reinhardt [Sat, 26 Sep 2009 17:50:50 +0000 (10:50 -0700)]
Force prefetches to check cache and MSHRs immediately prior to issue.
This prevents redundant prefetches from being issued, solving the
occasional 'needsExclusive && !blk->isWritable()' assertion failure
in cache_impl.hh that several people have run into.
Eliminates "prefetch_cache_check_push" flag, neither setting of
which really solved the problem.

15 years agoO3: Mark fetch stage as active if it faults.
Steve Reinhardt [Sat, 26 Sep 2009 17:50:50 +0000 (10:50 -0700)]
O3: Mark fetch stage as active if it faults.
Otherwise if the rest of the pipeline is idle then
fault will never propagate to commit to be handled,
causing CPU to deadlock.

15 years agoinorder-debug: fix cpu tick debug message
Korey Sewell [Fri, 25 Sep 2009 15:18:55 +0000 (11:18 -0400)]
inorder-debug: fix cpu tick debug message

15 years agomips-stats: update regressions of arguments fix
Korey Sewell [Thu, 24 Sep 2009 16:30:53 +0000 (12:30 -0400)]
mips-stats: update regressions of arguments fix

15 years agoisa_parser: Turn the ISA Parser into a subclass of Grammar.
Nathan Binkert [Thu, 24 Sep 2009 01:28:29 +0000 (18:28 -0700)]
isa_parser: Turn the ISA Parser into a subclass of Grammar.
This is to prepare for future cleanup where we allow SCons to create a
separate grammar class for each ISA

15 years agoply grammar: Fixup Tokenizer class so you can get lexer arguments
Nathan Binkert [Thu, 24 Sep 2009 01:28:29 +0000 (18:28 -0700)]
ply grammar: Fixup Tokenizer class so you can get lexer arguments

15 years agoruby: Disable all debug output by default
Nathan Binkert [Thu, 24 Sep 2009 01:17:11 +0000 (18:17 -0700)]
ruby: Disable all debug output by default

15 years agoarch: nuke arch/isa_specific.hh and move stuff to generated config/the_isa.hh
Nathan Binkert [Wed, 23 Sep 2009 15:34:21 +0000 (08:34 -0700)]
arch: nuke arch/isa_specific.hh and move stuff to generated config/the_isa.hh

15 years agoslicc: Pure python implementation of slicc.
Nathan Binkert [Wed, 23 Sep 2009 01:12:39 +0000 (18:12 -0700)]
slicc: Pure python implementation of slicc.
This is simply a translation of the C++ slicc into python with very minimal
reorganization of the code.  The output can be verified as nearly identical
by doing a "diff -wBur".

Slicc can easily be run manually by using util/slicc

15 years agoparams: small cleanup to param description internals
Nathan Binkert [Tue, 22 Sep 2009 22:24:16 +0000 (15:24 -0700)]
params: small cleanup to param description internals

15 years agoscons: add slicc and ply to sys.path and PYTHONPATH so everyone has access
Nathan Binkert [Tue, 22 Sep 2009 22:24:16 +0000 (15:24 -0700)]
scons: add slicc and ply to sys.path and PYTHONPATH so everyone has access

15 years agopython: Move more code into m5.util allow SCons to use that code.
Nathan Binkert [Tue, 22 Sep 2009 22:24:16 +0000 (15:24 -0700)]
python: Move more code into m5.util allow SCons to use that code.
Get rid of misc.py and just stick misc things in __init__.py
Move utility functions out of SCons files and into m5.util
Move utility type stuff from m5/__init__.py to m5/util/__init__.py
Remove buildEnv from m5 and allow access only from m5.defines
Rename AddToPath to addToPath while we're moving it to m5.util
Rename read_command to readCommand while we're moving it
Rename compare_versions to compareVersions while we're moving it.

--HG--
rename : src/python/m5/convert.py => src/python/m5/util/convert.py
rename : src/python/m5/smartdict.py => src/python/m5/util/smartdict.py

15 years agomultiattrdict: make multilevel nesting work properly
Nathan Binkert [Tue, 22 Sep 2009 22:24:16 +0000 (15:24 -0700)]
multiattrdict: make multilevel nesting work properly

15 years agoattrdict: add pickle support to attrdict
Nathan Binkert [Tue, 22 Sep 2009 22:24:16 +0000 (15:24 -0700)]
attrdict: add pickle support to attrdict