Rename intmath.h to intmath.hh
authorNathan Binkert <binkertn@umich.edu>
Fri, 10 Oct 2003 13:44:49 +0000 (09:44 -0400)
committerNathan Binkert <binkertn@umich.edu>
Fri, 10 Oct 2003 13:44:49 +0000 (09:44 -0400)
clean up the formatting
make things use templates since this is C++ now.

base/circlebuf.cc:
base/intmath.cc:
base/intmath.hh:
base/range.hh:
base/remote_gdb.cc:
base/statistics.cc:
base/str.cc:
    intmath.h -> intmath.hh
base/intmath.hh:
    Make this more like C++ by templatizing these functions

--HG--
rename : base/intmath.h => base/intmath.hh
extra : convert_revision : 8f9b14de9db751b1bd78588c51613d77afd96989

base/circlebuf.cc
base/intmath.cc
base/intmath.h [deleted file]
base/intmath.hh [new file with mode: 0644]
base/range.hh
base/remote_gdb.cc
base/statistics.cc
base/str.cc

index 482c97f840abb548a14d56e844f42b2cced1f438..311de60b70f12caaf7ae48cfddd9ada43fce9688 100644 (file)
@@ -33,9 +33,9 @@
 #include <string.h>
 #include <unistd.h>
 
-#include "cprintf.hh"
 #include "circlebuf.hh"
-#include "intmath.h"
+#include "cprintf.hh"
+#include "intmath.hh"
 
 using namespace std;
 
index 8d08e59a87730cfa3f4477e671a2597863da6e62..7a6858d16a96fcf42064dfa1f31841362df3b4af 100644 (file)
@@ -26,7 +26,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "intmath.h"
+#include "intmath.hh"
 
 int
 PrevPrime(int n)
diff --git a/base/intmath.h b/base/intmath.h
deleted file mode 100644 (file)
index 814dacd..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2003 The Regents of The University of Michigan
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __INTMATH_H__
-#define __INTMATH_H__
-
-// Returns the prime number one less than n.
-int PrevPrime(int n);
-
-// Determine if a number is prime
-inline bool
-IsPrime(int n)
-{
-  int i;
-
-  if (n == 2 || n == 3)
-    return true;
-
-  // Don't try every odd number to prove if it is a prime.
-  // Toggle between every 2nd and 4th number.
-  // (This is because every 6th odd number is divisible by 3.)
-  for (i = 5; i*i <= n; i += 6) {
-    if (((n % i) == 0 ) || ((n % (i + 2)) == 0) ) {
-      return false;
-    }
-  }
-
-  return true;
-}
-
-inline unsigned
-LeastSigBit(unsigned n)
-{ return n & ~(n - 1); }
-
-inline bool
-IsPowerOf2(unsigned n)
-{ return n != 0 && LeastSigBit(n) == n; }
-
-inline int
-FloorLog2(unsigned x)
-{
-  if (x == 0)
-    return -1;
-
-  int y = 0;
-
-  if (x & 0xffff0000) { y += 16; x >>= 16; }
-  if (x & 0x0000ff00) { y +=  8; x >>=  8; }
-  if (x & 0x000000f0) { y +=  4; x >>=  4; }
-  if (x & 0x0000000c) { y +=  2; x >>=  2; }
-  if (x & 0x00000002) { y +=  1; }
-
-  return y;
-}
-
-inline int
-CeilLog2(unsigned n)
-{ return FloorLog2(n-1)+1; }
-
-inline unsigned
-FloorPow2(unsigned n)
-{ return 1 << FloorLog2(n); }
-
-inline unsigned
-CeilPow2(unsigned n)
-{ return 1 << CeilLog2(n); }
-
-inline bool
-IsHex(char c)
-{ return (c >= '0' && c <= '9' ||
-          c >= 'A' && c <= 'F' ||
-          c >= 'a' && c <= 'f');
-}
-
-inline bool
-IsOct(char c)
-{ return (c >= '0' && c <= '7'); }
-
-inline bool
-IsDec(char c)
-{ return (c >= '0' && c <= '9'); }
-
-inline int
-Hex2Int(char c)
-{
-  if (c >= '0' && c <= '9')
-    return (c - '0');
-
-  if(c >= 'A' && c <= 'F')
-    return (c - 'A') + 10;
-
-  if (c >= 'a' && c <= 'f')
-    return (c - 'a') + 10;
-
-  return 0;
-}
-
-#endif // __INTMATH_H__
diff --git a/base/intmath.hh b/base/intmath.hh
new file mode 100644 (file)
index 0000000..1646742
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+ * Copyright (c) 2003 The Regents of The University of Michigan
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __INTMATH_HH__
+#define __INTMATH_HH__
+
+// Returns the prime number one less than n.
+int PrevPrime(int n);
+
+// Determine if a number is prime
+template <class T>
+inline bool
+IsPrime(T n)
+{
+    T i;
+
+    if (n == 2 || n == 3)
+        return true;
+
+    // Don't try every odd number to prove if it is a prime.
+    // Toggle between every 2nd and 4th number.
+    // (This is because every 6th odd number is divisible by 3.)
+    for (i = 5; i*i <= n; i += 6) {
+        if (((n % i) == 0 ) || ((n % (i + 2)) == 0) ) {
+            return false;
+        }
+    }
+
+    return true;
+}
+
+template <class T>
+inline T
+LeastSigBit(T n)
+{
+    return n & ~(n - 1);
+}
+
+template <class T>
+inline bool
+IsPowerOf2(T n)
+{
+    return n != 0 && LeastSigBit(n) == n;
+}
+
+template <class T>
+inline int
+FloorLog2(T x)
+{
+    if (x == 0)
+        return -1;
+
+    int y = 0;
+
+    if (x & 0xffff0000) { y += 16; x >>= 16; }
+    if (x & 0x0000ff00) { y +=  8; x >>=  8; }
+    if (x & 0x000000f0) { y +=  4; x >>=  4; }
+    if (x & 0x0000000c) { y +=  2; x >>=  2; }
+    if (x & 0x00000002) { y +=  1; }
+
+    return y;
+}
+
+template <class T>
+inline int
+CeilLog2(T n)
+{
+    return FloorLog2(n - 1) + 1;
+}
+
+template <class T>
+inline T
+FloorPow2(T n)
+{
+    return (T)1 << FloorLog2(n);
+}
+
+template <class T>
+inline T
+CeilPow2(T n)
+{
+    return (T)1 << CeilLog2(n);
+}
+
+inline bool
+IsHex(char c)
+{
+    return c >= '0' && c <= '9' ||
+        c >= 'A' && c <= 'F' ||
+        c >= 'a' && c <= 'f';
+}
+
+inline bool
+IsOct(char c)
+{
+    return c >= '0' && c <= '7';
+}
+
+inline bool
+IsDec(char c)
+{
+    return c >= '0' && c <= '9';
+}
+
+inline int
+Hex2Int(char c)
+{
+  if (c >= '0' && c <= '9')
+    return (c - '0');
+
+  if(c >= 'A' && c <= 'F')
+    return (c - 'A') + 10;
+
+  if (c >= 'a' && c <= 'f')
+    return (c - 'a') + 10;
+
+  return 0;
+}
+
+#endif // __INTMATH_HH__
index 254e714603b2e10d79d165975297cd399b002bcb..dcc863e067db4d6dc2771abe5411318015834eb1 100644 (file)
@@ -31,8 +31,8 @@
 
 #include <assert.h>
 
+#include "intmath.hh"
 #include "str.hh"
-#include "intmath.h"
 
 template<class T>
 class Range
index 5a69878772c1c97c73fab0783a74eed3e9555cf0..280b1cc239bf22f4ee712f68c926375a006d595e 100644 (file)
@@ -94,7 +94,7 @@
 #include <string>
 
 #include "exec_context.hh"
-#include "intmath.h"
+#include "intmath.hh"
 #include "kgdb.h"
 
 #include "physical_memory.hh"
index 1e8cd25658e4f862fe0fc326a91052b7f54ddf52..f956de82825811a9cd45b4057e165ca42b62cae4 100644 (file)
@@ -36,7 +36,7 @@
 #include <math.h>
 
 #include "cprintf.hh"
-#include "intmath.h"
+#include "intmath.hh"
 #include "misc.hh"
 #include "statistics.hh"
 #include "str.hh"
index f54729813db9ab145b8a9fa37d221b275b70f56b..19cbea27d6ef223933021bf8205f9b6bb88f3749 100644 (file)
@@ -34,7 +34,7 @@
 #include <string>
 #include <vector>
 
-#include "intmath.h"
+#include "intmath.hh"
 #include "str.hh"
 
 using namespace std;