gem5.git
15 years agoProcesses: Make getting and setting system call arguments part of a process object.
Gabe Black [Fri, 27 Feb 2009 17:22:14 +0000 (09:22 -0800)]
Processes: Make getting and setting system call arguments part of a process object.

15 years agoX86: Implement the int system call interface in the decoder.
Gabe Black [Fri, 27 Feb 2009 17:21:58 +0000 (09:21 -0800)]
X86: Implement the int system call interface in the decoder.

15 years agoX86: Distinguish the width of values on the stack between 32 and 64 bit processes.
Gabe Black [Fri, 27 Feb 2009 17:21:36 +0000 (09:21 -0800)]
X86: Distinguish the width of values on the stack between 32 and 64 bit processes.

15 years agoX86: Add a class to support 32 bit x86 linux process.
Gabe Black [Fri, 27 Feb 2009 17:21:14 +0000 (09:21 -0800)]
X86: Add a class to support 32 bit x86 linux process.

15 years agoCPA: Add annotations to IGbE and CopyEngine device models.
Ali Saidi [Fri, 27 Feb 2009 00:29:17 +0000 (19:29 -0500)]
CPA: Add annotations to IGbE and CopyEngine device models.

15 years agoCPA: Add code to automatically record function symbols as CPU executes.
Ali Saidi [Fri, 27 Feb 2009 00:29:17 +0000 (19:29 -0500)]
CPA: Add code to automatically record function symbols as CPU executes.

15 years agoCPA: Add new object for gathering critical path annotations.
Ali Saidi [Fri, 27 Feb 2009 00:29:17 +0000 (19:29 -0500)]
CPA: Add new object for gathering critical path annotations.

15 years agoCPA: Add m5ops for critical path annotation work.
Ali Saidi [Fri, 27 Feb 2009 00:29:16 +0000 (19:29 -0500)]
CPA: Add m5ops for critical path annotation work.

15 years agoTrace: fix the --trace-start option
Ali Saidi [Fri, 27 Feb 2009 00:29:16 +0000 (19:29 -0500)]
Trace: fix the --trace-start option

15 years agoDevices: Make the RTC device reflect the use of BCD in its status registers.
Gabe Black [Wed, 25 Feb 2009 18:22:49 +0000 (10:22 -0800)]
Devices: Make the RTC device reflect the use of BCD in its status registers.

15 years agoX86: Implement IST stack switching.
Gabe Black [Wed, 25 Feb 2009 18:22:43 +0000 (10:22 -0800)]
X86: Implement IST stack switching.

15 years agoCPU: Only look up the nearest symbol in the kernel if you're actually in kernel code.
Gabe Black [Wed, 25 Feb 2009 18:22:36 +0000 (10:22 -0800)]
CPU: Only look up the nearest symbol in the kernel if you're actually in kernel code.

15 years agoISA: Get rid of the get*RegName functions.
Gabe Black [Wed, 25 Feb 2009 18:22:31 +0000 (10:22 -0800)]
ISA: Get rid of the get*RegName functions.

15 years agoSPARC: Get rid of the state keeping track of register frames.
Gabe Black [Wed, 25 Feb 2009 18:22:25 +0000 (10:22 -0800)]
SPARC: Get rid of the state keeping track of register frames.

15 years agoISA: Set up common trace flags for tracing registers.
Gabe Black [Wed, 25 Feb 2009 18:22:17 +0000 (10:22 -0800)]
ISA: Set up common trace flags for tracing registers.

15 years agoISA: Get rid of FlattenIntIndex function.
Gabe Black [Wed, 25 Feb 2009 18:22:09 +0000 (10:22 -0800)]
ISA: Get rid of FlattenIntIndex function.

15 years agoSPARC: Get rid of flattenIndex in the int register file.
Gabe Black [Wed, 25 Feb 2009 18:21:59 +0000 (10:21 -0800)]
SPARC: Get rid of flattenIndex in the int register file.

15 years agoISA: Use the "Stack" traceflag for DPRINTFs about the initial stack frame.
Gabe Black [Wed, 25 Feb 2009 18:21:52 +0000 (10:21 -0800)]
ISA: Use the "Stack" traceflag for DPRINTFs about the initial stack frame.

15 years agoSPARC: Get rid of the setGlobals function.
Gabe Black [Wed, 25 Feb 2009 18:21:46 +0000 (10:21 -0800)]
SPARC: Get rid of the setGlobals function.

15 years agoSPARC: Get rid of the setCWP function.
Gabe Black [Wed, 25 Feb 2009 18:21:40 +0000 (10:21 -0800)]
SPARC: Get rid of the setCWP function.

15 years agoSPARC: Add a traceflag for register windows.
Gabe Black [Wed, 25 Feb 2009 18:21:33 +0000 (10:21 -0800)]
SPARC: Add a traceflag for register windows.

15 years agoX86: Implement the lldt instruction.
Gabe Black [Wed, 25 Feb 2009 18:21:27 +0000 (10:21 -0800)]
X86: Implement the lldt instruction.

15 years agoX86: Add segmentation checks for ldt related descriptors and selectors.
Gabe Black [Wed, 25 Feb 2009 18:21:21 +0000 (10:21 -0800)]
X86: Add segmentation checks for ldt related descriptors and selectors.

15 years agoX86: Make the TSS type check actually return a fault if it fails.
Gabe Black [Wed, 25 Feb 2009 18:21:14 +0000 (10:21 -0800)]
X86: Make the TSS type check actually return a fault if it fails.

15 years agoX86: Make rdcr use merge and the mov to control register instructions use the right...
Gabe Black [Wed, 25 Feb 2009 18:21:08 +0000 (10:21 -0800)]
X86: Make rdcr use merge and the mov to control register instructions use the right operand size.

15 years agoX86: Implement CLTS.
Gabe Black [Wed, 25 Feb 2009 18:21:02 +0000 (10:21 -0800)]
X86: Implement CLTS.

15 years agoX86: Make the segment register reading microops use merge.
Gabe Black [Wed, 25 Feb 2009 18:20:47 +0000 (10:20 -0800)]
X86: Make the segment register reading microops use merge.

15 years agoX86: Implement the mov to debug register intructions.
Gabe Black [Wed, 25 Feb 2009 18:20:42 +0000 (10:20 -0800)]
X86: Implement the mov to debug register intructions.

15 years agoX86: Rename oszForPseudoDesc maxOsz to reflect its more general use.
Gabe Black [Wed, 25 Feb 2009 18:20:30 +0000 (10:20 -0800)]
X86: Rename oszForPseudoDesc maxOsz to reflect its more general use.

15 years agoX86: Add code to interpret debug register values.
Gabe Black [Wed, 25 Feb 2009 18:20:25 +0000 (10:20 -0800)]
X86: Add code to interpret debug register values.

15 years agoX86: Fix a few bugs with the segment register instructions in real mode.
Gabe Black [Wed, 25 Feb 2009 18:20:19 +0000 (10:20 -0800)]
X86: Fix a few bugs with the segment register instructions in real mode.
Fix a few instances where the register form of zext was used where zexti was
intended. Also get rid of the 64 bit only rip relative addressed version since
64 bit and real mode are mutually exclusive.

15 years agoX86: Do a merge for the zero extension microop.
Gabe Black [Wed, 25 Feb 2009 18:20:10 +0000 (10:20 -0800)]
X86: Do a merge for the zero extension microop.

15 years agoX86: Add microops for reading/writing debug registers.
Gabe Black [Wed, 25 Feb 2009 18:20:01 +0000 (10:20 -0800)]
X86: Add microops for reading/writing debug registers.

15 years agoX86: Add classes that break out the bits of the DR6 and DR7 registers.
Gabe Black [Wed, 25 Feb 2009 18:19:54 +0000 (10:19 -0800)]
X86: Add classes that break out the bits of the DR6 and DR7 registers.

15 years agoX86: Check src1 for illegal values since that's the index we actually use.
Gabe Black [Wed, 25 Feb 2009 18:19:47 +0000 (10:19 -0800)]
X86: Check src1 for illegal values since that's the index we actually use.

15 years agoX86: Implement the fence instructions. These are not microcoded.
Gabe Black [Wed, 25 Feb 2009 18:19:41 +0000 (10:19 -0800)]
X86: Implement the fence instructions. These are not microcoded.

15 years agoCPU: Add a flag to identify a read barrier to the static inst class.
Gabe Black [Wed, 25 Feb 2009 18:19:33 +0000 (10:19 -0800)]
CPU: Add a flag to identify a read barrier to the static inst class.

15 years agoX86: Update stats now that prefetch is implemented.
Gabe Black [Wed, 25 Feb 2009 18:19:28 +0000 (10:19 -0800)]
X86: Update stats now that prefetch is implemented.

15 years agoX86: Implement a basic prefetch instruction.
Gabe Black [Wed, 25 Feb 2009 18:19:22 +0000 (10:19 -0800)]
X86: Implement a basic prefetch instruction.

15 years agoX86: Use the right portion of a register for stores.
Gabe Black [Wed, 25 Feb 2009 18:19:14 +0000 (10:19 -0800)]
X86: Use the right portion of a register for stores.

15 years agoX86: Add IRQ4 to the Intel MP tables.
Gabe Black [Wed, 25 Feb 2009 18:19:06 +0000 (10:19 -0800)]
X86: Add IRQ4 to the Intel MP tables.

15 years agoX86: Actually check page protections.
Gabe Black [Wed, 25 Feb 2009 18:18:58 +0000 (10:18 -0800)]
X86: Actually check page protections.

15 years agoX86: Update CS later so stack accesses have the right permission checks.
Gabe Black [Wed, 25 Feb 2009 18:18:51 +0000 (10:18 -0800)]
X86: Update CS later so stack accesses have the right permission checks.

15 years agoCPU: Update stats now that there's no fetch in the middle of macroops.
Gabe Black [Wed, 25 Feb 2009 18:18:45 +0000 (10:18 -0800)]
CPU: Update stats now that there's no fetch in the middle of macroops.

15 years agoCPU: Don't fetch when executing a macroop.
Gabe Black [Wed, 25 Feb 2009 18:18:36 +0000 (10:18 -0800)]
CPU: Don't fetch when executing a macroop.
If the CPL changes mid macroop, the end of the instruction might not be
priveleged enough to execute the beginning.

15 years agoX86: Use atCPL0 for accesses that are part of CPU machinery.
Gabe Black [Wed, 25 Feb 2009 18:18:29 +0000 (10:18 -0800)]
X86: Use atCPL0 for accesses that are part of CPU machinery.

15 years agoX86: Add a flag to force memory accesses to happen at CPL 0.
Gabe Black [Wed, 25 Feb 2009 18:18:22 +0000 (10:18 -0800)]
X86: Add a flag to force memory accesses to happen at CPL 0.

15 years agoX86: Move where CS is set so CPL checks work out.
Gabe Black [Wed, 25 Feb 2009 18:18:16 +0000 (10:18 -0800)]
X86: Move where CS is set so CPL checks work out.

15 years agoX86: Implement inUserMode for x86.
Gabe Black [Wed, 25 Feb 2009 18:18:06 +0000 (10:18 -0800)]
X86: Implement inUserMode for x86.

15 years agoX86: Add a trace flag for tracing faults.
Gabe Black [Wed, 25 Feb 2009 18:17:59 +0000 (10:17 -0800)]
X86: Add a trace flag for tracing faults.

15 years agoX86: Implement the sysret instruction in long mode.
Gabe Black [Wed, 25 Feb 2009 18:17:54 +0000 (10:17 -0800)]
X86: Implement the sysret instruction in long mode.

15 years agoX86: Implement the longmode versions of the syscall instruction.
Gabe Black [Wed, 25 Feb 2009 18:17:49 +0000 (10:17 -0800)]
X86: Implement the longmode versions of the syscall instruction.

15 years agoX86: Make the microcode assembler recognize r8-r15.
Gabe Black [Wed, 25 Feb 2009 18:17:43 +0000 (10:17 -0800)]
X86: Make the microcode assembler recognize r8-r15.

15 years agoX86: Add a wrattr microop.
Gabe Black [Wed, 25 Feb 2009 18:17:38 +0000 (10:17 -0800)]
X86: Add a wrattr microop.

15 years agoX86: Add a trace flag for the page table walker.
Gabe Black [Wed, 25 Feb 2009 18:17:27 +0000 (10:17 -0800)]
X86: Add a trace flag for the page table walker.

15 years agoX86: Make exceptions handle stack switching.
Gabe Black [Wed, 25 Feb 2009 18:17:19 +0000 (10:17 -0800)]
X86: Make exceptions handle stack switching.

15 years agoX86: Implement the LTR instruction.
Gabe Black [Wed, 25 Feb 2009 18:17:14 +0000 (10:17 -0800)]
X86: Implement the LTR instruction.

15 years agoX86: Fix segment limit checking.
Gabe Black [Wed, 25 Feb 2009 18:17:08 +0000 (10:17 -0800)]
X86: Fix segment limit checking.

15 years agoX86: Add a check to chks to verify a task state segment descriptor.
Gabe Black [Wed, 25 Feb 2009 18:17:02 +0000 (10:17 -0800)]
X86: Add a check to chks to verify a task state segment descriptor.

15 years agoX86: Add a check to chks which raises #GP(selector) if selector is NULL or not in...
Gabe Black [Wed, 25 Feb 2009 18:16:54 +0000 (10:16 -0800)]
X86: Add a check to chks which raises #GP(selector) if selector is NULL or not in the GDT.

15 years agoX86: Add makeAtomicResponse to the read/write functions of x86 devices.
Gabe Black [Wed, 25 Feb 2009 18:16:43 +0000 (10:16 -0800)]
X86: Add makeAtomicResponse to the read/write functions of x86 devices.

15 years agoX86: Fix the timing mode of the page table walker.
Gabe Black [Wed, 25 Feb 2009 18:16:34 +0000 (10:16 -0800)]
X86: Fix the timing mode of the page table walker.

15 years agoX86: Update stats for in place TLB miss handling.
Gabe Black [Wed, 25 Feb 2009 18:16:29 +0000 (10:16 -0800)]
X86: Update stats for in place TLB miss handling.

15 years agoX86: Make the X86 TLB take advantage of delayed translations, and get rid of the...
Gabe Black [Wed, 25 Feb 2009 18:16:21 +0000 (10:16 -0800)]
X86: Make the X86 TLB take advantage of delayed translations, and get rid of the fake TLB miss faults.

15 years agoCPU: Implement translateTiming which defers to translateAtomic, and convert the timin...
Gabe Black [Wed, 25 Feb 2009 18:16:15 +0000 (10:16 -0800)]
CPU: Implement translateTiming which defers to translateAtomic, and convert the timing simple CPU to use it.

15 years agoSPARC: Adjust a few instructions to not write registers in initiateAcc.
Gabe Black [Wed, 25 Feb 2009 18:16:04 +0000 (10:16 -0800)]
SPARC: Adjust a few instructions to not write registers in initiateAcc.

15 years agoX86: Make the stupd microop not update registers in initiateAcc.
Gabe Black [Wed, 25 Feb 2009 18:15:56 +0000 (10:15 -0800)]
X86: Make the stupd microop not update registers in initiateAcc.

15 years agoISA: Replace the translate functions in the TLBs with translateAtomic.
Gabe Black [Wed, 25 Feb 2009 18:15:44 +0000 (10:15 -0800)]
ISA: Replace the translate functions in the TLBs with translateAtomic.

15 years agoCPU: Get rid of translate... functions from various interface classes.
Gabe Black [Wed, 25 Feb 2009 18:15:34 +0000 (10:15 -0800)]
CPU: Get rid of translate... functions from various interface classes.

15 years agostats: reorganize how parameters are stored and accessed.
Nathan Binkert [Mon, 23 Feb 2009 20:22:19 +0000 (12:22 -0800)]
stats: reorganize how parameters are stored and accessed.

15 years agostats: move the limits stuff into the types.hh file
Nathan Binkert [Mon, 23 Feb 2009 20:22:18 +0000 (12:22 -0800)]
stats: move the limits stuff into the types.hh file

15 years agostats: get rid of the convoluted 'database' code.
Nathan Binkert [Mon, 23 Feb 2009 20:22:17 +0000 (12:22 -0800)]
stats: get rid of the convoluted 'database' code.
Just use the stuff directly and things ought to be more clear

15 years agostats: Try to make the names of things more intuitive.
Nathan Binkert [Mon, 23 Feb 2009 20:22:15 +0000 (12:22 -0800)]
stats: Try to make the names of things more intuitive.
Basically, this means renaming several things called data to info, which
is information about the statistics.  Things that are named data now are
actual data stored for the statistic.

15 years agostats: clean up the statistics unittest
Nathan Binkert [Mon, 23 Feb 2009 20:04:52 +0000 (12:04 -0800)]
stats: clean up the statistics unittest

15 years agostats: fix text printout for distributions
Nathan Binkert [Mon, 23 Feb 2009 20:04:50 +0000 (12:04 -0800)]
stats: fix text printout for distributions

15 years agostats: cleanup static stats to make startup work.
Nathan Binkert [Mon, 23 Feb 2009 20:03:06 +0000 (12:03 -0800)]
stats: cleanup static stats to make startup work.
This is mainly to allow the unit test to run without requiring the standard
M5 stats from being initialized (e.g. sim_seconds, sim_ticks, host_seconds)

15 years agodebug: Move debug_break into src/base
Nathan Binkert [Mon, 23 Feb 2009 19:48:40 +0000 (11:48 -0800)]
debug: Move debug_break into src/base

15 years agoX86: Pass whether an access was a read/write/fetch so faults can behave accordingly.
Gabe Black [Mon, 23 Feb 2009 08:20:34 +0000 (00:20 -0800)]
X86: Pass whether an access was a read/write/fetch so faults can behave accordingly.

15 years agoRemove unnecessary building of FreeList/RenameMap in InOrder. Clean-up comments and...
Korey Sewell [Fri, 20 Feb 2009 16:02:48 +0000 (11:02 -0500)]
Remove unnecessary building of FreeList/RenameMap in InOrder. Clean-up comments and O3 extensions InOrder Thread Context

15 years agoevents: Make trace events happen at the right priority.
Nathan Binkert [Wed, 18 Feb 2009 18:00:15 +0000 (10:00 -0800)]
events: Make trace events happen at the right priority.
Also, while we're at it, remember that priorities are in the Event class
and add a disable method to disable tracing.

15 years agoMake etherdump timestamps zero-based.
Steve Reinhardt [Wed, 18 Feb 2009 03:24:46 +0000 (19:24 -0800)]
Make etherdump timestamps zero-based.
We previously used the actual wall time for the base timestamps,
making etherdumps non-deterministic.  This fixes that problem and
gets rid of the "malformed packet" at the front that we needed to
provide the right base timestamp to wireshark/tcpdump.

15 years agosycalls: implement mremap() and add DATA flag for getrlimit(). mremap has been tested...
Lisa Hsu [Mon, 16 Feb 2009 22:47:39 +0000 (17:47 -0500)]
sycalls: implement mremap() and add DATA flag for getrlimit(). mremap has been tested on Alpha, compiles for the rest but not tested. I don't see why it wouldn't work though.

15 years agoUpdate stats for new prefetching fixes.
Steve Reinhardt [Mon, 16 Feb 2009 17:09:45 +0000 (12:09 -0500)]
Update stats for new prefetching fixes.
Prefetching is not enabled in any of our regressions, so no significant
stat values have changed, but zero-valued prefetch stats no longer
show up when prefetching is disabled so there are noticable changes
in the reference stat files anyway.

15 years agoFixes to get prefetching working again.
Steve Reinhardt [Mon, 16 Feb 2009 16:56:40 +0000 (08:56 -0800)]
Fixes to get prefetching working again.
Apparently we broke it with the cache rewrite and never noticed.
Thanks to Bao Yungang <baoyungang@gmail.com> for a significant part
of these changes (and for inspiring me to work on the rest).
Some other overdue cleanup on the prefetch code too.

15 years agoX86: Make the loader recognize 32 bit x86 processes.
Gabe Black [Mon, 16 Feb 2009 07:43:39 +0000 (23:43 -0800)]
X86: Make the loader recognize 32 bit x86 processes.

15 years agotraceflags: fix --trace-help
Nathan Binkert [Mon, 16 Feb 2009 04:39:12 +0000 (20:39 -0800)]
traceflags: fix --trace-help

15 years agoSCons: Fix read_command so it can properly deal with command strings
Nathan Binkert [Mon, 16 Feb 2009 04:38:49 +0000 (20:38 -0800)]
SCons: Fix read_command so it can properly deal with command strings

15 years agoscons: clean up the main SConstruct file more.
Nathan Binkert [Thu, 12 Feb 2009 00:58:51 +0000 (16:58 -0800)]
scons: clean up the main SConstruct file more.
Add some features to read_command so it works a little bit better
Clean up the mercurial checks.
Filter the user environment and only pick out the useful stuff.

15 years agostyle
Nathan Binkert [Wed, 11 Feb 2009 06:19:27 +0000 (22:19 -0800)]
style

15 years agoConfigs: Add support for the InOrder CPU model
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
Configs: Add support for the InOrder CPU model

15 years agoInOrder: Import new inorder CPU model from MIPS.
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
InOrder: Import new inorder CPU model from MIPS.
This model currently only works in MIPS_SE mode, so it will take some effort
to clean it up and make it generally useful. Hopefully people are willing to
help make that happen!

15 years agosyscall: Expose ioctl for MIPS
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
syscall: Expose ioctl for MIPS

15 years agoExeTrace: Allow subclasses of the tracer to define their own prefix to dump
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
ExeTrace: Allow subclasses of the tracer to define their own prefix to dump

15 years agoCPU: Prepare CPU models for the new in-order CPU model.
Korey Sewell [Tue, 10 Feb 2009 23:49:29 +0000 (15:49 -0800)]
CPU: Prepare CPU models for the new in-order CPU model.
Some new functions and forward declarations are necessary to make things work

15 years agocopyright: This file need not have had the more restrictive copyright.
Nathan Binkert [Tue, 10 Feb 2009 04:10:15 +0000 (20:10 -0800)]
copyright: This file need not have had the more restrictive copyright.

15 years agoscons: Require SCons version 0.98.1
Nathan Binkert [Tue, 10 Feb 2009 04:10:14 +0000 (20:10 -0800)]
scons: Require SCons version 0.98.1
This allows me to clean things up so we are up to date with respect to
deprecated features.  There are many features scheduled for permanent failure
in scons 2.0 and 0.98.1 provides the most compatability for that.  It
also paves the way for some nice new features that I will add soon

15 years agoscons: Don't build the intermediate static library unless explicitly requested.
Nathan Binkert [Tue, 10 Feb 2009 04:10:12 +0000 (20:10 -0800)]
scons: Don't build the intermediate static library unless explicitly requested.
This means that similar to libm5_fast.so, you need to explicitly build
build/ALPHA_SE/libm5_fast.a if you want it.

15 years agoQuell g++ 4.3 warning about operator ambiguity
Nathan Binkert [Sat, 7 Feb 2009 04:55:50 +0000 (20:55 -0800)]
Quell g++ 4.3 warning about operator ambiguity

15 years agosome new files are missing copyright notices
Nathan Binkert [Thu, 5 Feb 2009 00:26:15 +0000 (16:26 -0800)]
some new files are missing copyright notices

15 years agoX86: Add some missing default arguments.
Gabe Black [Mon, 2 Feb 2009 06:40:51 +0000 (22:40 -0800)]
X86: Add some missing default arguments.