From 9f0d8f252c2de0b9ac5654b2c35e913831eba756 Mon Sep 17 00:00:00 2001 From: Korey Sewell Date: Wed, 23 Jun 2010 18:18:20 -0400 Subject: inorder-stats: add instruction type stats also, remove inst-req stats as default.good for debugging but in terms of pure processor stats they aren't useful --- src/cpu/inorder/resources/mult_div_unit.cc | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/cpu/inorder/resources/mult_div_unit.cc') diff --git a/src/cpu/inorder/resources/mult_div_unit.cc b/src/cpu/inorder/resources/mult_div_unit.cc index e7bd6750f..90925e66b 100644 --- a/src/cpu/inorder/resources/mult_div_unit.cc +++ b/src/cpu/inorder/resources/mult_div_unit.cc @@ -53,13 +53,13 @@ MultDivUnit::MultDivUnit(string res_name, int res_id, int res_width, void MultDivUnit::regStats() { - multInstReqsProcessed - .name(name() + ".multInstReqsProcessed") - .desc("Number of Multiply Requests Processed."); + multiplies + .name(name() + ".multiplies") + .desc("Number of Multipy Operations Executed"); - divInstReqsProcessed - .name(name() + ".divInstReqsProcessed") - .desc("Number of Divide Requests Processed."); + divides + .name(name() + ".divides") + .desc("Number of Divide Operations Executed"); Resource::regStats(); } @@ -209,7 +209,6 @@ MultDivUnit::execute(int slot_num) if (inst->opClass() == IntMultOp) { scheduleEvent(slot_num, multLatency); - multInstReqsProcessed++; } else if (inst->opClass() == IntDivOp) { int op_size = getDivOpSize(inst); @@ -233,8 +232,6 @@ MultDivUnit::execute(int slot_num) } lastDivSize = op_size; - - divInstReqsProcessed++; } // Allow to pass through to next stage while @@ -283,6 +280,12 @@ MultDivUnit::exeMulDiv(int slot_num) fault = inst->execute(); + if (inst->opClass() == IntMultOp) { + multiplies++; + } else if (inst->opClass() == IntDivOp) { + divides++; + } + if (fault == NoFault) { inst->setExecuted(); mult_div_req->setCompleted(); -- cgit v1.2.3