Patchwork [01/10] host-utils: Add host long specific aliases for clz, ctz, ctpop

login
register
mail settings
Submitter Richard Henderson
Date Feb. 14, 2013, 1:47 a.m.
Message ID <1360806463-23632-2-git-send-email-rth@twiddle.net>
Download mbox | patch
Permalink /patch/220313/
State New
Headers show

Comments

Richard Henderson - Feb. 14, 2013, 1:47 a.m.
We will standardize on these names, rather than the similar routines
currently residing in qemu/bitops.h.


Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 include/qemu/host-utils.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

Patch

diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h
index 81c9a75..d72b72d 100644
--- a/include/qemu/host-utils.h
+++ b/include/qemu/host-utils.h
@@ -26,6 +26,7 @@ 
 #define HOST_UTILS_H 1
 
 #include "qemu/compiler.h"   /* QEMU_GNUC_PREREQ */
+#include <limits.h>
 
 #if defined(__x86_64__)
 #define __HAVE_FAST_MULU64__
@@ -237,4 +238,22 @@  static inline int ctpop64(uint64_t val)
 #endif
 }
 
+/* Host type specific sizes of these routines.  */
+
+#if ULONG_MAX == UINT32_MAX
+# define clzl   clz32
+# define ctzl   ctz32
+# define clol   clo32
+# define ctol   cto32
+# define ctpopl ctpop32
+#elif ULONG_MAX == UINT64_MAX
+# define clzl   clz64
+# define ctzl   ctz64
+# define clol   clo64
+# define ctol   cto64
+# define ctpopl ctpop64
+#else
+# error Unknown sizeof long
+#endif
+
 #endif