This changeset gets the MIPS ISA pretty much working in the O3CPU. It builds, runs...
authorKorey Sewell <ksewell@umich.edu>
Sun, 23 Jul 2006 17:39:42 +0000 (13:39 -0400)
committerKorey Sewell <ksewell@umich.edu>
Sun, 23 Jul 2006 17:39:42 +0000 (13:39 -0400)
commit19ca97af79f3a40111991b4f8375592c7ede65fa
treefd37f5961f29cd5d4e5fc1eba1b37a1a2d17bc67
parent87d485945879bfbfcb798e70d564b02e77fbc250
This changeset gets the MIPS ISA pretty much working in the O3CPU. It builds, runs, and gets very very close to completing the hello world
succesfully but there are some minor quirks to iron out. Who would've known a DELAY SLOT introduces that much complexity?! arrgh!

Anyways, a lot of this stuff had to do with my project at MIPS and me needing to know how I was going to get this working for the MIPS
ISA. So I figured I would try to touch it up and throw it in here (I hate to introduce non-completely working components... )

src/arch/alpha/isa/mem.isa:
    spacing
src/arch/mips/faults.cc:
src/arch/mips/faults.hh:
    Gabe really authored this
src/arch/mips/isa/decoder.isa:
    add StoreConditional Flag to instruction
src/arch/mips/isa/formats/basic.isa:
    Steven really did this file
src/arch/mips/isa/formats/branch.isa:
    fix bug for uncond/cond control
src/arch/mips/isa/formats/mem.isa:
    Adjust O3CPU memory access to use new memory model interface.
src/arch/mips/isa/formats/util.isa:
    update LoadStoreBase template
src/arch/mips/isa_traits.cc:
    update SERIALIZE partially
src/arch/mips/process.cc:
src/arch/mips/process.hh:
    no need for this for NOW. ASID/Virtual addressing handles it
src/arch/mips/regfile/misc_regfile.hh:
    add in clear() function and comments for future usage of special misc. regs
src/cpu/base_dyn_inst.hh:
    add in nextNPC variable and supporting functions.

    add isCondDelaySlot function

    Update predTaken and mispredicted functions
src/cpu/base_dyn_inst_impl.hh:
    init nextNPC
src/cpu/o3/SConscript:
    add MIPS files to compile
src/cpu/o3/alpha/thread_context.hh:
    no need for my name on this file
src/cpu/o3/bpred_unit_impl.hh:
    Update RAS appropriately for MIPS
src/cpu/o3/comm.hh:
    add some extra communication variables to aid in handling the
    delay slots
src/cpu/o3/commit.hh:
    minor name fix for nextNPC functions.
src/cpu/o3/commit_impl.hh:
src/cpu/o3/decode_impl.hh:
src/cpu/o3/fetch_impl.hh:
src/cpu/o3/iew_impl.hh:
src/cpu/o3/inst_queue_impl.hh:
src/cpu/o3/rename_impl.hh:
    Fix necessary variables and functions for squashes with delay slots
src/cpu/o3/cpu.cc:
    Update function interface ...

    adjust removeInstsNotInROB function to recognize delay slots insts
src/cpu/o3/cpu.hh:
    update removeInstsNotInROB
src/cpu/o3/decode.hh:
    declare necessary variables for handling delay slot
src/cpu/o3/dyn_inst.hh:
    Add in MipsDynInst
src/cpu/o3/fetch.hh:
src/cpu/o3/iew.hh:
src/cpu/o3/rename.hh:
    declare necessary variables and adjust functions for handling delay slot
src/cpu/o3/inst_queue.hh:
src/cpu/simple/base.cc:
    no need for my name here
src/cpu/o3/isa_specific.hh:
    add in MIPS files
src/cpu/o3/scoreboard.hh:
    dont include alpha specific isa traits!
src/cpu/o3/thread_context.hh:
    no need for my name here, i just rearranged where the file goes
src/cpu/static_inst.hh:
    add isCondDelaySlot function
src/cpu/o3/mips/cpu.cc:
src/cpu/o3/mips/cpu.hh:
src/cpu/o3/mips/cpu_builder.cc:
src/cpu/o3/mips/cpu_impl.hh:
src/cpu/o3/mips/dyn_inst.cc:
src/cpu/o3/mips/dyn_inst.hh:
src/cpu/o3/mips/dyn_inst_impl.hh:
src/cpu/o3/mips/impl.hh:
src/cpu/o3/mips/params.hh:
src/cpu/o3/mips/thread_context.cc:
src/cpu/o3/mips/thread_context.hh:
    MIPS file for O3CPU...mirrors ALPHA definition

--HG--
extra : convert_revision : 9bb199b4085903e49ffd5a4c8ac44d11460d988c
49 files changed:
src/arch/alpha/isa/mem.isa
src/arch/mips/faults.cc
src/arch/mips/faults.hh
src/arch/mips/isa/decoder.isa
src/arch/mips/isa/formats/basic.isa
src/arch/mips/isa/formats/branch.isa
src/arch/mips/isa/formats/mem.isa
src/arch/mips/isa/formats/util.isa
src/arch/mips/isa_traits.cc
src/arch/mips/process.cc
src/arch/mips/process.hh
src/arch/mips/regfile/misc_regfile.hh
src/cpu/base_dyn_inst.hh
src/cpu/base_dyn_inst_impl.hh
src/cpu/o3/SConscript
src/cpu/o3/alpha/thread_context.hh
src/cpu/o3/bpred_unit_impl.hh
src/cpu/o3/comm.hh
src/cpu/o3/commit.hh
src/cpu/o3/commit_impl.hh
src/cpu/o3/cpu.cc
src/cpu/o3/cpu.hh
src/cpu/o3/decode.hh
src/cpu/o3/decode_impl.hh
src/cpu/o3/dyn_inst.hh
src/cpu/o3/fetch.hh
src/cpu/o3/fetch_impl.hh
src/cpu/o3/iew.hh
src/cpu/o3/iew_impl.hh
src/cpu/o3/inst_queue.hh
src/cpu/o3/inst_queue_impl.hh
src/cpu/o3/isa_specific.hh
src/cpu/o3/mips/cpu.cc [new file with mode: 0755]
src/cpu/o3/mips/cpu.hh [new file with mode: 0755]
src/cpu/o3/mips/cpu_builder.cc [new file with mode: 0644]
src/cpu/o3/mips/cpu_impl.hh [new file with mode: 0644]
src/cpu/o3/mips/dyn_inst.cc [new file with mode: 0755]
src/cpu/o3/mips/dyn_inst.hh [new file with mode: 0755]
src/cpu/o3/mips/dyn_inst_impl.hh [new file with mode: 0755]
src/cpu/o3/mips/impl.hh [new file with mode: 0644]
src/cpu/o3/mips/params.hh [new file with mode: 0644]
src/cpu/o3/mips/thread_context.cc [new file with mode: 0755]
src/cpu/o3/mips/thread_context.hh [new file with mode: 0644]
src/cpu/o3/rename.hh
src/cpu/o3/rename_impl.hh
src/cpu/o3/scoreboard.hh
src/cpu/o3/thread_context.hh
src/cpu/simple/base.cc
src/cpu/static_inst.hh