Age | Commit message (Collapse) | Author |
|
Programs which have this set will not work because the stack works differently, so this should probably throw an error and quit.
--HG--
extra : convert_revision : b770045cad02d30445de0d7cc4d8c611a0ac931f
|
|
--HG--
extra : convert_revision : a42224c70c475c1559e83b8a2ef71ff3b792a3ab
|
|
--HG--
extra : convert_revision : bcfefd77c35245ce938ecb9bb46e97ad07377db8
|
|
--HG--
extra : convert_revision : 80833647202985d1c1c7d23c6896831fcd27ff40
|
|
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
|
|
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
|
|
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
|
|
into zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem
--HG--
extra : convert_revision : 0a146eed200abd2c18f135b112987c5cf91a649b
|
|
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
|
|
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
|
|
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
|
|
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
|
|
--HG--
extra : convert_revision : 14ef62e513987b89e913e2bf9b8771ee086ed0a0
|
|
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
|
|
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
|
|
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
|
|
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
|
|
arch/mips/isa/formats/fp.isa:
take out debug-only code
--HG--
extra : convert_revision : 12c320b4b1432a626acefc496ec7a188c8b3fb66
|
|
into zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem
--HG--
extra : convert_revision : c48a8857f5a520ff8061eb3d8f08dcd43661e68c
|
|
arch/mips/isa_traits.hh:
debug statements to be taken out real soon like...
--HG--
extra : convert_revision : 4e9abcb99c991db93328d01d7606a2bb942b29ee
|
|
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
|
|
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
|
|
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
|
|
mem/packet.cc:
mem/port.hh:
fix for se compilation
--HG--
extra : convert_revision : ac960e295f6b51875898245fb55383a59b06cac6
|
|
into zeep.pool:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision : d6f7c4dd146613eeba39249f2d916a77108bc8c1
|
|
--HG--
extra : convert_revision : 9ec26ee61d4bc68f1dcd1a8ac162c9519b8e6fde
|
|
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
|
|
--HG--
extra : convert_revision : b4ca3c7fc13bf0856eb2a800a11d5611b473ec3e
|
|
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
|
|
arch/alpha/system.hh:
sim/system.hh:
make boot_osflags apply to all systems
--HG--
extra : convert_revision : 48cf903fd92be250b86817210951b85fa5e74632
|
|
--HG--
extra : convert_revision : acc8e6f60cfdca518fa45afef4165395cba23d4f
|
|
into ewok.(none):/home/gblack/m5/newmem
cpu/simple/cpu.cc:
Hand merged
--HG--
extra : convert_revision : 68414730c23d41c30cfb7bcfa604029a5fc8622c
|
|
--HG--
extra : convert_revision : 67bf0689399328a728a0f3130d58d483e5f2f06e
|
|
arch/sparc/isa/formats/mem.isa:
Added some debugging output
--HG--
extra : convert_revision : cea88e2b3eddfa4e60bbbcb02f459d274d80db2e
|
|
--HG--
extra : convert_revision : ad76ab45358787edddb89910049bac7cca288824
|
|
--HG--
extra : convert_revision : f9a32e14fa4d4d4710df83dbf54cb77482ba5d03
|
|
--HG--
extra : convert_revision : 565f75f76dd26ca0e25de4c89d1597a9f39483fd
|
|
--HG--
extra : convert_revision : b3d100b2e34dcecc3ba33c9ad4b0b7e40c210ecc
|
|
ccr bits.
--HG--
extra : convert_revision : ed38d26e13d25e21819dd32d159f1ee4ffcc780b
|
|
--HG--
extra : convert_revision : 2073c1cda4799a60fce917f227018dd2e52456a3
|
|
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
|
|
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
|
|
arch/mips/isa/decoder.isa:
remove useless cout statements
arch/mips/isa_traits.hh:
space
--HG--
extra : convert_revision : 8b8cf5df6fc3eb92598360343eb887c35cda202d
|
|
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
|
|
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
|
|
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
|
|
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
|
|
into zeep.pool:/z/saidi/work/m5.newmem
--HG--
extra : convert_revision : bf142c05ad4880513ee3438e1fdf62070a6049e3
|
|
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
|
|
into ewok.(none):/home/gblack/m5/newmem
--HG--
extra : convert_revision : 3eb97976caf57e43119a998c31128ca6f163c05b
|