Ron Dreslinski [Thu, 11 May 2006 21:24:15 +0000 (17:24 -0400)]
First pass at a serializer object, may need to work on naming of object and functions:
Intended Use:
A SimObject will call the serializer when it needs the state to be serializable (i.e. switchCPUs, checkpoint, switch memory access model). It will call the requestSeialization() function.
The Serializer will signal all the objects in its list to drain their state via the SimObject method drain(). Drain() has a default implementation to just signal done.
When each object is drained it will signal the Serializer that it has drained via the signalDrained() function.
The Serializer will collect these signals, when all have drained it will signal the initial requestor via serializationComplete() method in the SimObject.
Once that object is done, it will signal the Serializer to resumeExecution().
The Serializer will signal all the objects in its list to resume via the resume() method on the SimObject.
SConscript:
Add serializer object to build list
sim/sim_object.cc:
Add default behavior for drain (just signal finished, must be overided if you really must drain something)
sim/sim_object.hh:
Add functions for serializer
--HG--
extra : convert_revision :
15aa2d1b42010c2d703bef9114c11d079c216170
Korey Sewell [Thu, 11 May 2006 07:26:19 +0000 (03:26 -0400)]
Fixes for Paired-Single FP Compare Operations...
Now all the variations of FP should be implemented correctly in the decoder.
The new formats and functions supporting these functions need to be implemented for
some of the FP stuff but for the most part things are looking like their "supposed to"...
arch/mips/isa/decoder.isa:
Fixes for Paired-Single FP Compare Operations...
Now all the variations of FP should be implemented correctly in the decoder.
arch/mips/isa/formats/fp.isa:
Add new PS formats
arch/mips/isa_traits.cc:
Add skeleton overloaded round & truncate functions
arch/mips/isa_traits.hh:
declare overloaded functions
--HG--
extra : convert_revision :
15d5cf7b08ac2dc9ebcd6b268e92d4abffdd8597
Korey Sewell [Thu, 11 May 2006 00:54:03 +0000 (20:54 -0400)]
Support for FP Paired Single Operations
Auxiliary Functions and Formats for FP in general
arch/mips/isa/decoder.isa:
ISA Parser doesnt accept operands of different types in one instruction so fix this for unorderedFP functions...
Add basic support for Paired Singled (PS) FP ops which happen to be part of the MIPS 32-ASE but turned out to
be included in the MIPS32ISA manual... The PS instructions allow SIMD in a pipeline...
arch/mips/isa/formats/fp.isa:
Add some more Formats for FP operation. I will add some auxiliary code through these formats
to alleviate code redundancy in the decoder.isa
arch/mips/isa/operands.isa:
Add operands for Paired Singles Ops
arch/mips/isa_traits.cc:
removed convert&round function and replace with fpConvert.
The whole "rounding mode" stuff is something that should be considered for full-system mode...
Also added skeletons for the unorderedFP,truncFP,and condition code funcs.
arch/mips/isa_traits.hh:
declare some Functions
arch/mips/types.hh:
add new conversion types
--HG--
extra : convert_revision :
79251d590a27b74a3d6a62a2fbb937df3e59963f
Korey Sewell [Wed, 10 May 2006 22:34:26 +0000 (18:34 -0400)]
Merge zizzer:/bk/newmem
into zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem
--HG--
extra : convert_revision :
0a146eed200abd2c18f135b112987c5cf91a649b
Korey Sewell [Wed, 10 May 2006 20:52:27 +0000 (16:52 -0400)]
revamping code to appropriately handle FP condition code and conversion ops.
There still needs to be a work around to handle the paired singles operations ...
arch/mips/isa/decoder.isa:
More revamping of the floating point ops in decoder.isa. Change all of the
"convert and round" functions to fpConvert. Also, the utility functions
roundFP, truncFP, and unorderedFP are in place everywhere. Things
have been set up to appropriately use the FP condition codes in the decoder.isa
The fp.isa format file and the isa_traits.cc file now needed to be updated
to implement the appropriate "backend" operations/functionality...
arch/mips/isa_traits.hh:
Remove convert & round functions
Add roundFP, truncFP,unorderedFP, and the get/setFPconditionCode
functions
arch/mips/isa_traits.cc:
Add utility functions
--HG--
extra : convert_revision :
3d6708388abae5b432467f528d52e6343afecd9c
Korey Sewell [Wed, 10 May 2006 12:33:52 +0000 (08:33 -0400)]
decoder.isa:
Now handles instructions for FP compares in single or double recision
arch/mips/isa/decoder.isa:
Now handles instructions for FP compares in single or double recision
--HG--
extra : convert_revision :
eb3a13616e6736bf2d1ead0b816dda8c6099b20f
Korey Sewell [Tue, 9 May 2006 19:18:36 +0000 (15:18 -0400)]
decoder.isa:
Basic Code for Floating Point Compare with Single Precision Floats
Added.
arch/mips/isa/decoder.isa:
Basic Code for Floating Point Compare with Single Precision Floats
Added.
--HG--
extra : convert_revision :
56b14da1e9d987c2d2090fd2f79af8b12fe8d2ec
Korey Sewell [Tue, 9 May 2006 18:39:45 +0000 (14:39 -0400)]
decoder.isa:
Added support for FP compare instructions. Somehow these flew beneath
my radar. Also, I start to use special FP utility functions in FP code.
Right now, they are defined in isa_traits.hh but may be moved in the
future
arch/mips/isa/decoder.isa:
Added support for FP compare instructions. Somehow these flew beneath
my radar. Also, I start to use special FP utility functions in FP code.
Right now, they are defined in isa_traits.hh but may be moved in the
future
--HG--
extra : convert_revision :
84a3b66882f3977ce9c1356cf466d62a7fd8bf19
Steve Reinhardt [Tue, 9 May 2006 16:43:01 +0000 (12:43 -0400)]
Print M5 build options for 'scons -h'.
--HG--
extra : convert_revision :
14ef62e513987b89e913e2bf9b8771ee086ed0a0
Korey Sewell [Mon, 8 May 2006 07:59:40 +0000 (03:59 -0400)]
Start working on more complex FP tests
Debug FP instructions to handle these FP insts
arch/mips/isa/bitfields.isa:
add Bitfield for Floating Point Condition Codes
arch/mips/isa/decoder.isa:
Follow instruction naming style with FP single insts
Send the float value to the convert&round functions in single FP
add ll inst support
add 'token' sc support
arch/mips/isa_traits.cc:
Add SINGLE->WORD, WORD->SINGLE, & WORD->DOUBLE conversions
arch/mips/regfile.hh:
update header files
arch/mips/regfile/float_regfile.hh:
Add more FP registers
--HG--
rename : arch/mips/int_regfile.hh => arch/mips/regfile/int_regfile.hh
rename : arch/mips/misc_regfile.hh => arch/mips/regfile/misc_regfile.hh
extra : convert_revision :
92faf0bfd8542ade762ac569ec158d198f6a9c7e
Korey Sewell [Sun, 7 May 2006 22:50:41 +0000 (18:50 -0400)]
First Steps in cleaning up MIPS code - This changeset rearranges the files in the MIPS directory by moving where constants/types/classes are defined
arch/mips/SConscript:
arch/mips/isa_traits.cc:
arch/mips/isa_traits.hh:
arch/mips/process.cc:
arch/mips/linux/linux.cc:
arch/mips/utility.hh:
arch/mips/linux/process.cc:
arch/mips/int_regfile.hh:
arch/mips/misc_regfile.hh:
arch/mips/regfile.hh:
arch/mips/types.hh:
MIPS directory rearranging
--HG--
rename : arch/mips/mips_linux.cc => arch/mips/linux/linux.cc
rename : arch/mips/mips_linux.hh => arch/mips/linux/linux.hh
rename : arch/mips/linux_process.cc => arch/mips/linux/process.cc
rename : arch/mips/linux_process.hh => arch/mips/linux/process.hh
extra : convert_revision :
138eee48c8ed75efcf38572f335a556aaec38fc7
Korey Sewell [Sun, 7 May 2006 18:09:19 +0000 (14:09 -0400)]
Minor changes for FP ... MIPS now works for floating-point programs...
Now we are to the point where more benchmarks and instruction-coverage
is necessary to totally verify/validate correct operation across
all MIPS instructions
arch/mips/isa_traits.hh:
fix for reading double values ... must rearrange bits before using void* to read double.
configs/test/hello_mips:
real hello world MIPS binary
--HG--
extra : convert_revision :
153de1f8a830882c6972bd0bdb56da818f614def
Korey Sewell [Sun, 7 May 2006 17:26:15 +0000 (13:26 -0400)]
Basic MIPS floating point test works now ... I had to realize that when using the double FP reg the
register with the higher # contains the most significant bytes...
arch/mips/isa/decoder.isa:
divide instruction fixes
arch/mips/isa_traits.cc:
use double as argument to cvt & round function.
clean up cout statements in function.
arch/mips/isa_traits.hh:
In MIPS the higher # reg of a doubles pair is ALSO the most significant reg.
Once I switched this the basic MIPS FP test I had worked.
--HG--
extra : convert_revision :
45c80df229e6174d0b52fc7cfb530642b1f1fc35
Korey Sewell [Fri, 5 May 2006 01:21:11 +0000 (21:21 -0400)]
take-out debug only code
arch/mips/isa/formats/fp.isa:
take out debug-only code
--HG--
extra : convert_revision :
12c320b4b1432a626acefc496ec7a188c8b3fb66
Korey Sewell [Fri, 5 May 2006 01:10:51 +0000 (21:10 -0400)]
Merge zizzer:/bk/newmem
into zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem
--HG--
extra : convert_revision :
c48a8857f5a520ff8061eb3d8f08dcd43661e68c
Korey Sewell [Fri, 5 May 2006 00:49:24 +0000 (20:49 -0400)]
recognized 32 & 64 bit unsigned integer types and set the width appropriately
arch/mips/isa_traits.hh:
debug statements to be taken out real soon like...
--HG--
extra : convert_revision :
4e9abcb99c991db93328d01d7606a2bb942b29ee
Korey Sewell [Wed, 3 May 2006 00:05:16 +0000 (20:05 -0400)]
Redo the FloatRegFile using unsigned integers
Edit the convert_and_round function which access FloatRegFile
arch/isa_parser.py:
recognize when we are writing a 'uint64_t' FloatReg and set the width appropriately
arch/mips/isa/decoder.isa:
Send a 'float' to the convert function instead of a unsigned word. Do this so we dont have to worry about the
bit manipulation ourselves. We can just concern ourselves with values.
Use unsigned double to get movd...
arch/mips/isa/formats/fp.isa:
float debug statement
arch/mips/isa_traits.cc:
add different versions of convert_and_round functions
arch/mips/isa_traits.hh:
Use an array of uint32_t unsigned integers to represent the Floating Point Regfile
configs/test/hello_mips:
basic FP program
cpu/simple/cpu.hh:
spacing
--HG--
extra : convert_revision :
a6fca91ad6365c83025f1131d71fa1b8ee76d7bc
Ali Saidi [Mon, 1 May 2006 22:53:28 +0000 (18:53 -0400)]
move code from packet.hh to packet.cc and packet_impl.hh
fix very annoying not-compiler bug
arch/sparc/regfile.hh:
You have not included an out-of-class definition of your static members. See [9.4.2]/4 and about a billion gcc bug reports.
If statements get around the problem through some magic, and than seems nicer that putting a definition of them in a c file
somewhere.
cpu/simple/cpu.cc:
get() and set() do the conversion now
dev/io_device.hh:
need get() and set() defentions in all the devices
mem/packet.cc:
mem/packet.hh:
move code from packet.hh to packet.cc
mem/physical.cc:
packet_impl needed for templated packet functions
--HG--
extra : convert_revision :
6c11842aa928d9af7b4cabe826306fe1fe09e693
Gabe Black [Sun, 30 Apr 2006 05:46:00 +0000 (01:46 -0400)]
Got hello world to work!
arch/sparc/isa/decoder.isa:
Made sure if a register was assigned to along some control path, then all paths on which no exception would block commit set a value as well. Also, Rs1 is treated as signed for bpr instructions.
arch/sparc/isa/formats/integerop.isa:
Added an IntOpImm11 class which sign extends the SIMM11 immediate field.
arch/sparc/isa/formats/mem.isa:
Fixed how offsets are used, and how disassembly is generated.
arch/sparc/linux/process.cc:
Added fstat and exit_group syscalls.
--HG--
extra : convert_revision :
3b4427d239d254a92179a4137441125b8a364264
Ali Saidi [Sat, 29 Apr 2006 21:37:25 +0000 (17:37 -0400)]
fixes for se
mem/packet.cc:
mem/port.hh:
fix for se compilation
--HG--
extra : convert_revision :
ac960e295f6b51875898245fb55383a59b06cac6
Ali Saidi [Fri, 28 Apr 2006 19:41:22 +0000 (15:41 -0400)]
Merge zizzer:/bk/newmem
into zeep.pool:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision :
d6f7c4dd146613eeba39249f2d916a77108bc8c1
Ali Saidi [Fri, 28 Apr 2006 19:41:14 +0000 (15:41 -0400)]
don't need BusBridge.py anymore
--HG--
extra : convert_revision :
9ec26ee61d4bc68f1dcd1a8ac162c9519b8e6fde
Ali Saidi [Fri, 28 Apr 2006 19:40:45 +0000 (15:40 -0400)]
random mix of tidbits
configs/test/fs.py:
update fs.py to use a bus bridge
cpu/simple/cpu.hh:
cpu should just return that it doesn't snoop any address ranges
python/m5/objects/System.py:
move boot_osflags to system
--HG--
extra : convert_revision :
b4256df7eada7e65b69513361de8bffc3fdd680b
Ali Saidi [Fri, 28 Apr 2006 19:38:43 +0000 (15:38 -0400)]
devices should increment pkt.time instead of assiging to it
--HG--
extra : convert_revision :
b4ca3c7fc13bf0856eb2a800a11d5611b473ec3e
Ali Saidi [Fri, 28 Apr 2006 19:37:48 +0000 (15:37 -0400)]
add a bridge object, modify bus object to be able to connect to other buses or bridges without panicing
SConscript:
add new cc files to scons
mem/bus.cc:
mem/bus.hh:
implement addressRanges() on the bus.
propigate address ranges to anyone who is interested stripping out ranges of who your propigating to (to avoid livelock)
mem/packet.hh:
add intersect function that returns true if two packets touch at least one byte of the same data (for functional access)
add fixPacket() that will eventually take the correct action giving a timing and functional packet, right now it panics
mem/physical.cc:
Don't panic if the physical memory recieves a status change, just ignore.
--HG--
extra : convert_revision :
d470d51f2fb1db2700ad271e09792315ef33ba01
Ali Saidi [Fri, 28 Apr 2006 19:34:03 +0000 (15:34 -0400)]
Add SparcSystem object
arch/alpha/system.hh:
sim/system.hh:
make boot_osflags apply to all systems
--HG--
extra : convert_revision :
48cf903fd92be250b86817210951b85fa5e74632
Gabe Black [Fri, 28 Apr 2006 19:07:44 +0000 (15:07 -0400)]
Fixed constants to work on 32 bit hosts
--HG--
extra : convert_revision :
acc8e6f60cfdca518fa45afef4165395cba23d4f
Gabe Black [Fri, 28 Apr 2006 18:03:42 +0000 (14:03 -0400)]
Merge m5.eecs.umich.edu:/bk/newmem
into ewok.(none):/home/gblack/m5/newmem
cpu/simple/cpu.cc:
Hand merged
--HG--
extra : convert_revision :
68414730c23d41c30cfb7bcfa604029a5fc8622c
Gabe Black [Fri, 28 Apr 2006 17:13:58 +0000 (13:13 -0400)]
Added byteswapping code
--HG--
extra : convert_revision :
67bf0689399328a728a0f3130d58d483e5f2f06e
Gabe Black [Fri, 28 Apr 2006 17:13:35 +0000 (13:13 -0400)]
Improved the initial stack frame
arch/sparc/isa/formats/mem.isa:
Added some debugging output
--HG--
extra : convert_revision :
cea88e2b3eddfa4e60bbbcb02f459d274d80db2e
Gabe Black [Fri, 28 Apr 2006 17:12:46 +0000 (13:12 -0400)]
Added an include which was forgotten
--HG--
extra : convert_revision :
ad76ab45358787edddb89910049bac7cca288824
Gabe Black [Fri, 28 Apr 2006 17:12:17 +0000 (13:12 -0400)]
Fixed up some syscalls
--HG--
extra : convert_revision :
f9a32e14fa4d4d4710df83dbf54cb77482ba5d03
Gabe Black [Fri, 28 Apr 2006 17:11:32 +0000 (13:11 -0400)]
Changed the hello_sparc executable back to the cross compiled one
--HG--
extra : convert_revision :
565f75f76dd26ca0e25de4c89d1597a9f39483fd
Gabe Black [Fri, 28 Apr 2006 17:10:52 +0000 (13:10 -0400)]
Some debugging of the ccr bits
--HG--
extra : convert_revision :
b3d100b2e34dcecc3ba33c9ad4b0b7e40c210ecc
Gabe Black [Fri, 28 Apr 2006 17:10:03 +0000 (13:10 -0400)]
Added in handling of the annul bit for branches, and fixed up computation of ccr bits.
--HG--
extra : convert_revision :
ed38d26e13d25e21819dd32d159f1ee4ffcc780b
Gabe Black [Fri, 28 Apr 2006 17:08:45 +0000 (13:08 -0400)]
Added a linux.cc file to mesh with Korey's changes
--HG--
extra : convert_revision :
2073c1cda4799a60fce917f227018dd2e52456a3
Korey Sewell [Fri, 28 Apr 2006 07:05:11 +0000 (03:05 -0400)]
More Modest Changes for FP MIPS execution...
arch/mips/isa/decoder.isa:
Fix Reg. Operands for FP Conversion Instructions - Must Make Sure That You use 'uw' or 'ud' as needed.
arch/mips/isa_traits.cc:
if a conversion function isnt implemented yet, than have M5 panic...
(plan to implement SINGLE_TO_DOUBLE first)
--HG--
extra : convert_revision :
6a7f703a5d65139d3981a8753c31fc8f5bf313cf
Korey Sewell [Fri, 28 Apr 2006 04:24:25 +0000 (00:24 -0400)]
Use lower two bits of FCSR reg to determine rounding mode (may want to move this out of decoder.isa and into a template)
Have FP conversion instructions use re-defined convert_and_round() function
arch/mips/isa/decoder.isa:
Use lower two bits of FCSR reg to determine rounding mode (may want to move this out of decoder.isa and into a template)
Have FP conversion instructions to use re-defined convert_and_round() function
arch/mips/isa/formats/util.isa:
Remove convert_and_round function from here
arch/mips/isa_traits.cc:
Define convert_and_round function here
arch/mips/isa_traits.hh:
Use "enums" to define FP conversion types & Round Modes
Declare convert_and_round function here
--HG--
extra : convert_revision :
0f4f8c1732a53b277361559ea71af2a1feb4fc64
Korey Sewell [Thu, 27 Apr 2006 20:44:12 +0000 (16:44 -0400)]
change readPC() + 4 to readNextPC() and the same for NNPC ...
arch/mips/isa/decoder.isa:
remove useless cout statements
arch/mips/isa_traits.hh:
space
--HG--
extra : convert_revision :
8b8cf5df6fc3eb92598360343eb887c35cda202d
Korey Sewell [Thu, 27 Apr 2006 09:07:11 +0000 (05:07 -0400)]
Rewrite CFC1 & CTC1 instruction definitions
Use Load/Store Float Memory Formats for FP mem insts
Fix Load/Store into FP to not create a "nop" if it sees reg 0 at the defintion
arch/mips/isa/decoder.isa:
Rewrite CFC1 & CTC1 instruction definitions
Use Load/Store Float Memory Formats for FP mem insts
arch/mips/isa/formats/fp.isa:
comment changes
arch/mips/isa/formats/mem.isa:
Fix Load/Store Float Memory Formats
--HG--
extra : convert_revision :
ef1cb7a78452f8dff044b05c89e61bec866bf1b7
Korey Sewell [Wed, 26 Apr 2006 20:13:47 +0000 (16:13 -0400)]
Changes to get Floating Point Instructions w/new regfile to at least not segfault and break my INT tests
arch/mips/isa/decoder.isa:
Change decoder to read COP1 (floating point) instructions to decode correctly
arch/mips/isa_traits.hh:
Change to use overlapping single/double FP regfile
--HG--
extra : convert_revision :
2d15d6d88939f7e0d63279d5c35d7eea536a573c
Ali Saidi [Mon, 24 Apr 2006 23:31:50 +0000 (19:31 -0400)]
Mostly done with all device models for new memory system. Still need to get timing packets working and get sinic working
after merge from head. Checkpointing may need some work now. Endian-happiness still not complete.
SConscript:
add all devices back into make file
base/inet.hh:
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/etherpkt.cc:
dev/etherpkt.hh:
dev/ethertap.cc:
dev/ethertap.hh:
dev/pktfifo.cc:
dev/pktfifo.hh:
rename PacketPtr EthPacketPtr so it doesn't conflict with the PacketPtr type in the memory system
configs/test/fs.py:
add nics to fs.py
cpu/cpu_exec_context.cc:
remove this check, as it's not valid. We may want to add something else back in to make sure that no one can delete the
static virtual ports in the exec context
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
dev/alpha_console.cc:
dev/ide_ctrl.cc:
use new methods for accessing packet data
dev/ide_disk.cc:
add some more dprintfs
dev/io_device.cc:
delete packets when we are done with them. Update for new packet methods to access data
dev/isa_fake.cc:
dev/pciconfigall.cc:
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
dev/tsunami_pchip.cc:
dev/uart8250.cc:
dev/uart8250.hh:
mem/physical.cc:
mem/port.cc:
dUpdate for new packet methods to access data
dev/ns_gige.cc:
Update for new memory system
dev/ns_gige.hh:
python/m5/objects/Ethernet.py:
update for new memory system
dev/sinic.cc:
dev/sinic.hh:
Update for new memory system. Untested as need to merge in head because of kernel driver differences between versions
mem/packet.hh:
Add methods to access data instead of accessing it directly.
--HG--
extra : convert_revision :
223f43876afd404e68337270cd9a5e44d0bf553e
Ali Saidi [Thu, 20 Apr 2006 21:14:30 +0000 (17:14 -0400)]
make ide disk work for newmem
SConscript:
compile ide devices
base/chunk_generator.hh:
add another parameter to the chuck generator called complete() which
returns the number of bytes transfered so far. Very useful for
adding to a pointer.
configs/test/fs.py:
Add ide disk to fs test configuration
dev/ide_ctrl.cc:
dev/ide_ctrl.hh:
dev/ide_disk.cc:
dev/ide_disk.hh:
dev/io_device.cc:
dev/io_device.hh:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
dev/pcidev.cc:
dev/pcidev.hh:
update for new memory system
mem/bus.cc:
support devices that return multiple ranges
remove old ranges before using new info
mem/packet.hh:
make senderstate void* per steve's request that we use every
construct possible in C++
mem/physical.cc:
have memory stamp the packet with the time.
mem/physical.hh:
actually set the memory latency variable
python/m5/objects/Device.py:
Add DmaDevice
python/m5/objects/Ide.py:
Ide disk no longer has a physmem pointer
python/m5/objects/Pci.py:
update pci device for newmem
python/m5/objects/PhysicalMemory.py:
add latency parameter for physical memory
sim/byteswap.hh:
use fast architecture dependent byteswap calls if they exist
--HG--
extra : convert_revision :
e3cf2e8f61064ad302d94bc22010a00c59f3f793
Ali Saidi [Tue, 18 Apr 2006 17:49:32 +0000 (13:49 -0400)]
Merge zizzer:/bk/newmem
into zeep.pool:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision :
bf142c05ad4880513ee3438e1fdf62070a6049e3
Ali Saidi [Tue, 18 Apr 2006 17:49:23 +0000 (13:49 -0400)]
dwarf debugging symbols make gdb much happier than stabs. Use them
and maximum debugging in for debug target.
No such thing as -O5 in GCC, so might as well just use -O3
--HG--
extra : convert_revision :
f2e02c4f95c57eace010e75e2457193353088308
Gabe Black [Tue, 18 Apr 2006 13:44:45 +0000 (09:44 -0400)]
Merge m5.eecs.umich.edu:/bk/newmem
into ewok.(none):/home/gblack/m5/newmem
--HG--
extra : convert_revision :
3eb97976caf57e43119a998c31128ca6f163c05b
Gabe Black [Tue, 18 Apr 2006 13:44:24 +0000 (09:44 -0400)]
Changed MIPS and Alpha to pass the syscall number to the syscall function
arch/alpha/isa/decoder.isa:
Fixed up Alpha to pass the syscall number directly to the syscall function.
arch/mips/isa/decoder.isa:
Fixed up MIPS to pass the syscall number directly to the syscall function.
arch/mips/isa/operands.isa:
Added an R2 operand which is passed to the syscall function as the syscall number to use.
--HG--
extra : convert_revision :
066d486cd6a2761b29e413c6d526c268788975f3
Gabe Black [Tue, 18 Apr 2006 13:27:22 +0000 (09:27 -0400)]
Fixes to SPARC syscall emulation mode.
arch/sparc/isa/base.isa:
Added a set of abbreviations for the different condition tests.
arch/sparc/isa/decoder.isa:
Fixes and additions to get syscall emulation closer to working.
arch/sparc/isa/formats/branch.isa:
Fixed branches so that the immediate version actually uses the immediate value
arch/sparc/isa/formats/integerop.isa:
Compute the condition codes -before- writing to the state of the machine.
arch/sparc/isa/formats/mem.isa:
An attempt to fix up the output of the disassembly of loads and stores.
arch/sparc/isa/formats/trap.isa:
Added code to disassemble a trap instruction. This probably needs to be fixed up so there are immediate and register versions.
arch/sparc/isa/operands.isa:
Added an R1 operand, and fixed up the numbering
arch/sparc/isa_traits.hh:
SyscallNumReg is no longer needed, the max number of sources and destinations are fixed up, and the syscall return uses xcc instead of icc.
arch/sparc/linux/process.cc:
arch/sparc/linux/process.hh:
Added a getresuidFunc syscall implementation. This isn't actually used, but I thought it was and will leave it in.
arch/sparc/process.cc:
arch/sparc/process.hh:
Fixed up how the initial stack frame is set up.
arch/sparc/regfile.hh:
Changed the number of windows from 6 to 32 so we don't have to worry about spill and fill traps for now, and commented out the register file setting itself up.
cpu/cpu_exec_context.hh:
cpu/exec_context.hh:
cpu/simple/cpu.hh:
sim/process.cc:
sim/process.hh:
Changed the syscall mechanism to pass down the syscall number directly.
--HG--
extra : convert_revision :
15723b949a0ddb3d24e68c079343b4dba2439f43
Ali Saidi [Mon, 17 Apr 2006 18:55:15 +0000 (14:55 -0400)]
change packet: reset() to resetMin() resetAll() which reset the minium
and the entire packet respectively.
--HG--
extra : convert_revision :
70b8bc8a2cf304d4c955d1a997df4a9a8edd4989
Kevin Lim [Fri, 14 Apr 2006 15:59:18 +0000 (11:59 -0400)]
Quick fix for the CPU not printing out the right address upon re-execution of a load that missed in the cache.
Split mem ops will solve this problem in the future.
--HG--
extra : convert_revision :
5bb921998aa0408d568030ef544b9905c4038bb2
Korey Sewell [Fri, 14 Apr 2006 07:42:02 +0000 (03:42 -0400)]
These fixes now allow all of the 20 mips tests to work properly!
Floating Point Mips Tests still need to be added, tested, and debugged.
arch/mips/isa/decoder.isa:
Fix mult and multu instructions. This semantic error causes the problem: <int64> = <int32> * <int32>. Although I was placing
the output into a 64-bit integer the multiply was just doing a 32-bit multiply so the solution is to just use
the 'sd' & 'ud' operands so that the ISA parser will use the int64_t and uint64_t types in calculation.
arch/mips/isa/formats/int.isa:
Trace output fix. Don't print first comma unless there is a destination register for sure!
--HG--
extra : convert_revision :
2c503dca70b104fed0b58454975f745dd3cc2eee
Korey Sewell [Thu, 13 Apr 2006 21:40:16 +0000 (17:40 -0400)]
update Hello World binary for mips... the old one did not have a newline
--HG--
extra : convert_revision :
f015cac39e42e11b1a56bbd1c5cf07403eb8f2da
Korey Sewell [Thu, 13 Apr 2006 20:47:32 +0000 (16:47 -0400)]
Move RLIMIT constants to OS/ISA specific files instead of generic OS container classes
Update MIPS/Linux constants
arch/alpha/linux/linux.hh:
move RLIMIT constants to ALPHA/Linux class
arch/alpha/tru64/tru64.hh:
move RLIMIT constants to ALPHA/Tru64 class
arch/mips/mips_linux.hh:
update MIPS constants for MIPS/Linux
kern/linux/linux.hh:
remove RLIMIT constants from generic Linux class... these are now in ISA specific / OS specific classes
kern/tru64/tru64.hh:
remove RLIMIT constants from generic Tru64 class... these are now in ISA specific / OS specific classes
--HG--
extra : convert_revision :
2e2743d73ab18fcd558a5765cb4ef0e9671bd1d7
Korey Sewell [Thu, 13 Apr 2006 09:47:35 +0000 (05:47 -0400)]
remove non-needed files
--HG--
extra : convert_revision :
6900ff6972e92bb1bcb4736cce948784c6b905e1
Korey Sewell [Thu, 13 Apr 2006 09:42:18 +0000 (05:42 -0400)]
Changes that get rid of the OSFlags and derive a new class of this format <architecture>-<OS>.
This class is derived from the original <OS> class and is used to define information that
is both architecure and OS specific (for example, the AlphaLinux class is derived from the
Linux class and defined in arch/alpha/linux/linux.hh).
SConscript:
no need to compile linux.cc and tru64.cc now, since openFlagsTable has been moved
arch/alpha/SConscript:
compile linux.cc and tru64.cc within alpha arch.
arch/alpha/linux/process.cc:
template syscall functions on AlphaLinux instead of Linux ... AlphaLinux is derived off of Linux
arch/alpha/tru64/process.cc:
template syscall functions on AlphaTru64 instead of Linux ... AlphaTru64 is derived off of Linux
moved tableFunc syscall function into this file
arch/mips/SConscript:
compile mips_linux.cc for openFlags table
arch/mips/isa_traits.hh:
remove constants from here
arch/mips/linux_process.cc:
template syscall functions on MipsLinux instead of Linux ... MipsLinux is derived off of Linux
kern/linux/linux.hh:
remove OSFlags
kern/tru64/tru64.hh:
remove OSFlags def., openFlagTable, and tableFunc ...
sim/syscall_emul.hh:
go back to using "OS" instead of "OSFlags"
arch/alpha/linux/linux.cc:
defines openFlagTable
arch/alpha/linux/linux.hh:
arch/alpha/tru64/tru64.hh:
Alpha Linux constants placed here in class derived from Linux class
arch/alpha/tru64/tru64.cc:
defines openFlagTable for AlphaTru64
arch/mips/mips_linux.cc:
MIPS Linux open flag table
arch/mips/mips_linux.hh:
Mips Linux constants placed here in class derived from Linux class
--HG--
extra : convert_revision :
e6c1c2c895429c28fd141732e223e897ab19315e
Ali Saidi [Wed, 12 Apr 2006 21:46:32 +0000 (17:46 -0400)]
Merge zizzer:/bk/newmem
into zeep.eecs.umich.edu:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision :
5fc80b28362c4acc4dee576f60296b81aea004f2
Ali Saidi [Wed, 12 Apr 2006 21:46:25 +0000 (17:46 -0400)]
fs now gets to the point where it would really like a filesystem.
Time to make the ide device work
arch/alpha/system.cc:
write the machine type and rev in the correct place
cpu/simple/cpu.cc:
reset the packet structure every time it's reused... wow the
simple cpu code for talking to memory is getting horrible.
dev/alpha_console.cc:
move the setAlphaAccess to startup() to make sure that the console
binary is loaded
dev/tsunami_cchip.cc:
dev/tsunami_pchip.cc:
dev/uart8250.cc:
fix a couple of bugs injected in the newmem fixes
mem/bus.cc:
More verbose bus tracing
mem/packet.hh:
Add a constructor to packet to set the result to unknown and a reset
method in the case it's being reused
mem/vport.hh:
don't need are own read/write methods since the base functional port
ones call writeBlob readBlob which do the translation for us
--HG--
extra : convert_revision :
8d0e2b782bfbf13dc5c59dab1a79a084d2a7da0a
Korey Sewell [Wed, 12 Apr 2006 07:51:09 +0000 (03:51 -0400)]
Merge zizzer:/bk/newmem
into zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-mips
--HG--
extra : convert_revision :
4eff6e7ee7a25b8f5fdad7342b195a869cf528d6
Korey Sewell [Wed, 12 Apr 2006 07:44:45 +0000 (03:44 -0400)]
add OSFlags struct to AlphaISA/MipsISA namespace. The OS classes then use these OSFlags to access architecture-specific AND OS-specific
flags for their functions (e.g. OS::OSFlags::TG_MAP_ANONYMOUS)...
arch/alpha/tru64/process.cc:
sim/syscall_emul.hh:
Add OSFlags to code
arch/mips/isa/decoder.isa:
slight decoder changes (more stylistic then anything)
arch/mips/isa/formats/util.isa:
spacing
arch/mips/isa_traits.hh:
add OSFlags struct to MipsISA namespace. The OS classes then use these OSFlags to access architecture-specific and OS-specific
flags for their functions
kern/linux/linux.hh:
remove constant placement ... define OSFlags in linux.hh
kern/tru64/tru64.hh:
define OSFlags in tru64
--HG--
extra : convert_revision :
59be1036eb439ca4ea1eea1d3b52e508023de6c9
Ali Saidi [Tue, 11 Apr 2006 23:35:30 +0000 (19:35 -0400)]
change how much of the param string is copied into the kenel
Set locked flag if required
make SC always return success -- this needs to be fixed at some point
fix a couple of things
FS executes a bit of console code before dying a horrible death
arch/alpha/linux/system.cc:
only need to copy the length of the os flags param, not 256 bytes
cpu/simple/cpu.cc:
Set the physical flag if required
Make LL/SC always return success
mem/bus.cc:
add some dprintfs and change a assert to a panic
mem/port.cc:
delete the buffer with the [] operator
mem/request.hh:
add a function to reset a request
--HG--
extra : convert_revision :
f2b78ddad33c7f6ffe1c48791d86609ff1d10d46
Ali Saidi [Tue, 11 Apr 2006 17:43:15 +0000 (13:43 -0400)]
Merge zizzer:/bk/newmem
into zeep.eecs.umich.edu:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision :
ef75b46b9c1c267c84e6bb2b2234d46c4edcda16
Ali Saidi [Tue, 11 Apr 2006 17:42:47 +0000 (13:42 -0400)]
fullsys now builds and runs for about one cycle
SConscript:
easier to fix than temporarily remove
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
mem needed for both fullsys and syscall
dev/baddev.cc:
fix for new mem system
dev/io_device.cc:
fix typo
dev/io_device.hh:
PioDevice needs to be a memobject
dev/isa_fake.cc:
dev/pciconfigall.cc:
dev/pciconfigall.hh:
fix for new mem systems
dev/platform.cc:
dev/platform.hh:
dev/tsunami.cc:
dev/tsunami.hh:
rather than the platform have a pointer to pciconfig, go the other
way so all devices are the same and can have a platform pointer
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
dev/tsunami_io.hh:
dev/tsunami_pchip.cc:
dev/tsunami_pchip.hh:
dev/uart8250.cc:
python/m5/objects/AlphaConsole.py:
python/m5/objects/BadDevice.py:
python/m5/objects/BaseCPU.py:
python/m5/objects/Device.py:
python/m5/objects/Pci.py:
python/m5/objects/PhysicalMemory.py:
python/m5/objects/System.py:
python/m5/objects/Tsunami.py:
python/m5/objects/Uart.py:
fixes for newmem
--HG--
extra : convert_revision :
b7b67e19095cca64889f6307725aa2f3d84c7105
Korey Sewell [Tue, 11 Apr 2006 05:20:38 +0000 (01:20 -0400)]
Merge zizzer:/bk/newmem
into zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-mips
--HG--
extra : convert_revision :
977cae02ac9e38143952bfd54f13b321577715f2
Korey Sewell [Tue, 11 Apr 2006 05:17:28 +0000 (01:17 -0400)]
Lots of MIPS test files :
Will remove these in future merge but it is just way easier to keep all these tests in
their own repo folder so I wont have to reset these up every time I pull from bitkeeper
--HG--
extra : convert_revision :
ad9b8797fb16edad0323ee48aba1aa4551ea1cb7
Steve Reinhardt [Tue, 11 Apr 2006 00:02:36 +0000 (20:02 -0400)]
Clean up mmapFunc.
sim/syscall_emul.hh:
Clean up mmapFunc: args should be aligned and PageTable::allocate
already handles multi-page allocations, so most of thw work done here
was unnecessary (as far as I can tell). I didn't test this beyond
compiling though...
--HG--
extra : convert_revision :
d79591a1cc58ea82ea911cc05e0970e81e1d2c60
Korey Sewell [Mon, 10 Apr 2006 22:41:25 +0000 (18:41 -0400)]
edit to test_mips config file
arch/mips/isa_traits.hh:
add FIR misc reg (was lost in merge)
--HG--
extra : convert_revision :
b056c9a307e5de08ff8cc4dfc541342d25c141b8
Ali Saidi [Mon, 10 Apr 2006 18:40:22 +0000 (14:40 -0400)]
Panic if physical memory isn't connected to anything
send range change at init for all devices
dev/io_device.cc:
dev/io_device.hh:
add init function for pio devices to sent status changes around
mem/physical.cc:
mem/physical.hh:
Panic if physical memory isn't connected to anything
--HG--
extra : convert_revision :
4223d1c3c73522d1e196c218eb0084d238677ad9
Ali Saidi [Mon, 10 Apr 2006 18:14:25 +0000 (14:14 -0400)]
Merge zizzer:/bk/newmem
into zeep.eecs.umich.edu:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision :
36da0febc30675e955a10eb8bc45586b6242a8c3
Ali Saidi [Mon, 10 Apr 2006 18:14:06 +0000 (14:14 -0400)]
updates for newmem
SConscript:
compile some more devices
--HG--
extra : convert_revision :
82a8164ab38814a56a0c143658bc06338cf6b8f5
Korey Sewell [Mon, 10 Apr 2006 16:57:59 +0000 (12:57 -0400)]
so I guess the IntRegFile class is needed after all!
--HG--
extra : convert_revision :
a47368e859b1736bb1c0848960925c6d107435df
Korey Sewell [Mon, 10 Apr 2006 16:40:07 +0000 (12:40 -0400)]
Take out flags parameter (used for no align fault)
--HG--
extra : convert_revision :
153604b74cbaa31699215ff31f775aecf9d45d2a
Korey Sewell [Mon, 10 Apr 2006 16:37:15 +0000 (12:37 -0400)]
Merge zizzer:/bk/newmem
into zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem-mips
arch/mips/isa/formats/mem.isa:
Filled in Split-Memory Access Code
arch/mips/isa_traits.hh:
Leave IntRegFile as an array instead of class with member functions
mem/page_table.cc:
take out NO ALIGN FAULT page table access code for now... No need to messs up what works
--HG--
extra : convert_revision :
cbf1cce9145daf9ee9ceabc9080271ddb0561489
Korey Sewell [Mon, 10 Apr 2006 16:23:17 +0000 (12:23 -0400)]
Finally MIPS does hello world!
arch/mips/isa/bitfields.isa:
add RS_SRL bitfield ...these must be set to 0 for a SRL instruction
arch/mips/isa/decoder.isa:
Make unimplemented instructions Fail instead of just Warn
Edits to SRA & SRAV instructions
Implement CFC1 instructions
Unaligned Memory Access Support (Maybe Not fully functional yet)
Enforce a more strict decode policy (in terms of different bitfields set to 0 on certain instructions)
arch/mips/isa/formats/branch.isa:
Fix disassembly
arch/mips/isa/formats/int.isa:
Add sign extend Immediate and zero extend Immediate to Int class.
Probably a bit unnecessary in the long run since these manipulations could
be done in the actually instruction instead of keep a int value
arch/mips/isa/formats/mem.isa:
Comment/Remove out split-memory access code... revisit this after SimpleCPU works
arch/mips/isa/formats/unimp.isa:
Add inst2string function to Unimplemented panic. PRints out the instruction
binary to help in debuggin
arch/mips/isa/formats/unknown.isa:
define inst2string function , use in unknown disassembly and panic function
arch/mips/isa/operands.isa:
Make "Mem" default to a unsigned word since this is MIPS32
arch/mips/isa_traits.hh:
change return values to 32 instead of 64
arch/mips/linux_process.cc:
assign some syscalls to the right functions
cpu/static_inst.hh:
more debug functions for MIPS (these will be move to the mips directory soon)
mem/page_table.cc:
mem/page_table.hh:
toward a better implementation for unaligned memory access
mem/request.hh:
NO ALIGN FAULT flag added to support unaligned memory access
sim/syscall_emul.cc:
additional SyscallVerbose comments
--HG--
extra : convert_revision :
1987d80c9f4ede507f1f0148435e0bee97d2428c
Ron Dreslinski [Fri, 7 Apr 2006 22:16:11 +0000 (18:16 -0400)]
Merge zizzer:/z/m5/Bitkeeper/newmem
into zazzer.eecs.umich.edu:/z/rdreslin/m5bk/newmem
--HG--
extra : convert_revision :
85406b562373f7d768a44a8c327055cb02d3f6c5
Ali Saidi [Fri, 7 Apr 2006 20:26:22 +0000 (16:26 -0400)]
a bit of bad code trampling on memory
--HG--
extra : convert_revision :
c0252dce6d7fc4c35ecd9f87ac4555e704de91b7
Ron Dreslinski [Fri, 7 Apr 2006 19:54:48 +0000 (15:54 -0400)]
Move to a model with a unified request object.
Constructor takes a bool to signify that it is either a cpu_request or not a cpu_request.
When accedding variables of a cpu_request it asserts that it is a cpu_request.
It also asserts that a value being read has been written at some point in time prior (not gaurnteeing it is up to date, but it was at least written before read).
There is also a isCpuReq() function to determine if this is a cpu_request. It should be called before accesing a cpu_request only variable.
SConscript:
Add compilation support for request.cc
arch/alpha/tlb.cc:
arch/alpha/tlb.hh:
cpu/cpu_exec_context.hh:
cpu/exec_context.hh:
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
dev/io_device.cc:
mem/page_table.cc:
mem/page_table.hh:
mem/port.cc:
Update for unified request object and accessor functions.
mem/request.hh:
Remove CpuRequest, make it a unified object. Make variables private with accessor functions.
May want to move things from .cc file into header (usually a assert() and either returning a value, or writting two).
--HG--
extra : convert_revision :
f1e45cc490dadc7a418634539b03c3e72684a6e3
Ali Saidi [Thu, 6 Apr 2006 22:32:10 +0000 (18:32 -0400)]
a sparc binary that can be debugged
--HG--
extra : convert_revision :
cb021c1e704b5771e0f86e794b7e59f8a4b96856
Ali Saidi [Thu, 6 Apr 2006 22:04:57 +0000 (18:04 -0400)]
Merge zizzer:/bk/newmem
into zeep.eecs.umich.edu:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision :
a0bfc7495ba0f2916214d6712f67c5c239a210a0
Ali Saidi [Thu, 6 Apr 2006 22:04:49 +0000 (18:04 -0400)]
added unimp faults
update for newmem
arch/mips/faults.cc:
arch/mips/faults.hh:
arch/sparc/faults.cc:
arch/sparc/faults.hh:
added unimp faults for mips
arch/mips/isa/base.isa:
arch/mips/isa/includes.isa:
thou shalt not put includes inside a namespace
dev/alpha_console.cc:
fix formatting
dev/io_device.hh:
add comments
dev/tsunami_cchip.cc:
dev/tsunami_cchip.hh:
update for newmem
sim/process.cc:
fix seemingly wronge code.
--HG--
extra : convert_revision :
9dcfe188d00d525b935d8ef4fa323280bbfa9a0e
Gabe Black [Thu, 6 Apr 2006 19:21:52 +0000 (15:21 -0400)]
Fixed for full system.
--HG--
extra : convert_revision :
28c9cd55d887c9de7156c8cf76b7b91117f749d5
Gabe Black [Thu, 6 Apr 2006 19:14:08 +0000 (15:14 -0400)]
Small touchups to SPARC
arch/sparc/regfile.hh:
Added debug output to the setAltGlobals function.
--HG--
extra : convert_revision :
b5ed3ff6d6f30e840c2488d846658dadedb59869
Gabe Black [Thu, 6 Apr 2006 19:00:11 +0000 (15:00 -0400)]
Merge m5.eecs.umich.edu:/bk/newmem
into ewok.(none):/home/gblack/m5/newmem
--HG--
extra : convert_revision :
bd6352647798275a12d52d55a129cdddd8e25423
Ali Saidi [Thu, 6 Apr 2006 18:57:51 +0000 (14:57 -0400)]
fixes for newmem
ALPHA_FS finally compiles again
SConscript:
Use a couple more FS sources, still don't compile that much
arch/alpha/faults.hh:
the unimp fault should probably exist in nonfs too.
dev/alpha_console.cc:
dev/alpha_console.hh:
dev/simconsole.cc:
dev/simple_disk.cc:
dev/simple_disk.hh:
dev/uart.cc:
dev/uart.hh:
dev/uart8250.cc:
dev/uart8250.hh:
sim/process.cc:
sim/system.cc:
fixes for newmem
dev/io_device.hh:
a system pointer is probably useful for every device to have
mem/bus.hh:
mem/physical.cc:
new address ranges function
python/m5/objects/SimpleDisk.py:
simple disk now has a system pointer rather than physmem directly
--HG--
extra : convert_revision :
d8c0a5c6510a6210aec5e8adfb0a4a06ec0dcebf
Gabe Black [Thu, 6 Apr 2006 18:53:14 +0000 (14:53 -0400)]
Changed the CleanWindow fault from an enumerate fault into a regular one.
--HG--
extra : convert_revision :
bf43015f5e47768a6e07ce36dc66a38426beceee
Gabe Black [Thu, 6 Apr 2006 18:52:44 +0000 (14:52 -0400)]
Fixed up the isa description. Also added some capability to the isa_parser in the InstObjParams constructor.
arch/isa_parser.py:
Expanded the capability of the InstObjParams constructor to allow adding in extra keys for use in templates. These are added as key, value tuples as optional arguements.
arch/sparc/isa/base.isa:
arch/sparc/isa/formats/mem.isa:
arch/sparc/isa/formats/priv.isa:
The genCompositeIop function is no longer needed, as this functionality is now in the InstObjParams constructor.
arch/sparc/isa/decoder.isa:
Fixed up alot of instructions, and fixed indentation.
arch/sparc/isa/formats/integerop.isa:
The genCompositeIop function is no longer needed, as this functionality is now in the InstObjParams constructor. Also changed the immediate values to be signed.
base/traceflags.py:
Added SPARC traceflag
configs/test/hello_sparc:
Recompiled without -mflat
cpu/cpu_exec_context.cc:
Used the regfile clear function rather than memsetting to 0.
--HG--
extra : convert_revision :
b9da6f264f3ebc4ce1815008dfff7f476b247ee9
Gabe Black [Thu, 6 Apr 2006 18:47:03 +0000 (14:47 -0400)]
Enable register windows.
arch/alpha/isa_traits.hh:
arch/mips/isa_traits.cc:
Turned the integer register file into a class instead of a typedef to an array.
arch/alpha/regfile.hh:
Changed the integer register file into a class instead of a typedef to an array. Also put the parts of the register file, ie the int, float, and misc register files, pc, npc, and nnpc, behind accessor functions. Added a changeContext function, and ContextParam and ContextVal types, so that things like the register window can be changed through call backs.
arch/mips/isa_traits.hh:
Turned the integer register file into a class instead of a typedef to an array. Also moved a "using namespace" into the namespace definition.
arch/sparc/isa_traits.hh:
Turned the integer register file into a class instead of a typedef to an array. Also "fixed" the max number of src and dest regs. They may need to be even larger.
arch/sparc/regfile.hh:
Changed the integer register file into a class instead of a typedef to an array. Also put the parts of the register file, ie the int, float, and misc register files, pc, npc, and nnpc, behind accessor functions. Added a changeContext function, and ContextParam and ContextVal types, so that things like the register window can be changed through call backs. Created setCWP and setAltGlobals functions for the IntRegFile.
cpu/cpu_exec_context.hh:
Used the accessor functions for the register file, and added a changeRegFileContext function to call back into the RegFile. Used the RegFile clear function rather than memsetting it to 0.
cpu/exec_context.hh:
Added the changeRegFileContext function.
cpu/exetrace.cc:
Use the TheISA::NumIntRegs constant, and use readReg now that the integer register file is a class instead of an array.
cpu/exetrace.hh:
Get the address of the regs object, now that it isn't an array.
--HG--
extra : convert_revision :
ea2dd81be1c2e66b3c684af319eb58f8a77fd49c
Ali Saidi [Thu, 6 Apr 2006 04:51:46 +0000 (00:51 -0400)]
fixes for new memory system
SConscript:
comment out most devices
add vport.cc
arch/alpha/arguments.cc:
arch/alpha/arguments.hh:
push in alpha name space
fix for new memory system
arch/alpha/faults.cc:
arch/alpha/faults.hh:
Added an unimplemented fault that can be returned if a certain
function isn't implemented
arch/alpha/freebsd/system.cc:
arch/alpha/linux/system.cc:
arch/alpha/stacktrace.cc:
arch/alpha/system.cc:
arch/alpha/tlb.hh:
arch/alpha/tru64/system.cc:
fixed for new memory system
arch/alpha/tlb.cc:
fixed for new memory system
removed code that seems to have no purpose
arch/alpha/vtophys.cc:
arch/alpha/vtophys.hh:
fixed for new memory system
put in namespace AlphaISA
base/remote_gdb.cc:
fix for new memory system
cpu/cpu_exec_context.cc:
cpu/cpu_exec_context.hh:
cpu/exec_context.hh:
create two ports one of physical accesses and one for superpage accesses
Add functions getVirtPort() getPhysPort() delVirtPort(). To get statically
allocated physical or virtual ports or if an execcontext is passed in
get a dynamically allocated virtual port
dev/alpha_console.cc:
dev/alpha_console.hh:
Redo for new memory system
dev/io_device.cc:
dev/io_device.hh:
new I/O devices for new memory system
kern/linux/events.cc:
kern/linux/printk.cc:
kern/linux/printk.hh:
kern/tru64/dump_mbuf.hh:
kern/tru64/printf.cc:
kern/tru64/printf.hh:
Arguments now in namespaces
kern/tru64/tru64_events.cc:
mem/bus.cc:
fix for new memory syste
mem/physical.hh:
new addressranges function
getPort should be public
mem/port.hh:
Add write/read methods to functional port
update getDeviceAddrRanges to have a list of both snoops and response lists
sim/pseudo_inst.cc:
sim/system.cc:
sim/system.hh:
Update for new mem system
sim/vptr.hh:
comment out code and replace with panics
This will need to be fixed at some point, but it's not easy.
--HG--
extra : convert_revision :
41f41f422cfbab3751284d55cccb6ea64a7956e2
Gabe Black [Sat, 1 Apr 2006 01:32:18 +0000 (20:32 -0500)]
Merge m5.eecs.umich.edu:/bk/newmem
into ewok.(none):/home/gblack/m5/newmem
--HG--
extra : convert_revision :
08ae5e999d9b313e3e40cb6d58863905b70ca781
Gabe Black [Sat, 1 Apr 2006 01:31:53 +0000 (20:31 -0500)]
Fixes to SPARC for syscall emulation mode.
arch/sparc/isa/base.isa:
arch/sparc/isa/decoder.isa:
arch/sparc/isa/formats.isa:
arch/sparc/isa/formats/branch.isa:
arch/sparc/isa/formats/integerop.isa:
arch/sparc/isa/formats/mem.isa:
arch/sparc/isa/formats/nop.isa:
arch/sparc/isa/formats/trap.isa:
arch/sparc/isa/formats/unknown.isa:
arch/sparc/isa/includes.isa:
arch/sparc/isa/operands.isa:
Fixes towards running in syscall emulation mode.
arch/sparc/linux/process.cc:
Fixed the assert and comment to check that the Num_Syscall_Descs is less than or equal to 284. Why does this assert need to exist anyway?
base/loader/elf_object.cc:
Cleared out comments about resolved issues.
cpu/simple/cpu.cc:
Use NNPC for both SPARC and MIPS, instead of just MIPS
configs/test/hello_sparc:
A test program for SPARC which prints "Hello World!"
--HG--
rename : arch/sparc/isa/formats/noop.isa => arch/sparc/isa/formats/nop.isa
extra : convert_revision :
10b3e3b9f21c215d809cffa930448007102ba698
Ali Saidi [Thu, 30 Mar 2006 23:06:00 +0000 (18:06 -0500)]
Add a functional port that is used to load the original binaries in FS
SE mode now has a port that goes to whatever toplevel mem object the
CPU sees that does the appropriate translation for syscall emulation
SConscript:
translating port is a syscall emu only source
arch/alpha/system.cc:
base/loader/object_file.cc:
base/loader/object_file.hh:
Use the new functional port to write the binaries into memory
cpu/cpu_exec_context.cc:
cpu/cpu_exec_context.hh:
cpu/simple/cpu.cc:
We aren't always going to be writing straight to memory with syscalls
support writing to a cache
mem/port.hh:
Add a simple unidirectional functional port that panics on any incoming requests
mem/translating_port.hh:
make translating port inherit from the simple port
sim/system.cc:
sim/system.hh:
Add a functional port that is used to load the original binaries
--HG--
extra : convert_revision :
9096866d0b23e3aceea68394abb76e63c0f8fd8d
Ali Saidi [Thu, 30 Mar 2006 20:59:49 +0000 (15:59 -0500)]
Make TranslatingPort be a type of Port rather than something special
arch/alpha/arguments.cc:
rather than returning 0, put a panic in... it will actually make us fix
this rather than scratching our respective heads
base/loader/object_file.cc:
base/loader/object_file.hh:
Object loader now takes a port rather than a translating port
cpu/cpu_exec_context.cc:
cpu/cpu_exec_context.hh:
sim/process.cc:
Make translating port a type of port rather than anything special
cpu/simple/cpu.cc:
no need to grab a port from the cpu anymore
mem/physical.cc:
add an additional type of port to physicalmemory called "functional"
Only used for functional accesses (loading binaries/syscall emu)
mem/port.hh:
make readBlok/writeBlob virtual so translating port can do the
translation first
mem/translating_port.cc:
mem/translating_port.hh:
Make TranslatingPort inherit from Port
sim/system.cc:
header file that doesn't exit removed
--HG--
extra : convert_revision :
89b08f6146bba61f5605678d736055feab2fe6f7
Kevin Lim [Thu, 30 Mar 2006 15:42:55 +0000 (10:42 -0500)]
Fixes for full system compiling.
arch/alpha/arguments.cc:
There will not be a phys mem ptr in the XC in the newmem. This read will have to go through something else.
arch/alpha/ev5.cc:
Remove instantiations of these functions for the FastCPU, as the FastCPU is not really used. Also this messed up the ability to specify which CPU models are being built.
cpu/exec_context.hh:
Remove getPhysMemPtr() function.
cpu/exetrace.cc:
Include sim/system.hh, and sort the includes.
cpu/simple/cpu.cc:
Fixes for full system compilation.
kern/system_events.cc:
Remove include of encumbered FullCPU. The branch prediction will need to be fixed up in a more generic way in the future.
--HG--
extra : convert_revision :
a8bbf562a277aa80e8f40112570c0a825298a05c
Ali Saidi [Wed, 29 Mar 2006 23:42:53 +0000 (18:42 -0500)]
page_table.cc is a syscall only kinda thing
fix tlbs for newmem
SConscript:
page_table.cc is a syscall only kinda thing
arch/alpha/tlb.cc:
arch/alpha/tlb.hh:
fix tlbs for newmem
--HG--
extra : convert_revision :
0aafcb9698b993a807be883bde1696ee4d33b408
Gabe Black [Wed, 29 Mar 2006 22:40:09 +0000 (17:40 -0500)]
Merge m5.eecs.umich.edu:/bk/newmem
into ewok.(none):/home/gblack/m5/newmem
--HG--
extra : convert_revision :
7866241cf43416636cbd6a3a4f6eeda561ed2e27
Ali Saidi [Wed, 29 Mar 2006 22:39:20 +0000 (17:39 -0500)]
update for connector magic
--HG--
extra : convert_revision :
111af292373edebcd106938e76610f9ac4a6ce58
Ali Saidi [Wed, 29 Mar 2006 22:37:41 +0000 (17:37 -0500)]
Merge zizzer:/bk/newmem
into zeep.eecs.umich.edu:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision :
5ab4ce9f6ec7af326d8906060ae3558cfd67ca08
Ali Saidi [Wed, 29 Mar 2006 22:37:25 +0000 (17:37 -0500)]
move stuff around so PageShift is defined before it is needed
don't ever include a file while in a namespace
start of making alpha console new memsystem happy
Make a BasePioDevice which is what all the simple Pio devices will inherit from
add a description of when the data pointer will have memory
arch/alpha/isa_traits.hh:
don't ever include a file while in a namespace
dev/alpha_console.cc:
dev/alpha_console.hh:
start of making alpha console new memsystem happy
dev/io_device.cc:
dev/io_device.hh:
Make a BasePioDevice which is what all the simple Pio devices will inherit from
mem/packet.hh:
add a description of when the data pointer will have memory
--HG--
extra : convert_revision :
495c0915541f9cad3eb42891e60b4ecbee7952bf
Gabe Black [Wed, 29 Mar 2006 22:35:51 +0000 (17:35 -0500)]
Merge m5.eecs.umich.edu:/bk/newmem
into ewok.(none):/home/gblack/m5/newmem
--HG--
extra : convert_revision :
984b015700ccef71d95b4d7d775a7b3f24084dc6
Kevin Lim [Wed, 29 Mar 2006 21:05:26 +0000 (16:05 -0500)]
Remove "using namespace std" from global declarations.
--HG--
extra : convert_revision :
c580bc6bd308fd502fb5a14ea84b5214e1d2718e
Steve Reinhardt [Wed, 29 Mar 2006 03:55:08 +0000 (22:55 -0500)]
Make CPU_MODELS a sticky build option.
This causes a crash if you're using scons 0.96.1 *and* you specify
more than one CPU model. Since the .isa scanner now works with 0.96.91
then upgrading should not be an issue. For now we're only using one CPU
model (SimpleCPU) so there isn't even a pressing need to upgrade yet.
build/SConstruct:
Make CPU_MODELS a sticky option.
This causes a crash if you're using scons 0.96.1 *and* you specify
more than one CPU model. Since the .isa scanner now works with 0.96.91
then upgrading should not be an issue. For now we're only using one CPU
model (SimpleCPU) so there isn't even a pressing need to upgrade yet.
--HG--
extra : convert_revision :
d8319c4cd5c937c2c033270cef850d19b805d256