total should be the sum of the vector result of an operation,
authorNathan Binkert <binkertn@umich.edu>
Fri, 11 May 2007 18:47:18 +0000 (11:47 -0700)
committerNathan Binkert <binkertn@umich.edu>
Fri, 11 May 2007 18:47:18 +0000 (11:47 -0700)
not sum the operands and then apply the operation.

--HG--
extra : convert_revision : 06486e59b3dd9588b458ef45c341cc4f2554dc09

src/base/statistics.hh

index 761b30c2bf34a6bf690b4810bbb3f335fc22a49e..8d3f53d4cb492e12fe519ec9b2ae6388da2cfe8d 100644 (file)
@@ -2094,9 +2094,13 @@ class UnaryNode : public Node
         return vresult;
     }
 
-    Result total() const {
-        Op op;
-        return op(l->total());
+    Result total() const
+    {
+        const VResult &vec = this->result();
+        Result total = 0;
+        for (int i = 0; i < size(); i++)
+            total += vec[i];
+        return total;
     }
 
     virtual size_t size() const { return l->size(); }
@@ -2149,9 +2153,13 @@ class BinaryNode : public Node
         return vresult;
     }
 
-    Result total() const {
-        Op op;
-        return op(l->total(), r->total());
+    Result total() const
+    {
+        const VResult &vec = this->result();
+        Result total = 0;
+        for (int i = 0; i < size(); i++)
+            total += vec[i];
+        return total;
     }
 
     virtual size_t size() const {