gem5.git
15 years agoruby: assert(false) should be panic.
Nathan Binkert [Mon, 11 May 2009 23:32:32 +0000 (16:32 -0700)]
ruby: assert(false) should be panic.
This also fixes some compiler warnings

15 years agostats: remove a few compat leftovers
Nathan Binkert [Mon, 11 May 2009 18:18:09 +0000 (11:18 -0700)]
stats: remove a few compat leftovers

15 years agopython: pull out common code from main that processes arguments
Nathan Binkert [Mon, 11 May 2009 18:18:09 +0000 (11:18 -0700)]
python: pull out common code from main that processes arguments

15 years agostats: forgot an include for the mysql stuff
Nathan Binkert [Mon, 11 May 2009 18:18:09 +0000 (11:18 -0700)]
stats: forgot an include for the mysql stuff

15 years agoscons: add include guards to info.hh
Nathan Binkert [Mon, 11 May 2009 18:18:09 +0000 (11:18 -0700)]
scons: add include guards to info.hh

15 years agoruby: add RUBY sticky option that must be set to add ruby to the build
Nathan Binkert [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: add RUBY sticky option that must be set to add ruby to the build
Default is false

15 years agoruby: Initial references for ruby regressions
Steve Reinhardt [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Initial references for ruby regressions

15 years agoruby: Set up Ruby regression tests.
Steve Reinhardt [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Set up Ruby regression tests.

15 years agoruby: Working M5 interface and updated Ruby interface.
Daniel Sanchez [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Working M5 interface and updated Ruby interface.
This changeset also includes a lot of work from Derek Hower <drh5@cs.wisc.edu>

RubyMemory is now both a driver for Ruby and a port for M5.  Changed
makeRequest/hitCallback interface. Brought packets (superficially)
into the sequencer. Modified tester infrastructure to be packet based.
and Ruby can be used together through the example ruby_se.py
script. SPARC parallel applications work, and the timing *seems* right
from combined M5/Ruby debug traces. To run,
% build/ALPHA_SE/m5.debug configs/example/ruby_se.py -c
  tests/test-progs/hello/bin/alpha/linux/hello -n 4 -t

15 years agoruby: Check stderr and not stdin before hanging on an assert.
Steve Reinhardt [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Check stderr and not stdin before hanging on an assert.

15 years agoruby: decommission code
Polina Dudnik [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: decommission code

1. Set.* and BigSet.* are replaced with OptBigSet.* which was renamed Set.*
2. Decomissioned all bloom filters
3. Decomissioned ruby/simics directory

15 years agoruby: removed dead functions from the sequencer
Derek Hower [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: removed dead functions from the sequencer

15 years agoruby: Removed g_SIMULATING flag
Polina Dudnik [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Removed g_SIMULATING flag
1. removed checks from tester files
2. removed else clause in Sequencer and DirectoryMemory else clause is
needed by the tester, it is up to Derek to revive it elsewhere when he
gets to it

Also:
1. Changed m_entries in DirectoryMemory to a map
2. And replaced SIMICS_read_physical_memory with a call to now-dummy
Derek's-to-be readPhysMem function

15 years agoruby: Remove transactional access types (e.g. LD_XACT) from CacheRequestType
Polina Dudnik [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Remove transactional access types (e.g. LD_XACT) from CacheRequestType

1. Modified enumeration
2. Also modified profiler
3. Remove transactions from Tester
4. Edited XACT_MEM out of Synthetic Driver

15 years agoruby: reordered Debug and RubyConfig::init to fix segfault
Polina Dudnik [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: reordered Debug and RubyConfig::init to fix segfault
due to uninitialized output file pointer.

15 years agoruby: Disabled RubyEventQueue's deletion of its home-grown priority heap.
Dan Gibson [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Disabled RubyEventQueue's deletion of its home-grown priority heap.
Temporarily to fix unusual memory problem.

15 years agoruby: Migrate all of ruby and slicc to SCons.
Nathan Binkert [Mon, 11 May 2009 17:38:46 +0000 (10:38 -0700)]
ruby: Migrate all of ruby and slicc to SCons.
Add the PROTOCOL sticky option sets the coherence protocol that slicc
will parse and therefore ruby will use.  This whole process was made
difficult by the fact that the set of files that are output by slicc
are not easily known ahead of time.  The easiest thing wound up being
to write a parser for slicc that would tell me.  Incidentally this
means we now have a slicc grammar written in python.

15 years agoruby: clean up a few warnings
Nathan Binkert [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: clean up a few warnings

15 years agoruby: Fixed some unresolved references.
Dan Gibson [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: Fixed some unresolved references.

15 years agoruby: Make ruby #includes use full paths to the files they're including.
Nathan Binkert [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: Make ruby #includes use full paths to the files they're including.
This basically means changing all #include statements and changing
autogenerated code so that it generates the correct paths.  Because
slicc generates #includes, I had to hard code the include paths to
mem/protocol.

15 years agoruby: remove unnecessary code.
Dan Gibson [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: remove unnecessary code.

1) Removing files from the ruby build left some unresovled
symbols. Those have been fixed.

2) Most of the dependencies on Simics data types and the simics
interface files have been removed.

3) Almost all mention of opal is gone.

4) Huge chunks of LogTM are now gone.

5) Handling 1-4 left ~hundreds of unresolved references, which were
fixed, yielding a snowball effect (and the massive size of this
delta).

15 years agoruby: Cleaned up sequencer. Removed LogTM specific code.
Derek Hower [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: Cleaned up sequencer. Removed LogTM specific code.

15 years agoruby: added Packet interface to makeRequest and isReady.
Derek Hower [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: added Packet interface to makeRequest and isReady.
Also pushed Packet usage into the Sequencer

15 years agoruby: fold the debugging options into Debug.cc
Nathan Binkert [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: fold the debugging options into Debug.cc

15 years agoruby: Renamed Ruby's EventQueue to RubyEventQueue
Derek Hower [Mon, 11 May 2009 17:38:45 +0000 (10:38 -0700)]
ruby: Renamed Ruby's EventQueue to RubyEventQueue

--HG--
rename : src/mem/ruby/eventqueue/EventQueue.cc => src/mem/ruby/eventqueue/RubyEventQueue.cc
rename : src/mem/ruby/eventqueue/EventQueue.hh => src/mem/ruby/eventqueue/RubyEventQueue.hh
rename : src/mem/ruby/eventqueue/EventQueueNode.cc => src/mem/ruby/eventqueue/RubyEventQueueNode.cc
rename : src/mem/ruby/eventqueue/EventQueueNode.hh => src/mem/ruby/eventqueue/RubyEventQueueNode.hh

15 years agoruby: Removed System name clash by renaming ruby's System to RubySystem
Daniel Sanchez [Mon, 11 May 2009 17:38:44 +0000 (10:38 -0700)]
ruby: Removed System name clash by renaming ruby's System to RubySystem

15 years agoruby: rename config.include to config.hh and clean up the macro stuff.
Nathan Binkert [Mon, 11 May 2009 17:38:44 +0000 (10:38 -0700)]
ruby: rename config.include to config.hh and clean up the macro stuff.
I did the macro cleanup because I was worried that the SCons scanner
would get confused.  This code will hopefully go away soon anyway.

--HG--
rename : src/mem/ruby/config/config.include => src/mem/ruby/config/config.hh

15 years agoruby: strip out some unused defines
Nathan Binkert [Mon, 11 May 2009 17:38:44 +0000 (10:38 -0700)]
ruby: strip out some unused defines

15 years agoruby: Import ruby and slicc from GEMS
Nathan Binkert [Mon, 11 May 2009 17:38:43 +0000 (10:38 -0700)]
ruby: Import ruby and slicc from GEMS

We eventually plan to replace the m5 cache hierarchy with the GEMS
hierarchy, but for now we will make both live alongside eachother.

15 years agocpus: fix cpu progress event
Korey Sewell [Tue, 5 May 2009 06:51:31 +0000 (02:51 -0400)]
cpus: fix cpu progress event
this was double scheduling itself (once in constructor and once in cpu code). also add support for stopping / starting
progress events through repeatEvent flag and also changing the interval of the progress event as well

15 years agoscons: re-work the *Source functions to take more information.
Nathan Binkert [Mon, 4 May 2009 23:58:24 +0000 (16:58 -0700)]
scons: re-work the *Source functions to take more information.
Start by turning all of the *Source functions into classes
so we can do more calculations and more easily collect the data we need.
Add parameters to the new classes for indicating what sorts of flags the
objects should be compiled with so we can allow certain files to be compiled
without Werror for example.

15 years agoX86: Precompute the default and alternate address and operand size and the stack...
Gabe Black [Sun, 26 Apr 2009 23:49:24 +0000 (16:49 -0700)]
X86: Precompute the default and alternate address and operand size and the stack size.

15 years agoX86: Split out the internal memory space from the regular translate() and precompute...
Gabe Black [Sun, 26 Apr 2009 23:48:44 +0000 (16:48 -0700)]
X86: Split out the internal memory space from the regular translate() and precompute mode.

15 years agoX86: Centralize updates to the handy M5 reg.
Gabe Black [Sun, 26 Apr 2009 23:47:48 +0000 (16:47 -0700)]
X86: Centralize updates to the handy M5 reg.

15 years agoX86: Implement lowest priority interrupts more correctly.
Gabe Black [Sun, 26 Apr 2009 09:09:54 +0000 (02:09 -0700)]
X86: Implement lowest priority interrupts more correctly.
Lowest priority interrupts are now delivered based on a rotating offset into
the list of potential recipients. There could be parasitic cases were a
processor gets picked on and ends up at that rotating offset all the time, but
it's much more likely that the group will stay consistent and the pain will be
distributed evenly.

15 years agoX86: Tell the function that sends int messages who to send to instead of figuring...
Gabe Black [Sun, 26 Apr 2009 09:09:27 +0000 (02:09 -0700)]
X86: Tell the function that sends int messages who to send to instead of figuring it out itself.

15 years agoX86: Make the local APICs register themselves with the IO APIC.
Gabe Black [Sun, 26 Apr 2009 09:09:13 +0000 (02:09 -0700)]
X86: Make the local APICs register themselves with the IO APIC.
This is a hack so that the IO APIC can figure out information about the local
APICs. The local APICs still have no way to find out about each other.
Ideally, when the local APICs update state that's relevant to somebody else,
they'd send an update to everyone. Without being able to do a broadcast, that
would still require knowing who else there is to notify. Other broadcasts are
implemented using assumptions that may not always be true.

15 years agoX86: Record the initial APIC ID which identifies an APIC in M5.
Gabe Black [Sun, 26 Apr 2009 09:06:21 +0000 (02:06 -0700)]
X86: Record the initial APIC ID which identifies an APIC in M5.
The ID as exposed to software can be changed. Tracking those changes in M5
would be cumbersome, especially since there's no guarantee the IDs will remain
unique.

15 years agoX86, Config: Make makeX86System consider the number of CPUs, and clean up interrupt...
Gabe Black [Sun, 26 Apr 2009 09:04:32 +0000 (02:04 -0700)]
X86, Config: Make makeX86System consider the number of CPUs, and clean up interrupt assignment.

15 years agoSPARC: Tighten up the clone system call and SPARCs copyRegs.
Gabe Black [Sat, 25 Apr 2009 06:11:21 +0000 (23:11 -0700)]
SPARC: Tighten up the clone system call and SPARCs copyRegs.

15 years agorequest: reorganize flags to group related flags together.
Steve Reinhardt [Thu, 23 Apr 2009 13:44:32 +0000 (06:44 -0700)]
request: reorganize flags to group related flags together.

15 years agoX86: Put the StoreCheck flag with the others, and don't collide with other flags.
Gabe Black [Thu, 23 Apr 2009 08:43:00 +0000 (01:43 -0700)]
X86: Put the StoreCheck flag with the others, and don't collide with other flags.

15 years agostats: expose statistics to python
Nathan Binkert [Wed, 22 Apr 2009 20:38:01 +0000 (13:38 -0700)]
stats: expose statistics to python

15 years agostats: Move flags into info.hh and use base/flags.hh to manage the flags
Nathan Binkert [Wed, 22 Apr 2009 20:38:01 +0000 (13:38 -0700)]
stats: Move flags into info.hh and use base/flags.hh to manage the flags

15 years agostats: Shuffle around info stuff so it can be accessed separately
Nathan Binkert [Wed, 22 Apr 2009 20:38:00 +0000 (13:38 -0700)]
stats: Shuffle around info stuff so it can be accessed separately

15 years agostats: Rename the info classes to hopefully make things a bit clearer
Nathan Binkert [Wed, 22 Apr 2009 20:38:00 +0000 (13:38 -0700)]
stats: Rename the info classes to hopefully make things a bit clearer
FooInfoBase became FooInfo
FooInfo became FooInfoProxy

15 years agostats: update reference outputs now that compatibility is gone
Nathan Binkert [Wed, 22 Apr 2009 17:25:17 +0000 (10:25 -0700)]
stats: update reference outputs now that compatibility is gone
Because of the initialization bug, it wasn't consistent anyway.

15 years agostats: remove simplescalar compatibility for printing
Nathan Binkert [Wed, 22 Apr 2009 17:25:14 +0000 (10:25 -0700)]
stats: remove simplescalar compatibility for printing

15 years agostats: fix initialization bug in distribution text output
Nathan Binkert [Wed, 22 Apr 2009 13:44:29 +0000 (06:44 -0700)]
stats: fix initialization bug in distribution text output

15 years agoi8254xGBe: major style overhaul.
Steve Reinhardt [Wed, 22 Apr 2009 05:58:53 +0000 (01:58 -0400)]
i8254xGBe: major style overhaul.
Moved DescCache template functions from .hh to .cc file.
Also fixed lots of line-wrapping problems, and some irregular indentation.

15 years agoUpdate stats for new single bad-address responder.
Steve Reinhardt [Wed, 22 Apr 2009 05:55:52 +0000 (01:55 -0400)]
Update stats for new single bad-address responder.
Mostly just config.ini updates, though the different response
latency for bad addresses caused very minor timing changes
in the O3 Linux boot tests.

15 years agomem: use single BadAddr responder per system.
Steve Reinhardt [Wed, 16 Jul 2008 18:10:33 +0000 (11:10 -0700)]
mem: use single BadAddr responder per system.
Previously there was one per bus, which caused some coherence problems
when more than one decided to respond.  Now there is just one on
the main memory bus.  The default bus responder on all other buses
is now the downstream cache's cpu_side port.  Caches no longer need
to do address range filtering; instead, we just have a simple flag
to prevent snoops from propagating to the I/O bus.

15 years agoscons: Rename the basic environment from env -> main.
Nathan Binkert [Wed, 22 Apr 2009 00:17:16 +0000 (17:17 -0700)]
scons:  Rename the basic environment from env -> main.
env is used as a local variable all over the place and sometimes it is
easy to get confused as to whether the global env or local env is being
used.  This will become especially important when I change the way we
support our variants.

15 years agoscons: Fix two problems with the way that the library path is generated.
Nathan Binkert [Wed, 22 Apr 2009 00:17:15 +0000 (17:17 -0700)]
scons: Fix two problems with the way that the library path is generated.
1) -L is automatically added, so don't do it ourselves
2) prepend the paths for gzstream and libelf so they are certain to
come first. The problem is that python might add /usr/lib to the path
and the user might have a locally installed version of libelf installed.

15 years agoAutomated merge with ssh://m5sim.org//repo/m5
Nathan Binkert [Tue, 21 Apr 2009 23:04:55 +0000 (16:04 -0700)]
Automated merge with ssh://m5sim.org//repo/m5

15 years agopseudo: only include kernel stats if FULL_SYSTEM.
Nathan Binkert [Tue, 21 Apr 2009 22:40:26 +0000 (15:40 -0700)]
pseudo: only include kernel stats if FULL_SYSTEM.

15 years agoarm: include missing file for arm
Nathan Binkert [Tue, 21 Apr 2009 22:40:26 +0000 (15:40 -0700)]
arm: include missing file for arm

15 years agoarm: Unify the ARM tlb. We forgot about this when we did the rest.
Nathan Binkert [Tue, 21 Apr 2009 22:40:25 +0000 (15:40 -0700)]
arm: Unify the ARM tlb.  We forgot about this when we did the rest.
This code compiles, but there are no tests still

15 years agorundiff: flush stdout after each diff
Steve Reinhardt [Tue, 21 Apr 2009 18:34:26 +0000 (11:34 -0700)]
rundiff: flush stdout after each diff

15 years agoscons: make default target work again
Nathan Binkert [Tue, 21 Apr 2009 17:49:06 +0000 (10:49 -0700)]
scons: make default target work again

15 years agoSet up m5threads tests on classic (non-ruby) memory system.
Steve Reinhardt [Tue, 21 Apr 2009 15:37:50 +0000 (08:37 -0700)]
Set up m5threads tests on classic (non-ruby) memory system.
Just one test (40.m5threads-test-atomic) is set up for now.
These tests require that the m5threads SPARC binaries are present
in /dist or in test-progs.

15 years agosyscall_emul: style fixes (mostly wrapping overly long lines)
Steve Reinhardt [Tue, 21 Apr 2009 15:17:36 +0000 (08:17 -0700)]
syscall_emul: style fixes (mostly wrapping overly long lines)

15 years agosyscall: Resolve conflicts between m5threads and Gabe's recent SE changes.
Steve Reinhardt [Tue, 21 Apr 2009 15:17:36 +0000 (08:17 -0700)]
syscall: Resolve conflicts between m5threads and Gabe's recent SE changes.

15 years agoCommit m5threads package.
Daniel Sanchez [Tue, 21 Apr 2009 15:17:36 +0000 (08:17 -0700)]
Commit m5threads package.

This patch adds limited multithreading support in syscall-emulation
mode, by using the clone system call.  The clone system call works
for Alpha, SPARC and x86, and multithreaded applications run
correctly in Alpha and SPARC.

15 years agoSCons: Export export_vars so SConsopts files can add to them
Nathan Binkert [Tue, 21 Apr 2009 15:17:36 +0000 (08:17 -0700)]
SCons: Export export_vars so SConsopts files can add to them

15 years agoMinor tweaks for future Ruby compatibility.
Steve Reinhardt [Tue, 21 Apr 2009 15:17:36 +0000 (08:17 -0700)]
Minor tweaks for future Ruby compatibility.

15 years agorequest: add PREFETCH flag.
Steve Reinhardt [Tue, 21 Apr 2009 15:17:10 +0000 (08:17 -0700)]
request: add PREFETCH flag.

15 years agorequest: rename INST_READ to INST_FETCH.
Steve Reinhardt [Tue, 21 Apr 2009 01:54:02 +0000 (18:54 -0700)]
request: rename INST_READ to INST_FETCH.

15 years agorequest: split public and private flags into separate fields.
Steve Reinhardt [Tue, 21 Apr 2009 01:40:00 +0000 (18:40 -0700)]
request: split public and private flags into separate fields.
This frees up needed space for more public flags.  Also:
- remove unused Request accessor methods
- make Packet use public Request accessors, so it need not be a friend

15 years agoMem: Fill out the comment that describes the LOCKED request flag.
Gabe Black [Mon, 20 Apr 2009 05:00:24 +0000 (22:00 -0700)]
Mem: Fill out the comment that describes the LOCKED request flag.

15 years agoMem: Change isLlsc to isLLSC.
Gabe Black [Mon, 20 Apr 2009 04:44:15 +0000 (21:44 -0700)]
Mem: Change isLlsc to isLLSC.

15 years agoX86: Fix the functions that manipulate large bit arrays in the local APIC.
Gabe Black [Sun, 19 Apr 2009 20:47:15 +0000 (13:47 -0700)]
X86: Fix the functions that manipulate large bit arrays in the local APIC.

15 years agoX86: Fix up a copyright.
Gabe Black [Sun, 19 Apr 2009 20:17:35 +0000 (13:17 -0700)]
X86: Fix up a copyright.

15 years agoX86: Fix how the TLB handles the storecheck flag.
Gabe Black [Sun, 19 Apr 2009 11:57:51 +0000 (04:57 -0700)]
X86: Fix how the TLB handles the storecheck flag.

15 years agoX86: Recognize and handle the lock legacy prefix.
Gabe Black [Sun, 19 Apr 2009 11:57:28 +0000 (04:57 -0700)]
X86: Recognize and handle the lock legacy prefix.

15 years agoX86: Implement a locking version of XADD.
Gabe Black [Sun, 19 Apr 2009 11:56:49 +0000 (04:56 -0700)]
X86: Implement a locking version of XADD.

15 years agoX86: Implement a locking version of BTC.
Gabe Black [Sun, 19 Apr 2009 11:56:45 +0000 (04:56 -0700)]
X86: Implement a locking version of BTC.

15 years agoX86: Implement a locking version of BTR.
Gabe Black [Sun, 19 Apr 2009 11:56:43 +0000 (04:56 -0700)]
X86: Implement a locking version of BTR.

15 years agoX86: Implement a locking version of CMPXCHG.
Gabe Black [Sun, 19 Apr 2009 11:56:40 +0000 (04:56 -0700)]
X86: Implement a locking version of CMPXCHG.

15 years agoX86: Implement a locking version of BTS.
Gabe Black [Sun, 19 Apr 2009 11:56:36 +0000 (04:56 -0700)]
X86: Implement a locking version of BTS.

15 years agoX86: Implement a locking version of DEC.
Gabe Black [Sun, 19 Apr 2009 11:56:34 +0000 (04:56 -0700)]
X86: Implement a locking version of DEC.

15 years agoX86: Implement a locking version of INC.
Gabe Black [Sun, 19 Apr 2009 11:56:31 +0000 (04:56 -0700)]
X86: Implement a locking version of INC.

15 years agoX86: Implement a locking version of NEG.
Gabe Black [Sun, 19 Apr 2009 11:56:28 +0000 (04:56 -0700)]
X86: Implement a locking version of NEG.

15 years agoX86: Implement a locking version of NOT.
Gabe Black [Sun, 19 Apr 2009 11:56:25 +0000 (04:56 -0700)]
X86: Implement a locking version of NOT.

15 years agoX86: Implement a locking version of XCHG.
Gabe Black [Sun, 19 Apr 2009 11:56:22 +0000 (04:56 -0700)]
X86: Implement a locking version of XCHG.

15 years agoX86: Implement a locking version of XOR.
Gabe Black [Sun, 19 Apr 2009 11:56:20 +0000 (04:56 -0700)]
X86: Implement a locking version of XOR.

15 years agoX86: Implement a locking version of SUB.
Gabe Black [Sun, 19 Apr 2009 11:56:16 +0000 (04:56 -0700)]
X86: Implement a locking version of SUB.

15 years agoX86: Implement a locking version of AND.
Gabe Black [Sun, 19 Apr 2009 11:56:14 +0000 (04:56 -0700)]
X86: Implement a locking version of AND.

15 years agoX86: Implement a locking version of SBB.
Gabe Black [Sun, 19 Apr 2009 11:56:11 +0000 (04:56 -0700)]
X86: Implement a locking version of SBB.

15 years agoX86: Implement a locking version of ADC.
Gabe Black [Sun, 19 Apr 2009 11:56:08 +0000 (04:56 -0700)]
X86: Implement a locking version of ADC.

15 years agoX86: Implement a locking version of OR.
Gabe Black [Sun, 19 Apr 2009 11:56:06 +0000 (04:56 -0700)]
X86: Implement a locking version of OR.

15 years agoX86: Implement a locking version of ADD.
Gabe Black [Sun, 19 Apr 2009 11:56:02 +0000 (04:56 -0700)]
X86: Implement a locking version of ADD.

15 years agoX86: Implement the stul microop.
Gabe Black [Sun, 19 Apr 2009 11:55:58 +0000 (04:55 -0700)]
X86: Implement the stul microop.
This microop does a store and unlocks the requested address. The RISC86
microop ISA doesn't seem to have an equivalent to this, so I'm guessing that
the store following an ldstl is automatically unlocking. We don't do it this
way for performance reasons since the behavior is the same.

15 years agoX86: Implement the ldstl microop.
Gabe Black [Sun, 19 Apr 2009 11:55:43 +0000 (04:55 -0700)]
X86: Implement the ldstl microop.
This microop does a load, checks that a store would succeed, and locks the
requested address.

15 years agoCPUs: Make the atomic CPU support locked memory accesses.
Gabe Black [Sun, 19 Apr 2009 11:50:07 +0000 (04:50 -0700)]
CPUs: Make the atomic CPU support locked memory accesses.

15 years agoMemory: Add a LOCKED flag back in for x86 style locking.
Gabe Black [Sun, 19 Apr 2009 11:39:25 +0000 (04:39 -0700)]
Memory: Add a LOCKED flag back in for x86 style locking.

15 years agoMemory: Rename LOCKED for load locked store conditional to LLSC.
Gabe Black [Sun, 19 Apr 2009 11:25:01 +0000 (04:25 -0700)]
Memory: Rename LOCKED for load locked store conditional to LLSC.

15 years agoSE mode: Make keeping track of the number of syscalls less hacky.
Gabe Black [Sun, 19 Apr 2009 11:15:32 +0000 (04:15 -0700)]
SE mode: Make keeping track of the number of syscalls less hacky.

15 years agoX86: Actually put the PCI INTA entry into the MP tables.
Gabe Black [Sun, 19 Apr 2009 11:15:18 +0000 (04:15 -0700)]
X86: Actually put the PCI INTA entry into the MP tables.

15 years agoX86: Mask the PIC at startup to avoid a glitch which causes an NMI.
Gabe Black [Sun, 19 Apr 2009 11:15:06 +0000 (04:15 -0700)]
X86: Mask the PIC at startup to avoid a glitch which causes an NMI.