Index: src/base/bits.cc |
diff --git a/src/base/bits.cc b/src/base/bits.cc |
index 2818b939aa94bb1c43761ef7add1386b0050c214..74d747fc9059f135cc2986b9b73f6ce473391534 100644 |
--- a/src/base/bits.cc |
+++ b/src/base/bits.cc |
@@ -3,6 +3,9 @@ |
// found in the LICENSE file. |
#include "src/base/bits.h" |
+ |
+#include <limits> |
+ |
#include "src/base/logging.h" |
namespace v8 { |
@@ -32,6 +35,19 @@ int32_t SignedMulHighAndAdd32(int32_t lhs, int32_t rhs, int32_t acc) { |
bit_cast<uint32_t>(SignedMulHigh32(lhs, rhs))); |
} |
+ |
+int32_t SignedDiv32(int32_t lhs, int32_t rhs) { |
+ if (rhs == 0) return 0; |
+ if (rhs == -1) return -lhs; |
+ return lhs / rhs; |
+} |
+ |
+ |
+int32_t SignedMod32(int32_t lhs, int32_t rhs) { |
+ if (rhs == 0 || rhs == -1) return 0; |
+ return lhs % rhs; |
+} |
+ |
} // namespace bits |
} // namespace base |
} // namespace v8 |