diff options
author | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:38 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:38 -0400 |
commit | c95fe261abab85bee247737a3d171378689891e0 (patch) | |
tree | 75569e5baa06a7bd25870505a48a3ddf24916475 /src/cpu/inorder/resources/mult_div_unit.hh | |
parent | 4c979f9325f0c82f3284ce0fb0cc118d77268cb5 (diff) | |
download | gem5-c95fe261abab85bee247737a3d171378689891e0.tar.xz |
inorder: bug in mdu
segfault was caused by squashed multiply thats in the process of an event.
use isProcessing flag to handle this and cleanup the MDU code
Diffstat (limited to 'src/cpu/inorder/resources/mult_div_unit.hh')
-rw-r--r-- | src/cpu/inorder/resources/mult_div_unit.hh | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/cpu/inorder/resources/mult_div_unit.hh b/src/cpu/inorder/resources/mult_div_unit.hh index 753bc64a6..7d179bdce 100644 --- a/src/cpu/inorder/resources/mult_div_unit.hh +++ b/src/cpu/inorder/resources/mult_div_unit.hh @@ -64,10 +64,6 @@ class MultDivUnit : public Resource { * valid mult/div sequence is being maintained */ int getSlot(DynInstPtr inst); - - int findSlot(DynInstPtr inst); - - void freeSlot(int slot_idx); void init(); @@ -84,6 +80,9 @@ class MultDivUnit : public Resource { void requestAgain(DynInstPtr inst, bool &try_request); + void squash(DynInstPtr inst, int stage_num, InstSeqNum squash_seq_num, + ThreadID tid); + protected: /** Latency & Repeat Rate for Multiply Insts */ unsigned multRepeatRate; |