Output,Format, & Template code needs to be adjusted to correctly take these "decoder.h" inputs ...
--HG--
extra : convert_revision : 3dcde1f2f587e2766fd61231a93d34d1d7727356
cpu/simple/cpu.cc:
Update for new memory system. Supports using ports to access the memory system. The IcacheMissStall/DcacheMissStall statuses have been changed to reflect the cache returning a response after a variable latency (due to hit/miss). They are now DcacheWaitResponse/IcacheWaitResponse. Also supports retrying accesses.
For now the body of the copy functions are commented out.
cpu/simple/cpu.hh:
Update for new memory system.
--HG--
extra : convert_revision : 5a80247537d98ed690f7b6119094d9f59b4c7d73
mem/physical.cc:
mem/physical.hh:
Added a stripped down version of the physical memory object
--HG--
extra : convert_revision : 26826fb316f4cac900ec648fa268f1d95bc960f1
arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_tru64_process.cc:
Added the endianness namespace. This may change.
cpu/exec_context.hh:
Changed the include path for byteswap, and forced LittleEndianness for lack of a better solution.
cpu/o3/alpha_cpu.hh:
Forced LittleEndianness, for lack of a better solution.
cpu/o3/alpha_cpu_impl.hh:
Cleared away some commented out code.
cpu/o3/fetch_impl.hh:
Changed the include patch for byteswap, and forced LittleEndianness for lack of a better solution.
cpu/simple/cpu.cc:
Added an include for byteswap.hh, and fixed the SimpleCPU to LittleEndian. This cpu only does alpha, so that's fine.
dev/disk_image.cc:
Changed the include path of byteswap.hh
kern/freebsd/freebsd_system.cc:
kern/linux/linux_system.cc:
Added an include for byteswap.hh, and forced LittleEndianness for lack of a better solution.
sim/system.cc:
Forced LittleEndianness for lack of a better solution.
--HG--
extra : convert_revision : b95d3e1265a825e04bd77622a3ac09fbac6bd206
cpu/simple/cpu.cc:
Initialize the ports, also add Request and Packet instead of MemReq. Initial work at ICache read in place.
cpu/simple/cpu.hh:
Need to call the completion handler when we see a recieve.
--HG--
extra : convert_revision : a52caee6f0ceb5d9ee1e5acca63a202f5ea71359
cpu/simple/cpu.hh:
Some needed includes
mem/port.hh:
Now we removed the sendResult and replaced with void,tick,bool don't need it defined anymore
--HG--
extra : convert_revision : aea08ec299c41b9f9a5b0da7649cef0459315139
cpu/simple/cpu.hh:
Adding port definitions to simple cpu, still needs work.
mem/bus.hh:
no return for void functions
--HG--
extra : convert_revision : 42e5bc16af187d3a46eb25a15b600a8a11b88cc5
first crack at io devices code
made CpuRequest that derives from Request
dev/io_device.cc:
dev/io_device.hh:
first crack at the classes for Pio and Dma devices
dev/platform.hh:
We are going to a system pointer to get info about the memory system
mem/bus.hh:
changed sendresult -> bool,tick,void as appropriate
mem/port.hh:
changed sendresult -> bool,tick,void as appropriate;
removed the sendTiming(pkt,t) call since it is not really
implementable in a generic fashion
mem/request.hh:
pulled items from Request into CpuRequest
--HG--
extra : convert_revision : 6213cf2b66417fa023b80884d9e623e78f5aa891
mem/bus.hh:
Inital crack at a bus object that has ports. Still need to clean up the include file issues.
mem/mem_object.hh:
Decleration of a base memory object. Derives from simobject and adds a function to get the port associated with the object.
mem/packet.hh:
Inital crack at the packet decleration. Still need to clean up the include file issues.
mem/port.hh:
Inital crack at the port decleration. Still need to clean up the include file issues.
mem/request.hh:
Inital crack at the request decleration. Still need to clean up the include file issues.
--HG--
extra : convert_revision : f17967d430458f91866a4639ab0cab45d835bb55
of tabs so using different editors is consistent
util/emacs/m5-c-style.el:
Default to inserting spaces instead of tabs so using different
editors is consistent
--HG--
extra : convert_revision : 719e5e980e088b0f4787b198de18cddceabd0140
Needed in the interim until we port the old model over
to the new interface. Long term we should have a cleaner
solution for controlling which models get compiled in.
SConscript:
Move old FullCPU source file list to separate full_cpu_sources
list so we can choose to not include it in compile.
arch/isa_parser.py:
Hack to avoid generating FullCPU execute files.
Need a better way to control this.
cpu/exetrace.cc:
Don't include old FullCPU-specific headers (apparently
unnecessary anyway--or if not they should be).
--HG--
extra : convert_revision : 00d5a91a9e4d71507404b8c7f4c6e7c7b7ba3853
memory model. These changes really should have been part of the
previous changeset.
SConscript:
Move System and PhysicalMemory sources from being full_system_sources
to base_sources, since they are now used in syscall emulation also.
Also add source files for PageTable and ProxyMemory objects.
Actual source files for PhysicalMemory and ProxyMemory are not committed
yet since they still need to be ported from old interface.
--HG--
extra : convert_revision : cb39e3b13d71429b7ee6082794dc09428cde989f
System object now exists for both fullsys and syscall emulation, as the
latter needs it so that Process objects can find the shared PhysicalMemory
for initialization.
Changes are incomplete: still need to fix up Process (& EioProcess) memory
initialization and syscall emulation code for new mem interface.
arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_linux_process.hh:
arch/alpha/alpha_tru64_process.cc:
arch/alpha/alpha_tru64_process.hh:
cpu/base.cc:
cpu/base.hh:
Take System argument in constructor.
cpu/exec_context.cc:
Take System argument in constructor.
Merge two constructors into a single one.
cpu/exec_context.hh:
Take System argument in constructor.
Merge two constructors into a single one.
Replace dummy translation with lookup in Process object's page table.
python/m5/objects/Process.py:
Add System parameter to Process object (& subobjects).
python/m5/objects/System.py:
Segregate full-system only Process parameters (most of them!).
sim/process.cc:
Take System argument in constructor.
Move initialization to startup() callback to occur after system & cpus
are initialized.
Generate ProxyMemory object to pass to loader for transparent
virtual page allocation.
sim/process.hh:
Take System argument in constructor.
Move initialization to startup() callback to occur after system & cpus
are initialized.
sim/system.cc:
sim/system.hh:
Enable System object for non-full-system too.
Basically involved putting most of the existing code
inside '#ifdef FULL_SYSTEM'.
Key thing needed for syscall emulation at this point is
the PhysicalMemory object (for Process initialization).
--HG--
extra : convert_revision : f0f34b47bd4f77b502191affd3d03b4d6d9bcdd8
All of the code literals are empty as of now. As much as possible instructions were organized into relevant "formats"
and also references to the tables I used from the MIPS manual were noted via appropriate comments.
--HG--
extra : convert_revision : 9b44fb40e900061a4cdb290b6a5aaceb9750ae13
arch/mips/isa_desc/bitfields.h:
Change from table names to actual bitfield name ...
--HG--
extra : convert_revision : ead69065eb9c3e9c4ea4f67587a6fb07091898ed
- this will decode the instructions but not doing anything to create the C++ object yet
(the 1st of many steps!)
arch/mips/isa_desc/bitfields.h:
initial bitfield constants ... copied some from original alpha bitfields
arch/mips/isa_desc/decoder.h:
decoder function skeleton pt.1
- this will decode the instructions but not doing anything to create the C++ object yet
(the 1st of many steps!)
--HG--
extra : convert_revision : 2b9a0f8160c78b17f9d3d5eaf5af5a4d2f074761
SConscript:
There is a new SConscript in the arch/alpha directory which has the alpha specific files. To add files for an arch, a similar file should be created.
arch/isa_parser.py:
The isa parser now supports include directives. These are done with ##include
build/SConstruct:
The target directory is passed on so that the architecture specific SConscript can have it. Also, sparc was added as a valid architecture type.
arch/alpha/SConscript:
This SConscript adds the alpha specific source
arch/sparc/isa_desc/operands.h:
This sets up the operand types that the sparc isa uses
arch/sparc/isa_traits.cc:
Implementation of sparc specific things, like a register file with windows
build/build_options/default/SPARC_SE:
The default options for a sparc syscall emulation build.
--HG--
extra : convert_revision : 1afedae61dc8cae0d59d3bf1d41420d929be2efd
arch/sparc/isa_desc/bitfields.h:
This file defines the bit fields used by the isa description system
arch/sparc/isa_desc/decoder.h:
This file describes the decoder for the isa description system
arch/sparc/isa_desc/formats.h:
This file declares the instruction formats
arch/sparc/isa_desc/formats/basic.format:
This file implements the "basic" instruction format
arch/sparc/isa_desc/formats/branch.format:
This file implements the "branch" instruction format
arch/sparc/isa_desc/formats/integerop.format:
This file implements the "integerop" instruction format
arch/sparc/isa_desc/formats/mem.format:
This file implements the "mem" instruction format
arch/sparc/isa_desc/formats/noop.format:
This file implements the "noop" instruction format
arch/sparc/isa_desc/formats/trap.format:
This file implements the "trap" instruction format
arch/sparc/isa_desc/includes.h:
This file is all of the inclues that are used by the isa description system
--HG--
extra : convert_revision : 12a2ffe949317b8b57d83263a4261131b9432c2a
needed in a few more cases.
base/intmath.hh:
align arg to roundUp should be int, not template class
sim/process.cc:
sim/syscall_emul.hh:
No need for explicit template arg now that roundUp is fixed.
--HG--
extra : convert_revision : f9f4639e022acb9f427e8d30d81c782504437c53