Nikos Nikoleris has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/19128

Change subject: base: Add function to count trailing zeros in a 64-bit integer
......................................................................

base: Add function to count trailing zeros in a 64-bit integer

Change-Id: Iaad0679b403bc5015ffeacbf7284313e41a36cd0
Signed-off-by: Nikos Nikoleris <nikos.nikole...@arm.com>
---
M src/base/bitfield.hh
1 file changed, 17 insertions(+), 1 deletion(-)



diff --git a/src/base/bitfield.hh b/src/base/bitfield.hh
index ec1ffce..10b1e60 100644
--- a/src/base/bitfield.hh
+++ b/src/base/bitfield.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 ARM Limited
+ * Copyright (c) 2017, 2019 ARM Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
@@ -47,6 +47,7 @@

 #include <inttypes.h>
 #include <cassert>
+#include <climits>
 #include <cstddef>
 #include <type_traits>

@@ -293,4 +294,19 @@
     return value ? __builtin_ctz(value) : 32;
 }

+/**
+ * Count trailing zeros in a 64-bit value.
+ *
+ * @param An input value
+ * @return The number of trailing zeros or 64 if the value is zero.
+ */
+inline int ctz64(uint64_t value)
+{
+#if ULONG_MAX == UINT64_MAX
+    return value ? __builtin_ctzl(value) : 64;
+#else
+    return value ? __builtin_ctzll(value) : 64;
+#endif
+}
+
 #endif // __BASE_BITFIELD_HH__

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/19128
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: Iaad0679b403bc5015ffeacbf7284313e41a36cd0
Gerrit-Change-Number: 19128
Gerrit-PatchSet: 1
Gerrit-Owner: Nikos Nikoleris <nikos.nikole...@arm.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to