Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(708)

Unified Diff: runtime/vm/utils.h

Issue 9209001: Move utils.h and utils.cc from runtime/vm to runtime/platform (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addresed new comments from ager@ Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/scavenger.h ('k') | runtime/vm/utils.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/utils.h
diff --git a/runtime/vm/utils.h b/runtime/vm/utils.h
deleted file mode 100644
index 855e1f18d884249e6caae76e0cb8bfbaf3a0b7fd..0000000000000000000000000000000000000000
--- a/runtime/vm/utils.h
+++ /dev/null
@@ -1,155 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-#ifndef VM_UTILS_H_
-#define VM_UTILS_H_
-
-#include "platform/assert.h"
-#include "vm/globals.h"
-
-namespace dart {
-
-class Utils {
- public:
- template<typename T>
- static inline T Minimum(T x, T y) {
- return x < y ? x : y;
- }
-
- template<typename T>
- static inline T Maximum(T x, T y) {
- return x > y ? x : y;
- }
-
- template<typename T>
- static inline T Abs(T x) {
- if (x < 0) return -x;
- return x;
- }
-
- template<typename T>
- static inline bool IsPowerOfTwo(T x) {
- return (x & (x - 1)) == 0;
- }
-
- template<typename T>
- static inline int ShiftForPowerOfTwo(T x) {
- ASSERT(IsPowerOfTwo(x));
- int num_shifts = 0;
- while (x > 1) {
- num_shifts++;
- x = x >> 1;
- }
- return num_shifts;
- }
-
- template<typename T>
- static inline bool IsAligned(T x, int n) {
- ASSERT(IsPowerOfTwo(n));
- return (x & (n - 1)) == 0;
- }
-
- template<typename T>
- static inline bool IsAligned(T* x, int n) {
- return IsAligned(reinterpret_cast<uword>(x), n);
- }
-
- template<typename T>
- static inline T RoundDown(T x, int n) {
- ASSERT(IsPowerOfTwo(n));
- return (x & -n);
- }
-
- template<typename T>
- static inline T* RoundDown(T* x, int n) {
- return reinterpret_cast<T*>(RoundDown(reinterpret_cast<uword>(x), n));
- }
-
- template<typename T>
- static inline T RoundUp(T x, int n) {
- return RoundDown(x + n - 1, n);
- }
-
- template<typename T>
- static inline T* RoundUp(T* x, int n) {
- return reinterpret_cast<T*>(RoundUp(reinterpret_cast<uword>(x), n));
- }
-
- static uint32_t RoundUpToPowerOfTwo(uint32_t x);
- static int CountOneBits(uint32_t x);
-
- // Computes a hash value for the given string.
- static uint32_t StringHash(const char* data, int length);
-
- // Computes a hash value for the given word.
- static uint32_t WordHash(word key);
-
- // Check whether an N-bit two's-complement representation can hold value.
- static inline bool IsInt(int N, word value) {
- ASSERT((0 < N) && (N < kBitsPerWord));
- word limit = static_cast<word>(1) << (N - 1);
- return (-limit <= value) && (value < limit);
- }
-
- static inline bool IsUint(int N, word value) {
- ASSERT((0 < N) && (N < kBitsPerWord));
- word limit = static_cast<word>(1) << N;
- return (0 <= value) && (value < limit);
- }
-
- // Check whether the magnitude of value fits in N bits, i.e., whether an
- // (N+1)-bit sign-magnitude representation can hold value.
- static inline bool IsAbsoluteUint(int N, word value) {
- ASSERT((0 < N) && (N < kBitsPerWord));
- if (value < 0) value = -value;
- return IsUint(N, value);
- }
-
- static inline int32_t Low16Bits(int32_t value) {
- return static_cast<int32_t>(value & 0xffff);
- }
-
- static inline int32_t High16Bits(int32_t value) {
- return static_cast<int32_t>(value >> 16);
- }
-
- static inline int32_t Low32Bits(int64_t value) {
- return static_cast<int32_t>(value);
- }
-
- static inline int32_t High32Bits(int64_t value) {
- return static_cast<int32_t>(value >> 32);
- }
-
- static inline int64_t LowHighTo64Bits(uint32_t low, int32_t high) {
- return (static_cast<int64_t>(high) << 32) | (low & 0x0ffffffffLL);
- }
-
- static bool IsDecimalDigit(char c) {
- return ('0' <= c) && (c <= '9');
- }
-
- static bool IsHexDigit(char c) {
- return IsDecimalDigit(c)
- || (('A' <= c) && (c <= 'F'))
- || (('a' <= c) && (c <= 'f'));
- }
-
- static int HexDigitToInt(char c) {
- ASSERT(IsHexDigit(c));
- if (IsDecimalDigit(c)) return c - '0';
- if (('A' <= c) && (c <= 'F')) return 10 + (c - 'A');
- return 10 + (c - 'a');
- }
-
- static char IntToHexDigit(int i) {
- ASSERT(0 <= i && i < 16);
- if (i < 10) return static_cast<char>('0' + i);
- return static_cast<char>('A' + (i - 10));
- }
-};
-
-} // namespace dart
-
-#endif // VM_UTILS_H_
« no previous file with comments | « runtime/vm/scavenger.h ('k') | runtime/vm/utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698