summaryrefslogtreecommitdiff
path: root/src/base/bitfield.hh
diff options
context:
space:
mode:
authorJairo Balart <jairo.balart@metempsy.com>2018-10-11 16:05:12 +0200
committerGiacomo Travaglini <giacomo.travaglini@arm.com>2019-01-10 16:29:30 +0000
commit93c7fa573116aade8e8d6b0646e85874e6003567 (patch)
tree6e49e8be33c3514553017e055fc32a627cb68698 /src/base/bitfield.hh
parent7d5696d1a9f0776f51ec20e81a413fcdcc748c4e (diff)
downloadgem5-93c7fa573116aade8e8d6b0646e85874e6003567.tar.xz
dev-arm: Add a GICv3 model
Change-Id: Ib0067fc743f84ff7be9f12d2fc33ddf63736bdd1 Reviewed-on: https://gem5-review.googlesource.com/c/13436 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Diffstat (limited to 'src/base/bitfield.hh')
-rw-r--r--src/base/bitfield.hh11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/base/bitfield.hh b/src/base/bitfield.hh
index 23c8b4b12..d696715b3 100644
--- a/src/base/bitfield.hh
+++ b/src/base/bitfield.hh
@@ -282,4 +282,15 @@ inline uint64_t alignToPowerOfTwo(uint64_t val)
return val;
};
+/**
+ * Count trailing zeros in a 32-bit value.
+ *
+ * Returns 32 if the value is zero. Note that the GCC builtin is
+ * undefined if the value is zero.
+ */
+inline int ctz32(uint32_t value)
+{
+ return value ? __builtin_ctz(value) : 32;
+}
+
#endif // __BASE_BITFIELD_HH__