diff options
Diffstat (limited to 'deps/v8/src/base/division-by-constant.cc')
-rw-r--r-- | deps/v8/src/base/division-by-constant.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/deps/v8/src/base/division-by-constant.cc b/deps/v8/src/base/division-by-constant.cc index 97dfd5680b..fbc36463dc 100644 --- a/deps/v8/src/base/division-by-constant.cc +++ b/deps/v8/src/base/division-by-constant.cc @@ -6,15 +6,16 @@ #include <stdint.h> +#include <type_traits> + #include "src/base/logging.h" #include "src/base/macros.h" namespace v8 { namespace base { -template <class T> +template <class T, std::enable_if_t<std::is_unsigned_v<T>, bool>> MagicNumbersForDivision<T> SignedDivisionByConstant(T d) { - static_assert(static_cast<T>(0) < static_cast<T>(-1)); DCHECK(d != static_cast<T>(-1) && d != 0 && d != 1); const unsigned bits = static_cast<unsigned>(sizeof(T)) * 8; const T min = (static_cast<T>(1) << (bits - 1)); @@ -48,11 +49,10 @@ MagicNumbersForDivision<T> SignedDivisionByConstant(T d) { return MagicNumbersForDivision<T>(neg ? (0 - mul) : mul, p - bits, false); } - template <class T> MagicNumbersForDivision<T> UnsignedDivisionByConstant(T d, unsigned leading_zeros) { - static_assert(static_cast<T>(0) < static_cast<T>(-1)); + static_assert(std::is_unsigned_v<T>); DCHECK_NE(d, 0); const unsigned bits = static_cast<unsigned>(sizeof(T)) * 8; const T ones = ~static_cast<T>(0) >> leading_zeros; |