Gabe Black [Sun, 19 Apr 2009 10:42:41 +0000 (03:42 -0700)]
X86: Implement far jmp.
Gabe Black [Sun, 19 Apr 2009 10:41:10 +0000 (03:41 -0700)]
X86: Some segment selectors can be used when "NULL".
Gabe Black [Sun, 19 Apr 2009 10:40:08 +0000 (03:40 -0700)]
X86: Fix a bug in the chks microop where it ignored that it found a fault.
Gabe Black [Sun, 19 Apr 2009 10:36:57 +0000 (03:36 -0700)]
X86: Make the interrupt entering microcode record the value to use, not actually use it.
Gabe Black [Sun, 19 Apr 2009 10:24:51 +0000 (03:24 -0700)]
X86: LEA calculates an address before segmentation.
Gabe Black [Sun, 19 Apr 2009 10:22:38 +0000 (03:22 -0700)]
X86: Implement the save machine status word instruction (SMSW).
Gabe Black [Sun, 19 Apr 2009 10:17:14 +0000 (03:17 -0700)]
X86: Implement the load machine status word instruction (LMSW).
Gabe Black [Sun, 19 Apr 2009 10:14:33 +0000 (03:14 -0700)]
X86: Update the stats for the fix for CPUID.
Gabe Black [Sun, 19 Apr 2009 10:11:24 +0000 (03:11 -0700)]
X86: Only use %eax to select a function and look like we support sse2.
Gabe Black [Sun, 19 Apr 2009 10:08:40 +0000 (03:08 -0700)]
X86: Fix the mov to segment selector in real mode instruction microcode.
Gabe Black [Sun, 19 Apr 2009 10:01:46 +0000 (03:01 -0700)]
X86: The startup IPI delivery mode is not reserved.
Gabe Black [Sun, 19 Apr 2009 09:56:03 +0000 (02:56 -0700)]
X86: Implement the STARTUP IPI.
Gabe Black [Sun, 19 Apr 2009 09:53:00 +0000 (02:53 -0700)]
X86: Implement the INIT IPI.
Gabe Black [Sun, 19 Apr 2009 09:51:09 +0000 (02:51 -0700)]
X86: Fix the halt microop.
Gabe Black [Sun, 19 Apr 2009 09:43:22 +0000 (02:43 -0700)]
X86: Start implementing the interrupt command register in the local APIC.
Gabe Black [Sun, 19 Apr 2009 09:42:19 +0000 (02:42 -0700)]
X86: Make code that sends an interrupt from the IO APIC available for IPIs.
Gabe Black [Sun, 19 Apr 2009 09:39:19 +0000 (02:39 -0700)]
X86: Automatically make the IO APIC in an N CPU system have id N+1.
Gabe Black [Sun, 19 Apr 2009 09:23:29 +0000 (02:23 -0700)]
CPU: If the simple CPU is already idle, just return from suspendContext, don't assert.
Gabe Black [Sun, 19 Apr 2009 09:20:57 +0000 (02:20 -0700)]
X86: Condense the startupCPU code.
Gabe Black [Sun, 19 Apr 2009 09:16:49 +0000 (02:16 -0700)]
X86: Set the local APIC ID to something meaningful.
Gabe Black [Sun, 19 Apr 2009 09:06:51 +0000 (02:06 -0700)]
X86: Don't pretend to be an AMD CPU any more. We're not good enough at it.
Korey Sewell [Sat, 18 Apr 2009 14:42:29 +0000 (10:42 -0400)]
o3-mips-regress: add hello word regression.
Korey Sewell [Sat, 18 Apr 2009 14:42:29 +0000 (10:42 -0400)]
mips-tlb-fix: check for alignment faults.\nMIPS was never updated to use TLBS correcty in SE mode. The error was forwarding translations directly to pageTable. The TLB should check for alignment faults at bare minimum here but in the long run we should be using TLBs in SE mode for MIPS.
Korey Sewell [Sat, 18 Apr 2009 14:42:29 +0000 (10:42 -0400)]
mips-syscall: mark with correct flag. \nMIPS was using wrong serialization flag on syscall instructions allowing O3 to handle SE mode syscalls incorrectly and speculate on instructions after a syscall
Korey Sewell [Sat, 18 Apr 2009 14:42:29 +0000 (10:42 -0400)]
o3-delay-slot-bpred: fix decode stage handling of uncdtl. branches.\n decode stage was not setting the predicted PC correctly or passing that information back to fetch correctly
Korey Sewell [Sat, 18 Apr 2009 14:42:28 +0000 (10:42 -0400)]
mips-shadowsets: fix calcuations. \n Remove Shadowsets from Int & Arch. Reg Calculations
Steve Reinhardt [Fri, 17 Apr 2009 23:54:58 +0000 (16:54 -0700)]
o3, inorder: fix FS bug due to initializing ThreadState to Halted.
For some reason o3 FS init() only called initCPU if the thread state
was Suspended, which was no longer the case. There's no apparent
reason to check, so I whacked the test completely rather than
changing the check to Halted.
The inorder init() was also updated to be symmetric, though the
previous code was just a fancy no-op.
Steve Reinhardt [Thu, 16 Apr 2009 06:12:00 +0000 (23:12 -0700)]
o3: handle fetch with no active threads correctly.
This situation can arise now on the first fetch cycle after
the last active thread is halted. It seems easy enough to
deal with when it happens rather than trying to avoid it.
Steve Reinhardt [Thu, 16 Apr 2009 06:10:43 +0000 (23:10 -0700)]
o3: fix {read,set}ArchFloatReg* functions.
Register indices were not being calculated properly.
Steve Reinhardt [Wed, 15 Apr 2009 20:18:24 +0000 (13:18 -0700)]
ThreadState: initialize status to Halted in constructor.
This provides a common initial status for all threads independent
of CPU model (unlike the prior situation where CPUs initialized
threads to inconsistent states).
This mostly matters for SE mode; in FS mode, ISA-specific startupCPU()
methods generally handle boot-time initialization of thread contexts
(since the right thing to do is ISA-dependent).
Steve Reinhardt [Wed, 15 Apr 2009 20:13:58 +0000 (13:13 -0700)]
Update stats after elimination of Unallocated state.
Somehow ending threads with halt() instead of deallocate()
reduces the squash count on o3 by 1 (and a few other
similarly trivial changes).
Steve Reinhardt [Wed, 15 Apr 2009 20:13:47 +0000 (13:13 -0700)]
Get rid of the Unallocated thread context state.
Basically merge it in with Halted.
Also had to get rid of a few other functions that
called ThreadContext::deallocate(), including:
- InOrderCPU's setThreadRescheduleCondition.
- ThreadContext::exit(). This function was there to avoid terminating
simulation when one thread out of a multi-thread workload exits, but we
need to find a better (non-cpu-centric) way.
Steve Reinhardt [Wed, 15 Apr 2009 19:52:31 +0000 (12:52 -0700)]
configs: Allow M5_CPU2000 env var to set CPU2K binary path.
It would be nice to have a more comprehensive mechanism
but this is a big improvement over manually editing the script.
Gabe Black [Mon, 13 Apr 2009 11:14:15 +0000 (04:14 -0700)]
X86: Fix minor bug in the page table walker from TLB shuffling.
Nathan Binkert [Thu, 9 Apr 2009 05:22:50 +0000 (22:22 -0700)]
stats: disallow duplicate statistic names.
Nathan Binkert [Thu, 9 Apr 2009 05:22:49 +0000 (22:22 -0700)]
alpha: get rid of all turbolaser remnants
Nathan Binkert [Thu, 9 Apr 2009 05:21:30 +0000 (22:21 -0700)]
tests: update tests for TLB unification
Nathan Binkert [Thu, 9 Apr 2009 05:21:27 +0000 (22:21 -0700)]
tlb: More fixing of unified TLB
Gabe Black [Thu, 9 Apr 2009 05:21:27 +0000 (22:21 -0700)]
tlb: Don't separate the TLB classes into an instruction TLB and a data TLB
Nathan Binkert [Thu, 9 Apr 2009 05:21:25 +0000 (22:21 -0700)]
style: fix style hook for some newer versions of mercurial.
Gabe Black [Mon, 6 Apr 2009 17:19:36 +0000 (10:19 -0700)]
Merge ARM into the head. ARM will compile but may not actually work.
Stephen Hines [Mon, 6 Apr 2009 01:53:15 +0000 (18:53 -0700)]
arm: add ARM support to M5
Ali Saidi [Thu, 26 Mar 2009 00:06:54 +0000 (20:06 -0400)]
CPA: Fix a typo that managed to sneak in.
Nathan Binkert [Tue, 17 Mar 2009 19:49:03 +0000 (12:49 -0700)]
includes: add ext to the includes path.
move dnet to the correct place so that we use this
--HG--
rename : ext/dnet/dnet/addr.h => ext/dnet/addr.h
rename : ext/dnet/dnet/arp.h => ext/dnet/arp.h
rename : ext/dnet/dnet/blob.h => ext/dnet/blob.h
rename : ext/dnet/dnet/eth.h => ext/dnet/eth.h
rename : ext/dnet/dnet/fw.h => ext/dnet/fw.h
rename : ext/dnet/dnet/icmp.h => ext/dnet/icmp.h
rename : ext/dnet/dnet/intf.h => ext/dnet/intf.h
rename : ext/dnet/dnet/ip.h => ext/dnet/ip.h
rename : ext/dnet/dnet/ip6.h => ext/dnet/ip6.h
rename : ext/dnet/dnet/os.h => ext/dnet/os.h
rename : ext/dnet/dnet/rand.h => ext/dnet/rand.h
rename : ext/dnet/dnet/route.h => ext/dnet/route.h
rename : ext/dnet/dnet/tcp.h => ext/dnet/tcp.h
rename : ext/dnet/dnet/udp.h => ext/dnet/udp.h
Nathan Binkert [Tue, 17 Mar 2009 19:45:41 +0000 (12:45 -0700)]
ply: put the absolute path to ply in the environment, not a relative one
Nathan Binkert [Mon, 16 Mar 2009 22:16:58 +0000 (15:16 -0700)]
stats: fix compiler error
Steve Reinhardt [Mon, 16 Mar 2009 15:01:23 +0000 (11:01 -0400)]
Very minor regression stats updates due top previous changeset.
Setting dirty bit on swaps added a handful of writebacks in a
few of the longer-running SPARC_SE benchmarks.
Steve Reinhardt [Thu, 12 Mar 2009 06:05:26 +0000 (23:05 -0700)]
cache: set dirty bit on swaps (oops!)
Steve Reinhardt [Thu, 12 Mar 2009 06:05:24 +0000 (23:05 -0700)]
cpu: fix minor endian issue with trace output
(no functional change)
Steve Reinhardt [Wed, 11 Mar 2009 17:54:42 +0000 (10:54 -0700)]
tests: use env.Execute instead of Execute to pick up env vars.
Steve Reinhardt [Wed, 11 Mar 2009 00:37:15 +0000 (17:37 -0700)]
prefetch: don't panic on requests w/o contextID (e.g., writebacks).
Nathan Binkert [Sun, 8 Mar 2009 05:34:50 +0000 (21:34 -0800)]
build: fix compiler warnings in g++ 3.4
Steve Reinhardt [Sun, 8 Mar 2009 01:24:13 +0000 (17:24 -0800)]
Minor tweak to regression exit status message.
Steve Reinhardt [Sun, 8 Mar 2009 00:58:51 +0000 (16:58 -0800)]
Fix up regression execution to better handle tests that end abnormally.
E.g., mark aborts due to assertion failures as failed tests,
but those that get killed by the user as needing to be rerun, etc.
Nathan Binkert [Sat, 7 Mar 2009 22:30:55 +0000 (14:30 -0800)]
tests: update tests because of changes in stat names and in the stats package
Nathan Binkert [Sat, 7 Mar 2009 22:30:54 +0000 (14:30 -0800)]
stats: fix duplicate statistics names.
This generally requires providing a more meaningful name() function for a
class.
Nathan Binkert [Sat, 7 Mar 2009 22:30:53 +0000 (14:30 -0800)]
stats: cleanup text output stuff and fix mysql output
Nathan Binkert [Sat, 7 Mar 2009 22:30:52 +0000 (14:30 -0800)]
scons: fix the library path stuff
Nathan Binkert [Sat, 7 Mar 2009 22:30:52 +0000 (14:30 -0800)]
build: fix errors for compilers other than g++ 4.3
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
stats: create an enable phase, and a prepare phase.
Enable more or less takes the place of check, but also allows stats to
do some other configuration. Prepare moves all of the code that readies
a stat for dumping into a separate function in preparation for supporting
serialization of certain pieces of statistics data.
While we're at it, clean up the visitor code and some of the python code.
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
stats: clean up how templates are used on the data side.
This basically works by taking advantage of the curiously recurring template
pattern in an intelligent way so as to reduce the number of lines of code
and hopefully make things a little bit clearer.
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
stats: Fix all stats usages to deal with template fixes
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
stats: remove the template wart left over from the ancient binning stuff
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
stats: stick the distribution's fancy parameter into the parameters structure.
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
stats: Add a wrapper class for the information side of things.
This provides an easy way to provide the callbacks into the data side
of things from the info side of things. Rename Wrap to DataWrap so it
is more easily distinguishable from InfoWrap
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
stats: better naming of template parameters for the wrapper stuff
Parent and Child are bad names. Derived and Base are better.
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
stats: get rid of meaningless uses of virtual
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
stats: miscellaneous cleanup
Nathan Binkert [Fri, 6 Mar 2009 03:09:53 +0000 (19:09 -0800)]
serialize: Allow floats and doubles to be serialized
Steve Reinhardt [Fri, 6 Mar 2009 01:15:31 +0000 (17:15 -0800)]
Get rid of 'using namespace' declarations in headers.
Ali Saidi [Thu, 5 Mar 2009 22:05:06 +0000 (17:05 -0500)]
SCons: Fix bug with .hg dir not existing.
Korey Sewell [Thu, 5 Mar 2009 03:37:45 +0000 (22:37 -0500)]
InOrderCPU: Clean up Constructors to initialize variables correctly (i.e. in a way for the compiler to play *nice*)
Korey Sewell [Wed, 4 Mar 2009 18:17:09 +0000 (13:17 -0500)]
Give each resource in InOrder it's own TraceFlag instead of just standard 'Resource' flag
Korey Sewell [Wed, 4 Mar 2009 18:17:08 +0000 (13:17 -0500)]
Remove unused functions/comments cluttering up the code.
Korey Sewell [Wed, 4 Mar 2009 18:17:07 +0000 (13:17 -0500)]
make handling of interstage buffers (i.e. StageQueues) more consistent: (1)number from 0-n, not 1-n+1, (2) always check nextStageValid before a stageNum+1 and prevStageValid for a stageNum-1 reference (3) add skidSize() to get StageQueue size for all threads
Korey Sewell [Wed, 4 Mar 2009 18:17:05 +0000 (13:17 -0500)]
InOrder didnt have all it's params set to a default value, which is now required for M5 objects; Also, a # of values need to be reset to 0 (or the appropriate value) before we assume they are OK for use.
Korey Sewell [Wed, 4 Mar 2009 18:16:49 +0000 (13:16 -0500)]
Give TimeBuffer an ID that can be set. Necessary because InOrder uses generic stages so w/o an ID there is no way to differentiate buffers when debugging
Korey Sewell [Wed, 4 Mar 2009 18:16:48 +0000 (13:16 -0500)]
use numCycles instead of simTicks to determine CPI stat in InOrder
Steve Reinhardt [Wed, 4 Mar 2009 14:25:53 +0000 (09:25 -0500)]
O3: Make numThreads error message more helpful.
Steve Reinhardt [Sun, 1 Mar 2009 01:14:22 +0000 (20:14 -0500)]
Fix Num_Syscall_Descs check bug in non-x86 ISAs.
(See cset
d35d2b28df38 for x86 fix.)
Nathan Binkert [Sat, 28 Feb 2009 01:29:58 +0000 (17:29 -0800)]
quell gcc 4.3 warning
Gabe Black [Fri, 27 Feb 2009 17:26:41 +0000 (09:26 -0800)]
X86: Install the exit system call.
Gabe Black [Fri, 27 Feb 2009 17:26:32 +0000 (09:26 -0800)]
X86: Install the 32 bit write system call.
Gabe Black [Fri, 27 Feb 2009 17:26:26 +0000 (09:26 -0800)]
X86: Implement shrd.
Gabe Black [Fri, 27 Feb 2009 17:26:17 +0000 (09:26 -0800)]
X86: Add a structure to allow mapping between the host and guest fstat formats.
Gabe Black [Fri, 27 Feb 2009 17:26:09 +0000 (09:26 -0800)]
X86: Don't treat the REX prefixes as prefixes in 32 bit modes. These are inc/dec instructions.
Gabe Black [Fri, 27 Feb 2009 17:26:01 +0000 (09:26 -0800)]
X86: Set address size to 64 bits when generating addresses internally.
Gabe Black [Fri, 27 Feb 2009 17:25:51 +0000 (09:25 -0800)]
X86: Add a vsyscall page for 32 bit processes to use.
Gabe Black [Fri, 27 Feb 2009 17:25:43 +0000 (09:25 -0800)]
X86: Implement sysenter as a system call interface.
Gabe Black [Fri, 27 Feb 2009 17:25:33 +0000 (09:25 -0800)]
X86: Add a 32 bit mmap2 system call.
Gabe Black [Fri, 27 Feb 2009 17:25:26 +0000 (09:25 -0800)]
X86: Install a 32 bit fstat64 system call.
Gabe Black [Fri, 27 Feb 2009 17:25:16 +0000 (09:25 -0800)]
X86: Take address size into account when computing an effective address.
Gabe Black [Fri, 27 Feb 2009 17:25:02 +0000 (09:25 -0800)]
X86: Make instructions that use intseg preserve all 8 bytes of their addresses.
Gabe Black [Fri, 27 Feb 2009 17:24:10 +0000 (09:24 -0800)]
X86: Fix a decoder bug and add in some missing instructions.
Gabe Black [Fri, 27 Feb 2009 17:23:58 +0000 (09:23 -0800)]
X86: Respect segment override prefixes even when there's no ModRM byte.
Gabe Black [Fri, 27 Feb 2009 17:23:50 +0000 (09:23 -0800)]
X86: Fix segment limit checks.
Gabe Black [Fri, 27 Feb 2009 17:23:42 +0000 (09:23 -0800)]
X86: Implement the 32 bit set_thread_area system call.
Gabe Black [Fri, 27 Feb 2009 17:23:27 +0000 (09:23 -0800)]
X86: Set an initial value for the LDT selector.
Gabe Black [Fri, 27 Feb 2009 17:23:17 +0000 (09:23 -0800)]
X86: Set up a space for a GDT in SE so we can set up TLS or LDT segments.
Gabe Black [Fri, 27 Feb 2009 17:23:00 +0000 (09:23 -0800)]
X86: Compute shift instruction flags correctly.