diff options
author | Korey Sewell <ksewell@umich.edu> | 2010-06-23 18:19:18 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2010-06-23 18:19:18 -0400 |
commit | defab3ffd5d2e37215d3f9433dc9fc754a90a9a9 (patch) | |
tree | 1fad74d7a7358dbcf6481781c05afe2ba31a97d6 /src/cpu/inorder/resources/execution_unit.cc | |
parent | 9f0d8f252c2de0b9ac5654b2c35e913831eba756 (diff) | |
download | gem5-defab3ffd5d2e37215d3f9433dc9fc754a90a9a9.tar.xz |
inorder: update branch predictor
- use InOrderBPred instead of Resource for DPRINTFs
- account for DELAY SLOT in updating RAS and in squashing
- don't let squashed instructions update the predictor
- the BTB needs to use the ASID not the TID to work for multithreaded programs
- add stats for BTB hits
Diffstat (limited to 'src/cpu/inorder/resources/execution_unit.cc')
-rw-r--r-- | src/cpu/inorder/resources/execution_unit.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cpu/inorder/resources/execution_unit.cc b/src/cpu/inorder/resources/execution_unit.cc index 868ebe098..017308585 100644 --- a/src/cpu/inorder/resources/execution_unit.cc +++ b/src/cpu/inorder/resources/execution_unit.cc @@ -170,8 +170,14 @@ ExecutionUnit::execute(int slot_num) if (inst->predTaken()) { predictedTakenIncorrect++; + DPRINTF(InOrderExecute, "[tid:%i] [sn:%i] %s ... PC%#x ... Mispredicts! (Taken)\n", + tid, inst->seqNum, inst->staticInst->disassemble(inst->PC), + inst->readPC()); } else { predictedNotTakenIncorrect++; + DPRINTF(InOrderExecute, "[tid:%i] [sn:%i] %s ... PC%#x ... Mispredicts! (Not Taken)\n", + tid, inst->seqNum, inst->staticInst->disassemble(inst->PC), + inst->readPC()); } } else { DPRINTF(InOrderExecute, "[tid:%i]: [sn:%i]: Prediction Correct.\n", |