diff options
author | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:36 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:36 -0400 |
commit | 7dea79535c87b68b5fc6143190d09b8fc364f2aa (patch) | |
tree | 3f30f0716de709f86b9adaa746f0b3e312203cef /src/cpu/inorder/resources/fetch_unit.cc | |
parent | 061b369d288ba4e3fdb145c025fb4d80378cb851 (diff) | |
download | gem5-7dea79535c87b68b5fc6143190d09b8fc364f2aa.tar.xz |
inorder: implement trap handling
Diffstat (limited to 'src/cpu/inorder/resources/fetch_unit.cc')
-rw-r--r-- | src/cpu/inorder/resources/fetch_unit.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/cpu/inorder/resources/fetch_unit.cc b/src/cpu/inorder/resources/fetch_unit.cc index 692f78c7b..60452bacd 100644 --- a/src/cpu/inorder/resources/fetch_unit.cc +++ b/src/cpu/inorder/resources/fetch_unit.cc @@ -111,6 +111,7 @@ FetchUnit::createMachInst(std::list<FetchBlock*>::iterator fetch_it, predecoder.setTC(cpu->thread[tid]->getTC()); predecoder.moreBytes(instPC, inst->instAddr(), mach_inst); + assert(predecoder.extMachInstReady()); ext_inst = predecoder.getExtMachInst(instPC); inst->pcState(instPC); @@ -552,3 +553,9 @@ FetchUnit::squashCacheRequest(CacheReqPtr req_ptr) CacheUnit::squashCacheRequest(req_ptr); } +void +FetchUnit::trap(Fault fault, ThreadID tid, DynInstPtr inst) +{ + //@todo: per thread? + predecoder.reset(); +} |