Commit graph

2683 commits

Author SHA1 Message Date
Korey Sewell a4ed65d0fa 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
2006-05-08 03:59:40 -04:00
Korey Sewell 1047215ee5 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
2006-05-07 18:50:41 -04:00
Korey Sewell 0930024b88 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
2006-05-07 14:09:19 -04:00
Korey Sewell a7565418d2 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
2006-05-07 13:26:15 -04:00
Korey Sewell 34a5732bd3 take-out debug only code
arch/mips/isa/formats/fp.isa:
    take out debug-only code

--HG--
extra : convert_revision : 12c320b4b1432a626acefc496ec7a188c8b3fb66
2006-05-04 21:21:11 -04:00
Korey Sewell de8eba6891 Merge zizzer:/bk/newmem
into  zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem

--HG--
extra : convert_revision : c48a8857f5a520ff8061eb3d8f08dcd43661e68c
2006-05-04 21:10:51 -04:00
Korey Sewell 2e7e844768 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
2006-05-04 20:49:24 -04:00
Kevin Lim f3358e5f7b O3 CPU now handles being used with the sampler.
cpu/o3/2bit_local_pred.cc:
cpu/o3/2bit_local_pred.hh:
cpu/o3/bpred_unit.hh:
cpu/o3/bpred_unit_impl.hh:
cpu/o3/btb.cc:
cpu/o3/btb.hh:
cpu/o3/commit.hh:
cpu/o3/commit_impl.hh:
cpu/o3/cpu.cc:
cpu/o3/cpu.hh:
cpu/o3/decode.hh:
cpu/o3/decode_impl.hh:
cpu/o3/fetch.hh:
cpu/o3/fetch_impl.hh:
cpu/o3/fu_pool.cc:
cpu/o3/fu_pool.hh:
cpu/o3/iew.hh:
cpu/o3/iew_impl.hh:
cpu/o3/inst_queue.hh:
cpu/o3/inst_queue_impl.hh:
cpu/o3/lsq.hh:
cpu/o3/lsq_impl.hh:
cpu/o3/lsq_unit.hh:
cpu/o3/lsq_unit_impl.hh:
cpu/o3/mem_dep_unit.hh:
cpu/o3/mem_dep_unit_impl.hh:
cpu/o3/ras.cc:
cpu/o3/ras.hh:
cpu/o3/rename.hh:
cpu/o3/rename_impl.hh:
cpu/o3/rob.hh:
cpu/o3/rob_impl.hh:
cpu/o3/sat_counter.cc:
cpu/o3/sat_counter.hh:
cpu/o3/thread_state.hh:
    Handle switching out and taking over.  Needs to be able to reset all state.
cpu/o3/alpha_cpu_impl.hh:
    Handle taking over from another XC.

--HG--
extra : convert_revision : b936e826f0f8a18319bfa940ff35097b4192b449
2006-05-04 11:36:20 -04:00
Kevin Lim 4601230d35 Fixes for the sampler.
cpu/simple/cpu.cc:
    Sampler fixes.  The status may be switched out when calling activate or suspend if there is a switchover during a quiesce.

--HG--
extra : convert_revision : da026e75dfb86289484cf01c5b1ecd9b03a72bd3
2006-05-03 15:54:36 -04:00
Kevin Lim 32a5294983 XC needs to get memory from the process.
--HG--
extra : convert_revision : a2c014276824255a896a7e353f919fe81071091e
2006-05-03 15:51:53 -04:00
Korey Sewell 97429d8eee 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
2006-05-02 20:05:16 -04:00
Nathan Binkert d50b6e5247 Fix some of lisa's barchart changes
util/stats/barchart.py:
    - there is no self.inner_axes
    - don't append an empty value to self.xsubticks, otherwise
    subsequent calls will get extra empty ticks
    - rotate labels 30 degrees instead of 90 so it looks better

--HG--
extra : convert_revision : 1cbac6d1f92bfc6b2c1e886ad5f9d4c78a2b3820
2006-05-02 11:45:42 -04:00
Ali Saidi 8a9d270f6c 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
2006-05-01 18:53:28 -04:00
Gabe Black a8fbc4ec76 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
2006-04-30 01:46:00 -04:00
Ali Saidi 6a2e0388cf fixes for se
mem/packet.cc:
mem/port.hh:
    fix for se compilation

--HG--
extra : convert_revision : ac960e295f6b51875898245fb55383a59b06cac6
2006-04-29 17:37:25 -04:00
Ali Saidi ca8a659394 Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : d6f7c4dd146613eeba39249f2d916a77108bc8c1
2006-04-28 15:41:22 -04:00
Ali Saidi b43d1a00fb don't need BusBridge.py anymore
--HG--
extra : convert_revision : 9ec26ee61d4bc68f1dcd1a8ac162c9519b8e6fde
2006-04-28 15:41:14 -04:00
Ali Saidi 79170b1be5 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
2006-04-28 15:40:45 -04:00
Ali Saidi c4b3a2fa0f devices should increment pkt.time instead of assiging to it
--HG--
extra : convert_revision : b4ca3c7fc13bf0856eb2a800a11d5611b473ec3e
2006-04-28 15:38:43 -04:00
Ali Saidi 53d93ef918 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
2006-04-28 15:37:48 -04:00
Ali Saidi c819a1c0e1 Add SparcSystem object
arch/alpha/system.hh:
sim/system.hh:
    make boot_osflags apply to all systems

--HG--
extra : convert_revision : 48cf903fd92be250b86817210951b85fa5e74632
2006-04-28 15:34:03 -04:00
Gabe Black 7bb70e3e30 Fixed constants to work on 32 bit hosts
--HG--
extra : convert_revision : acc8e6f60cfdca518fa45afef4165395cba23d4f
2006-04-28 15:07:44 -04:00
Gabe Black 20c8553787 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
2006-04-28 14:03:42 -04:00
Gabe Black 7a9c65b7b6 Added byteswapping code
--HG--
extra : convert_revision : 67bf0689399328a728a0f3130d58d483e5f2f06e
2006-04-28 13:13:58 -04:00
Gabe Black 9eaedf314b Improved the initial stack frame
arch/sparc/isa/formats/mem.isa:
    Added some debugging output

--HG--
extra : convert_revision : cea88e2b3eddfa4e60bbbcb02f459d274d80db2e
2006-04-28 13:13:35 -04:00
Gabe Black cba0c3736b Added an include which was forgotten
--HG--
extra : convert_revision : ad76ab45358787edddb89910049bac7cca288824
2006-04-28 13:12:46 -04:00
Gabe Black d514caa202 Fixed up some syscalls
--HG--
extra : convert_revision : f9a32e14fa4d4d4710df83dbf54cb77482ba5d03
2006-04-28 13:12:17 -04:00
Gabe Black 25bf3125da Changed the hello_sparc executable back to the cross compiled one
--HG--
extra : convert_revision : 565f75f76dd26ca0e25de4c89d1597a9f39483fd
2006-04-28 13:11:32 -04:00
Gabe Black 7abeb6b18d Some debugging of the ccr bits
--HG--
extra : convert_revision : b3d100b2e34dcecc3ba33c9ad4b0b7e40c210ecc
2006-04-28 13:10:52 -04:00
Gabe Black 9920976892 Added in handling of the annul bit for branches, and fixed up computation of ccr bits.
--HG--
extra : convert_revision : ed38d26e13d25e21819dd32d159f1ee4ffcc780b
2006-04-28 13:10:03 -04:00
Gabe Black 5b561338eb Added a linux.cc file to mesh with Korey's changes
--HG--
extra : convert_revision : 2073c1cda4799a60fce917f227018dd2e52456a3
2006-04-28 13:08:45 -04:00
Korey Sewell 2d077df1a0 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
2006-04-28 03:05:11 -04:00
Korey Sewell a183f66a8a 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
2006-04-28 00:24:25 -04:00
Korey Sewell 316f1f3239 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
2006-04-27 16:44:12 -04:00
Korey Sewell 07d4ad4dbe 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
2006-04-27 05:07:11 -04:00
Nathan Binkert 8e9d44477c Major update to sinic to support VSINIC better
dev/sinic.cc:
    - Size the virtualRegs array based on the configured value
    - Add debugging stuff for uniquely identifying vnic usage
    - Only count totally unprocessed packets when notifying via RxDone
    - Add initial virtual address support
    - Fix some bugs in accessing packets out of order to make sure that
    busy packets are processed first
    - Add fifo watermark stuff
    - Make number of vnics, zero/delay copy and watermarks parameters
dev/sinic.hh:
    add rxUnique and txUnique to uniquely identify tx and rx VNICs
    Create a separate list of Busy VNICs since more than one might
    be busy and we want to service those first
    Add more watermark stuff and new parameters
dev/sinicreg.hh:
    Make the number of virtual nics a read-only parameter
    add bits for ZeroCopy/DelayCopy
    rename Virtual to Vaddr so it's not ambiguous
    Add a flag for TxData/RxData to indicate a virtual address
    Report rxfifo status in RxDone
python/m5/objects/Ethernet.py:
    add more options for the fifo thresholds
    add number of vnics as a parameter
    add copy type as a parameter
    add virtual addressing as a parameter

--HG--
extra : convert_revision : 850e2433b585d65469d4c5d85ad7ca820db10f4a
2006-04-26 17:52:33 -04:00
Nathan Binkert 225345e50e Bit of formatting for sinicreg.hh
dev/sinicreg.hh:
    Formatting

--HG--
extra : convert_revision : 267a63f866342b34d9be680d7aa54c2490fb8fd9
2006-04-26 17:36:06 -04:00
Korey Sewell 303dda5e8e 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
2006-04-26 16:13:47 -04:00
Nathan Binkert 8c80350c14 more debugging for sinic
dev/sinic.cc:
    more debugging
    fix assert

--HG--
extra : convert_revision : 11ac750080f1e65415ff3735011c0b830fbcf72f
2006-04-25 10:57:08 -04:00
Nathan Binkert 6d18428b5f more debugging for sinic
dev/sinic.cc:
    better panic messages
    better debugging

--HG--
extra : convert_revision : 06a9c6c8365ba1c1e58276ed63f299c6be25f0ba
2006-04-25 10:40:35 -04:00
Nathan Binkert b505af87d1 Fix segfault in sinic
dev/sinic.cc:
    check that there is a fault before testing the fault type

--HG--
extra : convert_revision : 0cc95ba660655766b779e77d912dbc685cd476a8
2006-04-25 10:20:37 -04:00
Ali Saidi 8f8d09538f 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
2006-04-24 19:31:50 -04:00
Kevin Lim d363d5aad7 Quiesce stuff.
cpu/ozone/cpu.hh:
    Add quiesce stat (not clear how it should be used yet).
cpu/ozone/cpu_impl.hh:
    Fix for quiesce.

--HG--
extra : convert_revision : a1998818e241374ae3f4c3cabbef885dda55c884
2006-04-24 17:40:00 -04:00
Kevin Lim 31e09892d7 Include option for disabling PC symbols.
cpu/inst_seq.hh:
cpu/o3/cpu.cc:
cpu/ozone/cpu_builder.cc:
cpu/ozone/thread_state.hh:
    SE build fixes.

--HG--
extra : convert_revision : a4df6128533105f849b5469f62d83dffe299b7df
2006-04-24 17:11:31 -04:00
Kevin Lim e704960c80 Updates to Ozone model for quiesce, store conditionals.
--HG--
extra : convert_revision : 72ddd75ad0b5783aca9484e7d178c2915ee8e355
2006-04-24 17:10:06 -04:00
Kevin Lim 676afbe2c7 New stats added to O3 model.
--HG--
extra : convert_revision : 7abb491e89e3e1a331cd19aa05ddce5184abf9e0
2006-04-24 17:06:00 -04:00
Kevin Lim b14bf03219 Fixes for ll/sc for the O3 model.
cpu/o3/alpha_cpu.hh:
    Store conditionals should not write their data to memory if they failed.
cpu/o3/lsq_unit.hh:
    Setup request parameters when they're needed.

--HG--
extra : convert_revision : d75cd7deda03584b7e25cb567e4d79032cac7118
2006-04-24 16:59:50 -04:00
Kevin Lim b363a3703d Allow the switching on and off of PC symbols for tracing.
--HG--
extra : convert_revision : a2422e30ace9874ba1be44cd0e1d3024cabbf1ed
2006-04-24 16:56:24 -04:00
Kevin Lim 55db48891c Use dwarf-2 debugging symbols (they work much better).
--HG--
extra : convert_revision : 669e4c32f2bc2c035a4199d6152a638b75a25148
2006-04-24 16:55:31 -04:00
Kevin Lim 7bab47ac3a Include new OzoneCPU files
--HG--
extra : convert_revision : f8c8751aab62df5d57c6491c5ce9b90b5a176e86
2006-04-22 19:17:05 -04:00